Voyager

Proyecto experimental Open Hardware

 Julio César Castellanos

Tutor. MSc. Ruben Baena Navarro

II Congreso Internacional de Ingeniería de Sistemas Universidad de Córdoba

 

Descripción del Problema

¿ Como construir un prototipo de un robot que pueda ser controlado desde Internet utilizando hardware de bajo coste?

Motivación

Technology is just one of many disruptive inluences in education today. We live in an era where the wealth of data and the exponential growth in the development of new
knowledge is challenging institutions to rethink teaching
and learning in a global market.
- Cisco (2013)

Justificación

  • Micro-controladores y sensores pequeños y baratos
  • Nuevas herramientas de software
  • La comunidad open source/hardware ha estado bastante activa los últimos años.
  • La Internet de las cosas es tendencia

Objetivo General

  • Documentar el desarrollo un sistema ubicuo utilizando micro-controladores que pueda ser controlado a través de una interfaz HTTP con fines educativos.

Objetivos especificos

  • Prototipar hardware utilizando Arduino que permita comunicación serial en tiempo real utilizando el protocolo firmata y lectura de sensores.

 

  • Codificar una aplicación que reciba peticiones HTTP via web socket y las transforme a señales digitales utilizando Nodejs con la libreria Jhonny five

Objetivos especificos

  • Desplejar la aplicación en un container de Linux(LXC) compatible con ARM utilizando Docker bajo una Raspberry pi B+ 2 que permita comunicación serial con un Arduino e integre periféricos.

 

  • Diseñar una interfaz web que capte los eventos del navegador para controlar el robot y presente información en streaming de sensores y/o periféricos.

 

 

Antecedentes

Javascript en la robotica y los servidores

Antecedentes

Movimiento Open Hardware

Antecedentes

Plataformas Hardware ubicuas

Los ingredientes..

## Hardware

- Raspberry pi 2 B+
    - Camera board
    - Usb Wifi dongle ó Ehternet

- Arduino
    - DC Motors
    - Stepper
    - H bridge
    - Sensores temperatura
- Baterias, Protoboard, Compuertas logicas

Los ingredientes..

## Software 
- Raspbian (Linux)
- Firmata (Arduino)
- Nodejs
    - Jhonny-five
    - Socket.io

- Nginx (Servidor)
- UV4L HTTP/WebRTC Streaming Server

 

Arquitectura 

Arquitectura 

Arquitectura 

Y el código que ? 

var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // Create an Led on pin 13
  var led = new five.Led(13);
  // Blink every half second
  led.blink(500); 
});

Hello Johnny

Resultado

El "Framework" de proyecto

De eventos en el navegador a bits en hardware

Evento del navegador

"keys": "up",
"on_keydown": function() {
    console.log("Client: Going forward");
    socket.emit('goForward');

Servidor a la espera

app.listen(8000, function () {
    console.log('Http server listening on port %d', 8000);
});

Socket recibido

socket.on('goForward', function(){
    console.log("Server: Going forward! ");
    // Do something
});

Resultado

¿ Que es Docker y porque tiene sentido para este proyecto y en el IOT ?

Grab the code on github

Referencias

  • Mondada, F., Bonani, M., Raemy, X. et al. (2009). The e-puck, a Robot Designed for Education in Engineering. 

 

  • L. Bertelli, F. Bovo, L. Grespan, S. Galvan, and P. Fiorini. Eddy: an Open Hardware Robot for Education (2010). University of Verona.

Voyager bot: Proyecto experimental Open Hardware

By Julio César

Voyager bot: Proyecto experimental Open Hardware

An Arduino bot controlling from a web browser using Nodejs on Docker for Raspberry pi

  • 1,931