Comunidad de diseño web y desarrollo en internet online

Programa robots con JavaScript y Node.js

Hay muchas comunidades y cada vez más eventos de NodeBots alrededor del mundo; en eventos de JavaScript el grupo de interesados en controlar hardware ha ido creciendo (lo sabemos, la combinación HW + JS es genial) y siempre hay nuevos interesados y curiosos que tienen dudas acerca de cómo empezar.



¿Qué necesito antes de empezar?


Hardware

Se puede trabajar con muchos tipos de microcontroladores o minicomputadoras pero recomendamos que para empezar uses un Arduino Uno. Necesitarás varios materiales adicionales para dar los primeros pasos así que resulta mucho más fácil comprar un kit que incluya todo. Entre los kits que puedes comprar están:

-Sparkfun Inventor’s Kit for Arduino
-Adafruit ARDX - v1.3 Experimentation Kit for Arduino (Uno R3)
-Armar tu propio Kit

Toma en cuenta que si compras un kit estará pensado para que lo trabajes con el lenguaje e IDE de Arduino (Processing / Wiring), incluye un libro o manual para construir algunos circuitos básicos. Aunque esta forma de hacer las cosas es interesante aquí somos entusiastas de JavaScript por lo que nuestra sugerencia es que por el momento lo dejes a un lado y trabajes con Node.js

Software

Es necesario descargar e instalar el IDE de Arduino, node.js y npm. Es importante aclarar que no vamos a usar el IDE de Arduino para todo el proceso de programación sino solamente para un paso dentro del proceso de configuración del microcontrolador. Para trabajar Arduino con JavaScript usaremos johnny-five, una librería que nos facilita el proceso de controlar hardware con JS.

Revisa los pre-requisitos de tu sistema y desde la línea de comandos lo puedes instalar con:

Código :

npm install johnny-five


Firmata

Para la comunicación con el microcontrolador necesitamos que tenga un protocolo de comunicación llamado Firmata que nos permitirá controlarlo con JavaScript. Si tienes un Arduino Uno nuevo es muy probable que tenga instalado de fábrica Firmata y puedas omitir este paso y pasar directo a escribir tu primer programa usando Node.js y johnny-five.

Para instalar Firmata necesitas tener conectado tu board Arduino a la computadora a través de un puerto USB. Asegúrate de tener seleccionado en el IDE de Arduino el modelo adecuado y que haya reconocido el puerto que se utilizará para la comunicación.

Una vez tienes esto listo en el IDE de Arduino selecciona File > Examples > Firmata > StandardFirmata y luego haces clic en el botón Upload para transferir el código al microcontrolador.



¡Hola Johhny!

El “hola mundo” tradicional en el mundo del hardware es encender un LED, para ello necesitamos:

-Arduino (duh!)
-Protoboard
-LED
-Resistencia de 120 ohms
-Dos cables para conectar a positivo y negativo

Circuito



Crea un archivo nuevo llamado led.js y pon esto:

Código :

var five = require("johnny-five"),
   board = new five.Board();
board.on("ready", function() {
  // vamos a crear un LED en el pin 13 y a hacerlo parpadear por un segundo, el parametro que recibe son milisegundos
  (new five.Led(13)).strobe(“1000”);
});


Al tener tu código listo lo ejecutas con:

Código :

node led.js




El resultado debería verse algo así.

Con suerte todo funcionó y te encuentras en un estado de éxtasis gritando OH POR DIOS ENCENDIÓ SOY MÁS GRANDE QUE ZEUS (si no funcionó puedes checar problemas comunes más abajo, no te deprimas).

¿Qué sigue?

Busca la comunidad de NodeBots más cercana y si no existe inicia una :D. Encuentras material de referencia en inglés muy bueno como Arduino Experimenter's Guide for NodeJS o el foro de NodeBots.

Problemas comunes



Software
Asegurate que tu Arduino tenga Firmata, si no estás seguro si lo tiene revisa la sección de esta guía donde mencionamos como cargarlo al microcontrolador. Revisa también que tengas conectado tu microcontrolador y que tenga un puerto serial asignado por la computadora. En algunos casos, cuando usas Linux, es necesario ejecutar como superusuario por un problema de permisos para acceder al hardware, esto lo haces con:

Código :

sudo node led.js


Hardware
Si no colocas el resistor el circuito funciona, el LED enciende con intensidad brillante pero es muy probable que luego de un rato se queme y no queremos eso.

Si el LED enciende de una forma tenue es posible que la resistencia sea muy grande, recuerda la Ley de Ohm (I = V/R). Para el cálculo de la resistencia puedes usar esta página introduciendo los datos. La fuente de voltaje que provee Arduino son 5v, el voltaje y corriente del LED te lo dicen al comprarlo pero generalmente son estos valores:

LED Rojo: 2V 15mA
LED Verde: 2.1V 20mA
LED Azúl: 3.2V 25mA
LED Blanco: 3.2V 25mA

¿No enciende el LED? es posible que lo hayas conectado al revés, hay varias formas de asegurarse de haber conectado la polaridad de forma adecuada. La pata más larga del LED siempre será el ánodo (+) y en nuestro circuito va conectado al pin 13 del board Arduino. También puedes revisar el borde del LED, buscar la parte plana (8 en el diagrama) que identifica al cátodo (-) y asegurate que esté conectado a tierra (GND).



Recuerden que pueden contactarme en twitter por:
Adrián Catalán (@ykro)

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate