Cómo controlar tu Arduino usando JavaScript

¿Sabía que puede controlar su Arduino con Javascript? ¡Con una pieza de software y algo de creatividad, puedes! He aquí cómo hacerlo.

¿Sabía que puede controlar su Arduino con Javascript?  ¡Con una pieza de software y algo de creatividad, puedes!  He aquí cómo hacerlo.
Anuncio

Las placas Arduino son una de las formas más sencillas de acceder al pirateo de hardware para programadores. Hay una gran variedad de proyectos para principiantes 10 Grandes proyectos Arduino para principiantes 10 Grandes proyectos Arduino para principiantes Completar un proyecto Arduino le da una sensación de satisfacción como ninguna otra. La mayoría de los principiantes no están seguros de por dónde empezar, e incluso los proyectos para principiantes pueden parecer bastante desalentadores. Lea más por ahí para adaptarse a casi cualquier persona con conocimientos de programación. Aun así, comenzar puede parecer desalentador para los que tienen poco tiempo.

Aprender un idioma totalmente nuevo ¿Qué lenguaje de programación debe aprender para el futuro? ¿Qué lenguaje de programación debe aprender para el futuro? ¿Cuál es el mejor lenguaje de programación para aprender para el futuro? Si solo puedes elegir un idioma para aprender y dominar el futuro, no hay concurso: debe ser JavaScript. Leer más solo para probar un microcontrolador puede parecer mucho trabajo. ¿Qué sucede si quiere comenzar a jugar con productos electrónicos de fabricación casera en un lenguaje de programa con el que ya está familiarizado? Buenas noticias: ¡puedes!

Ya le mostramos cómo controlar un tablero Arduino con Python Cómo programar y controlar un Arduino con Python Cómo programar y controlar un Arduino con Python Lamentablemente, es imposible programar directamente un Arduino en Python, pero puede controlarlo a través de USB utilizando un programa de Python. Así es cómo. Lea más y hoy le mostraremos cómo hacer lo mismo con JavaScript. En lugar de solo el tutorial de LED parpadeante más básico, hoy utilizaremos el marco Johnny-Five para controlar un servo con el teclado de la computadora, todo programado en JavaScript ¿Qué es JavaScript y cómo funciona? ¿Qué es JavaScript y cómo funciona? ¿Qué es Javascript? Es un lenguaje de programación utilizado para mejorar las páginas web. Incluye la actualización dinámica de páginas web, interfaces de usuario y más. Vamos a sumergirnos en lo que es el Javascript. Lee mas .

Lista de hardware

Para este proyecto necesitarás:

  • Arduino Uno (o una placa compatible Guía de compra de Arduino: ¿qué placa debe obtener? Guía de compra de Arduino: ¿qué placa debe obtener? Hay tantos tipos diferentes de placas Arduino que hay, se le perdonaría por estar confundido. ¿Qué debería usted hacer? comprar para su proyecto? Permítanos ayudarlo, con esta guía de compra de Arduino! Lea más): $ 22 de la Tienda Oficial, aunque puede conseguir que sean más baratos 5 Razones para no utilizar un Arduino genuino en su próximo proyecto 5 Razones para no utilizar una original Arduino en su próximo proyecto ¿Ha ido demasiado lejos la fundación Arduino? ¿Por qué debería gastar su dinero en productos Genuine Arduino? Te explicamos todo lo que necesitas saber. Lea más, las tarjetas clónicas están disponibles por tan solo $ 3.20 en AliExpress.
  • Servo Hobby: Cualquier servo compatible con Arduino de una tienda de hobby lo hará, estoy usando un servo de $ 1.60 de AliExpress.
  • Un par de piezas de alambre de conexión
  • Cable USB: para conectar el Arduino a su computadora

cómo controlar arduino con javascript

El tutorial de hoy utilizará una placa Arduino Uno. El marco de Johnny-Five que usaremos más adelante en este proyecto es compatible con la mayoría de los microcontroladores compatibles con Arduino, aunque su placa tendrá que tener la capacidad PWM para mantener al servo feliz.

Configuración de circuito

Conecte su servo a su Arduino de esta manera:

cómo controlar arduino con javascript

En resumen, la línea VCC ( RED ) se conecta al pin 5v del Arduino, la línea GND ( NEGRO o MARRÓN ) se conecta al pin GND del Arduino y la línea Pulse ( Amarillo o Naranja ) se conecta al pin 10 del Arduino. Tenga en cuenta que, si bien no es necesario conectarlo específicamente al pin 10, debe conectarse a un pin PWM, generalmente indicado con un ~ .

Verifique que no haya mezclado ningún cable y conecte el Arduino a su computadora. Usaremos Windows 10 para este proyecto. Todos los elementos de este proyecto están disponibles para Mac y Linux también, aunque algunas instrucciones de instalación pueden diferir ligeramente.

Si aún no lo hizo, descargue el IDE de Arduino y elija su Tablero y Puerto desde el menú Herramientas . Si es la primera vez que hace esto y todo es un misterio, nuestra Guía para principiantes de Arduino Comenzar con Arduino: una guía para principiantes Comenzar con Arduino: una guía para principiantes Arduino es una plataforma de prototipos de código abierto basada en flexibilidad, hardware y software fáciles de usar. Está dirigido a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Leer más podría ayudarte a seguir estos pasos.

cómo controlar arduino con javascript

Una vez que lo haya conectado, cargue el boceto de ejemplo StandardFirmataPlus en la pizarra. Puede encontrar este boceto en el menú Archivo en Ejemplos> Firmata> StandardFirmataPlus . No es necesario modificar el boceto en absoluto, básicamente configura el Arduino para esperar instrucciones externas, que luego proporcionaremos.

JavaScript Robotics con Johnny-Five

El marco que usaremos para controlar nuestro Arduino con Javascript se llama Johnny-Five. Como era de esperar, dado su homónimo de película, el proyecto está orientado a trabajar con la robótica.

cómo controlar arduino con javascript
Crédito de la imagen: johnny-five.io

Para instalar Johnny-Five, primero debemos instalar Node.js ¿Qué es Node.JS y por qué debería importarme? [Desarrollo web] ¿Qué es Node.JS y por qué debería importarme? [Desarrollo web] JavaScript es solo un lenguaje de programación del lado del cliente que se ejecuta en el navegador, ¿verdad? Ya no. Node.js es una forma de ejecutar JavaScript en el servidor; pero es mucho más también. Si ... Leer más. Puede descargar su última compilación desde el sitio web Node.js. Estamos utilizando la versión recomendada, que en el momento de escribir es 8.9.4 LTS .

Abra el archivo .msi y siga las instrucciones de instalación, asegurándose de que se agregue a su RUTA . El instalador actual de Node.js agrega PATH como estándar, aunque vale la pena verificarlo durante la instalación, ya que es necesario para nuestro siguiente paso.

cómo controlar arduino con javascript

Una vez que se complete la instalación, tendremos acceso al administrador de paquetes Administrador de paquetes del nodo (NPM) desde la Línea de comandos de Windows (CMD). Haga clic en Inicio y escriba CMD. Antes de continuar, necesitamos inicializar el NPM para evitar posibles errores de instalación. No requiere ningún conocimiento especializado, simplemente escriba:

npm init 

Sigue las indicaciones en pantalla. Para el proyecto de hoy no necesita cambiar nada, solo presione enter hasta que esté de vuelta en el símbolo del sistema, luego escriba:

 npm install johnny-five 

Esto instalará todos los paquetes importantes, que hablarán con nuestro Arduino. Necesitamos una cosa más para hacer que este proyecto funcione, y ese es el paquete Keypress, que nos permitirá leer las pulsaciones del teclado.

Instálelo ingresando:

 npm install keypress 

Una vez que todos estos paquetes estén instalados, ¡estamos listos para codificar!

Si se encuentra con algún problema durante la instalación, intente ejecutar nuevamente la instalación de johnny-five después de la instalación de la pulsación de tecla. Puede ser solo una peculiaridad de la versión de NPM utilizada aquí, pero hacer esto ahora evita un problema con el que es probable que se encuentre más tarde, como yo.

El código

Usaremos un código de ejemplo provisto en la documentación johnny-five de hoy, que permite el control de nuestro servo usando las teclas de flecha del teclado. El código completo está disponible en johnny-five.io, pero lo veremos aquí en detalle para comprender completamente cómo funciona.

Estamos utilizando Eclipse IDE 8 Atajos de teclado más útiles para principiantes de Eclipse IDE 8 Atajos de teclado más útiles para principiantes de Eclipse IDE Como novato-amigable como Eclipse IDE (interfaz), debes aprender estos atajos de teclado. Lea más para la codificación de hoy, aunque puede usar cualquier IDE o editor de texto Editores de texto vs. IDEs: ¿Cuál es mejor para los programadores? Editores de texto vs. IDEs: ¿Cuál es mejor para los programadores? Elegir entre un IDE avanzado y un editor de texto más simple puede ser difícil. Ofrecemos algunas ideas para ayudarlo a tomar esa decisión. Leer más para este proyecto.

Cree un nuevo archivo y asígnele el nombre test.js, y guárdelo en algún lugar al que pueda acceder fácilmente desde la línea de comandos más adelante. El script comienza creando variables para las bibliotecas requeridas e inicializando la biblioteca Keypress para escuchar los datos entrantes, junto con llamar al método Board () para configurar el tablero.

 var five = require("johnny-five"); var keypress = require("keypress"); keypress(process.stdin); var board = new five.Board(); 

Tenga en cuenta que la configuración de la placa aquí es automática, no es necesario especificar puertos. Si tiene una configuración de puerto específica, o simplemente no tiene suerte con la detección automática, es posible que deba especificar su puerto de forma explícita.

A continuación, queremos "despertar" a nuestro tablero y configurarlo para el control de servo. El panel de control espera hasta que los pins Arduino estén listos antes de continuar. La biblioteca johnny-five tiene soporte para servos incorporados, y estamos llamando Servo.Continuous (10) en el pin 10 para permitir el control directo.

 board.on("ready", function() { console.log("Use Up and Down arrows for CW and CCW respectively. Space to stop."); var servo = new five.Servo.Continuous(10); process.stdin.resume(); process.stdin.setEncoding("utf8"); process.stdin.setRawMode(true); 

Las llamadas a process.stdin garantizan que todos los datos que recibamos del teclado se puedan utilizar en el siguiente bloque de código. Ahora queremos "escuchar" las pulsaciones de teclas y usarlas para mover nuestro servovigilancia (CW), antihorario (CCW), o para detenerse en sus pistas.

 process.stdin.on("keypress", function(ch, key) { if (!key) { // if no key is pressed, return ie do nothing. return; } if (key.name === "q") { console.log("Quitting"); process.exit(); } else if (key.name === "up") { console.log("CW"); servo.cw(); } else if (key.name === "down") { console.log("CCW"); servo.ccw(); } else if (key.name === "space") { console.log("Stopping"); servo.stop(); } }); }); 

Asegúrese de incluir todos los corchetes de cierre en la parte inferior aquí, y consulte todo el bloque de código como se relacionó anteriormente si obtiene algún error. Guarde este script y abra el símbolo del sistema.

Saludando Hola!

Ahora navegue al directorio en el que ha guardado el script y ejecútelo escribiendo:

 node test.js 

El programa debe iniciarse de inmediato con información sobre la placa, antes de darle las instrucciones indicadas en el código. Intenta presionar las teclas de flecha hacia arriba y hacia abajo, y la barra espaciadora, y Q para salir. La pantalla debería verse así:

cómo controlar arduino con javascript

¡Y todo está bien, el servo debería estar bailando al ritmo de tus teclas! ¡Mira esa pequeña ola beastie!

Principios humildes

A pesar de asumir un proyecto un poco más ambicioso que el habitual tutorial de LED parpadeante para principiantes, apenas hemos abordado el alcance de lo que se puede hacer con placas Arduino y microcontroladores similares.

Los usuarios experimentados de JavaScript deberían encontrar el paquete Johnny-Five intuitivo para trabajar. La biblioteca también se puede instalar en el Raspberry Pi de forma nativa, por lo que es el paquete perfecto para los constructores de robots en ciernes.

Lo mejor de esta biblioteca es que, aunque está diseñada pensando en robots, se pueden usar los mismos datos de entrada y salida para crear configuraciones de hogar inteligente DIY Sensores de hogar inteligente DIY con Arduino, MySensors y sensores de hogar inteligente DIY de OpenHAB con Arduino, MySensors y los sensores de casa inteligente de OpenHAB cuestan una cantidad ridícula de dinero. Cablear una casa entera es dominio de aquellos con cantidades absurdas de ingresos disponibles. Construyamos el nuestro con MySensors. Lea más e incluso sistemas de seguridad hechos en casa DIY Smart Lock con Arduino y RFID DIY Smart Lock con Arduino y RFID Aquí se explica cómo construir un simple candado inteligente basado en RFID usando un Arduino como la red troncal y algunos componentes baratos. Lee mas .

Comunicarse con microcontroladores de esta manera es una gran introducción al mundo del hardware de bricolaje sin tener que dedicar el tiempo a aprender un lenguaje de programación completamente nuevo. Diviértete por ahí, y si construyes un robot asesino, recuerda cómo te ayudamos en los primeros días.

In this article