在老少通吃的智能小车到底是什么呢?科普来喽!一文中,我们介绍了智能小车的分类及组成,为什么循迹小车能够追踪黑线轨迹呢?
智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线利用了简单、应用比较普遍的检测方法—发光二极管+光敏电阻。发光二极管+光敏电阻,即利用光线在不同颜色的物理表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射白光,当白光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。
让我们一起来试验一下吧!
一.实验说明1、使用寻线传感器控制开发板自带LED。
2、红外寻迹模块是利用红外线反射的原理,根据反射的强度来判定颜色。本寻迹模块是用来识别黑白线,黑线输出低电平,白线输出高电平。
二.物料清单三.模块说明四.连线图五.实验代码intnum1;intnum2;intnum3;intnum4;intnum5;voidsetup(){pinMode(7,INPUT);pinMode(8,INPUT);pinMode(9,INPUT);pinMode(10,INPUT);pinMode(11,INPUT);//定义该接口为接口为输入接口pinMode(13,OUTPUT);}voidloop(){num1=digitalRead(7);num2=digitalRead(8);num3=digitalRead(9);num4=digitalRead(10);num5=digitalRead(11);//读出信号接口的值if(num1==LOW){//如果1号传感器监测到黑线,灯亮一次digitalWrite(13,HIGH);delay(500);digitalWrite(13,LOW);delay(5000);}elseif(num2==LOW){//如果2号传感器监测到黑线,灯亮两次digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,LOW);delay(5000);}elseif(num3==LOW){//如果3号传感器监测到黑线,灯亮三次digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,LOW);delay(5000);}elseif(num4==LOW){//如果4号传感器监测到黑线,灯亮四次digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,LOW);delay(5000);}elseif(num5==LOW){//如果5号传感器监测到黑线,灯亮五次digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,HIGH);delay(500);digitalWrite(13,LOW);delay(5000);}}六.相关介绍1、寻线传感器
2、光电传感器
光电传感器是各种光电检测系统中实现光电转换的关键元件,它是把光信号(红外、可见及紫外光辐射)转变成为电信号的器件。由于光电传感器具有结构简单、重量轻、体积小、响应快、性能稳定及具有很高的灵敏度等优点,因此在检测和自动控制等领域中应用广泛。
光电传感器按其工作原理可分为模拟式和脉冲式两类。所谓模拟式,是指光敏器件的光电流的大小随光通量的大小而变,为光通量的函数。而脉冲式光敏器件的输出状态仅有两种稳定的状态,也就是“通”与“断”的开关状态,即光敏器件受光照时,有电信号输出,不受光照射时,无电信号输出。
光电传感器在工业应用中可归纳为直射式、透射式、反射式和遮蔽式等四种基本形式。Mini红外寻线传感器是根据反射式光电传感器原理开发设计的,所以简单介绍下此种工作方式。当光源发射出的光通量(红外线)投射到被测物体上,被测物体又将部分光通量反射到光敏器件上。反射的光通量取决于被测物体的反射条件。该形式常用于表面测量和转速测量。
七、总结和经验根据以上原理我们设计了一个智能循迹小车,经过不断调试最终能在规定的黑线跑道上行驶。智能循迹小车作为机器人的典型代表,能够实现自动导引功能。它的原理是主要通过传感器来感知导引线实现自动识别路线,选择正确的行进路线,并作出判断和相应的执行动作。
此次循迹小车由5个传感器传输信号,中间传感器检测黑线小车直行,左右各2个负责转弯,当检测到黑线时,循迹模块红灯亮起,管脚读取值为0,检测到白线时红灯熄灭,管脚读取值为1。
这里的循迹是指小车在白色地板上循黑线行走,采取的方法是红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。
在我们对小车进行调试的过程中,遇到了几个问题,现进行总结,希望对大家有所帮助。
1、传感器检测距离原理上为0.5~40mm,但小车前方五个循迹传感器灵敏度很低,需紧贴地面才能识别到黑线,导致传感器与地面摩擦影响小车行驶。
2、小车左右两个电机电压分配不平均。虽然不影响小车循迹但是对转向大小的修改产生一定影响,导致左右轮转不一致,要注意调节左右转轮速度。
3、一开始程序设定处两侧灯检测到黑线以外,所有情况均直行。但这种方法不适合直角等角度拐角过大的弯道,总会超出跑道,于是我们修改了代码,只有中间检测到黑线才会执行,两侧检测到黑线则拐弯。
但是随之产生的问题是小车摇摆剧烈,经过修改代码参数,我们把摇摆幅度降到了最低。当遇到直角转弯,或者急转弯的时,可将一次车轮转速设为0,加大转向幅度。
4、开始时if-else语句过于复杂给小车运行带来了一定的延迟。此时选择代码优先级,当碰到3个灯同时亮时,ifelse语句优先执行第一个满足条件的语句,同时要注意处理好转向问题。
代码如下:
defineright3definelow0definespeedHigh222definespeedLow70defineSensorRight14defineSensorMiddle9defineSensorLeft112