我有 Firmata 在 Arduino Uno 上工作正常,通过电缆 USB 与 Processing 通信。
我想摆脱电缆,并通过蓝牙传输(使用 BlueSMIRF 模块)运行连接。我不清楚我需要对 Firmata 做什么来告诉它使用 BT 模块而不是(未连接的)USB 电缆接口。特别是,我是否需要破解 Firmata 本身来添加初始化代码
- 特定于我正在使用的 BT 模块,或
- 更一般地说,需要告诉 Firmata 使用有线 USB 以外的端口吗?
谢谢
D
我在 Firmata 方面不是很好,但据我所知,Firmata(在 arduino 上)使用“串行”(引脚 0 和 1,也称为 TX、RX)与主机通信。因此,如果您想使用 BT 模块替换 arduino 上的 USB 电缆,请破解 Firmata 以使用其他引脚,将 BT 连接到引脚 0 和 1。
您必须在 ino 文件中上传波特率更改为 9600 的标准固件(或使用其他速率测试),然后如前所述连接 BTooth TX>Rx(uno RX) 和 bt RX>Tx(uno TX)发布后,用 arduinoCommander 测试它就像一个魅力!Arduino uno rx tx 是 pin0 和 pin 1。它也不是由 USB pc 供电,而是外部源导致在 USB 上将 BT 置于顶部可能会搞砸事情(通常断开接地从 BT 模块上传草图)。
您所要做的就是确保仅在将草图上传到 arduino 时才连接 USB,然后在准备好实际运行 Arduino 代码时连接 BlueSMIRF。这样它们都将使用默认的硬件串行端口,您不必修改任何代码。
您可以尝试在 Arduino 中使用 SoftwareSerial.h 来模拟另一个串行端口,但我发现这是有问题的。
只需将蓝牙连接到 Rx Tx 引脚并上传相同的标准固件。然后通过你正在通过usb电缆传递的蓝牙传递命令......它会工作。