“(RB-13K074)AS-4WD寻线避障移动机器人”的版本间的差异

来自ALSROBOT WiKi
跳转至: 导航搜索
例子程序
 
(未显示1个用户的3个中间版本)
第89行: 第89行:
 
void setup()
 
void setup()
 
{
 
{
pinMode(8,OUTPUT);//定义I1 接口
+
 
pinMode(9,OUTPUT);//定义I2 接口
+
  /*MsTimer2::set(1000, flash); // 500ms period
pinMode(10,OUTPUT);//定义EA(PWM 调速)接口
+
  MsTimer2::start();
pinMode(5,OUTPUT);//定义EB(PWM 调速)接口
+
  counterStart();*/
pinMode(6,OUTPUT);//定义I4 接口
+
  pinMode(8,OUTPUT);//定义输入、输出接口
pinMode(7,OUTPUT);//定义I3 接口
+
  pinMode(9,OUTPUT);
pinMode(2,INPUT);//定义寻线
+
  pinMode(10,OUTPUT);
pinMode(3,INPUT);//定义寻线
+
  pinMode(5,OUTPUT);
pinMode(4,INPUT);//定义寻线
+
  pinMode(6,OUTPUT);
pinMode(11,INPUT);//定义寻线
+
  pinMode(7,OUTPUT);
pinMode(12,INPUT);//定义寻线
+
  pinMode(11,INPUT);
pinMode(14,INPUT);//定义避障
+
  pinMode(12,INPUT);
pinMode(15,INPUT);//定义避障
+
  pinMode(14,INPUT);
pinMode(15,INPUT);//定义避障
+
  pinMode(2,INPUT);
 +
  pinMode(3,INPUT);
 +
  pinMode(4,INPUT);
 +
 
 
}
 
}
void qianjin()//前进
+
/*void counterStart()
 
{
 
{
analogWrite(10,110);//输入模拟值进行设定速度
+
  TCCR1A=0;                      
analogWrite(5,110);
+
  TCCR1B=0;              
digitalWrite(7,HIGH);//使直流电机运转
+
  TCNT1=0;                    
digitalWrite(6,LOW);
+
  TCCR1B = TCCR1B | 7;  
digitalWrite(8,LOW);//使直流电机运转
+
digitalWrite(9,HIGH);
+
 
}
 
}
void youzhuan1()//右转
+
*/
 +
void qianjin()//前进
 
{
 
{
analogWrite(10,110);//输入模拟值进行设定速度
+
    digitalWrite(10,300);//输入数字量进行设定速度
analogWrite(5,110);
+
    digitalWrite(5,300);  
digitalWrite(7,LOW);//使直流电机运转
+
    digitalWrite(9,HIGH);//使直流电机(右)顺时针转
digitalWrite(6,HIGH);
+
    digitalWrite(8,LOW);
digitalWrite(8,LOW);//使直流电机运转
+
    digitalWrite(7,HIGH);//使直流电机(左)逆时针转
digitalWrite(9,HIGH);
+
    digitalWrite(6,LOW);
 
}
 
}
void youzhuan2()//右转
+
void zuozhuan()//  
 
{
 
{
analogWrite(10,110);//输入模拟值进行设定速度
+
   
analogWrite(5,110);
+
    digitalWrite(10,100);//输入数字量进行设定速度
digitalWrite(7,LOW);//使直流电机运转
+
    digitalWrite(5,100);
digitalWrite(6,HIGH);
+
    digitalWrite(6,LOW);//使直流电机(右)逆时针转
digitalWrite(8,LOW);//使直流电机运转
+
    digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
+
    digitalWrite(8,HIGH);//使直流电机(左)逆时针转
 +
    digitalWrite(9,LOW);
 
}
 
}
void zuozhuan1()//左转
+
void youzhuan()//
 
{
 
{
analogWrite(10,110);//输入模拟值进行设定速度
+
   
analogWrite(5,110);
+
    digitalWrite(10,100);//输入数字量进行设定速度
digitalWrite(7,HIGH);//使直流电机运转
+
    digitalWrite(5,100);
digitalWrite(6,LOW);
+
    digitalWrite(6,HIGH);//使直流电机(右)顺时针转
digitalWrite(8,HIGH);//使直流电机运转
+
    digitalWrite(7,LOW);
digitalWrite(9,LOW);
+
    digitalWrite(8,LOW);//使直流电机(左)顺时针转
}
+
    digitalWrite(9,HIGH);
void zuozhuan2()//左转
+
{
+
analogWrite(10,110);//输入模拟值进行设定速度
+
analogWrite(5,110);
+
digitalWrite(7,HIGH);//使直流电机运转
+
digitalWrite(6,LOW);
+
digitalWrite(8,HIGH);//使直流电机运转
+
digitalWrite(9,LOW);
+
 
}
 
}
 
void tingzhi()//停止
 
void tingzhi()//停止
 
{
 
{
digitalWrite(7,HIGH);//使直流电机(右)停转
+
    digitalWrite(6,HIGH);//使直流电机(右)制动
digitalWrite(6,HIGH);
+
    digitalWrite(7,HIGH);
digitalWrite(8,HIGH);//使直流电机(左)停转
+
    digitalWrite(8,HIGH);//使直流电机(左)制动
digitalWrite(9,HIGH);
+
    digitalWrite(9,HIGH);
 
}
 
}
void houtui()//后退
+
void houtui(int a)
 
{
 
{
analogWrite(10,110);//输入模拟值进行设定速度
+
    analogWrite(10,a);//输入模拟值进行设定速度
analogWrite(5,110);
+
 
digitalWrite(7,LOW);//使直流电机运转
+
    analogWrite(5,a);
digitalWrite(6,HIGH);
+
    digitalWrite(6,HIGH);//使直流电机(右)逆时针转
digitalWrite(8,HIGH);//使直流电机运转
+
    digitalWrite(7,LOW);
digitalWrite(9,LOW);
+
    digitalWrite(9,LOW);//使直流电机(左)顺时针转
 +
    digitalWrite(8,HIGH);
 +
   
 
}
 
}
 
void loop()
 
void loop()
 
{
 
{
int l,m1,m2,m3,r,b1,b2,b3;
+
    int r,m,l;//定义寻线传感器接口
l=digitalRead(12);
+
    r=digitalRead(2);//定义右侧寻线接口
m1=digitalRead(11);
+
    m=digitalRead(3);//定义中间寻线接口
m2=digitalRead(4);
+
    l=digitalRead(4);//定义左侧寻线接口
m3=digitalRead(3);
+
    int r1,m1,l1;//定义避障传感器接口
r=digitalRead(2);
+
    r1=digitalRead(A1);//定义右侧避障接口
b1=digitalRead(14);
+
    m1=digitalRead(11);//定义中间避障接口
b2=digitalRead(15);
+
    l1=digitalRead(12);//定义左侧避障接口
b3=digitalRead(16);
+
 
if(l==LOW || m1==LOW || m2==LOW || m3==LOW || r==LOW)
+
 
//判断是否有黑线有则继续
+
  if(l==HIGH || m==HIGH || r==HIGH)//判断是否有黑线 有则继续
{
+
    {
if(l==LOW && m1==LOW && m2==LOW && m3==LOW && r==LOW)
+
      if(l==HIGH && m==HIGH && r==HIGH)
qianjin();
+
      qianjin();
if(l==HIGH && m1==HIGH && m2==LOW && m3==HIGH && r==HIGH)
+
      if(l==LOW && m==HIGH && r==LOW)
qianjin();
+
      qianjin();
if(l==HIGH && m1==HIGH && m2==LOW && m3==LOW && r==HIGH)
+
      if(l==HIGH && m==LOW && r==LOW)  
youzhuan1();
+
      {
if(l==HIGH && m1==HIGH && m2==HIGH && m3==LOW && r==LOW)
+
        zuozhuan();
youzhuan2();
+
        delay(400);
if(l==HIGH && m1==HIGH && m2==HIGH && m3==LOW && r==HIGH)
+
        tingzhi();
youzhuan1();
+
        delay(80);
if(l==HIGH && m1==HIGH && m2==HIGH && m3==HIGH && r==LOW)
+
      }
youzhuan2();
+
      if(l==LOW && m==LOW && r==HIGH)
if(l==HIGH && m1==LOW && m2==LOW && m3==HIGH && r==HIGH)
+
      {
zuozhuan1();
+
        youzhuan();
if(l==LOW && m1==LOW && m2==HIGH && m3==HIGH && r==HIGH)
+
        delay(400);
zuozhuan2();
+
        tingzhi();
if(l==HIGH && m1==LOW && m2==HIGH && m3==HIGH && r==HIGH)
+
        delay(80);
zuozhuan1();
+
      }
if(l==LOW && m1==HIGH && m2==HIGH && m3==HIGH && r==HIGH)
+
      if(l==HIGH && m==HIGH && r==LOW)
zuozhuan2();
+
      {
}
+
        zuozhuan();
if(l==HIGH && m1==HIGH && m2==HIGH && m3==HIGH && r==HIGH)
+
        delay(400);
//无黑线情况下判断是否有障碍有则继续
+
        tingzhi();
{
+
        delay(80);
if(b1==HIGH && b2==HIGH && b3==HIGH)
+
      }
qianjin();
+
      if(l==LOW && m==HIGH && r==HIGH)
if(b1==HIGH && b2==HIGH && b3==LOW)
+
      {
{
+
        youzhuan();
houtui();
+
        delay(400);
delay(300);
+
        tingzhi();
zuozhuan1();
+
        delay(80);
delay(300);
+
      }  
}
+
    }
if(b1==HIGH && b2==LOW && b3==LOW)
+
    if(l==LOW && m==LOW && r==LOW)//判断是否有障碍 有则继续
{
+
    {
houtui();
+
      if(l1==HIGH && m1==HIGH && r1==HIGH)
delay(300);
+
      qianjin();
zuozhuan1();
+
      if(l1==HIGH && m1==LOW && r1==HIGH)
delay(300);
+
      {
}
+
        houtui(200);
if(b1==LOW && b2==HIGH && b3==HIGH)
+
        delay(400);
{
+
        zuozhuan();
houtui();
+
        delay(300);
delay(300);
+
      }
youzhuan1();
+
      if(l1==HIGH && m1==HIGH && r1==LOW)
delay(300);
+
      youzhuan();
}
+
      if(l1==LOW && m1==HIGH && r1==HIGH)
if(b1==LOW && b2==LOW && b3==HIGH)
+
      zuozhuan();
{
+
      if(l1==HIGH && m1==LOW && r1==LOW)
houtui();
+
      youzhuan();
delay(300);
+
      if(l1==LOW && m1==LOW && r1==HIGH)
youzhuan1();
+
      zuozhuan();
delay(300);
+
      if(l1==LOW && m1==LOW && r1==LOW)
}
+
      {
if(b1==LOW && b2==LOW && b3==LOW)
+
        houtui(200);
{
+
        delay(400);
houtui();
+
        youzhuan();
delay(300);
+
        delay(300);
youzhuan1();
+
      }
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的最后版本

RB13K07401.png

目录

产品概述

哈尔滨奥松机器人科技有限公司最新推出的AS-4WD寻线避障移动机器人套件是自主研发并生产的一款机器人套件。该套件可以智能判断引导线并检测躲避障碍物,可实现自动导引和避障功能,AS-4WD寻线避障移动机器人使用Mini红外寻线传感器感知引导线,使用Mini红外避障传感器感知障碍物。

产品清单

RB13K07402.png

配件参数

直流减速电机(1:48)

  1. 驱动电机齿轮箱减速比:1:48
  2. 无负载转速(3V):168RPM
  3. 无负载转速(6V):300RPM
  4. 无负载时电流(3V):90mA
  5. 无负载时电流(6V):100mA
  6. 扭矩大小 (3V): 0.04N.m
  7. 扭矩大小 (6V): 0.08N.m
  8. 尺寸大小:70.50 mm×27.00 mm×23.00 mm(长×宽×高)
  9. 重量大小: 约30g

电控部分资料

Carduino UNO控制器

Carduino UNO相关资料及使用方法

双H桥电机驱动板

双H桥电机驱动板相关资料及使用方法

Mini红外寻线传感器

Mini红外寻线传感器相关资料及使用方法

Mini红外避障传感器

Mini红外避障传感器相关资料及使用方法

传感器扩展板

V5.0传感器扩展板相关资料及使用方法

安装步骤

步骤1:充电接口拨动开关连接线制作

充电接口拨动开关连接线制作步骤详解

平台安装步骤

步骤1:平台侧板电机安装

两侧电机安装相同,注意安装前将电机接线用电烙铁焊接好,套上热缩管加热塑封。
使用零件:平台侧板*2个、直流减速电机*4个、M3*25螺丝*8个、M3六角螺母*8个

RB13K07403.png

步骤2:平台底板安装

使用零件:步骤1中安装好电机的侧板*2套、平台底板*1个、M3*6螺丝*4个

RB13K07404.png

步骤3:双H桥电机驱动板安装

驱动板安装方向随意,注意同侧电机接线方向顺序,保证同侧电机转向是相同的。
使用零件:步骤2中的组合体、双H桥直流电机驱动板*1个、M3*10尼龙柱*4个、M3六角螺母*4个、M3*6螺丝*4个

RB13K07405.png

步骤4:电池盒安装

电池盒可用双面胶固定,后轮电机接线需插入杜邦线帽,接入步进电机接口
使用零件:电池盒*1个或锂电池*1块

电池盒固定位置
锂电池固定位置

步骤5:4WD端板安装

使用零件:4WD端板*1个、步骤4中的组合体*1个、M3*6螺丝*4个、M3六角螺母*4个

RB13K07407.png

步骤6:充电接口、拨动开关安装

使用零件:步骤1中制作好的充电开关接口连接线、4WD上板

RB13K07408.png

步骤7:Carduino UNO控制器安装

使用零件:步骤6中的组合体、Carduino UNO控制器*1个、M3*10尼龙柱*3个、M3*6螺丝*3个、M3六角螺母*3个

RB13K07409.png

步骤8:避障传感器安装

使用零件:M3*20尼龙柱*3个、M3*6螺丝*3个、M3六角螺母*3个、避障传感器*3个

RB13K07410.png

步骤9:寻线传感器安装

使用零件:寻线传感器*5个、M3*8螺丝*5个、M3六角螺母*5个、步骤5中的组合体*1套

RB13K07411.png

步骤10:4WD上板安装

使用零件:4WD平台上板*1个、步骤9中的组合体*1套

RB13K07412.png

步骤11:4WD轮子安装

使用零件:步骤9中的组合体*1套、4WD轮子*4个

RB13K07413.png

步骤12:V5.0传感器扩展板插入

使用零件:V5.0传感器扩展板*1个、步骤11中安装好的平台*1套

RB13K07415.png

整机测试

接线说明

接线图:

RB13K07416.png

接线说明:

  • 数字口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);
      }
    }
}

视频演示

4wd xun xian01.png
4wd xun xian02.png


产品相关推荐

Erweima.png

产品购买地址

AS-4WD寻线避障移动机器人平台

周边产品推荐

Arduino 4WD铝合金移动平台车灯套件
Arduino 光电码盘 光电测速传感器

相关问题解答

AS-4WD 碰撞机器人如何安装
4wd 红外线巡线壁障车调试助手没有反应

相关学习资料

视频:机器人调试助手无线操控AS-4WD轮式机器人
视频:Arduino-4WD移动机器人寻线功能演示
视频:Arduino-4WD移动机器人碰撞功能演示
视频:Arduino-4WD移动机器人追光功能演示
视频:Arduino-4WD移动机器人寻线与避障功能演示
视频:Arduino-4WD移动机器人侦测避障功能演示
视频:直流减速电机驱动实例
奥松机器人技术论坛