设为首页收藏本站

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

金轮法王 发表于 2015-7-21 18:12:39 | 显示全部楼层 [复制链接]
18 6028
蓝牙手柄遥控虫虫机器人
6足虫虫作为虫虫界的战神,没有使用蓝牙来驾驭它未免有写遗憾。下面是我制作的用编程手柄配合蓝牙模块完成对6足虫虫的控制教程,快来体验一把真正的战神归来!
6W4A8714.JPG

实例视频
Step1:所需硬件

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

图片1.png

将虫虫机器人上的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.png


输入AT+ROLE=ROLE_PERIPHERAL将蓝牙模组设置为从机
图片3.png

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




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


DSC_8732.JPG


DSC_8730.JPG

改写手柄的程序如下:
  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   
}
}


图片6.png

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





附页:
common.rar (3.13 KB, 下载次数: 351)
6W4A8724.JPG
发表于 2015-7-25 17:23:43 | 显示全部楼层
你们在哪里喝酒吗?
回复 支持 1 反对 0

使用道具 举报

发表于 2015-7-21 21:48:15 | 显示全部楼层
这个厉害了。哈哈
回复 支持 反对

使用道具 举报

发表于 2015-7-21 21:54:37 | 显示全部楼层
这个虫子貌似很屌。
回复 支持 反对

使用道具 举报

发表于 2015-7-21 21:56:25 | 显示全部楼层
虫子的腿是 3D打印的
回复 支持 反对

使用道具 举报

发表于 2015-7-22 14:29:29 | 显示全部楼层
感觉手柄操作互动性更强了呢~~
手动和自动模式可以自由切换么?~
回复 支持 反对

使用道具 举报

发表于 2015-7-22 15:56:20 | 显示全部楼层
真*雕虫小技
回复 支持 反对

使用道具 举报

发表于 2015-7-23 10:39:44 | 显示全部楼层
玩虫虫于股掌之中呀~
回复 支持 反对

使用道具 举报

发表于 2015-7-23 11:27:28 | 显示全部楼层
第一次看到有人用手柄来控制虫虫,效果拔群哈哈哈
回复 支持 反对

使用道具 举报

发表于 2015-7-23 17:59:10 | 显示全部楼层
我们的小吧台出镜率好高啊
回复 支持 反对

使用道具 举报

发表于 2015-7-24 18:02:57 | 显示全部楼层
挺不错的,赞一个
回复 支持 反对

使用道具 举报

发表于 2015-7-25 17:23:31 | 显示全部楼层
门口那个吧台吗?
回复 支持 反对

使用道具 举报

发表于 2015-7-25 21:14:45 | 显示全部楼层
好棒
回复 支持 反对

使用道具 举报

发表于 2015-8-1 22:58:03 | 显示全部楼层
看起来很厉害的样子
回复 支持 反对

使用道具 举报

发表于 2015-12-20 19:57:30 | 显示全部楼层
请问手机App可以控制么
回复 支持 反对

使用道具 举报

发表于 2015-12-30 16:09:14 | 显示全部楼层
这个可以有…………
回复 支持 反对

使用道具 举报

发表于 2016-5-23 17:17:11 | 显示全部楼层
虫虫的脚脚哪里可以搞到。
官方套装里面的铁丝脚简直战五渣。各种站不稳。各种走不动。
回复 支持 反对

使用道具 举报

发表于 2016-5-30 19:36:16 | 显示全部楼层
确定这个程序没问题吗?
回复 支持 反对

使用道具 举报

发表于 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);
}
回复 支持 反对

使用道具 举报

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

本版积分规则 允许回帖同步到新浪微博  

推荐阅读

精华导读




公司简介| 联系我们| 小黑屋| 加入我们| 微博| 优酷| 英文网站| DF创客社区 ( 沪ICP备09038501号-4  
友情链接| 硬创邦| 花生壳社区| 模友之吧| 电子发烧友社区| 创客星球| 云汉电子社区| 电子工程网| 与非网| Arduino中文社区| 南极熊3D打印网|

上海智位机器人有限公司  沪ICP备09038501号-4   

Powered by Discuz! X3.1

Licensed Comsenz Inc.

返回顶部 返回列表