Arduino y nodejs con Johnny-Five
[Tutorial de «Mex» Delgado]
Bueno antes de comenzar con este tutorial de Arduino, voy a intentar hacer una breve introducción sobre mi y como empecé con interiorizarme sobre esta plataforma.
Mi nombre es Maximiliano “Mex” Delgado, vivo en Buenos Aires y soy programador y diseñador gráfico desde hace más de una década. Actualmente estoy trabajando en una agencia de publicidad, en la cual me desempeño en el área de desarrollo e investigación.
Turorial Arduino nodejs
Como es sabido, uno al estar trabajando con la publicidad se puede topar con cosas bastante interesantes y algunas que dan lástima, pero en enero del 2015 vi una campaña del local de comidas rápidas McDonald’s bajo el nombre de “Big Mac Dice” en la cual se ve el envase de dicho combo en el que simula estar hablando, si bien, la idea no es tan buena, lo que me llamó la atención fue como fue desarrollado, muchos dirían “es un hilo transparente (tanza) que se jala y hace que se mueva”, pero no, aquí aplicaron la plataforma Arduino, la cual obtenía las frecuencias de audio del locutor y por medio de un motor hacía que la apertura de la caja variara el ángulo.
Uno de los CEO de la agencia, al notar mi interés sobre Arduino, me dio la posibilidad de empezar a investigar sobre dicha tecnología y empezar a emplearla de distintas formas, no necesariamente al rubro publicitario, sino también como un pasatiempo.
Tutoriales de Arduino
Es por eso que hoy estoy aquí, escribiendo estas palabras y agradeciendo al fundador de esta página por cederme un espacio para que pueda compartir mis conocimientos (hasta el momento).
En fin… Ya es hora de ponernos manos a la obra.
En este primer tutorial Arduino voy a explicar el famoso Hola Mundo! (Hello World!) de Arduino, pero de otra manera.
Arduino y nodejs con Johnny J5
No hace mucho, investigando sobre Arduino y como interactuar componentes con un sitio web, me tope con una libreria JS que te permite manipular Arduino pero directamente con javascript, es decir: Si sabes js no es necesario que aprendas el lenguaje de Arduino.
La librería que voy a explicar, es Johnny-Five (J5), sí sí, como el famoso robot de la película 1986, Cortocircuito.
Johnny-five con Arduino
Qué es Johnny-five (J5)?
J5 (http://johnny-five.io/) es un framework de programación robótica basado en javascript lanzado por Bocoup en el 2012, es opensource, lo cual cuenta con muchos desarrolladores, ingenieros y colaboradores que están constantemente perfeccionando y agregando cosas nuevas.
J5 (http://johnny-five.io/) es un framework de programación robótica basado en javascript lanzado por Bocoup en el 2012, es opensource, lo cual cuenta con muchos desarrolladores, ingenieros y colaboradores que están constantemente perfeccionando y agregando cosas nuevas.
Para empezar, necesitamos tener instalado en nuestra computadora nodejs o io.js, preferentemente nodejs, ya que vas a encontrar muchísimas mas librerías para nodejs que puedas unir con Arduino, por ejemplo, una librería de twitter. Mas adelante haré un tutorial de Arduino sobre esto.
Entonces los pasos serian. (En mi caso, utilizo Mac, rara vez uso una pc, así que mis tutoriales van a estar realizados para Mac, pero son fáciles de migrar a pc)
- Instalar node.js (https://nodejs.org)
- Instalar j5 – npm install johnny-five (https://github.com/rwaldron/johnny-five)
- Empezar a codear.
Librería J5 Johnny Five
Empecemos con nuestro proyecto Hola Mundo!
Primero, tenemos que instalar en nuestro Arduino el standarFirmata para poder interactuar con la libreria j5, para ello vamos a Archivo -> Ejemplos -> Firmata -> StandardFirmata.
Se va abrir un código, ese mismo código, hay que subirlo al arduino. (no te olvides de configurar el puerto, es fundamental para el momento de interactuar con j5, recomiendo el /dev/cu.usbmodemfa141 como default)
Se va abrir un código, ese mismo código, hay que subirlo al arduino. (no te olvides de configurar el puerto, es fundamental para el momento de interactuar con j5, recomiendo el /dev/cu.usbmodemfa141 como default)
Armamos nuestra placa Arduino conectando el led en el pin 7 y en el gnd (no es necesario que sea el 7, puede ser el 13, el 10, etc, pero si prefieres, hazlo directo en el 13).
Luego, en la ruta donde vamos a crear nuestro código, creamos un archivo package.json que va a contener la siguiente información.
{
"name" : "Hello World!", //Nombre del proyecto (requerido)
"description" : "My first project with j5", // Descripcion del proyecto (no es requerido)
"version" : "0.0.1", // Version del proyecto
"dependencies":{ // Librerias que va a utilizar el proyecto
"johnny-five" : "latest", // Ultima version de J5
}
}
Una vez creado el package.json, creamos un archivo index.js el cual va a tener el codigo para hacer el blink.
// incluimos la libreria j5
var five = require(“johnny-five”);
//configuramos nuestra placa arduino en una variable
var board = new five.Board({
// seleccionamos el puerto de comunicacion con el que fue seteado, no es requerido, pero tampoco esta demas incluirlo
port: "/dev/cu.usbmodemfa141"
});
// funcion que se ejecuta cuando la placa ya esta lista
board.on("ready", function() {
// mensaje que se muestra por consola informandonos de que la placa esta lista
console.log("Placa lista.");
// en una variable la configuramos el tipo de componente que es y a que pin esta conectado, en este caso al 7.
var led = new five.Led(7);
// funcion de parpadeo aplicado a la variable del componente, junto con el tiempo de intermitencia
led.blink(500);
});
// mensaje que se muestra por consola mientras se espera a que se inicie la placa
console.log("\nEsperando a que inicialice el dispositivo...");
En nuestra terminal
Una vez salvado el proyecto, vamos a nuestra terminal y ejecutamos el archivo index.js.
En mi caso accedo a la carpeta del proyecto (cd /Users/Mex/S itios/arduino/j5) y luego ejecuto node index.js
En mi caso accedo a la carpeta del proyecto (cd /Users/Mex/S itios/arduino/j5) y luego ejecuto node index.js
En la misma pantalla de la terminal mostraria los datos de conexion seguido del mensaje “Esperando a que inicialice el dispositivo…” luego el mensaje «Placa lista.» y por ultimo el resultado en nuestra placa, con el led parpadeando.
En este link http://johnny-five.io/api/led/#api vas a encontrar las funciones disponibles para la clase LED.
El HIGH se reemplaza por el led.on(), el LOW por el led.off(), stop(), toggle(), brightness(), y hasta tiene un fade.
Bueno, espero que tengan éxito aplicando este framework y cualquier consulta no duden en hacerla, tal vez tarde en responderla, pero voy a tratar de hacerlo lo antes posible.
0 comentarios:
Publicar un comentario