Johnny-Five не может подключиться к Arduino

Виндовс 10, Ардуино Микро. Первоначально я использовал стандартный учебник «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, хотя мне пришлось нажать стандартную версию FirmataPlus. .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, и любая помощь будет очень признательна.


person Noah Tatko    schedule 09.09.2018    source источник


Ответы (1)


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

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

person Noah Tatko    schedule 13.09.2018