Bluetooth 使用Arduino[蓝牙]控制乐高NXT

Bluetooth 使用Arduino[蓝牙]控制乐高NXT,bluetooth,arduino,nxt,lego,Bluetooth,Arduino,Nxt,Lego,我正在尝试使用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.begi

我正在尝试使用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,然后如果我在代码中添加blue.read,NXT就会开始移动

如何让NXT直接执行命令

谢谢

直接执行命令

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


NXT中有一个现有的官方协议称为Lego NXT通信协议,因为您使用的是Arduino,那么您就失去了直接调用它的便利,您已经阅读了一些官方文档来组装这些字节,但是在NXT端,如果您使用的是leJOSor官方固件,这个协议是内置支持的,试试谷歌,有很多帖子

这是NXT命令,它直接使用任何其他蓝牙设备执行,我已经用蓝牙作为主设备而不是从设备解决了这个问题。