4

我以前让我的 Arduino 套件在与 Breakout 相同的硬件上工作,但想切换到Johnny Five我的硬件与来自http://weblog.bocoup.com/javascript-arduino-programming-with-nodejs/的简单单 LED 布局连接,但运行基本 LED 频闪演示无法按预期工作:

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

board = new five.Board();

board.on("ready", function() {
  console.log('ready');
  led = new five.Led(13);
  led.strobe(100);
});

回报:

1341154189666 Board Connecting... 
1341154189697 Serial Found possible serial port cu.usbmodem621
1341154189699 Board -> Serialport connected cu.usbmodem621
1341154191570 Repl Successfully Connected 

我在没有 LED 频闪的情况下直接进入 Firmata REPL,并且board.readyfalse.

关于为什么 board.ready 回调不会触发的任何建议?

4

2 回答 2

8

在 Windows 上,有时您必须指定哪个COM 端口。刷新firmata时收到以下错误:

avrdude: stk500_getsync(): not in sync: resp=0x00
  1. 将 Arduino UI 更改为指向另一个 COM 端口(在我的情况下为 COM4)

    工具 -> 串口 -> COM4

  2. 将此添加到您的 johnny-5 启动代码中:

    var five = require("johnny-five"); board = new five.Board({ port: "COM4" }); board.on("ready", ...);

于 2014-07-30T00:35:27.793 回答
6

我和 johnny-5 在我的 Arduino Uno R3 上遇到了同样的问题。要修复它,我必须更新 StandardFirmata。

  1. 下载最新的Arduino 软件(在编写 1.0.2 时)
  2. 安装并打开 Arduino 应用程序
  3. 将 Arduino 连接到计算机(通过 USB)
  4. 在菜单中,选择文件 > 示例 > Firmata > StandardFirmata
  5. 按下上传按钮

完成后,我可以使用firmata 连接到电路板,并按预期触发就绪事件。我必须对我所有的 Arduino 执行相同的过程才能让它们工作。

于 2012-11-10T19:28:46.663 回答