Джонни-пять не может подключиться к Arduino - PullRequest
0 голосов
/ 09 сентября 2018

Windows 10, Arduino Micro. Первоначально я использовал стандартное учебное пособие "Blink.js", но Johnny-Five продолжал подключаться к неправильному последовательному порту. Я жестко запрограммировал свой COM-порт (в данном случае порт 8) и получил исходную ошибку, но новый остановил меня. Мой вывод выглядит так:

C:\Users\...\folder>node Blink.js
1536475383667 Connected COM 8
1536475383673 Error Opening COM 8: File not found
(node:12700) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Uncaught, unspecified "error" event. ([object Object])
1536475393671 Device or Firmware Error A timeout occurred while connecting to the Board.

    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.
events.js:165
    throw err;
    ^

Error: Uncaught, unspecified "error" event. ([object Object])
    at Board.emit (events.js:163:17)
    at Board.log (C:\Users\...\folder\node_modules\johnny-five\lib\board.js:648:8)
    at Board.(anonymous function) [as error] (C:\Users\...\folder\node_modules\johnny-five\lib\board.js:659:14)
    at Board.<anonymous> (C:\Users\...\folder\node_modules\johnny-five\lib\board.js:395:14)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

Я сделал все очевидные вещи, которые они рекомендуют: перепрошить прошивку, записать загрузчик, переустановить узел и npm, пошагово выполнив инструкции по установке Arduino, хотя мне пришлось протолкните standardFirmataPlus.ino через графический интерфейс вместо командной строки, поскольку Windows изначально не содержит инструментов командной строки для Arduino. Мой код, если он имеет какое-либо значение, выглядит так:

var five = require("johnny-five"),
    board, led;

board = new five.Board({port: "COM 8"});

board.on("ready", function() {
  console.log('ready');
  led = new five.Led(8);    //This would be port 13 on most, but the Micro doesn't have that port
  led.strobe(100);
});

Я боролся целую вечность, чтобы получить какую-либо реакцию от Arduino с помощью Johnny-Five, и любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 13 сентября 2018

Как оказалось, проблема заключалась в кросс-совместимости. Я использовал Git для синхронизации файлов и проектов между компьютерами, один из которых был Mac, а другой - Windows. В отличие от многих других пакетов JavaScript, serialport - это пакет, который зависит от платформы. Итак, научитесь использовать gitignore.

Надеюсь, это поможет другим людям.

...