28022浏览
查看: 28022|回复: 23

[教程] 蓝牙手柄遥控虫虫机器人

[复制链接]
蓝牙手柄遥控虫虫机器人
6足虫虫作为虫虫界的战神,没有使用蓝牙来驾驭它未免有写遗憾。下面是我制作的用编程手柄配合蓝牙模块完成对6足虫虫的控制教程,快来体验一把真正的战神归来!
蓝牙手柄遥控虫虫机器人图6

实例视频
Step1:所需硬件

Step2:调试蓝牙模块
通过串口指令来配置蓝牙模块
通过Arduino IDE自带的串口监视器来完成蓝牙配置。具体方法如下:
11.打开Arduino IDE
2.在菜单-》工具-》串口中选择正确的设备
3.开启串口监视器 (点击窗口的右上角的按键)
4.右下角两个下拉菜单中选择"No line ending"(没有结束符)115200 波特
5.在输入框中输入"+++",并点击发送
6.如果收到“Enter AT Mode”,就证明已经进入AT指令模式.

蓝牙手柄遥控虫虫机器人图1

将虫虫机器人上的Bluno Beetle设置为从机,设置波特率为115200方法如下:
5. 右下角两个下拉菜单中选择"Both NL & CR"115200 波特
6. 在输入框中输入AT指令,并点击发送键。输入AT+UART=115200来设置波特率
7. 如果BLE配置成功,界面将会返回"OK"
8. 如果收到“ERROR CMD”,可以再发一遍。发送多次后如果还是“ERROR CMD”,你需要检查一下指令发送是否正确。


输入AT+UART=115200来设置波特率
蓝牙手柄遥控虫虫机器人图2


输入AT+ROLE=ROLE_PERIPHERAL将蓝牙模组设置为从机
蓝牙手柄遥控虫虫机器人图3

给模块供电查看两块蓝牙能否正常连接(主从机的link灯都亮)一主一从成对正常使用时灯不会灭。如主机和从机距离太远而断线,则主机和从机的灯
使用同样的方法BLE LINK 蓝牙4.0通讯模块设置为主机(在AT指令模式下输入AT+ROLE=ROLE_CENTRAL),设置波特率为115200一直闪,如果它们距离再靠近,则又会找在一起而自动连上。主机会记忆它配好的从机,一上电给主机就会找它记忆的从机地址。




STEP3调试手柄
将蓝牙模块安装在可编程手柄主板xbee插槽上,使用手柄资料库给出的按键测试程序查看手柄按键是否可以正常触发。


蓝牙手柄遥控虫虫机器人图8


蓝牙手柄遥控虫虫机器人图7

改写手柄的程序如下:
  1. int buttonState[17];
  2. int joystick[4];
  3. int AnalogButton[2];
  4. void setup()
  5. {
  6.   Serial.begin(115200);  //Init the Serial baudrate
  7.   Serial1.begin(115200);//初始化串口1的波特率为115200
  8.   InitIO();             // Initialize the inputs/outputs and the buffers
  9. }
  10. void InitIO(){
  11.   for(int i = 0; i < 17; i++) pinMode(i, INPUT);
  12. }
  13. void loop()
  14. {
  15.   DataUpdate();  //read the buttons and the joysticks data
  16.   printData();   //print the datas and states
  17.   delay(720);   //通过计算得到的小虫电机运作一套动作的时间
  18. }
  19. void DataUpdate(){
  20.   
  21.   for(int i = 3; i < 17; i++)  buttonState = digitalRead(i);
  22.   buttonState[0] = analogRead(0);
  23.   buttonState[1] = analogRead(1);
  24.   for(int i = 0; i < 4; i++)  joystick = analogRead(i);
  25.   for(int i = 4; i < 6; i++)  AnalogButton[i-4] = analogRead(i);
  26.   
  27. }
  28. String Buttons[17] = {
  29.   "J2","J1","NULL","S2","S1","UP","LEFT","DOWN","RIGHT","1","4","2","3","RZ1","RZ2","LZ1","LZ2"};
  30.   // Buttons Nmes
  31. void printData(){
  32.   
  33.   for(int i = 3; i < 17; i++)  if(buttonState == 0)  Serial1.print(i),Serial.print(i);//为了简化运算没有输出手柄摇杆的模拟量8。
  34. }
复制代码


为小虫上传如下代码(把收到的串口数据都发回去):
void setup()
{    Serial.begin(115200);               //initial the Serial} void loop()
{   
if(Serial.available())   
{        
Serial.write(Serial.read());    //send what has been received   
}
}


蓝牙手柄遥控虫虫机器人图4

可知蓝牙手柄与小虫上的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完成
马上接通电源试试自己的手柄遥控小虫吧!改写自己小虫的代码让他的行走更加个性。
成品展示





附页:
6W4A8724.JPG

hnyzcj  版主

发表于 2015-7-25 17:23:43

你们在哪里喝酒吗?
回复

使用道具 举报

hnyzcj  版主

发表于 2015-7-21 21:48:15

这个厉害了。哈哈
回复

使用道具 举报

hnyzcj  版主

发表于 2015-7-21 21:54:37

这个虫子貌似很屌。
回复

使用道具 举报

hnyzcj  版主

发表于 2015-7-21 21:56:25

虫子的腿是 3D打印的
回复

使用道具 举报

Juice  高级技师

发表于 2015-7-22 14:29:29

感觉手柄操作互动性更强了呢~~
手动和自动模式可以自由切换么?~
回复

使用道具 举报

苦海  初级技匠

发表于 2015-7-22 15:56:20

真*雕虫小技
:lol
回复

使用道具 举报

Jane  高级技匠

发表于 2015-7-23 10:39:44

玩虫虫于股掌之中呀~
回复

使用道具 举报

heinau  高级技匠

发表于 2015-7-23 11:27:28

第一次看到有人用手柄来控制虫虫,效果拔群哈哈哈
回复

使用道具 举报

luna  初级技神

发表于 2015-7-23 17:59:10

我们的小吧台出镜率好高啊
回复

使用道具 举报

free  高级技师

发表于 2015-7-24 18:02:57

挺不错的,赞一个
回复

使用道具 举报

hnyzcj  版主

发表于 2015-7-25 17:23:31

门口那个吧台吗?
回复

使用道具 举报

丄帝De咗臂  高级技匠

发表于 2015-7-25 21:14:45

好棒
回复

使用道具 举报

dbc0301  高级技匠

发表于 2015-8-1 22:58:03

看起来很厉害的样子:)
回复

使用道具 举报

波蜀黍  学徒

发表于 2015-12-20 19:57:30

请问手机App可以控制么
回复

使用道具 举报

Geemi  初级技匠

发表于 2015-12-30 16:09:14

这个可以有…………
回复

使用道具 举报

nielinjie  学徒

发表于 2016-5-23 17:17:11

虫虫的脚脚哪里可以搞到。
官方套装里面的铁丝脚简直战五渣。各种站不稳。各种走不动。
回复

使用道具 举报

条八  见习技师

发表于 2016-5-30 19:36:16

确定这个程序没问题吗?
回复

使用道具 举报

-stark  中级技师

发表于 2016-8-31 13:55:06

这个程序好像有点小问题,蓝牙模块并不能收到手柄的完整信息,这样改一下会好一点

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);
}
回复

使用道具 举报

DFSkangKjBr  中级技师

发表于 2019-9-3 14:16:06

学习中,希望自己能成功做出一个来!谢谢分享!
回复

使用道具 举报

DFSkangKjBr  中级技师

发表于 2019-9-3 14:18:36

学习中,希望自己能成功做出一个来!谢谢分享!
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail