这是一个基本的理解问题。我正试着遵循这个解释,http://www.barryvandam.com/node-js-communicating-with-arduino/,但是有些东西听起来有点离谱。
据我之前所理解,我只需要将标准Firmata代码推入Arduino,并通过Node.js调用来自Arduino的操作和信息。但是在这个链接中,他们指出我需要上传一个代码到Arduino,这显然会删除Firmata代码。会不会导致与Arduino的连接中断?
它怎麽工作?
非常感谢!
发布于 2015-07-10 11:18:48
Firmata是与Arduino通信的一种方式,您不必使用它。
您可以直接使用SerialPort模块与Arduindo“交谈”--这就是链接示例所做的事情。
发布于 2015-09-10 00:35:47
上面的例子没有使用Firmata,尽管Firmata使事情变得更简单。如果你想实现你自己的串行控制协议,没有什么能阻止你。
但是,如果您在您的Arduino上加载StandardFirmata,然后在节点中使用Firmata.js包,那么您就有了一个功能齐全、完善的串行协议和一个api来访问引脚。
大多数语言都有Firmata控制器实现。
在Firmata.js之上,您可以选择使用名为约翰尼-5的抽象。约翰尼-五将引脚抽象为组件,并使用直观的API。而不是通过设置一个引脚值来控制伺服,而是创建一个伺服,并调用servo.to(angle)。它有点像jQuery,但适用于硬件。它对平台和设备进行抽象,使接口的形状相同,但硬件可能完全不同。这是一个非常舒适的发展地方。
发布于 2015-07-14 16:30:44
Firmata是一组函数,可以预加载到Arduino上,像约翰尼-5这样的库可以调用这些函数来执行特定的任务。
正如被接受的答案的作者之前所说的那样,您不必使用它,您可以编写自己的逻辑来发送和接收自定义消息。
在Node.js中,您可以使用节点串行口库发送消息:
myPort.write();然后用内置的串行库读取来自Arduino的消息:
while(radio.available()){
radio.read(chr, 1);
}https://stackoverflow.com/questions/31337228
复制相似问题