“(RB-13K074)AS-4WD寻线避障移动机器人”的版本间的差异
(→例子程序) |
|||
(未显示1个用户的3个中间版本) | |||
第89行: | 第89行: | ||
void setup() | void setup() | ||
{ | { | ||
− | + | ||
− | + | /*MsTimer2::set(1000, flash); // 500ms period | |
− | pinMode( | + | MsTimer2::start(); |
− | pinMode( | + | counterStart();*/ |
− | pinMode( | + | pinMode(8,OUTPUT);//定义输入、输出接口 |
− | pinMode( | + | pinMode(9,OUTPUT); |
− | pinMode( | + | pinMode(10,OUTPUT); |
− | pinMode( | + | pinMode(5,OUTPUT); |
− | pinMode( | + | pinMode(6,OUTPUT); |
− | pinMode( | + | pinMode(7,OUTPUT); |
− | pinMode( | + | pinMode(11,INPUT); |
− | pinMode( | + | pinMode(12,INPUT); |
− | pinMode( | + | pinMode(14,INPUT); |
− | pinMode( | + | pinMode(2,INPUT); |
+ | pinMode(3,INPUT); | ||
+ | pinMode(4,INPUT); | ||
+ | |||
} | } | ||
− | void | + | /*void counterStart() |
{ | { | ||
− | + | TCCR1A=0; | |
− | + | TCCR1B=0; | |
− | + | TCNT1=0; | |
− | + | TCCR1B = TCCR1B | 7; | |
− | + | ||
− | + | ||
} | } | ||
− | void | + | */ |
+ | void qianjin()//前进 | ||
{ | { | ||
− | + | digitalWrite(10,300);//输入数字量进行设定速度 | |
− | + | digitalWrite(5,300); | |
− | digitalWrite( | + | digitalWrite(9,HIGH);//使直流电机(右)顺时针转 |
− | digitalWrite( | + | digitalWrite(8,LOW); |
− | digitalWrite( | + | digitalWrite(7,HIGH);//使直流电机(左)逆时针转 |
− | digitalWrite( | + | digitalWrite(6,LOW); |
} | } | ||
− | void | + | void zuozhuan()// |
{ | { | ||
− | + | ||
− | + | digitalWrite(10,100);//输入数字量进行设定速度 | |
− | digitalWrite( | + | digitalWrite(5,100); |
− | digitalWrite( | + | digitalWrite(6,LOW);//使直流电机(右)逆时针转 |
− | digitalWrite(8, | + | digitalWrite(7,HIGH); |
− | digitalWrite(9, | + | digitalWrite(8,HIGH);//使直流电机(左)逆时针转 |
+ | digitalWrite(9,LOW); | ||
} | } | ||
− | void | + | void youzhuan()// |
{ | { | ||
− | + | ||
− | + | digitalWrite(10,100);//输入数字量进行设定速度 | |
− | + | digitalWrite(5,100); | |
− | digitalWrite(6 | + | digitalWrite(6,HIGH);//使直流电机(右)顺时针转 |
− | + | digitalWrite(7,LOW); | |
− | + | digitalWrite(8,LOW);//使直流电机(左)顺时针转 | |
− | + | digitalWrite(9,HIGH); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | digitalWrite(7 | + | |
− | + | ||
− | digitalWrite(8, | + | |
− | digitalWrite(9, | + | |
} | } | ||
void tingzhi()//停止 | void tingzhi()//停止 | ||
{ | { | ||
− | digitalWrite( | + | digitalWrite(6,HIGH);//使直流电机(右)制动 |
− | digitalWrite( | + | digitalWrite(7,HIGH); |
− | digitalWrite(8,HIGH);// | + | digitalWrite(8,HIGH);//使直流电机(左)制动 |
− | digitalWrite(9,HIGH); | + | digitalWrite(9,HIGH); |
} | } | ||
− | void houtui() | + | void houtui(int a) |
{ | { | ||
− | analogWrite(10, | + | analogWrite(10,a);//输入模拟值进行设定速度 |
− | analogWrite(5, | + | |
− | digitalWrite( | + | analogWrite(5,a); |
− | digitalWrite( | + | digitalWrite(6,HIGH);//使直流电机(右)逆时针转 |
− | digitalWrite( | + | digitalWrite(7,LOW); |
− | digitalWrite( | + | digitalWrite(9,LOW);//使直流电机(左)顺时针转 |
+ | digitalWrite(8,HIGH); | ||
+ | |||
} | } | ||
void loop() | void loop() | ||
{ | { | ||
− | int | + | int r,m,l;//定义寻线传感器接口 |
− | + | r=digitalRead(2);//定义右侧寻线接口 | |
− | + | m=digitalRead(3);//定义中间寻线接口 | |
− | + | l=digitalRead(4);//定义左侧寻线接口 | |
− | + | int r1,m1,l1;//定义避障传感器接口 | |
− | + | r1=digitalRead(A1);//定义右侧避障接口 | |
− | + | m1=digitalRead(11);//定义中间避障接口 | |
− | + | l1=digitalRead(12);//定义左侧避障接口 | |
− | + | ||
− | if(l== | + | |
− | // | + | if(l==HIGH || m==HIGH || r==HIGH)//判断是否有黑线 有则继续 |
− | { | + | { |
− | if(l== | + | if(l==HIGH && m==HIGH && r==HIGH) |
− | qianjin(); | + | qianjin(); |
− | if(l | + | if(l==LOW && m==HIGH && r==LOW) |
− | qianjin(); | + | qianjin(); |
− | if(l==HIGH && | + | if(l==HIGH && m==LOW && r==LOW) |
− | + | { | |
− | + | zuozhuan(); | |
− | + | delay(400); | |
− | if(l== | + | tingzhi(); |
− | + | delay(80); | |
− | + | } | |
− | + | if(l==LOW && m==LOW && r==HIGH) | |
− | if(l==HIGH && | + | { |
− | + | youzhuan(); | |
− | + | delay(400); | |
− | + | tingzhi(); | |
− | if(l | + | delay(80); |
− | + | } | |
− | + | if(l==HIGH && m==HIGH && r==LOW) | |
− | + | { | |
− | } | + | zuozhuan(); |
− | if(l== | + | delay(400); |
− | // | + | tingzhi(); |
− | { | + | delay(80); |
− | if( | + | } |
− | qianjin(); | + | if(l==LOW && m==HIGH && r==HIGH) |
− | if( | + | { |
− | { | + | youzhuan(); |
− | houtui(); | + | delay(400); |
− | delay( | + | tingzhi(); |
− | + | delay(80); | |
− | delay(300); | + | } |
− | } | + | } |
− | if( | + | if(l==LOW && m==LOW && r==LOW)//判断是否有障碍 有则继续 |
− | + | { | |
− | + | if(l1==HIGH && m1==HIGH && r1==HIGH) | |
− | + | qianjin(); | |
− | + | if(l1==HIGH && m1==LOW && r1==HIGH) | |
− | + | { | |
− | + | houtui(200); | |
− | if( | + | delay(400); |
− | + | zuozhuan(); | |
− | + | delay(300); | |
− | + | } | |
− | + | if(l1==HIGH && m1==HIGH && r1==LOW) | |
− | + | youzhuan(); | |
− | + | if(l1==LOW && m1==HIGH && r1==HIGH) | |
− | if( | + | zuozhuan(); |
− | + | if(l1==HIGH && m1==LOW && r1==LOW) | |
− | + | youzhuan(); | |
− | + | if(l1==LOW && m1==LOW && r1==HIGH) | |
− | + | zuozhuan(); | |
− | + | if(l1==LOW && m1==LOW && r1==LOW) | |
− | + | { | |
− | if( | + | houtui(200); |
− | { | + | delay(400); |
− | houtui(); | + | youzhuan(); |
− | delay( | + | delay(300); |
− | + | } | |
− | delay(300); | + | } |
− | } | + | |
− | } | + | |
} | } | ||
+ | |||
</pre> | </pre> | ||
+ | ==视频演示== | ||
+ | [[File:4wd xun xian01.png|400px|左|link=http://v.youku.com/v_show/id_XMjgwNTg5NTI4.html?from=y1.7-2]] | ||
+ | [[File:4wd xun xian02.png|400px|居中|link=http://v.youku.com/v_show/id_XMjgwMjk0NDE2.html?from=y1.7-2]] | ||
+ | <br/> | ||
==产品相关推荐== | ==产品相关推荐== | ||
[[文件:erweima.png|230px|无框|右]] | [[文件:erweima.png|230px|无框|右]] |
2016年6月2日 (四) 17:10的最后版本
目录 |
产品概述
哈尔滨奥松机器人科技有限公司最新推出的AS-4WD寻线避障移动机器人套件是自主研发并生产的一款机器人套件。该套件可以智能判断引导线并检测躲避障碍物,可实现自动导引和避障功能,AS-4WD寻线避障移动机器人使用Mini红外寻线传感器感知引导线,使用Mini红外避障传感器感知障碍物。
产品清单
配件参数
直流减速电机(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控制器
双H桥电机驱动板
Mini红外寻线传感器
Mini红外避障传感器
传感器扩展板
安装步骤
步骤1:充电接口拨动开关连接线制作
平台安装步骤
步骤1:平台侧板电机安装
两侧电机安装相同,注意安装前将电机接线用电烙铁焊接好,套上热缩管加热塑封。
使用零件:平台侧板*2个、直流减速电机*4个、M3*25螺丝*8个、M3六角螺母*8个
步骤2:平台底板安装
使用零件:步骤1中安装好电机的侧板*2套、平台底板*1个、M3*6螺丝*4个
步骤3:双H桥电机驱动板安装
驱动板安装方向随意,注意同侧电机接线方向顺序,保证同侧电机转向是相同的。
使用零件:步骤2中的组合体、双H桥直流电机驱动板*1个、M3*10尼龙柱*4个、M3六角螺母*4个、M3*6螺丝*4个
步骤4:电池盒安装
电池盒可用双面胶固定,后轮电机接线需插入杜邦线帽,接入步进电机接口
使用零件:电池盒*1个或锂电池*1块
步骤5:4WD端板安装
使用零件:4WD端板*1个、步骤4中的组合体*1个、M3*6螺丝*4个、M3六角螺母*4个
步骤6:充电接口、拨动开关安装
使用零件:步骤1中制作好的充电开关接口连接线、4WD上板
步骤7:Carduino UNO控制器安装
使用零件:步骤6中的组合体、Carduino UNO控制器*1个、M3*10尼龙柱*3个、M3*6螺丝*3个、M3六角螺母*3个
步骤8:避障传感器安装
使用零件:M3*20尼龙柱*3个、M3*6螺丝*3个、M3六角螺母*3个、避障传感器*3个
步骤9:寻线传感器安装
使用零件:寻线传感器*5个、M3*8螺丝*5个、M3六角螺母*5个、步骤5中的组合体*1套
步骤10:4WD上板安装
使用零件:4WD平台上板*1个、步骤9中的组合体*1套
步骤11:4WD轮子安装
使用零件:步骤9中的组合体*1套、4WD轮子*4个
步骤12:V5.0传感器扩展板插入
使用零件:V5.0传感器扩展板*1个、步骤11中安装好的平台*1套
整机测试
接线说明
接线图:
接线说明:
- 数字口5→接双H 桥驱动板的EB
- 数字口6→接双H 桥驱动板的I4
- 数字口7→接双H 桥驱动板的I3
- 数字口8→接双H 桥驱动板的I1
- 数字口9→接双H 桥驱动板的I2
- 数字口10→接双H 桥驱动板的EA
- 寻线传感器从左至右依次接Arduino 控制器的数字口2、数字口3、数字口4、数字口11、数字口12。
- 左侧避障传感器接模拟口2、中间避障传感器接模拟口1、右侧避障传感器接模拟口0。
例子程序
void setup() { /*MsTimer2::set(1000, flash); // 500ms period MsTimer2::start(); counterStart();*/ pinMode(8,OUTPUT);//定义输入、输出接口 pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(11,INPUT); pinMode(12,INPUT); pinMode(14,INPUT); pinMode(2,INPUT); pinMode(3,INPUT); pinMode(4,INPUT); } /*void counterStart() { TCCR1A=0; TCCR1B=0; TCNT1=0; TCCR1B = TCCR1B | 7; } */ void qianjin()//前进 { digitalWrite(10,300);//输入数字量进行设定速度 digitalWrite(5,300); digitalWrite(9,HIGH);//使直流电机(右)顺时针转 digitalWrite(8,LOW); digitalWrite(7,HIGH);//使直流电机(左)逆时针转 digitalWrite(6,LOW); } void zuozhuan()// { digitalWrite(10,100);//输入数字量进行设定速度 digitalWrite(5,100); digitalWrite(6,LOW);//使直流电机(右)逆时针转 digitalWrite(7,HIGH); digitalWrite(8,HIGH);//使直流电机(左)逆时针转 digitalWrite(9,LOW); } void youzhuan()// { digitalWrite(10,100);//输入数字量进行设定速度 digitalWrite(5,100); digitalWrite(6,HIGH);//使直流电机(右)顺时针转 digitalWrite(7,LOW); digitalWrite(8,LOW);//使直流电机(左)顺时针转 digitalWrite(9,HIGH); } void tingzhi()//停止 { digitalWrite(6,HIGH);//使直流电机(右)制动 digitalWrite(7,HIGH); digitalWrite(8,HIGH);//使直流电机(左)制动 digitalWrite(9,HIGH); } void houtui(int a) { analogWrite(10,a);//输入模拟值进行设定速度 analogWrite(5,a); digitalWrite(6,HIGH);//使直流电机(右)逆时针转 digitalWrite(7,LOW); digitalWrite(9,LOW);//使直流电机(左)顺时针转 digitalWrite(8,HIGH); } void loop() { int r,m,l;//定义寻线传感器接口 r=digitalRead(2);//定义右侧寻线接口 m=digitalRead(3);//定义中间寻线接口 l=digitalRead(4);//定义左侧寻线接口 int r1,m1,l1;//定义避障传感器接口 r1=digitalRead(A1);//定义右侧避障接口 m1=digitalRead(11);//定义中间避障接口 l1=digitalRead(12);//定义左侧避障接口 if(l==HIGH || m==HIGH || r==HIGH)//判断是否有黑线 有则继续 { if(l==HIGH && m==HIGH && r==HIGH) qianjin(); if(l==LOW && m==HIGH && r==LOW) qianjin(); if(l==HIGH && m==LOW && r==LOW) { zuozhuan(); delay(400); tingzhi(); delay(80); } if(l==LOW && m==LOW && r==HIGH) { youzhuan(); delay(400); tingzhi(); delay(80); } if(l==HIGH && m==HIGH && r==LOW) { zuozhuan(); delay(400); tingzhi(); delay(80); } if(l==LOW && m==HIGH && r==HIGH) { youzhuan(); delay(400); tingzhi(); delay(80); } } if(l==LOW && m==LOW && r==LOW)//判断是否有障碍 有则继续 { if(l1==HIGH && m1==HIGH && r1==HIGH) qianjin(); if(l1==HIGH && m1==LOW && r1==HIGH) { houtui(200); delay(400); zuozhuan(); delay(300); } if(l1==HIGH && m1==HIGH && r1==LOW) youzhuan(); if(l1==LOW && m1==HIGH && r1==HIGH) zuozhuan(); if(l1==HIGH && m1==LOW && r1==LOW) youzhuan(); if(l1==LOW && m1==LOW && r1==HIGH) zuozhuan(); if(l1==LOW && m1==LOW && r1==LOW) { houtui(200); delay(400); youzhuan(); delay(300); } } }
视频演示
产品相关推荐
产品购买地址
周边产品推荐
Arduino 4WD铝合金移动平台车灯套件
Arduino 光电码盘 光电测速传感器
相关问题解答
AS-4WD 碰撞机器人如何安装
4wd 红外线巡线壁障车调试助手没有反应
相关学习资料
视频:机器人调试助手无线操控AS-4WD轮式机器人
视频:Arduino-4WD移动机器人寻线功能演示
视频:Arduino-4WD移动机器人碰撞功能演示
视频:Arduino-4WD移动机器人追光功能演示
视频:Arduino-4WD移动机器人寻线与避障功能演示
视频:Arduino-4WD移动机器人侦测避障功能演示
视频:直流减速电机驱动实例
奥松机器人技术论坛