1

我正在尝试使用 Arduino UNO 和蓝牙控制 NXT 机器人,我使用了这段代码

 #include <SoftwareSerial.h>

byte moveTelegram [] = {0x0C,0x00,0x80,0x04,0x01,0x32,0x05,0x01,0x00,0x20,0x00,0x00,0x00,0x00};

SoftwareSerial blue(10, 11); 
int BluetoothData; 

void setup() 
{ 
    blue.begin(9600);
} 

void loop() 
{ 
     blue.write(moveTelegram,sizeof(moveTelegram));
     delay(100);

     BluetoothData=blue.read();

     delay(2000);
}

我的问题是,我必须将数据从 NXT 发送到 Arduino,然后 NXT 开始移动(如果我将blue.read()添加到我的代码中)。

如何让NXT直接执行命令?

谢谢,

4

1 回答 1

0

直接执行命令?

我不知道你贴的那个电报是什么,但那肯定是你自己定义的一种协议,所以NXT端没有办法直接执行,你必须在NXT端手动解析那个BYTES,然后映射到相关的NXT控制命令。

NXT 中有一个官方的协议叫做Lego NXT 通信协议,因为你使用的是 Arduino,所以你失去了直接调用它的方便,你已经阅读了一些官方文档来组装这些 BYTES,但是在 NXT 方面,如果你'正在使用leJOS(或官方固件),此协议已内置支持,请尝试google,有很多帖子。

于 2014-04-18T02:03:52.780 回答