我有两个Arduino unos与标准StandardFirmata闪烁,我正在尝试多板演示与一个简单的节点项目(约翰尼-五个npm软件包)。当我单独尝试时,两个arduinos都能工作。使用以下代码:
var five = require("johnny-five");
var boardOne = new five.Board({ id: "A", port: "/dev/cu.usbmodem1d1141" });
boardOne.on("ready", function(){
var led = new five.Led({
pin: 13,
board: this
});
led.on();
});
node index.js
1418288836782 Connected /dev/cu.usbmodem1d1141
1418288836784 Repl Initialized
>> 当尝试多板示例时,我得到:设备或固件错误--连接到板时发生超时。请检查您是否正确地用正确的固件闪烁了板。
var five = require("johnny-five");
var ports = [
{ id: "A", port: "/dev/cu.usbmodem1d1141" },
{ id: "B", port: "/dev/cu.usbmodem1d1131" }
];
new five.Boards(ports).on("ready", function(){
var led = new five.Led({
pin: 13,
board: this[0]
});
led.on();
});更新#1:
出于好奇,我试图在usb电缆周围切换,得到了一些不同的结果:
1)似乎只有一个arduino连接着:
1418318698635 Device(s) /dev/cu.usbmodem1a1231,/dev/cu.usbmodem1a1241
1418318698642 Device(s) /dev/cu.usbmodem1a1241
1418318701849 Connected /dev/cu.usbmodem1a1231
1418318701850 Board ID: A 或者2)我得到了一个错误:
.../johnny-five-master/node_modules/firmata/lib/firmata.js:246
board.pins[pin].analogChannel = currentValue;
^
TypeError: Cannot set property 'analogChannel' of undefined
at Object.SYSEX_RESPONSE.(anonymous function) [as 106]
(.../johnny-five-master/node_modules/firmata/lib/firmata.js:246:35)更新#2:
我用cylon.js做了上面的测试,得到了同样的结果。仍然不知道如何解决这个问题:(一个arduino工作很好,多个什么都不做。(可能是osx相关的问题?)
更新#3:
我在约翰尼-5代码中添加了一些日志,这肯定是一个连接问题(我认为!?)第二个阿杜伊诺从来没有回应。我改变了arduinos的顺序,得到了相同的结果(第一个连接,另一个没有响应)。这个连接是异步的,所以它可能会在某个地方被阻塞。两个阿杜亚诺岛的灯光都显示出一些行动正在进行中。
node index.js
err: undefined --- type: connect --- io: /dev/tty.usbmodem1d1111
err: undefined --- type: connect --- io: /dev/tty.usbmodem1d1121
err: undefined --- type: ready --- io: /dev/tty.usbmodem1d1111
1418467187527 Connected /dev/tty.usbmodem1d1111
1418467187527 Board ID: A
1418467284327 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.发布于 2014-12-14 17:54:47
https://stackoverflow.com/questions/27419344
复制相似问题