Platzi
Platzi

¡Invierte en ti y celebremos! Adquiere un plan Expert o Expert+ a precio especial.

Antes: $349
$259
Currency
Antes: $349
Ahorras: $90
COMIENZA AHORA
Termina en: 16D : 6H : 45M : 31S

Debes tener cuenta en Platzi

Para ver esta clase abierta debes iniciar sesión

Cómo programar un Arduino con Javascript y Node30/36

Necesito tener un arduino para poder poder practicar lo que se enseña en el video? alguna forma de hacerlo con un simulador?

Resumen:

  • Para programar un arduino con javascript debemos instalar un framework o libreria en arduino (serie de instrucciones en C que le permiten al arduino conectarse con node JS y JS)

  • JAVASCRIPT DEL NAVEGADOR (FRONTEND) NO NOS SIRVE PORQUE EL JS DEL NAVEGADOR ESTA ATRAPADO EN EL NAVEGADOR SOLO CORRE LO QUE EL NAVEGADOR PUEDE VER Y LOS NAVEGADORES NO PUEDEN VER EL PUERTO USB

  • johnny_five: Es una libreria para conectarse yb programar arduinos, http://johnny-five.io/

  • standardfirmata: Es el firmware que me permite que arduino se conecte a johnny - five, node js.

  • Firmware: Es la “union” entre el hardware y el software

  • Board es la funcion que me trae toda la coleccion entre js y nuestro arduino

  • blink (ms): Funcion ya preparada que te permite parpadear.

  • Fotocelda: Es un dispositivo que es capaz de producir una pequeña cantidad de corriente eléctrica al ser expuesta a la luz. Entre sus aplicaciones típicas están las de controlar el encendido-apagado de una lámpara, etc…

  • Servos: Son motores que se mueven muy poco, en cantidad de grados. El de freddy por ejemplo se mueve desde 0 a 180 grados

Corazón si tampoco tienes un Arduino físico

Si tuvieron problemas al instalar johnny-five, lo que me funcion fue desinstalar la versión 13.3.0 de node, e instalar la versión LTS que en este caso fue la 12.13.1 (que son las que están publicadas al día de este comentario); después desinstale johnny-five de la carpeta donde tenia mi ejercicio arduino.js, con el comando:

npm uninstall johnny-five

Uno de los errores que marcaba la terminal era a un componente llamado gyp, entonces lo instale directamente, que se usa al parecer para compilar c con javascript o algo por el estilo; esto lo realice con el comando:

npm install node-gyp

Una vez que realice estos pasos siempre como administrador, de igual forma, realice la instalacion de johnny-five de nuevo:

npm install johnny-five

Todo funcionó correctamente después. Espero les sea de ayuda.

Esta es la solucion que te podría ayudar.
hola chicos yo uso el SO windows 7 asi que espero ayudarles con este aporte mío:
si les aparece este error:
Please check that you’ve properly flashed the board with the correct firmware.
See: https://github.com/rwaldron/johnny-five/wiki/Getting-Started#trouble-shooting
If connecting to a Leonardo or Leonardo clone, press the ‘Reset’ button on the board, wait approximately 11 seconds for complete reset, then run your program again.

bueno la solucion que yo encontre fue:

  • descargar node js de 32bits.
  • luego configurar los puertos COM puesto que algunos les aparecio esto de seguro:
    1489565781045 Device(s) COM1 COM5
    1489565781045 Connected COM1
  • bueno este error es porque solo existe un puerto de salida, la forma de corregirlo es
    -click en boton inicio;
    -click derecho en equipo;
    -click en administrar;
    -les aparecerá un programa y le daran click en la opción “Administrador de dispositivos”;
    -le dan click en el triangulo que esta en la opción Puertos (COM Y LPT)
    -ahi les aparecera de seguro
    .arduino uno(COM5) “ESTE ES EL EJEMPLO DE MI PC”
    .Puerto de comunicaciones (COM1)
    . etc :v
    -le dan click derecho sobre arduino y click en propiedades
    -les aparecera un cuafro de diálogo le dan click en config. de puerto
    -opciones avanzadas, les aparecerá otro cuadro
    le dan click a puertos y le cambian al COM1 que seguro dirá en uso pero aún así le dan click
    porque si :v
    -una vez hecho esto te aparecerá un msg box de info que te advertira pero igual le dan que si
    • bueno van a su consola cmd y ejecutan el los mismos comandos que freddy nos da en el video.
      y listo.
      bueno espero que si les sale den un pulgar arriba 😃.

Listo el código, solo falta el Arduino 😦 .

var jf = require("johnny-five");
var circuito = new jf.Board();

circuito.on("ready", prender);

function prender()
{
  var led_amarillo = new jf.Led(13);
  var led_azul = new jf.Led(7)
  led_amarillo.blink(200);
  led_azul.blink(700);
  console.log("Freddy hay cuarentena y no plata, no hay pal Arduino")
}```

Like si te sientes frustrado porque no tienes un arduino físico y sientes que para poder utilizar un simulador y poder realizar aunque sea una prueba de tintinéo de un LED, se está omitiendo mucha información =(

Si a alguien no le funciono el codigo, lo pude resolver instalando lo siguiente:

npm install johnny-five
npm i firmata-io
npm install serialport
Además, de ejecutar StandardFirmata.
Esto lo hice con un arduino físico.

Si no funciona:

  1. Se debe instalar Visual Studio y Python,
  2. Reiniciar el computador (Opcional),
  3. Borrar la carpeta node_modules creada en el carpeta del proyecto
  4. Abrir nuevamente el CMD en la carperta del proyecto y volver a escribir lo que freddy dice “npm install jonnhy-five”
  5. Intentar nuevamente en el CMD “node leds.js”
  6. Si ++**AUN NO funciona **++seguir las siguientes instrucciones tomadas de: https://stackoverflow.com/questions/15126050/running-python-on-windows-for-node-js-dependencies
    6.1 En el CMD escribir npm install --global --production windows-build-tools
    6.2 luego npm install --global node-gyp
    6.3 Repetir el paso 3 y 4

Si aun no funciona, pueden rezarle al santo de su predilección

Lo pegué en Preguntas 😕) y lo vuelvo a poner aquí
Para los que han tenido problemas con el ejercicio al ejecutarlo (en Windows):

-Instalen la versión LTS (la que dice recomendado para la mayoría)

-Ir a este enlace https://github.com/firmata/arduino/releases/tag/2.5.8

-Descargar el que dice ‘Firmata- 2.5.8.zip’

-Descompriman la carpeta en ‘C:\Program Files\Arduino\libraries’

-Cerrar el IDE y desconectar el Arduino

-Abrirlo cargar otra vez el firmata en el Arduino:
-Archivo --> Ejemplos --> Firmata --> StandartFirmata

-Abrir la consola en la carpeta donde tengan el proyecto (yo recomiendo borrar todo, el node_modules y el package-lock.json)

-Iinstalar el johonny-five:
npm install johnny-five
-Abrir el Editor de Texto y crear el ‘leds.js’ con el siguiente código
var jf = require(“johnny-five”);
var circuito = new jf.Board({port: ‘COM3’}); # <–Este es el único Cambio, aquí
# ponen el puerto que usa el Arduino
# Pilas, va entre corchetes así -->( { port: ‘COM3’ } );
circuito.on(“ready”, prender);

function prender(){

var led = new jf.Led(13);
led.blink(500);

}```

-Si no saben que puerto usa, se encuentra enla parte de abajo a la derecha del IDE de Arduino en mi caso dice 'Arduino/Genuino Uno en COM3' <----osea el puerto COM3 como se ve en el código anteriormente dado.

-Y eso es todo, si hay algun otro problema, enla página de github de johnny-five hay varias maneras de resolver los inconvenientes que salgan.

Saludos!!!

Les quiero compartir un simulador que tiene antecedentes de funcionar en situaciones como esta, solo que es un proceso complejo, tardado pero si lo consiguen podrán utilizar esto para muchas cosas más, no se rindan.
Se trata de una interface entre nodeJS con un simulador llamado Proteus Design Suite, aqui les dejo un enlace:
https://github.com/rwaldron/johnny-five/wiki/Getting-started-with-Johnny-Five-and-Proteus
Tendrán que instalar las aplicaciónes y algunas librerias por parte de proteus para poder acceder al arduino entre otras cosas que NO aparecen en el articulo pero se puede,

Simulino v3: https://www.youtube.com/watch?v=5FDFVUKLVX4
Sensor de humedad y muchos más en proteus: https://www.theengineeringprojects.com/category/proteus

Sería interesante recibir el voltaje de una canción de rock y hacer titilar los leds a su ritmo.

A pesar de tener un simulador , este no permite obviamente la configuración de los puertos, johnny y node. Así que quedo mal al no poder concretar el proyecto. Si alguno conoce un simulador que permita hacer todo lo que estas haciendo freddy le agradecería lo comparta.

Hola. A los que tienen problemas con la instalación de johnny-five, que les salen muchos errores y no les instala toda las carpetas intenten la siguiente instrucción:
npm --add-python-to-path install --global --production windows-build-tools
y ya depués instalen normal
npm install johnny-five

a mi me funcionó en windows 8.1. La instrucción la tome de aquí

Con Visual Studio, se puede ejecutar directamente el programa de JavaScript con la tecla F5.
leds.png

si estoy en un simulador , como hago el ejercicio?

No me funcionó en un principio, así que hice varias cosas para corregir los errores que me ponia, entre esos el serialport, python, etc…

*Instale nodejs versión LTS 32 bits(en varios foros decían que la de 64 presentaba problemas)
*Instale Python version 2.7.14(es la versión que recomendaban la mayoría)
*Instale Visual Studio 2015 C++
*En la consola puse $ set PATH=%PATH%;C\Python27 (para agregarlo a las variables de entorno)
*Instale node-gyp $npm install -g node gyp
*Instale el serialport en la carpeta del proyecto y luego globalmente
$npm install serialport --save (en la carpeta)
$npm install serialport -g (globalmente)
*Al final instale Johnny Five en la carpeta
$npm install johnny-five --save
*Luego tuve algunos errores con unos puertos USB virtuales que tenia (usados para root y esas cosas), así que los elimine dejando que detectara únicamente el puerto del arduino y todo me corrió perfecto!

IMG_20191010_232320.jpg

Tengo un Arduino UNO y NO me funcionaba en Windows 10, tuve que seguir los pasos e instalar/seguir todo lo que decía en:

  1. http://johnny-five.io/platform-support/#relationship:all
  2. https://github.com/rwaldron/johnny-five/wiki/Getting-Started#trouble-shooting (parte de Windows)
  3. https://www.youtube.com/watch?v=6CmIidOxc2g (cuando hice esto último funcionó)

superplatzi.png

Es una lástima que nos excluyan a los que en este momento no contamos con un arduino físico.

Me hice bolita 😦

Para los que se preguntan si pueden hacer el proyecto del robot con el simulador, si es posible, solo que lo programaran con el lenguaje de arduino y no con JS, yo utilicé uno que se llama Tinkercad, tiene unas lecciones en las partes de lessons que te enseñan como hacerlo principalmente el proyecto 5, pd están en inglés.

Esperos que les sirva 😉

Si estan tomando el curso en el año 2018 o posterior y buscan un simulador para arduino usen el circuit simulator de ** TinkerCAD ** ya que ** circuit.io ** de AUTODESK emigro a el

https://circuits.io/circuits/3744157-the-unnamed-circuit

//variables
int ledRojito = 13;
int ledAmarillo = 9;

int blink1 = 200;
int blink2 = 700;

// the setup 
void setup() {
  // inicializar bombillos
  pinMode(ledRojito, OUTPUT);
  pinMode(ledAmarillo, OUTPUT);
}


void loop() {   //funcion de prender en un loop
  
  digitalWrite(ledRojito, HIGH);   
  delay(blink1);               
  digitalWrite(ledRojito, LOW);    
  delay(blink1);              
  
  
  digitalWrite(ledAmarillo, HIGH);   
  delay(blink2);               
  digitalWrite(ledAmarillo, LOW);   
  delay(blink2);              
  
}```

¿Hay manera de continuar con el proyecto utilizando el simulador?

una lastima no tener un ardruino

Buenas, vengo para aclarar algunos errores que me llegaron y como los solucione.
1 de ellos fue por que no se descargaron bien las librerias de johnny-five y lo unico que hice fue borrar la carpeta node_modules e instalarlo de nuevo.
2 en el arduino no estaba por defecto el puerto “COM1” para que funcionara, en mi caso era el COM5. Solo es ir a herramientas>puerto y poner el que tienen funcionando, como dije el mio fue COM5.
3 en Node al ejecutar node leds.js me mandaba error que ya e visto varios casos similares y la respuesta esta en el punto 2, osea especificar el puerto que te funciona. Para eso en tu editor de codigo agrega o modifica esto.
originalmente dejabamos:
var circuito = new jf.Board();
solo es agregar el puerto en el paréntesis
var circuito = new jf.Board({port:‘COM5’});

como corro el js con node en un simulador de arduino asi como este

![](CapturaArduinoUno.JPG

Hubiera sido bueno que dejaran alguna guia para hacer el proyecto en un simulador… creo que la mayoría no tenemos un arduino.

¿Cuales son los ventajas y desventajas de programas arduino con Javascript, Node y Johnny-five en vez de C++ y Sketch?

¡Feliz aprendizaje!
Atentamente: Rapimi95. 😄

muy interesante la manera de programar el arduino con js. lastima que no tengo uno jaja

Esparare a volver a comprar un arduino 😦

Hoy me llegó mi Arduino físico :3

A mi no me funcionó nada después de que Fredy dijo subámoslo a la placa, de ahí en adelante puras fallas.
Aquí esta el como lo solucioné, y ¿por qué los errores?
Desde que se grabo la clase, hace 4 años atrás, han habido cambios en los programas y librerías, esto lo escribo el 19 de febrero del 2021.
¿Cómo lo hice?
,
:::::::::::: Los pasos a seguir para que todo funcione ::::::::::
.

  • (1) Borrar la ultima versión de node.js (la que dijo que instalaras en la ultima clase) e instalar la versión LTS (en mi caso instale la 14.15.5 LTS)
    .
  • (2) Instalar desde el link los los paquetes redistribuibles más recientes de Visual C++, en mi caso descargue e instale la x64, porque mi pc es de 64 bits, sí el tuyo es de 32 bit, tienes que instalar la que dice x86 (https://support.microsoft.com/es-es/topic/descargas-más-recientes-compatibles-de-visual-c-2647da03-1eea-4433-9aff-95f26a218cc0)
    .
  • (3) Instalar el “Visual Studio Community 2019” con las opciones de “Desktop development with C++” (¡OJO! ⚠ no confundir con el “Visual Studio Sode” que es un editor de texto como Atom, yo instale este en primer lugar 😆)
    Desktop development with C++.JPG
    .
  • (4) Después de eso Aplicar el $ npm config set msvs_version 2017
    ¡¡ Este paso es MUY IMPORTANTE !! porque sino siempre te va a mostrar un error que necesita la versión 2017 del visual Studio y ya no esta disponible, solo está la versión 2019.
    (si estas en Mac o Linux, aquí esta la info equivalente de estos 2 ultimas puntos, https://github.com/nodejs/node-gyp#on-windows puesto que para esas plataformas también hubieron cambios)
    .
  • (5) Instalar python 2.x (la que funciona es la versión 2.x y yo instale la versión 2.7.18) ¡¡ ⚠ NO LA VERSIÓN 3.x !! (Todos recomendaban instalar python yo instale la ultima versión 3.9.2 y ésta no anda con las librerías de Johnny)
    ¡¡ Importante !! Al momento de instalar Activar la función del Path, no viene activada por defecto en la versión 2.x
python.png

Sí no activaste la función del Path en la instalación lo puedes hacer así como se muestra en este video https://youtu.be/QjOKfBpeywc
.

  • (6) Aplicar en el CMD el $ npm install -g node-gyp
    Tienes que tener instalado todo lo anterior para poder instalar esta opción. “-g” es para que se instale de manera global
    .
  • (7) Aplicar en el CMD el $ npm install node-gyp --save
    "–save" es para que se guarde en la carpeta también
    .
  • (8) Aplicar $ npm install johnny-five
    Ahora si se va a instalar bien, a pesar de que tira errores y busca el visual Studio versión 2017, funciona igual, puesto que ya hicimos la equivalencia en el punto (4)
    .
  • (9) Aplicar $ npm install serialport --save
    Johnny-Five instala una versión antigua, por eso es necesario volver a instalar esto a pesar de que Johnny ya habia instalado una.
    Para guardarlo en la carpeta
    .
  • (10) Aplicar $ npm install serialport -g
    Para instalarlo globalmente
    .
  • (11) Aplicar $ npm install firmata
    Por defecto Johnny-Five instala firmata-io y ese no funciona, tienes que instalar esto y guardarlo en la carpeta
    .
  • (12) Aplicar $ npm install -g firmata
    Para instalarlo globalmente
    .
  • (13) Hacer las modificaciones en el código de la board con el COM así
    En la mismisima pagina de Johnny Five sale sin esta opción, pero tiene que ir
//Así es el código original y falla
var jf = require("johnny-five");
var circuito = new jf.Board();

//Así tiene que quedar, ahora (Febrero 2021) hay que incluir en la .Board el puerto COM al que esta conectado el Arduino. Por su puesto tu tienes que colocar el COM que te dice en tu computador
var jf = require("johnny-five");
var circuito = new jf.Board({ port: "COM5" });

.

Lo logre a las 1:44 am después de como 7 días buscando en miles de foros, videos y post de platzi como hacerlo

y ahí funcionó.
Espero te sirva también, un abrazo grande.

saben que es esto Error: Cannot find module ‘serialport’

Ayuda tengo el siguiente error:

Error: Cannot find module 'serialport'

No bloquees tu mente por que no tienes un ardruino puedes utilizar: https://www.tinkercad.com/


No sera lo mismo que copiar el codigo pero igualmente lo puedes interpretar de como seria o escribirlo en JS

al ejecutar en cmd node leds.js me sale error: A timeout occurred while connecting to the Board.
no pude terminar la clase :c HELP

Hola a todos, tengo una Mac con perfil de administrador pero al instalar johnny-five me aparece un error y no se instalaron todas las librerias. la primeras mitad de la instalacon salio error:

Alguien sabe como debo hacerlo?

Richards-MacBook-Air:arduinode richardgaona$ npm install johnny-five

@serialport/[email protected] install /Users/richardgaona/Desktop/arduino/arduinode/node_modules/@serialport/bindings
prebuild-install --tag-prefix @serialport/[email protected] || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=14.2.0 runtime=node arch=x64 libc= platform=darwin)
No receipt for ‘com.apple.pkg.CLTools_Executables’ found at ‘/’.

No receipt for ‘com.apple.pkg.DeveloperToolsCLILeo’ found at ‘/’.

No receipt for ‘com.apple.pkg.DeveloperToolsCLI’ found at ‘/’.

gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (events.js:315:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Darwin 19.4.0
gyp ERR! command “/usr/local/bin/node” “/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” "rebuild"
gyp ERR! cwd /Users/richardgaona/Desktop/arduino/arduinode/node_modules/@serialport/bindings
gyp ERR! node -v v14.2.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm WARN saveError ENOENT: no such file or directory, open '/Users/richardgaona/Desktop/arduino/arduinode/package.json’
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/Users/richardgaona/Desktop/arduino/arduinode/package.json’
npm WARN arduinode No description
npm WARN arduinode No repository field.
npm WARN arduinode No README data
npm WARN arduinode No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @serialport/[email protected] (node_modules/@serialport/bindings):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @serialport/[email protected] install: prebuild-install --tag-prefix @serialport/[email protected] || node-gyp rebuild
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

  • [email protected]
    added 26 packages from 14 contributors and audited 92 packages in 19.363s

1 package is looking for funding
run npm fund for details

found 0 vulnerabilities

Richards-MacBook-Air:arduinode richardgaona$

ERR! ERR! ERR!
Hola comunidad de Platzi
Para los que nos salió ERROR e intentamos de todo, la solución era más fácil de lo que parecía

Solo tenemos que desinstalar el node de última versión e instalar el node de versión más estable 😃

¿Alguien me podría decir las diferencias entre node y express? gracias 😄

amo cuando Freddy sabe que soy dory.

Cuando escribo el comando node leds.js me manda un error, ya he intentado hacerlo todo desde cero, pero me sigue saliendo el mismo error, y ya no se que hacer para poder continuar.

C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode>node leds.js

//Aquí ya mandé el comando node leds.js y esto es lo que me aparece en la consola, y no me deja continuar//

1541436265769 Available COM4
(node:640) UnhandledPromiseRejectionWarning: Error: Cannot find module 'firmata’
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
at Function.Module._load (internal/modules/cjs/loader.js:506:25)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Board.connect (C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode\node_modules\johnny-five\lib\board.js:115:14)
at Board.<anonymous> (C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode\node_modules\johnny-five\lib\board.js:300:24)
at Board.<anonymous> (C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode\node_modules\johnny-five\lib\board.js:110:16)
at promise.then.ports (C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode\node_modules\serialport\lib\serialport.js:628:16)
(node:640) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:640) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

//Todo eso lo copié exactamanete desde la consola pero de ahí no me deja continuar//

Para limpiar la consola escriben cls 😄

¿Alguien conoce algún simulador que soporte Node.JS? Hasta el momento estoy estudiando todo teóricamente

porque pone la resistencia en la patita negativa del led y no en la positiva?

Hola a todos, tuve el problema de que cuando ejecutaba leds.js me daba un error ya que no encontraba el firmware para hacer la conexión.
El problema era que no estaba buscando el puerto correcto, ya que por defecto iba a buscar el COM3 y el arduino estaba en el COM5.

Lo resolví agregando a la linea donde inicialízo “circuito” el lugar en donde tengo conectado el dispositivo.
var circuito = new jf.Board({ port: “COM5”});

Espero les sea de ayuda.
Saludos a todos

Para cambiar de puerto por medio de JohnnyFive
// OSX

  • new five.Board({ port: “/dev/tty.usbmodem****” });

// Linux

  • new five.Board({ port: “/dev/ttyUSB*” });

// Windows

  • new five.Board({ port: “COM*” });
  • = Número específico

Muy interesante, lástima que no tengo uno

Freddy es genial el curso. Por que no explicaste con un arduino gratis de internet?

conocen la pelicula cortocircuito? de ahí viene el nombre johnny 5

Saludos, alguien esta tomando las clases con un simulador de arduino ? hacer los ejercicios desde javascript al simulador ? Si alguien tiene uno que les haya funcionado, les agradezco que compartan…

19:19 ¡Viva México, cabrones!

por si les ayuda nomas. Si tienen otro disco y guardan ahi sus cursos como yo osea particiones vayan a la consola y pongan cd…
osea para salir de users luego denuevo hagan lo mismo hasta estar en la letra de su disco y luego pongan la letra del disco a donde quieren entrar por ejemplo: E y dos puntos.DND

No tengo ni la mas remota idea de como instalar esto en mac 😦

Saben si es posible o existe algún simulador de arduino que me permita conectar con node?

No pude instalar Johnny-five… al momento de ejecutar el comando que indica Freddy sale una serie de errores que al parecer necesito tener instalado otras cosas

¿Aguien logró integrar javascript con el simulador de arduino? Si es así sería muy bueno saber como le hizo

No tengo un arduino fisico y no puedo realizar las practicas 😦

Solo queda ver la clase y aprender asi.

Los nombres de los led estan invertidos. “rojito” es en realidad el led amarillo y “bombillito” es en realidad el led rojo.

Para los que no tienen un arduino fisico, pueden usar el simulador Proteus donde pueden aplicar todo lo aprendido en la clase, aqui la guia:
https://github.com/rwaldron/johnny-five/wiki/Getting-started-with-Johnny-Five-and-Proteus
.
Yo me encontre con varios problemas, y aqui tengo una guia resumida de lo que hice.
.
COMO PROGRAMAR UN SIMULADOR DE ARDUINO CON JS Y NODE:
.
Programas que se necesitan:
.
• Proteus Design Suite
• Com0com
• Arduino IDE
• Node.js
.
Recomendaciones:
.
-El Proteus tiene que estar con licencia, porque el demo no te sirve para crear tu propio arduino.
-Hay que instalar la librería de arduino en el Proteus.
-Es recomendable que sea la versión 2.2.2 de Com0com para poder crear los puertos virtuales.
.
CREANDO NUESTRO CIRCUITO EN PROTEUS
Se crea un circuito como la imagen
placa arduino.png
CONFIGURACION DE NUESTROS COMPONENTES:
.
A. CONFIGURACIÓN DEL ARDUINO

• En el IDE de arduino abrimos: File > Examples > Firmata > StandarFirmata
• Verificamos que el check de compilación esta marcada: Files > Preferences > Check en Compilation.
• Compilamos y cuando termine, desde la consola copiamos la dirección que tenga extensión ino.hex
• En Proteus hacer doble click en el arduino y pegar la dirección en program file y luego OK.
.
B. CONFIGURACION DEL COMPONENTE SERIAL

• Entrar al setup de com0com desde donde se instaló y cambiar los puertos por COM1 y COM2 y luego click en aplicar.
• En Proteus hacer doble click en el componente serial y poner en physical port: COM1, physical and virtual baud rate: 57600.Luego OK.
Correr el arduino haciendo click en play.
.
EJECUCION DEL PROGRAMA
El código cambiaria asi:
codigo arduino.png

Como ya esta instalado Johnny-five en la carpeta arduinode ejecutamos: $ node app.js(en mi caso).
El led rojo empezara a parpadear según lo programado y aparecerá Hola Mundo en la consola.

Esto es increíble, no parece para nada un curso de programación básico. No lo digo por lo complejo, si por lo completo y además bien pensado, con cosas del hacer inmediato y encantar a la gente.
Otra vez, felicitaciones.

fallaledsjs.JPG

No se porque no me deja ejecutar el programa si he realizado bien los pasos y está todo sobre la misma carpeta…su ayuda por favor!

hola, disculpa me pueden ayudar, en que estoy mal.
![](error 2.png

Breveeeeee. De algo sirve cuando al final d aun año escolar los estudiantes dejan tirados sus materiales…
IMG_0588.JPG

Error: Cannot find module ‘serialport’

amigooooos helppppp no encuentro como corregir este error,
¡ quien podra ayudarme

Freddy eres un crack. Mi tesis fue basada en Arduino con LAMP, pero esto ya es OTRO NIVEL.

noooo no tengo arduino :'c

si quieren comprar un arduino, les recomiendo este que viene con pack entero y con sus componente. es bastante economico:
https://ru.aliexpress.com/item/new-Starter-Kit-UNO-R3-mini-Breadboard-LED-jumper-wire-button-for-arduino-compatile-free-shipping/32598210113.html?spm=a2g0s.9042311.0.0.4vjhL5

Muy buena explicacion, me molesto la version que tenia de node js, tuve que cambiar por la version anterior y me funciono perfecto 😃 .

Me tira error al descargar johnny-five. Uno de los errores es can t find Python executable

Chicos una oregunta, al cargar el codigo en el arduino para leer javascript, y fuera de todo cargar el codigo en javascript, no se llena mucho mas rapido la ram del arduino?

Si alguno tiene problemas con que no se entre el “firmata” solamente hay que instalarlo en la misma ruta que utilizamos para instalar JohnnyFive

  • npm install firmata

“Vamos a hacer algo mas loco! Dos LED” 😃. Y lo peor es que uno se imagina cosas locas tipo que va a hacer caminar el arduino. XD

Para los que les de un error es por la versión de node Js a fecha Enero 28 de 2019 la version actual de node.js es 11.8.0 y a mi con esa versión me dió error al correr el archivo js y tuve que usar la versión que utilizó Freddy la version 6.4.0, para cambiar de versión utilicé NVM (Node Version Manager) y al cambiar la version ya podrán hacer los ejercicios del curso

les dejo un enlace para ver como se usa nvm

Yo lo hice en tinkercad; realmente no soy tan fan de la electrónica, pero siento al menos ya puedo decir que puedo prender no uno, sino dos leds con un arduino.

yo tengo windows 10 x64 Fall Creators Update con todas las actualizaciones al 07/06/2018 y la solución que da saulanderssonrojas me funciono a la perfección , gracias!!!
ya que me salia error al instalar el johnny-five y luego no me dejaba ejecutar el programa led.js

  1. descargar node js de 32bits. (si se instalo la version de 64 desistalarla antes)
  2. luego configurar los puertos COM puesto que algunos les apareció esto de seguro:
    1489565781045 Device(s) COM1 COM5
    1489565781045 Connected COM1
    bueno este error es porque solo existe un puerto de salida, la forma de corregirlo es
    2.1. click en boton inicio;
    2.2. click derecho en equipo;
    2.3. click en administrar;
    2.4. les aparecerá un programa y le daran click en la opción “Administrador de dispositivos”;
    2.5. le dan click en el triangulo que esta en la opción Puertos (COM Y LPT)
    2.6. ahí les aparecera de seguro
    .arduino uno(COM3) “ESTE ES EL EJEMPLO DE MI PC”
    .Puerto de comunicaciones (COM1)
    . etc :v
    2.7. le dan click derecho sobre arduino y click en propiedades
    2.8. les aparecera un cuadro de diálogo le dan click en config de puerto
    2.9. opciones avanzadas, les aparecerá otro cuadro
    le dan click a puertos y le cambian al COM1 que seguro dirá en uso pero aún así le dan click
    2.10. una vez hecho esto te aparecerá un mensaje box de info que te advertira pero igual le dan que si
    bueno van a su consola cmd(como medida preventiva busque cmd en inicio y click derecho ejecutar como administrador) y ejecutan los mismos comandos que Freddy nos da en el video.
    y listo.

¿Y si tengo una Raspberry como lo hago?

no me salen todas las librerias. me salen errores cuando instalo la libreria de johnny-five, he intentado todo lo que dice en los aportes pero pasa lo mismo.

cual es la ventaja hay de usar javascript en lugar del lenguaje que se utiliza en IDE de arduino

Comprare el arduino y seguire este gran curso con todo.

HOLA, TUVE UN PROBLEMA CON EL SIGUIENTE ERROR " LA SOLUCION FUE INSTALAR npm install serialport

module.js:338
throw err;
^
Error: Cannot find module 'serialport’
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Board.Serial.detect (D:\node_modules\johnny-five\lib\board.js:70:7)
at new Board (D:\node_modules\johnny-five\lib\board.js:303:23)
at Object.<anonymous> (D:\robotarm.js:90:9)
at Module._compile (module.js:460:26)
at Object.Module._extensions…js (module.js:478:10)
at Module.load (module.js:355:32)

En mi caso el puerto para el arduino es el COM5, y al ejecutarlo me salía un error que solucioné cambiando la siguiente línea de código

var circuito = new jf.Board({ port: "COM5" });

Jajajaja te vas a electrocutar

Genial!

Hola compañeros! si a alguien le sale algún error al instalar johnny five lea bien el error y si dice algo como que falta la versión de python solo busquen en YouTube como instalar la última versión de python. Si vuelven a intentar y les funciona estaría genial, peropuede pasar que les de otro error y que esta vez les falte visual studio; hagan lo mismo que con python: busquen en YT e instalen todos los lenguajes que les aparezca enel proceso de instalación. Esto último no se si es necesario porque en el error me salía que faltaba visual studio y c++ pero mejor que sobre a que falte. Así solucioné el error y ahora si funciona mi blink.js. Recuerden subir el scketch standard firmata al arduino antes!

Probablemente se pueda usar nodemon para evitar parar y reiniciar el script de node, al hacerlo se detectan los cambios y se actualiza automáticamente
Instalación: npm install -g nodemon
Uso: nodemon leds.js

Excelente nuevo conocimiento adquirido! Programación de Arduino con JavaScript, nodejs y johnny-five! utilicen el nodemon para que no tengan que detener el node y lo realice automaticamente al detectar un cambio…
Instalación: npm install -g nodemon
Uso: nodemon leds.js
Funciona perfecto!

que bien …poder aprender esto de forma gratuita

Muy bueno, dan ganas de comprarse un Arduino 😦

excelente forma de enseñar

Para los que estamos trabajando con un arduino desde el navegador como el de Thinkercad solo es copiar y pegar el código verdad?

Parpadeo de 3 leds al mismo tiempo.

var jf = require("johnny-five");
var circuito = new jf.Board();

circuito.on("ready", prender);

function prender()
{
    var led1 = new jf.Led(13);
    var led2 = new jf.Led(12);
    var led3 = new jf.Led(11);
    led1.blink(500);
    led2.blink(1000);
    led3.blink(5000);
}

Estupendo, ahora comprendo más la relación de programación interna del hardware hacia el software.
<strong>Thanks Freddy! </strong>

me aparece este error, a alguien mas le sale?

Captura.PNG

No tengo Arduino pero por lo menos resulta interesante cómo se puede programar un Arduino utilizando JavaScript
Captura de Pantalla 2019-08-16 a la(s) 20.01.39.png

veo que aprender a programar en .js tiene muchas utilidades y para diferentes áreas. Según he aprendido es bueno conocer varios lenguajes de programación pero .js es demasiado útil practicamente para cualquier cosa jaja. 🙂

Es importante tener en cuenta que el código de JS no se almacena en la memoria de la placa.
.
Sino que se envía las instrucciones desde la computadora y la placa las ejecuta. Por esa razón cuando se está ejecutando algún programa en la placa de arduino UNO se enciendo el led Rx que indica que esta recibiendo información.
.
En la placa solo esta almacenado el Sketch que permite la comunicacion por el puerto usb.

Necesito tener un arduino para poder poder practicar lo que se enseña en el video? alguna forma de hacerlo con un simulador?

Resumen:

  • Para programar un arduino con javascript debemos instalar un framework o libreria en arduino (serie de instrucciones en C que le permiten al arduino conectarse con node JS y JS)

  • JAVASCRIPT DEL NAVEGADOR (FRONTEND) NO NOS SIRVE PORQUE EL JS DEL NAVEGADOR ESTA ATRAPADO EN EL NAVEGADOR SOLO CORRE LO QUE EL NAVEGADOR PUEDE VER Y LOS NAVEGADORES NO PUEDEN VER EL PUERTO USB

  • johnny_five: Es una libreria para conectarse yb programar arduinos, http://johnny-five.io/

  • standardfirmata: Es el firmware que me permite que arduino se conecte a johnny - five, node js.

  • Firmware: Es la “union” entre el hardware y el software

  • Board es la funcion que me trae toda la coleccion entre js y nuestro arduino

  • blink (ms): Funcion ya preparada que te permite parpadear.

  • Fotocelda: Es un dispositivo que es capaz de producir una pequeña cantidad de corriente eléctrica al ser expuesta a la luz. Entre sus aplicaciones típicas están las de controlar el encendido-apagado de una lámpara, etc…

  • Servos: Son motores que se mueven muy poco, en cantidad de grados. El de freddy por ejemplo se mueve desde 0 a 180 grados

Corazón si tampoco tienes un Arduino físico

Si tuvieron problemas al instalar johnny-five, lo que me funcion fue desinstalar la versión 13.3.0 de node, e instalar la versión LTS que en este caso fue la 12.13.1 (que son las que están publicadas al día de este comentario); después desinstale johnny-five de la carpeta donde tenia mi ejercicio arduino.js, con el comando:

npm uninstall johnny-five

Uno de los errores que marcaba la terminal era a un componente llamado gyp, entonces lo instale directamente, que se usa al parecer para compilar c con javascript o algo por el estilo; esto lo realice con el comando:

npm install node-gyp

Una vez que realice estos pasos siempre como administrador, de igual forma, realice la instalacion de johnny-five de nuevo:

npm install johnny-five

Todo funcionó correctamente después. Espero les sea de ayuda.

Esta es la solucion que te podría ayudar.
hola chicos yo uso el SO windows 7 asi que espero ayudarles con este aporte mío:
si les aparece este error:
Please check that you’ve properly flashed the board with the correct firmware.
See: https://github.com/rwaldron/johnny-five/wiki/Getting-Started#trouble-shooting
If connecting to a Leonardo or Leonardo clone, press the ‘Reset’ button on the board, wait approximately 11 seconds for complete reset, then run your program again.

bueno la solucion que yo encontre fue:

  • descargar node js de 32bits.
  • luego configurar los puertos COM puesto que algunos les aparecio esto de seguro:
    1489565781045 Device(s) COM1 COM5
    1489565781045 Connected COM1
  • bueno este error es porque solo existe un puerto de salida, la forma de corregirlo es
    -click en boton inicio;
    -click derecho en equipo;
    -click en administrar;
    -les aparecerá un programa y le daran click en la opción “Administrador de dispositivos”;
    -le dan click en el triangulo que esta en la opción Puertos (COM Y LPT)
    -ahi les aparecera de seguro
    .arduino uno(COM5) “ESTE ES EL EJEMPLO DE MI PC”
    .Puerto de comunicaciones (COM1)
    . etc :v
    -le dan click derecho sobre arduino y click en propiedades
    -les aparecera un cuafro de diálogo le dan click en config. de puerto
    -opciones avanzadas, les aparecerá otro cuadro
    le dan click a puertos y le cambian al COM1 que seguro dirá en uso pero aún así le dan click
    porque si :v
    -una vez hecho esto te aparecerá un msg box de info que te advertira pero igual le dan que si
    • bueno van a su consola cmd y ejecutan el los mismos comandos que freddy nos da en el video.
      y listo.
      bueno espero que si les sale den un pulgar arriba 😃.

Listo el código, solo falta el Arduino 😦 .

var jf = require("johnny-five");
var circuito = new jf.Board();

circuito.on("ready", prender);

function prender()
{
  var led_amarillo = new jf.Led(13);
  var led_azul = new jf.Led(7)
  led_amarillo.blink(200);
  led_azul.blink(700);
  console.log("Freddy hay cuarentena y no plata, no hay pal Arduino")
}```

Like si te sientes frustrado porque no tienes un arduino físico y sientes que para poder utilizar un simulador y poder realizar aunque sea una prueba de tintinéo de un LED, se está omitiendo mucha información =(

Si a alguien no le funciono el codigo, lo pude resolver instalando lo siguiente:

npm install johnny-five
npm i firmata-io
npm install serialport
Además, de ejecutar StandardFirmata.
Esto lo hice con un arduino físico.

Si no funciona:

  1. Se debe instalar Visual Studio y Python,
  2. Reiniciar el computador (Opcional),
  3. Borrar la carpeta node_modules creada en el carpeta del proyecto
  4. Abrir nuevamente el CMD en la carperta del proyecto y volver a escribir lo que freddy dice “npm install jonnhy-five”
  5. Intentar nuevamente en el CMD “node leds.js”
  6. Si ++**AUN NO funciona **++seguir las siguientes instrucciones tomadas de: https://stackoverflow.com/questions/15126050/running-python-on-windows-for-node-js-dependencies
    6.1 En el CMD escribir npm install --global --production windows-build-tools
    6.2 luego npm install --global node-gyp
    6.3 Repetir el paso 3 y 4

Si aun no funciona, pueden rezarle al santo de su predilección

Lo pegué en Preguntas 😕) y lo vuelvo a poner aquí
Para los que han tenido problemas con el ejercicio al ejecutarlo (en Windows):

-Instalen la versión LTS (la que dice recomendado para la mayoría)

-Ir a este enlace https://github.com/firmata/arduino/releases/tag/2.5.8

-Descargar el que dice ‘Firmata- 2.5.8.zip’

-Descompriman la carpeta en ‘C:\Program Files\Arduino\libraries’

-Cerrar el IDE y desconectar el Arduino

-Abrirlo cargar otra vez el firmata en el Arduino:
-Archivo --> Ejemplos --> Firmata --> StandartFirmata

-Abrir la consola en la carpeta donde tengan el proyecto (yo recomiendo borrar todo, el node_modules y el package-lock.json)

-Iinstalar el johonny-five:
npm install johnny-five
-Abrir el Editor de Texto y crear el ‘leds.js’ con el siguiente código
var jf = require(“johnny-five”);
var circuito = new jf.Board({port: ‘COM3’}); # <–Este es el único Cambio, aquí
# ponen el puerto que usa el Arduino
# Pilas, va entre corchetes así -->( { port: ‘COM3’ } );
circuito.on(“ready”, prender);

function prender(){

var led = new jf.Led(13);
led.blink(500);

}```

-Si no saben que puerto usa, se encuentra enla parte de abajo a la derecha del IDE de Arduino en mi caso dice 'Arduino/Genuino Uno en COM3' <----osea el puerto COM3 como se ve en el código anteriormente dado.

-Y eso es todo, si hay algun otro problema, enla página de github de johnny-five hay varias maneras de resolver los inconvenientes que salgan.

Saludos!!!

Les quiero compartir un simulador que tiene antecedentes de funcionar en situaciones como esta, solo que es un proceso complejo, tardado pero si lo consiguen podrán utilizar esto para muchas cosas más, no se rindan.
Se trata de una interface entre nodeJS con un simulador llamado Proteus Design Suite, aqui les dejo un enlace:
https://github.com/rwaldron/johnny-five/wiki/Getting-started-with-Johnny-Five-and-Proteus
Tendrán que instalar las aplicaciónes y algunas librerias por parte de proteus para poder acceder al arduino entre otras cosas que NO aparecen en el articulo pero se puede,

Simulino v3: https://www.youtube.com/watch?v=5FDFVUKLVX4
Sensor de humedad y muchos más en proteus: https://www.theengineeringprojects.com/category/proteus

Sería interesante recibir el voltaje de una canción de rock y hacer titilar los leds a su ritmo.

A pesar de tener un simulador , este no permite obviamente la configuración de los puertos, johnny y node. Así que quedo mal al no poder concretar el proyecto. Si alguno conoce un simulador que permita hacer todo lo que estas haciendo freddy le agradecería lo comparta.

Hola. A los que tienen problemas con la instalación de johnny-five, que les salen muchos errores y no les instala toda las carpetas intenten la siguiente instrucción:
npm --add-python-to-path install --global --production windows-build-tools
y ya depués instalen normal
npm install johnny-five

a mi me funcionó en windows 8.1. La instrucción la tome de aquí

Con Visual Studio, se puede ejecutar directamente el programa de JavaScript con la tecla F5.
leds.png

si estoy en un simulador , como hago el ejercicio?

No me funcionó en un principio, así que hice varias cosas para corregir los errores que me ponia, entre esos el serialport, python, etc…

*Instale nodejs versión LTS 32 bits(en varios foros decían que la de 64 presentaba problemas)
*Instale Python version 2.7.14(es la versión que recomendaban la mayoría)
*Instale Visual Studio 2015 C++
*En la consola puse $ set PATH=%PATH%;C\Python27 (para agregarlo a las variables de entorno)
*Instale node-gyp $npm install -g node gyp
*Instale el serialport en la carpeta del proyecto y luego globalmente
$npm install serialport --save (en la carpeta)
$npm install serialport -g (globalmente)
*Al final instale Johnny Five en la carpeta
$npm install johnny-five --save
*Luego tuve algunos errores con unos puertos USB virtuales que tenia (usados para root y esas cosas), así que los elimine dejando que detectara únicamente el puerto del arduino y todo me corrió perfecto!

IMG_20191010_232320.jpg

Tengo un Arduino UNO y NO me funcionaba en Windows 10, tuve que seguir los pasos e instalar/seguir todo lo que decía en:

  1. http://johnny-five.io/platform-support/#relationship:all
  2. https://github.com/rwaldron/johnny-five/wiki/Getting-Started#trouble-shooting (parte de Windows)
  3. https://www.youtube.com/watch?v=6CmIidOxc2g (cuando hice esto último funcionó)

superplatzi.png

Es una lástima que nos excluyan a los que en este momento no contamos con un arduino físico.

Me hice bolita 😦

Para los que se preguntan si pueden hacer el proyecto del robot con el simulador, si es posible, solo que lo programaran con el lenguaje de arduino y no con JS, yo utilicé uno que se llama Tinkercad, tiene unas lecciones en las partes de lessons que te enseñan como hacerlo principalmente el proyecto 5, pd están en inglés.

Esperos que les sirva 😉

Si estan tomando el curso en el año 2018 o posterior y buscan un simulador para arduino usen el circuit simulator de ** TinkerCAD ** ya que ** circuit.io ** de AUTODESK emigro a el

https://circuits.io/circuits/3744157-the-unnamed-circuit

//variables
int ledRojito = 13;
int ledAmarillo = 9;

int blink1 = 200;
int blink2 = 700;

// the setup 
void setup() {
  // inicializar bombillos
  pinMode(ledRojito, OUTPUT);
  pinMode(ledAmarillo, OUTPUT);
}


void loop() {   //funcion de prender en un loop
  
  digitalWrite(ledRojito, HIGH);   
  delay(blink1);               
  digitalWrite(ledRojito, LOW);    
  delay(blink1);              
  
  
  digitalWrite(ledAmarillo, HIGH);   
  delay(blink2);               
  digitalWrite(ledAmarillo, LOW);   
  delay(blink2);              
  
}```

¿Hay manera de continuar con el proyecto utilizando el simulador?

una lastima no tener un ardruino

Buenas, vengo para aclarar algunos errores que me llegaron y como los solucione.
1 de ellos fue por que no se descargaron bien las librerias de johnny-five y lo unico que hice fue borrar la carpeta node_modules e instalarlo de nuevo.
2 en el arduino no estaba por defecto el puerto “COM1” para que funcionara, en mi caso era el COM5. Solo es ir a herramientas>puerto y poner el que tienen funcionando, como dije el mio fue COM5.
3 en Node al ejecutar node leds.js me mandaba error que ya e visto varios casos similares y la respuesta esta en el punto 2, osea especificar el puerto que te funciona. Para eso en tu editor de codigo agrega o modifica esto.
originalmente dejabamos:
var circuito = new jf.Board();
solo es agregar el puerto en el paréntesis
var circuito = new jf.Board({port:‘COM5’});

como corro el js con node en un simulador de arduino asi como este

![](CapturaArduinoUno.JPG

Hubiera sido bueno que dejaran alguna guia para hacer el proyecto en un simulador… creo que la mayoría no tenemos un arduino.

¿Cuales son los ventajas y desventajas de programas arduino con Javascript, Node y Johnny-five en vez de C++ y Sketch?

¡Feliz aprendizaje!
Atentamente: Rapimi95. 😄

muy interesante la manera de programar el arduino con js. lastima que no tengo uno jaja

Esparare a volver a comprar un arduino 😦

Hoy me llegó mi Arduino físico :3

A mi no me funcionó nada después de que Fredy dijo subámoslo a la placa, de ahí en adelante puras fallas.
Aquí esta el como lo solucioné, y ¿por qué los errores?
Desde que se grabo la clase, hace 4 años atrás, han habido cambios en los programas y librerías, esto lo escribo el 19 de febrero del 2021.
¿Cómo lo hice?
,
:::::::::::: Los pasos a seguir para que todo funcione ::::::::::
.

  • (1) Borrar la ultima versión de node.js (la que dijo que instalaras en la ultima clase) e instalar la versión LTS (en mi caso instale la 14.15.5 LTS)
    .
  • (2) Instalar desde el link los los paquetes redistribuibles más recientes de Visual C++, en mi caso descargue e instale la x64, porque mi pc es de 64 bits, sí el tuyo es de 32 bit, tienes que instalar la que dice x86 (https://support.microsoft.com/es-es/topic/descargas-más-recientes-compatibles-de-visual-c-2647da03-1eea-4433-9aff-95f26a218cc0)
    .
  • (3) Instalar el “Visual Studio Community 2019” con las opciones de “Desktop development with C++” (¡OJO! ⚠ no confundir con el “Visual Studio Sode” que es un editor de texto como Atom, yo instale este en primer lugar 😆)
    Desktop development with C++.JPG
    .
  • (4) Después de eso Aplicar el $ npm config set msvs_version 2017
    ¡¡ Este paso es MUY IMPORTANTE !! porque sino siempre te va a mostrar un error que necesita la versión 2017 del visual Studio y ya no esta disponible, solo está la versión 2019.
    (si estas en Mac o Linux, aquí esta la info equivalente de estos 2 ultimas puntos, https://github.com/nodejs/node-gyp#on-windows puesto que para esas plataformas también hubieron cambios)
    .
  • (5) Instalar python 2.x (la que funciona es la versión 2.x y yo instale la versión 2.7.18) ¡¡ ⚠ NO LA VERSIÓN 3.x !! (Todos recomendaban instalar python yo instale la ultima versión 3.9.2 y ésta no anda con las librerías de Johnny)
    ¡¡ Importante !! Al momento de instalar Activar la función del Path, no viene activada por defecto en la versión 2.x
python.png

Sí no activaste la función del Path en la instalación lo puedes hacer así como se muestra en este video https://youtu.be/QjOKfBpeywc
.

  • (6) Aplicar en el CMD el $ npm install -g node-gyp
    Tienes que tener instalado todo lo anterior para poder instalar esta opción. “-g” es para que se instale de manera global
    .
  • (7) Aplicar en el CMD el $ npm install node-gyp --save
    "–save" es para que se guarde en la carpeta también
    .
  • (8) Aplicar $ npm install johnny-five
    Ahora si se va a instalar bien, a pesar de que tira errores y busca el visual Studio versión 2017, funciona igual, puesto que ya hicimos la equivalencia en el punto (4)
    .
  • (9) Aplicar $ npm install serialport --save
    Johnny-Five instala una versión antigua, por eso es necesario volver a instalar esto a pesar de que Johnny ya habia instalado una.
    Para guardarlo en la carpeta
    .
  • (10) Aplicar $ npm install serialport -g
    Para instalarlo globalmente
    .
  • (11) Aplicar $ npm install firmata
    Por defecto Johnny-Five instala firmata-io y ese no funciona, tienes que instalar esto y guardarlo en la carpeta
    .
  • (12) Aplicar $ npm install -g firmata
    Para instalarlo globalmente
    .
  • (13) Hacer las modificaciones en el código de la board con el COM así
    En la mismisima pagina de Johnny Five sale sin esta opción, pero tiene que ir
//Así es el código original y falla
var jf = require("johnny-five");
var circuito = new jf.Board();

//Así tiene que quedar, ahora (Febrero 2021) hay que incluir en la .Board el puerto COM al que esta conectado el Arduino. Por su puesto tu tienes que colocar el COM que te dice en tu computador
var jf = require("johnny-five");
var circuito = new jf.Board({ port: "COM5" });

.

Lo logre a las 1:44 am después de como 7 días buscando en miles de foros, videos y post de platzi como hacerlo

y ahí funcionó.
Espero te sirva también, un abrazo grande.

saben que es esto Error: Cannot find module ‘serialport’

Ayuda tengo el siguiente error:

Error: Cannot find module 'serialport'

No bloquees tu mente por que no tienes un ardruino puedes utilizar: https://www.tinkercad.com/


No sera lo mismo que copiar el codigo pero igualmente lo puedes interpretar de como seria o escribirlo en JS

al ejecutar en cmd node leds.js me sale error: A timeout occurred while connecting to the Board.
no pude terminar la clase :c HELP

Hola a todos, tengo una Mac con perfil de administrador pero al instalar johnny-five me aparece un error y no se instalaron todas las librerias. la primeras mitad de la instalacon salio error:

Alguien sabe como debo hacerlo?

Richards-MacBook-Air:arduinode richardgaona$ npm install johnny-five

@serialport/[email protected] install /Users/richardgaona/Desktop/arduino/arduinode/node_modules/@serialport/bindings
prebuild-install --tag-prefix @serialport/[email protected] || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=14.2.0 runtime=node arch=x64 libc= platform=darwin)
No receipt for ‘com.apple.pkg.CLTools_Executables’ found at ‘/’.

No receipt for ‘com.apple.pkg.DeveloperToolsCLILeo’ found at ‘/’.

No receipt for ‘com.apple.pkg.DeveloperToolsCLI’ found at ‘/’.

gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (events.js:315:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Darwin 19.4.0
gyp ERR! command “/usr/local/bin/node” “/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” "rebuild"
gyp ERR! cwd /Users/richardgaona/Desktop/arduino/arduinode/node_modules/@serialport/bindings
gyp ERR! node -v v14.2.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm WARN saveError ENOENT: no such file or directory, open '/Users/richardgaona/Desktop/arduino/arduinode/package.json’
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/Users/richardgaona/Desktop/arduino/arduinode/package.json’
npm WARN arduinode No description
npm WARN arduinode No repository field.
npm WARN arduinode No README data
npm WARN arduinode No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @serialport/[email protected] (node_modules/@serialport/bindings):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @serialport/[email protected] install: prebuild-install --tag-prefix @serialport/[email protected] || node-gyp rebuild
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

  • [email protected]
    added 26 packages from 14 contributors and audited 92 packages in 19.363s

1 package is looking for funding
run npm fund for details

found 0 vulnerabilities

Richards-MacBook-Air:arduinode richardgaona$

ERR! ERR! ERR!
Hola comunidad de Platzi
Para los que nos salió ERROR e intentamos de todo, la solución era más fácil de lo que parecía

Solo tenemos que desinstalar el node de última versión e instalar el node de versión más estable 😃

¿Alguien me podría decir las diferencias entre node y express? gracias 😄

amo cuando Freddy sabe que soy dory.

Cuando escribo el comando node leds.js me manda un error, ya he intentado hacerlo todo desde cero, pero me sigue saliendo el mismo error, y ya no se que hacer para poder continuar.

C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode>node leds.js

//Aquí ya mandé el comando node leds.js y esto es lo que me aparece en la consola, y no me deja continuar//

1541436265769 Available COM4
(node:640) UnhandledPromiseRejectionWarning: Error: Cannot find module 'firmata’
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
at Function.Module._load (internal/modules/cjs/loader.js:506:25)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Board.connect (C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode\node_modules\johnny-five\lib\board.js:115:14)
at Board.<anonymous> (C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode\node_modules\johnny-five\lib\board.js:300:24)
at Board.<anonymous> (C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode\node_modules\johnny-five\lib\board.js:110:16)
at promise.then.ports (C:\Users\123\Documents\Programacion\progbasica\arduino\arduinode\node_modules\serialport\lib\serialport.js:628:16)
(node:640) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:640) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

//Todo eso lo copié exactamanete desde la consola pero de ahí no me deja continuar//

Para limpiar la consola escriben cls 😄

¿Alguien conoce algún simulador que soporte Node.JS? Hasta el momento estoy estudiando todo teóricamente

porque pone la resistencia en la patita negativa del led y no en la positiva?

Hola a todos, tuve el problema de que cuando ejecutaba leds.js me daba un error ya que no encontraba el firmware para hacer la conexión.
El problema era que no estaba buscando el puerto correcto, ya que por defecto iba a buscar el COM3 y el arduino estaba en el COM5.

Lo resolví agregando a la linea donde inicialízo “circuito” el lugar en donde tengo conectado el dispositivo.
var circuito = new jf.Board({ port: “COM5”});

Espero les sea de ayuda.
Saludos a todos

Para cambiar de puerto por medio de JohnnyFive
// OSX

  • new five.Board({ port: “/dev/tty.usbmodem****” });

// Linux

  • new five.Board({ port: “/dev/ttyUSB*” });

// Windows

  • new five.Board({ port: “COM*” });
  • = Número específico

Muy interesante, lástima que no tengo uno

Freddy es genial el curso. Por que no explicaste con un arduino gratis de internet?

conocen la pelicula cortocircuito? de ahí viene el nombre johnny 5

Saludos, alguien esta tomando las clases con un simulador de arduino ? hacer los ejercicios desde javascript al simulador ? Si alguien tiene uno que les haya funcionado, les agradezco que compartan…

19:19 ¡Viva México, cabrones!

por si les ayuda nomas. Si tienen otro disco y guardan ahi sus cursos como yo osea particiones vayan a la consola y pongan cd…
osea para salir de users luego denuevo hagan lo mismo hasta estar en la letra de su disco y luego pongan la letra del disco a donde quieren entrar por ejemplo: E y dos puntos.DND

No tengo ni la mas remota idea de como instalar esto en mac 😦

Saben si es posible o existe algún simulador de arduino que me permita conectar con node?

No pude instalar Johnny-five… al momento de ejecutar el comando que indica Freddy sale una serie de errores que al parecer necesito tener instalado otras cosas

¿Aguien logró integrar javascript con el simulador de arduino? Si es así sería muy bueno saber como le hizo

No tengo un arduino fisico y no puedo realizar las practicas 😦

Solo queda ver la clase y aprender asi.

Los nombres de los led estan invertidos. “rojito” es en realidad el led amarillo y “bombillito” es en realidad el led rojo.

Para los que no tienen un arduino fisico, pueden usar el simulador Proteus donde pueden aplicar todo lo aprendido en la clase, aqui la guia:
https://github.com/rwaldron/johnny-five/wiki/Getting-started-with-Johnny-Five-and-Proteus
.
Yo me encontre con varios problemas, y aqui tengo una guia resumida de lo que hice.
.
COMO PROGRAMAR UN SIMULADOR DE ARDUINO CON JS Y NODE:
.
Programas que se necesitan:
.
• Proteus Design Suite
• Com0com
• Arduino IDE
• Node.js
.
Recomendaciones:
.
-El Proteus tiene que estar con licencia, porque el demo no te sirve para crear tu propio arduino.
-Hay que instalar la librería de arduino en el Proteus.
-Es recomendable que sea la versión 2.2.2 de Com0com para poder crear los puertos virtuales.
.
CREANDO NUESTRO CIRCUITO EN PROTEUS
Se crea un circuito como la imagen
placa arduino.png
CONFIGURACION DE NUESTROS COMPONENTES:
.
A. CONFIGURACIÓN DEL ARDUINO

• En el IDE de arduino abrimos: File > Examples > Firmata > StandarFirmata
• Verificamos que el check de compilación esta marcada: Files > Preferences > Check en Compilation.
• Compilamos y cuando termine, desde la consola copiamos la dirección que tenga extensión ino.hex
• En Proteus hacer doble click en el arduino y pegar la dirección en program file y luego OK.
.
B. CONFIGURACION DEL COMPONENTE SERIAL

• Entrar al setup de com0com desde donde se instaló y cambiar los puertos por COM1 y COM2 y luego click en aplicar.
• En Proteus hacer doble click en el componente serial y poner en physical port: COM1, physical and virtual baud rate: 57600.Luego OK.
Correr el arduino haciendo click en play.
.
EJECUCION DEL PROGRAMA
El código cambiaria asi:
codigo arduino.png

Como ya esta instalado Johnny-five en la carpeta arduinode ejecutamos: $ node app.js(en mi caso).
El led rojo empezara a parpadear según lo programado y aparecerá Hola Mundo en la consola.

Esto es increíble, no parece para nada un curso de programación básico. No lo digo por lo complejo, si por lo completo y además bien pensado, con cosas del hacer inmediato y encantar a la gente.
Otra vez, felicitaciones.

fallaledsjs.JPG

No se porque no me deja ejecutar el programa si he realizado bien los pasos y está todo sobre la misma carpeta…su ayuda por favor!

hola, disculpa me pueden ayudar, en que estoy mal.
![](error 2.png

Breveeeeee. De algo sirve cuando al final d aun año escolar los estudiantes dejan tirados sus materiales…
IMG_0588.JPG

Error: Cannot find module ‘serialport’

amigooooos helppppp no encuentro como corregir este error,
¡ quien podra ayudarme

Freddy eres un crack. Mi tesis fue basada en Arduino con LAMP, pero esto ya es OTRO NIVEL.

noooo no tengo arduino :'c

si quieren comprar un arduino, les recomiendo este que viene con pack entero y con sus componente. es bastante economico:
https://ru.aliexpress.com/item/new-Starter-Kit-UNO-R3-mini-Breadboard-LED-jumper-wire-button-for-arduino-compatile-free-shipping/32598210113.html?spm=a2g0s.9042311.0.0.4vjhL5

Muy buena explicacion, me molesto la version que tenia de node js, tuve que cambiar por la version anterior y me funciono perfecto 😃 .

Me tira error al descargar johnny-five. Uno de los errores es can t find Python executable

Chicos una oregunta, al cargar el codigo en el arduino para leer javascript, y fuera de todo cargar el codigo en javascript, no se llena mucho mas rapido la ram del arduino?

Si alguno tiene problemas con que no se entre el “firmata” solamente hay que instalarlo en la misma ruta que utilizamos para instalar JohnnyFive

  • npm install firmata

“Vamos a hacer algo mas loco! Dos LED” 😃. Y lo peor es que uno se imagina cosas locas tipo que va a hacer caminar el arduino. XD

Para los que les de un error es por la versión de node Js a fecha Enero 28 de 2019 la version actual de node.js es 11.8.0 y a mi con esa versión me dió error al correr el archivo js y tuve que usar la versión que utilizó Freddy la version 6.4.0, para cambiar de versión utilicé NVM (Node Version Manager) y al cambiar la version ya podrán hacer los ejercicios del curso

les dejo un enlace para ver como se usa nvm

Yo lo hice en tinkercad; realmente no soy tan fan de la electrónica, pero siento al menos ya puedo decir que puedo prender no uno, sino dos leds con un arduino.

yo tengo windows 10 x64 Fall Creators Update con todas las actualizaciones al 07/06/2018 y la solución que da saulanderssonrojas me funciono a la perfección , gracias!!!
ya que me salia error al instalar el johnny-five y luego no me dejaba ejecutar el programa led.js

  1. descargar node js de 32bits. (si se instalo la version de 64 desistalarla antes)
  2. luego configurar los puertos COM puesto que algunos les apareció esto de seguro:
    1489565781045 Device(s) COM1 COM5
    1489565781045 Connected COM1
    bueno este error es porque solo existe un puerto de salida, la forma de corregirlo es
    2.1. click en boton inicio;
    2.2. click derecho en equipo;
    2.3. click en administrar;
    2.4. les aparecerá un programa y le daran click en la opción “Administrador de dispositivos”;
    2.5. le dan click en el triangulo que esta en la opción Puertos (COM Y LPT)
    2.6. ahí les aparecera de seguro
    .arduino uno(COM3) “ESTE ES EL EJEMPLO DE MI PC”
    .Puerto de comunicaciones (COM1)
    . etc :v
    2.7. le dan click derecho sobre arduino y click en propiedades
    2.8. les aparecera un cuadro de diálogo le dan click en config de puerto
    2.9. opciones avanzadas, les aparecerá otro cuadro
    le dan click a puertos y le cambian al COM1 que seguro dirá en uso pero aún así le dan click
    2.10. una vez hecho esto te aparecerá un mensaje box de info que te advertira pero igual le dan que si
    bueno van a su consola cmd(como medida preventiva busque cmd en inicio y click derecho ejecutar como administrador) y ejecutan los mismos comandos que Freddy nos da en el video.
    y listo.

¿Y si tengo una Raspberry como lo hago?

no me salen todas las librerias. me salen errores cuando instalo la libreria de johnny-five, he intentado todo lo que dice en los aportes pero pasa lo mismo.

cual es la ventaja hay de usar javascript en lugar del lenguaje que se utiliza en IDE de arduino

Comprare el arduino y seguire este gran curso con todo.

HOLA, TUVE UN PROBLEMA CON EL SIGUIENTE ERROR " LA SOLUCION FUE INSTALAR npm install serialport

module.js:338
throw err;
^
Error: Cannot find module 'serialport’
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Board.Serial.detect (D:\node_modules\johnny-five\lib\board.js:70:7)
at new Board (D:\node_modules\johnny-five\lib\board.js:303:23)
at Object.<anonymous> (D:\robotarm.js:90:9)
at Module._compile (module.js:460:26)
at Object.Module._extensions…js (module.js:478:10)
at Module.load (module.js:355:32)

En mi caso el puerto para el arduino es el COM5, y al ejecutarlo me salía un error que solucioné cambiando la siguiente línea de código

var circuito = new jf.Board({ port: "COM5" });

Jajajaja te vas a electrocutar

Genial!

Hola compañeros! si a alguien le sale algún error al instalar johnny five lea bien el error y si dice algo como que falta la versión de python solo busquen en YouTube como instalar la última versión de python. Si vuelven a intentar y les funciona estaría genial, peropuede pasar que les de otro error y que esta vez les falte visual studio; hagan lo mismo que con python: busquen en YT e instalen todos los lenguajes que les aparezca enel proceso de instalación. Esto último no se si es necesario porque en el error me salía que faltaba visual studio y c++ pero mejor que sobre a que falte. Así solucioné el error y ahora si funciona mi blink.js. Recuerden subir el scketch standard firmata al arduino antes!

Probablemente se pueda usar nodemon para evitar parar y reiniciar el script de node, al hacerlo se detectan los cambios y se actualiza automáticamente
Instalación: npm install -g nodemon
Uso: nodemon leds.js

Excelente nuevo conocimiento adquirido! Programación de Arduino con JavaScript, nodejs y johnny-five! utilicen el nodemon para que no tengan que detener el node y lo realice automaticamente al detectar un cambio…
Instalación: npm install -g nodemon
Uso: nodemon leds.js
Funciona perfecto!

que bien …poder aprender esto de forma gratuita

Muy bueno, dan ganas de comprarse un Arduino 😦

excelente forma de enseñar

Para los que estamos trabajando con un arduino desde el navegador como el de Thinkercad solo es copiar y pegar el código verdad?

Parpadeo de 3 leds al mismo tiempo.

var jf = require("johnny-five");
var circuito = new jf.Board();

circuito.on("ready", prender);

function prender()
{
    var led1 = new jf.Led(13);
    var led2 = new jf.Led(12);
    var led3 = new jf.Led(11);
    led1.blink(500);
    led2.blink(1000);
    led3.blink(5000);
}

Estupendo, ahora comprendo más la relación de programación interna del hardware hacia el software.
<strong>Thanks Freddy! </strong>

me aparece este error, a alguien mas le sale?

Captura.PNG

No tengo Arduino pero por lo menos resulta interesante cómo se puede programar un Arduino utilizando JavaScript
Captura de Pantalla 2019-08-16 a la(s) 20.01.39.png

veo que aprender a programar en .js tiene muchas utilidades y para diferentes áreas. Según he aprendido es bueno conocer varios lenguajes de programación pero .js es demasiado útil practicamente para cualquier cosa jaja. 🙂

Es importante tener en cuenta que el código de JS no se almacena en la memoria de la placa.
.
Sino que se envía las instrucciones desde la computadora y la placa las ejecuta. Por esa razón cuando se está ejecutando algún programa en la placa de arduino UNO se enciendo el led Rx que indica que esta recibiendo información.
.
En la placa solo esta almacenado el Sketch que permite la comunicacion por el puerto usb.