在Arduino上通过蓝牙使用Firmata协议?

4
我已经成功地在Arduino Uno上使用Firmata,并通过USB电缆与Processing通信。我想摆脱电缆,改用蓝牙传输连接(使用BlueSMIRF模块)。我不清楚需要对Firmata做什么才能告诉它使用蓝牙模块而不是(未连接的)USB电缆接口。特别是,我需要修改Firmata本身以添加初始化代码吗?这些代码是:
  1. 特定于我正在使用的蓝牙模块,还是
  2. 更普遍地,需要告诉Firmata使用除有线USB之外的端口?
谢谢
D
4个回答

3

我在Firmata方面并不是很擅长,但据我所知,Firmata(在Arduino上)使用“串行”(引脚0和1,也称为TX、RX)与主机通信。因此,如果您想使用BT模块来替换Arduino上的USB电缆,请修改Firmata以使用其他引脚,或将BT连接到引脚0和1。


1
为什么这是被接受的答案?你做了什么才让它工作?我在使用我的BT串行模块时遇到了问题,找不到任何好的信息 :( - Derick Bailey

1

您需要上传标准的firmata文件,并将波特率更改为9600(或使用其他速率进行测试),然后按照先前的帖子中所述连接BTooth TX>Rx(uno RX)和bt RX>Tx(uno TX),使用arduinoCommander进行测试非常顺利!Arduino uno rx tx分别是pin0和pin1。此外,它不应该通过usb电源供电,而应该使用外部电源,因为在usb上方放置BT可能会出现问题(通常在上传sketches时断开BT模块的接地线)。


0
只需将蓝牙连接到Rx Tx引脚并上传相同的标准firmata。然后通过蓝牙传递您之前通过USB电缆传递的命令...它就可以工作了。

0

你只需要确保在上传你的sketches到Arduino时,USB连接是唯一连接的,然后当你准备运行Arduino代码时,再连接BlueSMIRF。这样它们都将使用默认的硬件串口,你不需要修改任何代码。

你可以尝试使用Arduino中的SoftwareSerial.h来模拟另一个串口,但我发现这会带来问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接