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
- 2,052