9

Instalando Johnny Five

Tatiana
TaUin
3671

Siguiendo las instrucciones de Freddy cuando intente instalar Johnny Five para correrlo con arduino, me generó varios errores, por el Python, por el serialport, por las librerias C++ y viendo los comentarios vi que varios tenían esos problemas. Así que leí en varios sitios y acá dejo el paso a paso que me funcionó a mi y me dejo correr un programa en arduino con Johnny Five.

  1. Instalar el Nodejs la versión LTS a 32 bit, muchos decían que las versiones a 64 bits no funcionaban bien.

  2. Instalar Python versión 2.7.14, la mayoría coincidía con que era la más compatible.

  3. Instalar Visual studio 2015 C++.

  4. Ejecutar esto en la consola para agregar Python a las variables de entorno del sistema.

  5. Instalar node-gyp desde la consola, necesario para compilar en Node

  6. Instalar el serialport, en la carpeta del proyecto y globalmente, es por donde se comunicará con el arduino.


7. instalar Johnny Five en la carpeta del proyecto.

8. Ejecutar archivo.js

Al primer intento, me salió error, así que volví a descargar en el arduino el StandardFirmata y despúes corrió correctamente.

Escribe tu comentario
+ 2
Ordenar por:
2
C:\>npm install -g node gyp

> node@13.12.0 preinstall C:\Users\Laptop\AppData\Roaming\npm\node_modules\node
> node installArchSpecificPackage

+ node-win-x64@13.12.0
added 1 package and audited 1 package in 13.265s
found 0 vulnerabilities

C:\Users\Laptop\AppData\Roaming\npm\node -> C:\Users\Laptop\AppData\Roaming\npm\node_modules\node\bin\node
+ gyp@0.5.0
+ node@13.12.0
removed 1 package and updated 2 packages in 41.758sC:\>npm install serialport --save

> @serialport/bindings@8.0.7 install C:\node_modules\@serialport\bindings
> prebuild-install --tag-prefix @serialport/[email protected] || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=13.12.0 runtime=node arch=x64 libc= platform=win32)

C:\node_modules\@serialport\bindings>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp ERR! find VS
gyp ERR! find VS msvs_version not set from command line or npm config
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
gyp ERR! find VS could not use PowerShell to find Visual Studio 2017 or newer
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - not found
gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
gyp ERR! find VS
gyp ERR! find VS **************************************************************
gyp ERR! find VS You need to install the latest version of Visual Studio
gyp ERR! find VS including the "Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
gyp ERR! find VS **************************************************************
gyp ERR! find VS
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Visual Studio installation to use
gyp ERR! stack     at VisualStudioFinder.fail (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:121:47)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:74:16
gyp ERR! stack     at VisualStudioFinder.findVisualStudio2013 (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:351:14)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:70:14
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:372:16
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\util.js:54:7
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\util.js:33:16
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:310:5)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at maybeClose (internal/child_process.js:1026:16)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe""C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js""rebuild"
gyp ERR! cwd C:\node_modules\@serialport\bindings
gyp ERR! node -v v13.12.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open 'C:\package.json'
npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data
npm WARN !invalid#1 No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @serialport/bindings@8.0.7install: `prebuild-install --tag-prefix @serialport/[email protected] || node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @serialport/bindings@8.0.7 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Laptop\AppData\Roaming\npm-cache\_logs\2020-04-07T08_36_06_197Z-debug.log

C:\>```


Me aparece este error y no se que hacer
1
7583Puntos

¿Como se realiza el numero 4? Lo que he hecho es instalarlo a mano, aunque la consola, no me sirve

1
219Puntos

Nota del 2022:

Al intentar programar con Johnny Five pueden tener 3 posibles errores, incluso luego de haber flasheado la placa con firmataStandar en el IDE de Arduino. Los posibles errores son:

  1. no te permite instalar johnny five
  2. te dice que falta “serialport”
  3. te dice que falta “firmata”

Estas soluciones que les diré son para WINDOWS 10, en Linux no tuve problemas pero si ustedes los tienen entonces el proceso supongo que debe ser similar.

Antes de decirle las soluciones que me funcionaron debo aclararles que necesitarán tener instalado lo siguiente:
-Python 2.7
-Visual Studio 2015C++ (esto lo leí de una publicación hecha en Platzi)
-NVM 1.1.9 Windows (fue la que me funcionó)
-Placa electrónica (en mi caso fue Arduino UNO) flasheada con StandardFirmata

Aquí les dejo las soluciones que me funcionaron:
a) no te permite instalar johnny five: Para solucionar esto debes usar otra versión de Nodejs. Esto sucede (según entiendo) porque Johnny Five solo es compatible con algunas versiones de Nodejs. La versión con la que me funcionó fue la “13.12.0” (en un video parece que a otra persona le funcionó con la “5.5.0”). Deben instalar y usar NVM (Node Version Manager) para tener varias versiones de Nodejs y poder cambiarse entre una y otra de forma fácil. Esto es importante porque según leí este tipo de problemas se pueden presentar con otros framework.

b)te dice que falta “serialport”: este problema lo podremos solucionar con tan solo indicar el puerto donde está la placa. Una manera para saber el puerto es tan solo ir al IDE de Arduino e ir a la siguiente ruta: “Herramientas -> Puerto”

El codigo debería quedar de la siguiente manera (en mi caso es):
myBoard = new Board({port: “COM3”});

Nota: “COM3” en Windows esos puertos generalmente vienen acompañados por el “COM”, ya el numero podría variar. En Linux no usan “COM”, es otra cosa, la cual pueden ver en el IDE de Arduino.

c)te dice que falta “firmata”: puedes intentar instalar firmata con “npm install firmata” y se arreglaría, PERO en mi caso NO funcionó en la versión 16.13.0 de Nodejs, me tocó instalar la versión 13.12.0 de Nodejs con NVM y luego si instalar firmata con “npm install firmata”.

1
5501Puntos
4 meses

En la terminal al tener instalado:

“Antes de decirle las soluciones que me funcionaron debo aclararles que necesitarán tener instalado lo siguiente:
-Python 2.7
-Visual Studio 2015C++ (esto lo leí de una publicación hecha en Platzi)
-NVM 1.1.9 Windows (fue la que me funcionó)
-Placa electrónica (en mi caso fue Arduino UNO) flasheada con StandardFirmata”

Al completar los pasos los dos primeros y estar en terminal para administrar NVM
1- Comprobar version con comando: node -v
Resultado:
“C:\Users\TuPc\Documents\Platzi\Arduino\arduinode> node -v
v17.4.0”

2- Seguidamente usar: npm -v
Resultado:
“C:\Users\TuPc\Documents\Platzi\Arduino\arduinode> npm -v
8.4.1”

3- Escribir: nvm help
desplegara la version y los comandos.

4- Usar nvm ls
Para listar todas la versiones que tenemos instaladas vamos introducir

5- Ejecutar nvm install 13.12.0 (versión que me funciono)

6- nvm use 13.12.0
si proveé error: "exit status 5: Acceso denegado.

exit status 1: No se puede crear un archivo que ya existe."
continuar con paso 7

7- npm install firmata.

8- Subir firmata en el arduino, verificar el circuito y código para evitar frustración y aumentar la ansiedad.

9- correr: node led.js

levantarte de la silla y darte cuenta que resolviste un problema de versiones en librerias y tools como real gansta programmer. Continuar con las clases.

Felicidades

1
2627Puntos

me sigue dando el mismo problema.

Error: Cannot find module 'firmata'
Require stack:
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\accelerometer.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\johnny-five.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\leds.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Board.connect (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js:107:16)
    at new Board (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js:289:24)
    at Object.<anonymous> (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\leds.js:2:16)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\board.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\accelerometer.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\johnny-five.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\leds.js'
  ]
}

C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode>node leds.js
node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module 'firmata'
Require stack:
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\accelerometer.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\johnny-five.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\leds.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Board.connect (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js:107:16)
    at new Board (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js:289:24)
    at Object.<anonymous> (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\leds.js:2:16)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\board.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\accelerometer.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\johnny-five.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\leds.js'
  ]
}

C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode>node led.js
node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module 'C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\led.js'
←[90m    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)←[39m
←[90m    at Function.Module._load (node:internal/modules/cjs/loader:778:27)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)←[39m
←[90m    at node:internal/main/run_main_module:17:47←[39m {
  code: ←[32m'MODULE_NOT_FOUND'←[39m,
  requireStack: []
}

C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode>node leds.js
node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module 'firmata'
Require stack:
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\accelerometer.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\johnny-five.js
- C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\leds.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Board.connect (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js:107:16)
    at new Board (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\node_modules\johnny-five\lib\board.js:289:24)
    at Object.<anonymous> (C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode\leds.js:2:16)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\board.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\accelerometer.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\node_modules\\johnny-five\\lib\\johnny-five.js',
    'C:\\Users\\Usuário\\Downloads\\Progbasica\\ardui\\arduinode\\leds.js'
  ]
}

C:\Users\Usuário\Downloads\Progbasica\ardui\arduinode>```
1
544Puntos

A mi me dice es que necesito el firmata, entonces:

Error cannot find module “firmata”

no se que hacer, y al intentar instalar firmata me arroja lista de errores, aun siguiendo todos los pasos indicados anteriormente.

estoy en ubuntu.

1
2627Puntos
5 meses

Conseguiste solucionar el problema? ya a mi me está dando el mismo error.

1

If you are lover of online games then you are choose the right information online yahtzee are there and this is the best solution’s for those personae craziest fan of the online games.

1
4220Puntos

muchas gracias ya me salió bien

1
1434Puntos

Excelente, muchas gracias por el aporte. Me funciono correctamente.

1
694Puntos

Excelente aporte, todo operativo!

1
2175Puntos

Solo descargando el packed LTS de Node js te trae ya el path no hay necesidad de hacer tanto procedimiento pero aun asi me sirvio muchisimo. Gracias!!

1
9005Puntos

Quién me puede ayudar con este problema?
estoy estancado.

[email protected] node_modules % node leds.js
internal/modules/cjs/loader.js:983
  throw err;
  ^

Error: Cannot find module 'serialport'
Require stack:
- /Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/johnny-five/lib/board.js
- /Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/johnny-five/lib/accelerometer.js
- /Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/johnny-five/lib/johnny-five.js
- /Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/leds.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
    at Function.Module._load (internal/modules/cjs/loader.js:862:27)
    at Module.require (internal/modules/cjs/loader.js:1042:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Board.detect (/Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/johnny-five/lib/board.js:35:20)
    at new Board (/Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/johnny-five/lib/board.js:291:21)
    at Object.<anonymous> (/Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/leds.js:2:13)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32) {
  code:'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/johnny-five/lib/board.js',
    '/Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/johnny-five/lib/accelerometer.js',
    '/Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/johnny-five/lib/johnny-five.js',
    '/Users/rubio/Dropbox/LineasCodigo/ARDUINO/arduinojs/node_modules/leds.js'
  ]
}
[email protected] node_modules % cd johnny-five 
[email protected] johnny-five % cd lib
1
4359Puntos

Error: The module '\?\C:\Users\UsuarioNB\[email protected]\bindings\build\Release\bindings.node’
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 83. Please try re-compiling or re-installing
the module (for instance, using npm rebuild or npm install).
at Object.Module._extensions…node (internal/modules/cjs/loader.js:1226:18)
at Module.load (internal/modules/cjs/loader.js:1040:32)
at Function.Module._load (internal/modules/cjs/loader.js:929:14)
at Module.require (internal/modules/cjs/loader.js:1080:19)
at require (internal/modules/cjs/helpers.js:72:18)
at bindings (C:\Users\UsuarioNB\node_modules\bindings\bindings.js:112:48)
at Object.<anonymous> (C:\Users\UsuarioNB\[email protected]\bindings\lib\win32.js:1:36)
at Module._compile (internal/modules/cjs/loader.js:1176:30)
at Object.Module._extensions…js (internal/modules/cjs/loader.js:1196:10)
at Module.load (internal/modules/cjs/loader.js:1040:32)

0
886Puntos

Si os sale un error que contiene

gyp ERR! find VS You need to install the latest versionof Visual Studio
gyp ERR! find VS including the"Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows

Tenéis que installar las Visual C++ Build Environment desde Visual Studio Build Tools .

Para más información https://github.com/nodejs/node-gyp#on-windows