Publicado el

Como programar un Robot con JavaScript

En la actualidad la distancia que separa la programación web y la programación de hardware cada vez es más corta, esto es gracias a las comunidades que se dedican a crear nuevas tecnologías para la programación de hardware como NodeBots, una comunidad que desarrolla librerías para poder programar robots con el framework de Javascript Node.js.
Los desarrolladores web a veces no pueden programar un robot por la diferencia de lenguajes, ya que la programación de hardware regularmente se hace en lenguaje C o C++ con algunas características especiales. Pero gracias a una librería creada por la comunidad de NodeBots llamada Johnny Five (J5) los robots se pueden programar tal como se programa una pagina web, esta librería es compatible con infinidades de tarjetas como Aduino, RasberryPi, Tessel, Intel Galileo, Intel Edison, entre muchas otras…

En esta ocasión vamos a programar un robot con la tarjeta Arduino, utilizando JavaScript. El robót será un carrito controlado mediante las teclas de dirección de nuestra computadora.

[nextpage title = «Materiales»]
Para este tutorial vamos a necesitar los siguientes componentes:
1 Carro Rover (Puedes utilizar cualquier otro)
1 Arduino Uno u Otro.
1 Protoboard
1 Una batería Power Bank (En este tutorial se va a utilizar una Power Bank de la marca Romoss pero puedes utilizar el que tu desees)
1 Driver L293D (Puente H)
Jumpers o Cables.
[nextpage title = «Instalación de librerías»]
Antes de realizar el robot vamos a tener que instalar lo siguiente:
Node.js
Si eres desarrollador seguro que ya tienes instalado este framework, si no, lo puedes descargar desde la pagina oficial https://nodejs.org se instala como cualquier otro programa.
johnny-five y keypress
Una vez instalado node.js tenemos que instalar el npm johnny-five y keypress, estos se instalan desde la terminal de comandos, con estos pasos:
1.- Creamos una nueva carpeta, de preferencia en el escritorio y la llamamos NodeBots.
2.- Abrimos la terminal de comandos:
terminal
3.- Nos introducimos a la carpeta NodeBots, como se muestra en la imagen:
cmd
4.- Instalamos la librería johnny-five con el siguiente comando: npm install johnny-five
johnny-five
esperar hasta que se termine de instalar la librería, una vez terminada de instalar deberá aparecer como lo que se muestra en la imagen:johnny-five-install
5.- Ahora instalamos keypress de la misma forma con el comando: npm install keypress
6.- Una vez instaladas las dos ibrerías, verifica en la carpeta NodeBots que aparezca una carpeta llamada node_modules. si aparece significa que todo a sido instalado con éxito.
[nextpage title = «Hola Mundo con Johnny-Five»]
Una vez instalado todo lo necesario tenemos que abrir el IDE de Arduino, si no lo tiene es necesario hacerlo. Conectamos nuestra tarjeta Arduino y nos vamos a: Archivos>Ejemplos>Firmata>StandardFirmata. Cargamos el codigo al aduino. Esto se hace para que el arduino se puede comunicar con Node.js.
firmata
Ahora abrimos un editor de codigo ya sea SublimeText o Atom creamos un archivo nuevo lo guardamos como blink.js, en blink.js escribimos el siguiente código:
blinkk

//llamamos la librería johnny-five
var five = require("johnny-five");
// configuramos la tarjeta arduino en una variable
var board = new five.Board();
// cuando la tarjeta esta lista ejecutar una funcion.
board.on("ready", function() {
// Declarar el pin 13 en la variable led
var led = new five.Led(13);
// Parpadear el led cada 500 milisegundos
led.blink(500);
});

Ralizamos la siguiente conexion
led-scene-0
Ejecutamos el código con el siguiente comando: node blink.js
blink2
Si se ejecuta correctamente aparecerá lo siguiente y el Led empezará a parpadear como en la imagen gif del arduino.
Dale click a la imagen para ver la animación del LED
led-scene-0
Acabas de realizar tu hola mundo en electrónica utilizando JavaScript…
[nextpage title = «Cableado del robot»]
Para el robot necesitamos realizar el siguiente cableado:
circuito-sumo
Los pines envián señales al Driver L293D(Puente H), el puente H controla los giros de los motores, la pila de 9V es para alimentar a los motores, en lugar de la batería de 9V vamos a utilizar una batería Power Bank puedes utilizar cualquier fuente de alimentación que quieras.
Una vez realizado el circuito vamos a proceder a escribir el código.
[nextpage title = «Programación final del robot»]
Para la programación final vamos a seguir los mismos pasos que utilizamos para encender el led.
1.- En nuestro editor de código creamos un archivo nuevo llamado robot y lo guardamos como robot.js en el archivo robot.js escribimos el siguiente código. Cada linea de código está comentada para que sepas la función que realiza cada una.

// incluimos la libreria j5
var five = require("johnny-five");
// incluimos la librería para utilizar los teclados
var keypress = require("keypress");
//configuramos nuestra placa arduino en una variable
var board = new five.Board;
// funcion que se ejecuta cuando la placa ya esta lista
board.on("ready", function() {
// mensaje que se muestra por consola indicando que la placa esta lista
keypress(process.stdin);
console.log("Placa lista.");
//Fncion de keypress
process.stdin.on("keypress", function(ch, key){
// Declaramos los pines para los motores:
var pin1 = new five.Led(2);
var pin2 = new five.Led(4);
var pin3 = new five.Led(7);
var pin4 = new five.Led(8);
// Si presionamos la tecla de direccion arriba
if (key.name ==="up"){
pin1.on();
pin2.off();
pin3.on();
pin4.off();
// Muestra el texto adelante en la consola
console.log("\nAdelante");
}
// Si presionamos la tecla de direccion bajo
if (key.name ==="down"){
pin1.off();
pin2.on();
pin3.off();
pin4.on();
// Muestra en la consola el texto Atras
console.log("\nAtras");
}
// Si presionamos la tecla de direccion Izquierda
if (key.name ==="left"){
pin1.on();
pin2.off();
pin3.off();
pin4.on();
// Muestra en la consola el texto Izquierda
console.log("\nIzquierda");
}
// Si presionamos la tecla de direccion derecha
if (key.name ==="right"){
pin1.off();
pin2.on();
pin3.on();
pin4.off();
// Muetra en la consola el texto Derecha
console.log("\nDerecha");
}
});
});
// mensaje que se muestra por consola mientras se espera a que se inicie la placa
console.log("\nEsperando a que inicialice el dispositivo...");

Una vez escrito el código guardamos cambios y lo ejecutamos con el siguiente comando: node robot.js
robotcmd
Cuando nos aparezca la leyenda placa lista en la consola, movemos las teclas de direccion de nuestra computadora y vemos como se mueve el robot, para detener el robot presionamos la tecla espaciadora o cualquier otra tecla.
cmdrobot2

Compartir ahora:
Deja una respuesta