1

这是一个基本的理解问题。我正在尝试遵循这个解释http://www.barryvandam.com/node-js-communicating-with-arduino/但对我来说听起来有点不对劲。

据我之前了解,我只需要将标准的 Firmata 代码推送到 Arduino 中,并通过 Node.js 进行代码调用即可从 Arduino 中调用操作和信息。但是在这个链接中,他们指出我需要将代码上传到 Arduino,这显然会删除现在存在的 Firmata 代码。这不会导致与 Arduino 失去联系吗?

它是如何工作的?

非常感谢!

4

3 回答 3

5

上面的示例没有使用 Firmata,尽管 Firmata 使事情变得更容易。如果您想实现自己的串行控制协议,没有什么能阻止您。

但是,如果您在 Arduino 上加载 StandardFirmata,然后在节点中使用Firmata.js包,那么您将拥有一个功能齐全、完善的串行协议和一个用于访问引脚的 api。

大多数语言都有 Firmata 控制器实现。

在 Firmata.js 之上,您可以选择使用名为Johnny-Five的抽象。Johnny-Five 使用直观的 API 将引脚抽象为组件。您无需通过设置引脚值来控制伺服,而是创建伺服并调用servo.to(angle). 它有点像 jQuery,但用于硬件。它以接口形状相同的方式抽象平台和设备,但硬件可能完全不同。这是一个非常舒适的发展场所。

于 2015-09-10T00:35:47.480 回答
0

Firmata 是一组函数,您可以将它们预加载到您的 Arduino 上,像 Johnny-Five 这样的库可以调用这些函数来执行某些任务。

正如之前接受答案的作者所说,您不必使用它,您可以编写自己的逻辑来发送和接收自定义消息。

在 Node.js 中,您可以使用node-serialport库来发送消息:

myPort.write();

然后使用内置的串行库读取来自 Arduino 的消息:

while(radio.available()){
    radio.read(chr, 1);
}
于 2015-07-14T16:30:44.893 回答
-2

Firmata 是与 Arduino 通信的一种方式,您不必使用它。

您可以使用 SerialPort 模块直接与 Arduindo“交谈”——这就是链接示例正在做的事情。

于 2015-07-10T11:18:48.803 回答