Firmata,Arduino和Node js之间的关系

这是一个基本的理解问题。 我试图按照这个解释http://www.barryvandam.com/node-js-communicating-with-arduino/但那里听起来有点closures给我。

据我所知,我只需要将标准的Firmata代码推入到Arduino中,并通过Node.js进行编码,以便从Arduino中调用操作和信息。 但是在这个链接中,他们指出我们需要将代码上传到Arduino,这显然会删除现在的Firmata代码。 是不是会导致失去与Arduino的连接?

它是如何工作的?

非常感谢!

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

您可以使用串口模块直接“与”Arduindo“交谈” – 这就是链接的例子。

上面的例子不使用Firmata,但Firmata使事情变得简单。 如果你想实现你自己的串行控制协议,那么没有什么能阻止你。

但是,如果您在Arduino上加载StandardFirmata,然后在节点中使用Firmata.js包,则可以使用function完善的串行协议和api来访问引脚。

那里有大多数语言的Firmata控制器实现。

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

Firmata是一组函数,你可以预先加载到你的Arduino,像Johnny-Five这样的库可以调用执行某些任务。

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

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

 myPort.write(); 

然后从内置的串行库中读取Arduino的消息:

 while(radio.available()){ radio.read(chr, 1); }