查看(RB-13K079)AS-4WD超声波手势操控机器人的源代码
←
(RB-13K079)AS-4WD超声波手势操控机器人
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
[[文件:RB-13K07901.png|500px|缩略图|右]] ==产品概述== 超声波作为智能车避障的一种重要手段,以其避障实现便,计算简单,易于做时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛。AS-4WD 超声波手势操控机器人采用4个RB-URF02 超声波传感器,对小车的方向进行控制,并使用蓝牙模块进行无线通信,实现无线控制4WD平台,本产品使用Carduino UNO控制器,此平台设计可以配合各个版本Arduino,例如:Arduino Due、Arduino Mega2560等,同样适合于树莓派控制器,为开发带来便利。产品为全铝合金车体,结实耐用,四个马达7.2V电压独立驱动,动力强劲,结构合理,便于扩展;独立散件包装,让您完全体验DIY的乐趣。 ==产品清单== [[文件:RB-13K07902.png|500px|缩略图|居中]] ==技术参数== ===平台参数=== # 车轮直径:65mm # 车轮宽度:26mm # 平台长度:206mm # 平台宽度:200mm # 平台高度:65mm # 平台重量:620g # 底盘距地面距离:13mm ===平台尺寸图=== [[文件:RB13K00610.png|700px|缩略图|居中]] ===直流减速电机(1:48)=== # 驱动电机齿轮箱减速比:1:48 # 无负载转速(3V):168RPM # 无负载转速(6V):300RPM # 无负载时电流(3V):90mA # 无负载时电流(6V):100mA # 扭矩大小 (3V): 0.04N.m # 扭矩大小 (6V): 0.08N.m # 尺寸大小:70.50 mm×27.00 mm×23.00 mm(长×宽×高) # 重量大小: 约30g ===电控部分资料=== ====Carduino UNO控制器==== [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-01C076)CarDuino_UNO_R3%EF%BC%88%E7%9B%B4%E6%8F%92%E8%8A%AF%E7%89%87%EF%BC%89 Carduino UNO相关资料及使用方法]<br/> ====双H桥电机驱动板==== [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-01C025)%E5%8F%8CH%E6%A1%A5%E7%9B%B4%E6%B5%81%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8%E6%9D%BF 双H桥电机驱动板相关资料及使用方法]<br/> ====传感器扩展板==== [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-01C015)Arduino_%E4%BC%A0%E6%84%9F%E5%99%A8%E6%89%A9%E5%B1%95%E6%9D%BFv5.0#.E8.B4.AD.E4.B9.B0.E5.9C.B0.E5.9D.80 V5.0传感器扩展板相关资料及使用方法]<br/> ====大按钮模块==== [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-02S032)_%E6%8C%89%E5%8E%8B%E5%BC%8F%E5%A4%A7%E6%8C%89%E9%92%AE%E6%A8%A1%E5%9D%97 按压式大按钮模块相关资料及使用方法]<br/> ====蓝牙模块==== [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-03T008)RB%E6%97%A0%E7%BA%BF%E8%93%9D%E7%89%99%E6%A8%A1%E5%9D%97 RB无线蓝牙模块相关资料及使用方法]<br/> ====超声波传感器==== [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-02S001)RB_URF02%E8%B6%85%E5%A3%B0%E6%B3%A2%E4%BC%A0%E6%84%9F%E5%99%A8 超声波传感器相关资料及使用方法]<br/> ==安装步骤== ===步骤1:充电接口拨动开关连接线制作=== [http://www.alsrobot.cn/wiki/index.php?title=(SKU:RB-06L012)%E7%94%B5%E6%BA%90%E5%85%85%E7%94%B5%E6%8E%A5%E5%8F%A3%E8%BF%9E%E6%8E%A5%E7%BA%BF 充电接口拨动开关连接线制作步骤详解]<br/> ===平台安装步骤=== ====步骤1:平台侧板电机安装==== 两侧电机安装相同,注意安装前将电机接线用电烙铁焊接好,套上热缩管加热塑封。<br/> 使用零件:平台侧板*2个、直流减速电机*4个、M3*25螺丝*8个、M3六角螺母*8个<br/> [[文件:RB13K07403.png|500px|有框|居中]] ====步骤2:平台底板安装==== 使用零件:步骤1中安装好电机的侧板*2套、平台底板*1个、M3*6螺丝*4个 [[文件:RB13K07404.png|500px|有框|居中]] ====步骤3:双H桥电机驱动板安装==== 驱动板安装方向随意,注意同侧电机接线方向顺序,保证同侧电机转向是相同的。<br/> 使用零件:步骤2中的组合体、双H桥直流电机驱动板*1个、M3*10尼龙柱*4个、M3六角螺母*4个、M3*6螺丝*4个<br/> [[文件:RB13K07405.png|500px|有框|居中]] ====步骤4:电池盒安装==== 电池盒可用双面胶固定,后轮电机接线需插入杜邦线帽,接入步进电机接口<br/> 使用零件:电池盒*1个或锂电池*1块 [[文件:RB13K07406.png|500px|有框|居中|电池盒固定位置]] [[文件:RB13K07414.png|500px|有框|居中|锂电池固定位置]] ====步骤5:4WD端板安装==== 使用零件:4WD端板*2个、步骤4中的组合体、M3*6螺丝*4个、M3六角螺母*4个<br/> [[文件:RB13K07407.png|500px|有框|居中|]] ====步骤6:充电接口、拨动开关安装==== 使用零件:步骤1中制作好的充电开关接口连接线、4WD上板<br/> [[文件:RB13K07408.png|500px|有框|居中|]] ====步骤7:Carduino UNO控制器安装==== 使用零件:步骤6中的组合体、Carduino UNO控制器*1个、M3*10尼龙柱*3个、M3*6螺丝*3个、M3六角螺母*3个<br/> [[文件:RB13K07409.png|500px|有框|居中|]] ====步骤8:4WD上板安装==== 使用零件:4WD平台上板*1个、步骤5中的组合体*1套、M3*6螺丝*4个<br/> [[文件:RB13K07412.png|500px|有框|居中|]] ====步骤9:4WD轮子安装==== 使用零件:步骤8中的组合体*1套、4WD轮子*4个<br/> [[文件:RB13K07413.png|500px|有框|居中|]] ====步骤10:V5.0传感器扩展板插入==== 使用零件:V5.0传感器扩展板*1个、步骤9中安装好的平台*1套<br/> [[文件:RB13K07415.png|500px|有框|居中|]] ====步骤11:蓝牙模块插入==== 注意:蓝牙模块插入前要对控制器进行程序上传,若插上蓝牙模块进行程序上传操作,会造成程序上传不成功问题。<br/> 使用零件:步骤10中的组合体*1套、蓝牙模块*1个<br/> [[文件:RB-13K07903.png|500px|缩略图|居中]] ==整机测试== ===接线说明=== * 数字口2→接超声波 * 数字口10→接RB-421舵机 * 数字口5→接双H桥驱动板的EB * 数字口6→接双H桥驱动板的I4 * 数字口7→接双H桥驱动板的I3 * 数字口8→接双H桥驱动板的I1 * 数字口9→接双H桥驱动板的I2 * 数字口11→接双H桥驱动板的EA ===方向盘端制作=== ====使用零件==== * Carduino UNO 控制器*1个 * Arduino传感器扩展板 V5.0*1个 * 超声波传感器*4 * 大按钮模块*1 * 蓝牙模块*1 * 3P杜邦线*5 ====制作步骤==== 1.盘体制作:首先我们截取一块边长为20cm左右的正方形雪弗板(材料可自行选取)。<br/> 2.大按钮模块固定:用螺丝将大按钮模块固定在雪弗板的中间位置用来启动方向盘。<br/> 3.超声波传感器固定:分别用螺丝将4个超声波传感器固定在雪弗板的4个直角上,用来识别手势,超声波与大按钮模块摆放如下图所示,也可根据实际情况去摆放,一定要标明方向。<br/> [[文件:RB-13K07904.png|500px|缩略图|居中]] ====方向盘接线==== 超声波传感器采用单线模式<br/> * UP超声波传感器接数字口2,用于识别前进的手势。 * Down超声波传感器接数字口3,用于识别后退的手势。 * Left超声波传感器接数字口4,用于识别左转手势。 * Right超声波传感器接数字口5,用于识别右转手势。 * 大按钮模块接数字口6,用于启动方向盘。 ===测试程序=== ====方向盘端程序=== <pre style="color:blue"> int Button=6; //定义Button为数字口6 int z; //定义变量z int b; int duration_1; //定义变量duration_1用来存储脉冲 int distance_1; //定义变量distance_1用来存储距离值 int srfPin_1 = 2; //定义srfPin_1为数字口2 int val1; int duration_2; //定义变量duration_2用来存储脉冲 int distance_2; //定义变量distance_2用来存储距离值 int srfPin_2 = 3; //定义srfPin_2为数字口3 int val2; int duration_3; //定义变量duration_3用来存储脉冲 int distance_3; //定义变量distance_3用来存储距离值 int srfPin_3 = 4; //定义srfPin_3为数字口4 int val3; int duration_4; //定义变量duration_4用来存储脉冲 int distance_4; //定义变量distance_4用来存储距离值 int srfPin_4 = 5; //定义srfPin_4为数字口5 int val4; void setup() { Serial.begin(115200); //设定波特率为115200 pinMode(srfPin_1,OUTPUT); //定义srfPin1为输出模式 pinMode(srfPin_2,OUTPUT); //定义srfPin1为输出模式 pinMode(srfPin_3,OUTPUT); //定义srfPin1为输出模式 pinMode(srfPin_4,OUTPUT); //定义srfPin1为输出模式 pinMode(Button,INPUT); //定义Button为输入模式 } void loop() { if(LOW == digitalRead(Button)) b=1; else b=0; while(b) { val1=Ultrasonic_1(z); //前超声波返回距离值赋值给val1 val2=Ultrasonic_2(z); //后超声波返回距离值赋值给val2 val3=Ultrasonic_3(z); //左超声波返回距离值赋值给val3 val4=Ultrasonic_4(z); //右超声波返回距离值赋值给val4 if((val1>15)&&(val2>15)&&(val3>15)&&(val4>15)) Serial.print('T'); if((val1<15)&&(val3<15)) Serial.print('x'); else if((val1<15)&&(val1<val3)&&(val3<val4)) Serial.print('q'); if((val3<15)&&(val4>15)&&(val3<val1)&&(val3<val2)) Serial.print('l'); if((val1<15)&&(val4<15)) Serial.print('y'); else if((val1<15)&&(val1<val4)&&(val4<val3)) Serial.print('q'); if((val4<15)&&(val3>15)&&(val4<val1)&&(val4<val2)) Serial.print('r'); if((val2<15)&&(val3<15)) Serial.print('m'); else if((val2<15)&&(val2<val3)&&(val3<val4)) Serial.print('h'); if((val2<15)&&(val4<15)) Serial.print('n'); else if((val2<15)&&(val2<val4)&&(val4<val3)) Serial.print('h'); if((val3<15)&&(val4<15)) Serial.print('T'); if((val1<15)&&(val2<15)) Serial.print('T'); } } int Ultrasonic_1(int distance_1) { digitalWrite(srfPin_1, LOW); //高电平触发前发送2微秒的低电平 delayMicroseconds(2); //确保在发送高电平 digitalWrite(srfPin_1, HIGH); //发送10微秒的高电平开始检测 delayMicroseconds(10); digitalWrite(srfPin_1, LOW); //等待脉冲返回前发送一个低电平 pinMode(srfPin_1, INPUT); duration_1 = pulseIn(srfPin_1, HIGH); //从URF02读取脉冲 distance_1 = duration_1/58; //除以58得到距离值 return distance_1; } int Ultrasonic_2(int distance_2) { digitalWrite(srfPin_2, LOW); //高电平触发前发送2微秒的低电平 delayMicroseconds(2); digitalWrite(srfPin_2, HIGH); // 发送10微秒的高电平开始检测 delayMicroseconds(10); digitalWrite(srfPin_2, LOW); //等待脉冲返回前发送一个低电平 pinMode(srfPin_2, INPUT); duration_2 = pulseIn(srfPin_2, HIGH); //从URF02读取脉冲 distance_2 = duration_2/58; //除以58得到距离值 return distance_2; } int Ultrasonic_3(int distance_3) { digitalWrite(srfPin_3, LOW); //高电平触发前发送2微秒的低电平 delayMicroseconds(2); digitalWrite(srfPin_3, HIGH); //发送10微秒的高电平开始检测 delayMicroseconds(10); digitalWrite(srfPin_3, LOW); //等待脉冲返回前发送一个低电平 pinMode(srfPin_3, INPUT); duration_3 = pulseIn(srfPin_3, HIGH); //从URF02读取脉冲 distance_3 = duration_3/58; //除以58得到距离值 return distance_3; } int Ultrasonic_4(int distance_4) { digitalWrite(srfPin_4, LOW); //高电平触发前发送2微秒的低电平 delayMicroseconds(2); digitalWrite(srfPin_4, HIGH); //发送10微秒的高电平开始检测 delayMicroseconds(10); digitalWrite(srfPin_4, LOW); //等待脉冲返回前发送一个低电平 pinMode(srfPin_4, INPUT); duration_4 = pulseIn(srfPin_4, HIGH); //从URF02读取脉冲 distance_4 = duration_4/58; //除以58得到距离值 return distance_4; } </pre> ===平台端程序=== <pre style="color:blue"> void setup() { Serial.print('a'); Serial.begin(115200); //设定波特率为115200 pinMode(8,OUTPUT); //定义I3接口 pinMode(9,OUTPUT); //定义I4接口 pinMode(10,OUTPUT); //定义EB(PWM调速)接口 pinMode(5,OUTPUT); //定义EA(PWM调速)接口 pinMode(6,OUTPUT); //定义I2接口 pinMode(7,OUTPUT); //定义I1接口 } void loop() { switch(Serial.read()) { case 'h': Back(); break; case 'q': Goahead(); break; case 'l': Turn_left(); break; case 'r': Turn_right(); break; case 'T': Stop(); break; case 'x': Goahead1(); break; case 'y': Goahead2(); break; case 'm': Back1(); break; case 'n': Back2(); break; } } void Back()// { analogWrite(5,90); //输入模拟值进行设定速度 digitalWrite(6,LOW); //使直流电机(左)逆时针转 digitalWrite(7,HIGH); analogWrite(10,105); //输入模拟值进行设定速度 digitalWrite(8,LOW); //使直流电机(右)顺时针转 digitalWrite(9,HIGH); } void Back1()// { analogWrite(5,80); //输入模拟值进行设定速度 digitalWrite(6,LOW); //使直流电机(左)逆时针转 digitalWrite(7,HIGH); analogWrite(10,50); //输入模拟值进行设定速度 digitalWrite(8,LOW); //使直流电机(右)顺时针转 digitalWrite(9,HIGH); } void Back2()// { analogWrite(5,50); //输入模拟值进行设定速度 digitalWrite(6,LOW); //使直流电机(左)逆时针转 digitalWrite(7,HIGH); analogWrite(10,105); //输入模拟值进行设定速度 digitalWrite(8,LOW); //使直流电机(右)顺时针转 digitalWrite(9,HIGH); } void Goahead()//前进 { analogWrite(5,90); //输入模拟值进行设定速度 digitalWrite(6,HIGH); //使直流电机(左)顺时针转 digitalWrite(7,LOW); analogWrite(10,105); //输入模拟值进行设定速度 digitalWrite(8,HIGH); //使直流电机(右)逆时针转 digitalWrite(9,LOW); } void Stop()//停止 { digitalWrite(6,HIGH); //使直流电机(左)制动 digitalWrite(7,HIGH); digitalWrite(8,HIGH); //使直流电机(右)制动 digitalWrite(9,HIGH); } void Turn_right() //右转 { analogWrite(5,155); //输入模拟值进行设定速度 digitalWrite(6,LOW); //使直流电机(左)逆时针转 digitalWrite(7,HIGH); analogWrite(10,140); //输入模拟值进行设定速度 digitalWrite(8,HIGH); //使直流电机(右)逆时针转 digitalWrite(9,LOW); } void Turn_left()//左转 { analogWrite(5,140); //输入模拟值进行设定速度 digitalWrite(6,HIGH); //使直流电机(左)逆时针转 digitalWrite(7,LOW); analogWrite(10,155); //输入模拟值进行设定速度 digitalWrite(8,LOW); //使直流电机(右)顺时针转 digitalWrite(9,HIGH); } void Goahead1()//前进 { analogWrite(5,130); //输入模拟值进行设定速度 digitalWrite(6,HIGH); //使直流电机(左)顺时针转 digitalWrite(7,LOW); analogWrite(10,60); //输入模拟值进行设定速度 digitalWrite(8,HIGH); //使直流电机(右)逆时针转 digitalWrite(9,LOW); } void Goahead2()//前进 { analogWrite(5,60); //输入模拟值进行设定速度 digitalWrite(6,HIGH); //使直流电机(左)顺时针转 digitalWrite(7,LOW); analogWrite(10,130); //输入模拟值进行设定速度 digitalWrite(8,HIGH); //使直流电机(右)逆时针转 digitalWrite(9,LOW); } </pre> ==产品相关推荐== [[文件:erweima.png|230px|无框|右]] ===产品购买地址=== [https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3667083713.35.qLHgXg&id=37406674173 AS-4WD超声波手势操控机器人]<br/> ===周边产品推荐=== [http://www.alsrobot.cn/goods-407.html Arduino 4WD铝合金移动平台车灯套件]<br/> [http://www.alsrobot.cn/goods-185.html Arduino 光电码盘 光电测速传感器]<br/> ===相关问题解答=== [http://www.makerspace.cn/forum.php?mod=viewthread&tid=4875&highlight=4WD AS-4WD 碰撞机器人如何安装]<br/> [http://www.makerspace.cn/forum.php?mod=viewthread&tid=5473&fromuid=10780 4wd 红外线巡线壁障车调试助手没有反应]<br/> ===相关学习资料=== [http://www.makerspace.cn/forum.php?mod=viewthread&tid=3953&fromuid=10780 视频:机器人调试助手无线操控AS-4WD轮式机器人]<br/> [http://v.youku.com/v_show/id_XMjgwMjk0NDE2.html 视频:Arduino-4WD移动机器人寻线功能演示]<br/> [http://v.youku.com/v_show/id_XMjgwMjkyNDM2.html 视频:Arduino-4WD移动机器人碰撞功能演示]<br/> [http://v.youku.com/v_show/id_XMjgwMjk4MjU2.html 视频:Arduino-4WD移动机器人追光功能演示]<br/> [http://v.youku.com/v_show/id_XMjgwNTg5NTI4.html 视频:Arduino-4WD移动机器人寻线与避障功能演示]<br/> [http://v.youku.com/v_show/id_XMzQyNzk2MzM2.html 视频:Arduino-4WD移动机器人侦测避障功能演示]<br/> [http://v.youku.com/v_show/id_XNjQ2MDY0MDg=.html?from=y1.7-2 视频:直流减速电机驱动实例]<br/> [http://www.makerspace.cn/portal.php 奥松机器人技术论坛]<br/>
返回
(RB-13K079)AS-4WD超声波手势操控机器人
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面
页面信息