当前位置: 直线机 >> 直线机市场 >> 科技改变生活,动手做,直线跟随机器人
直线跟随机器人,顾名思义,是一种自动引导车辆,它沿着嵌入在地板或天花板上的视觉线前进。通常,视觉线是直线跟随机器人所走的路径,它将是一条在白色表面上的黑线,但也可能是另一种方式(在黑色表面上的白线)。某些先进的线跟随机器人使用看不见的磁场作为他们的运行路径。
大型线跟随机器人通常用于工业中,协助自动化生产过程。它们也被用于军事、人类援助目的、交付服务等。
线跟随机器人是一个简单的机器人,初学者将得到他们第一次设计机器人的经验。在这个项目中,我们使用Arduino等组件设计了一个简单的线跟随机器人。
电路图
所需组件
ArduinoUNO(或ArduinoNano)LD电机驱动器集成电路减速电机x2机器人底盘红外传感器模块x2黑色胶带(电气绝缘胶带)连接线电源电池接头电池座注意:我们使用了一个预建的红外传感器模块,它由一个红外LED和一个光电二极管组成。如果您没有这个功能,我们已经解释了如何自己构建一个。
项目流程图
在这个项目中建立的线跟随机器人分为4个流程。下图为线跟随器机器人的流程图。
方框图说明
传感器(IR传感器):我们将IR传感器模块用作项目的线路检测传感器。它由一个红外LED和一个光电二极管以及其他一些组件(例如比较器,LED等)组成。
如前所述,我们使用了预组装的红外传感器。万一没有,可以使用以下电路制作自己的传感器。
红外跟踪器的工作及其在该项目中的作用范围将在线路跟踪机器人的实际工作中进行说明。
控制器(ArduinoUNO):ArduinoUNO是项目中的主要控制器。来自传感器(IR传感器)的数据将提供给Arduino,并向电机驱动器IC提供相应的信号。
电机驱动器(LD):LD电机驱动器IC在该项目中用于驱动机器人的电机。它根据来自红外传感器的信息从Arduino接收信号。
注意:电机的电源必须由电机驱动器IC提供。因此,选择适合所有组件(包括电动机)的适当电源。
电动机(齿轮电动机):我们在线路随动机器人的后部使用了两个齿轮电动机。与普通电动机相比,这些电动机提供更大的转矩,也可用于承受一定的负载。
Arduino线路跟踪机器人如何工作
在这个项目中,我们设计了一个基于Arduino的线路跟踪机器人。该项目的工作非常简单:检测表面上的黑线并沿该线移动。在此说明详细的工作。
如框图中所述,我们需要传感器来检测线路。对于线路检测逻辑,我们使用了两个红外传感器,其中包括红外LED和光电二极管。它们以反射方式并排放置,以便每当它们进入反射面附近时,IRLED发出的光就会被光电二极管检测到。
下图显示了典型的IR传感器(IRLED–光电二极管对)在浅色表面和黑色表面之前的工作情况。由于浅色表面的反射率较高,因此IRLED发出的红外光将被最大程度地反射,并被光电二极管检测到。
在黑色表面反射率低的情况下,光会完全被黑色表面吸收,而不会到达光电二极管。
使用相同的原理,我们将在路线跟随器机器人上设置红外传感器,以使两个红外传感器位于地板上黑线的两侧。设置如下所示。
当机器人向前移动时,两个传感器都等待检测到线路。例如,如果上图中的IR传感器1检测到黑线,则意味着前方存在右弯(或转弯)。
ArduinoUNO检测到此变化,并相应地将信号发送到电机驱动器。为了向右转,使用PWM降低了机器人右侧的电机,而左侧的电机以正常速度运行。
同样,当红外传感器2首先检测到黑线时,这意味着前方有一条左弯,机器人必须向左转。为了使机器人向左转,机器人左侧的电机会减慢速度(或者可以完全停止,也可以反向旋转),而右侧的电机则以正常速度运行。
ArduinoUNO持续监控来自两个传感器的数据,并根据它们检测到的线路调整机器人运行轨迹。
代码
intmot1=9;
intmot2=6;
intmot3=5;
intmot4=3;
intleft=13;
intright=12;
intLeft=0;
intRight=0;
voidLEFT(void);
voidRIGHT(void);
voidSTOP(void);
voidsetup()
{
pinMode(mot1,OUTPUT);
pinMode(mot2,OUTPUT);
pinMode(mot3,OUTPUT);
pinMode(mot4,OUTPUT);
pinMode(left,INPUT);
pinMode(right,INPUT);
digitalWrite(left,HIGH);
digitalWrite(right,HIGH);
}
voidloop()
{
analogWrite(mot1,);
analogWrite(mot2,0);
analogWrite(mot3,);
analogWrite(mot4,0);
while(1)
{
Left=digitalRead(left);
Right=digitalRead(right);
if((Left==0Right==1)==1)
LEFT();
elseif((Right==0Left==1)==1)
RIGHT();
}
}
voidLEFT(void)
{
analogWrite(mot3,0);
analogWrite(mot4,30);
while(Left==0)
{
Left=digitalRead(left);
Right=digitalRead(right);
if(Right==0)
{
intlprev=Left;
intrprev=Right;
STOP();
while(((lprev==Left)(rprev==Right))==1)
{
Left=digitalRead(left);
Right=digitalRead(right);
}
}
analogWrite(mot1,);
analogWrite(mot2,0);
}
analogWrite(mot3,);
analogWrite(mot4,0);
}
voidRIGHT(void)
{
analogWrite(mot1,0);
analogWrite(mot2,30);
while(Right==0)
{
Left=digitalRead(left);
Right=digitalRead(right);
if(Left==0)
{
intlprev=Left;
intrprev=Right;
STOP();
while(((lprev==Left)(rprev==Right))==1)
{
Left=digitalRead(left);
Right=digitalRead(right);
}
}
analogWrite(mot3,);
analogWrite(mot4,0);
}
analogWrite(mot1,);
analogWrite(mot2,0);
}
voidSTOP(void)
{
analogWrite(mot1,0);
analogWrite(mot2,0);
analogWrite(mot3,0);
analogWrite(mot4,0);
}
注意事项:
为了提高黑线检测的效率,可以增加传感器的数量。一组传感器将比两个传感器更精确。在这个项目中(使用两个传感器),传感器的定位是非常重要的。黑线的宽度对传感器的放置起着重要的作用。也可以使用LED和LDR对构造检测线路的传感器。直线跟随器机器人的应用
线跟随机器人通常用于工业自动化过程,军事应用和消费应用。它们非常有用,因为它们可以在没有任何监督的情况下工作,即它们像自动引导车辆一样工作。借助避障和其他安全措施等附加功能,直线跟随器机器人可用于无人驾驶汽车。