28022| 23
|
[教程] 蓝牙手柄遥控虫虫机器人 |
蓝牙手柄遥控虫虫机器人 6足虫虫作为虫虫界的战神,没有使用蓝牙来驾驭它未免有写遗憾。下面是我制作的用编程手柄配合蓝牙模块完成对6足虫虫的控制教程,快来体验一把真正的战神归来! 实例视频 : Step1:所需硬件
Step2:调试蓝牙模块 通过串口指令来配置蓝牙模块 通过Arduino IDE自带的串口监视器来完成蓝牙配置。具体方法如下: 11.打开Arduino IDE 2.在菜单-》工具-》串口中选择正确的设备 3.开启串口监视器 (点击窗口的右上角的按键) 4.在右下角两个下拉菜单中选择"No line ending"(没有结束符)和115200 波特 5.在输入框中输入"+++",并点击发送 6.如果收到“Enter AT Mode”,就证明已经进入AT指令模式. 将虫虫机器人上的Bluno Beetle设置为从机,设置波特率为115200方法如下: 5. 在右下角两个下拉菜单中选择"Both NL & CR"和115200 波特 6. 在输入框中输入AT指令,并点击发送键。输入AT+UART=115200来设置波特率 7. 如果BLE配置成功,界面将会返回"OK" 8. 如果收到“ERROR CMD”,可以再发一遍。发送多次后如果还是“ERROR CMD”,你需要检查一下指令发送是否正确。 输入AT+UART=115200来设置波特率 输入AT+ROLE=ROLE_PERIPHERAL将蓝牙模组设置为从机 给模块供电查看两块蓝牙能否正常连接(主从机的link灯都亮)一主一从成对正常使用时灯不会灭。如主机和从机距离太远而断线,则主机和从机的灯 使用同样的方法BLE LINK 蓝牙4.0通讯模块设置为主机(在AT指令模式下输入AT+ROLE=ROLE_CENTRAL),设置波特率为115200一直闪,如果它们距离再靠近,则又会找在一起而自动连上。主机会记忆它配好的从机,一上电给主机就会找它记忆的从机地址。 STEP3调试手柄 将蓝牙模块安装在可编程手柄主板xbee插槽上,使用手柄资料库给出的按键测试程序查看手柄按键是否可以正常触发。 改写手柄的程序如下:
为小虫上传如下代码(把收到的串口数据都发回去): void setup() { Serial.begin(115200); //initial the Serial} void loop() { if(Serial.available()) { Serial.write(Serial.read()); //send what has been received } } 可知蓝牙手柄与小虫上的Bluno beetle可以正常连接。 Step3:调试小虫 将小虫原程序中的蔽障部分删去加入蓝牙控制代码 void loop() { if (Serial.available() > 0) {// 只在收到数据时发送数据 incoming = Serial.read(); // 读取传入的字节 //Serial.println(incoming, DEC); // 指示你收到的数据 if(incoming== 53) //前进 forward(); else if(incoming== 55) //后退 reverse(); else if(incoming== 54) //左转 leftTurn(); else if(incoming== 56) //右转 rightTurn(); } else { stay(); //停止 } } 完整代码见附件 Step4最终调试 接通电源看看小虫子能不能根据你下的指令做出相应的动作。进行外形上的微调让小虫子指令完成更加准确。 Step5完成 马上接通电源试试自己的手柄遥控小虫吧!改写自己小虫的代码让他的行走更加个性。 成品展示 附页: |
这个程序好像有点小问题,蓝牙模块并不能收到手柄的完整信息,这样改一下会好一点 void loop() { DataUpdate(); //read the buttons and the joysticks data //printData(); //print the datas and states if(buttonState[5]==0)//手柄按UP,buttonState[5]=0 Serial1.write(1); else if(buttonState[7]==0) Serial1.write(2); delay(100); } |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed