El Internet de las Cosas aplicado a la robótica: qué son los NodeBots

5 min lectura
26 octubre 2015
El Internet de las Cosas aplicado a la robótica: qué son los NodeBots
El Internet de las Cosas aplicado a la robótica: qué son los NodeBots

BBVA API Market

El JavaScript está de moda. Y eso no es por casualidad. Ha llegado el día en que un desarrollador con unos conocimientos elevados en este lenguaje de programación puede hacer de todo: proyectos de front-end, de back-end, gestión de bases de datos y servidores… y también tiene oportunidades en el conocido como Internet de las Cosas. JavaScript es el ‘chico’ para todo.

Actualmente existen numerosos índices de popularidad que miden el desempeño de los lenguajes de programación dentro de la comunidad de desarrolladores: oportunidades de empleo, evolución de los niveles salariales, número de proyectos en plataformas como GitHub o StackOverFlow… Uno de esos índices es el de Trendyskills, que basa su clasificación en ofertas laborales. En el gráfico se puede ver la pujanza de JavaScript, solo por detrás de Java.  

Dentro del mundo del Internet de las Cosas, la robótica es uno de los sectores que mayor atención ha despertado dentro de los amantes de la programación y la tecnología. El uso de hardware de código abierto como Arduino o Raspberry Pi combinado con tecnologías opensource en javascript para la gestión de servidores como Node.js ha abierto un mundo nuevo en el campo de los robots. Tanto es así que la suma de Arduino y Node.js ha engendrado un tipo de bots llamados Nodebots. Es robótica controlada con JavaScript.

Primeros exploradores de los Nodebots

En los comienzos de los Nodebots hay varios nombres en la orla de los exploradores originarios. Los primeros dos desarrolladores en mostrar las posibilidades del JavaScript para el control de robots fueron Nikolai Onken y Jörn Zaefferer durante una charla en la JSConfEU de 2010. De aquella intervención existe un archivo documental en YouTube. Una joya audiovisual que muestra cómo usar este lenguaje de programación para controlar objetos.

Su charla fue trascendental porque colocó a JavaScript donde algunos otros desarrolladores especializados en robótica ya lo situaban: es, posiblemente, la sintaxis que con menos esfuerzo y líneas de código puede hacer realidad el llamado Internet de las Cosas. En esa intervención, su tesis fue que el mundo de los objetos conectados se basa solo en dos únicas líneas de código:

$("livingroom").bind("motion", function() {
  $(this).find("lights").brightness("75%").dimAfter("120s"); });

El otro nombre es Chris Williams, que aquel día de 2010 en la JSConf fue uno de los asistentes a la charla de Onken y Zaefferer. Como el propio Williams escribió en julio de 2012, las palabras de sus colegas reafirmaron dentro de él una sensación que le abordaba desde hacía tiempo: las enormes posibilidades de JavaScript como sintaxis sencilla para conectar objetos. Él fue el creador del paquete javascript más usado para desarrollar Nodebots, Node-SerialPort, que permite interactuar con un microcontrolador a través de Node.js.

En esa línea temporal de primeros pasos en el campo de la robótica con JavaScript aparecen también Julian Gautier y Rick Waldrom.

Gautier es el padre del protocolo Firmata, que permite la comunicación con microcontroladores a través de un software de ordenador, tableta o móvil. Hoy en día, el protocolo Firmata más completo es para la plataforma Arduino. Firmata tiene varias bibliotecas de cliente en varios lenguajes además de Javascript: Processing, Python, Ruby, Perl, Clojure, Java, PHP

Waldrom es quien coge el protocolo Firmata y lo convierte en un marco de desarrollo de robótica en JavaScript e Internet de las Cosas llamado Johnny-Five. Es este framework lo que ha permitido a muchos programadores de robots dar a sus Nodebots todas las funcionalidades de las que disfrutan ahora mismo: movimiento, control de luces y sonido… Usando una plataforma microcontrolador como Arduino u otras y Node.js.

Cómo empezar a montar Nodebots

El primer paso sería adquirir un kit de inicio de Arduino, que suele contener varios componentes para robótica. Hay algunos paquetes interesantes dentro del mercado, de la propia compañía de las placas azules u otras empresas:

– Genuino and Arduino Starter Kit. Este paquete tiene varios componentes importantes para distintos tipos de proyectos: USB, batería de 9V, potenciómetro, pulsadores, sensores de temperatura e inclinación, varias luces LED de colores (blanco, rojo, verde, amarillo y azul), diodos, un motor y un servomotor, fotoresistencias, condensadores, optoaclopador, resistencias de distintos ohmios… 

– SparkFun Investor’s Kit. Este pequeño equipo es parecido al de Arduino en sus componentes. Tiene pulsadores, luces LED de varios colores, un motor y un servomotor, diodos, potenciómetro, sensores de temperatura y luz, resistencias, cables USB… Es un kit atractivo para hacer muchos proyectos de hardware.

Hay otros paquetes de componentes que pueden servir para hacer Nodebots: el Experimenter’s Kit for Arduino, el Seeed ARDX – the starter kit for Arduino o el Adafruit ARDX Experimentation Kit for Arduino. Los precios oscilan entre los 65 y los 90 dólares. Algunos son más completos y otros menos.

Cómo pasar del kit al Internet de las Cosas con Node.js

Estos son los pasos necesarios para empezar a montar Nodebots:

– Instalar Node.js. El procedimiento de instalación depende del tipo de sistema operativo de cada máquina (Windows, Mac OSX, Linux, Ubuntu… ). Al entrar en la página oficial de Node.js, esta reconoce de forma automática el tipo de OS del equipo y facilita la instalación. En el caso de Windows, nos descargamos el archivo .msi y lo ejecutamos.

– La desarrolladora Anna Gerber tiene una guía en GitHub bajo licencia MIT para desarrollar Nodebots con Node.js. Descripción y código.

– Descargar el Entorno de Desarrollo Integrado Arduino. La versión actual es la 1.6.5., disponible para los sistemas operativos Windows, Mac OSX y Linux. Es un marco escrito en Java y basado en Processing.

– Conectar el microcontrolador compatible con Arduino con el USB.

– Lanzar el IDE Arduino y abrir el protocolo Firmata a través de la siguiente ruta del menú: File > Examples > Firmata > StandardFirmata.

– Seleccionar el tipo de placa Arduino en la ruta Tools > Board.

– Elegir puerto para la placa en Tools > Serial Port > (puerto Arduino).

– Subir el protocolo Firmata a Arduino en File > Upload.

– En este proceso queda instalado el marco de desarrollo Johnny-Five. Cualquier código puede correr dentro del directorio node-ardx.

– Ahora se puede desarrollar la aplicación web para controlar los movimientos del nodebot hecho con Arduino, Node.js y Johnny-Five.

– El código en JavaScript por el lado del servidor, hecho con Node.js y Express.js (marco de desarrollo específico para Node.js) sería algo así: 

var express = require('express');
var app = express();
var io = require('socket.io')(app.listen(8081));
var five = require('johnny-five');
app.use(express.static(__dirname + '/app'));
app.get('/', function (res) {
           res.sendfile('/index.html');
});
var board = new five.Board({
           repl:false
});

La página para desarrolladores Sitepoint tiene una guía paso a paso con el código necesario para montar un bot a motor controlado desde una app web.

En la actualidad, el desarrollo de nodebots es un auténtico fenómeno internacional. La comunidad celebra encuentros por todo el mundo y tiene incluso una fecha para la celebración del Día Internacional de Nodebots, el 25 de julio. Se puede seguir cualquier novedad a través del perfil @nodbotsday en Twitter, su perfil en GitHub o a través del equipo de Nodebots. ¡Experimenta!

Síguenos en @BBVAAPIMarket

También podría interesarte