1)循迹的基本原理
循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。
2)循迹方法
类似无人汽车感知关键传感器——红外摄像机的原理,循迹通常采取的方法也是红外探测法,即利用红外线在不同颜色的物体表面具有不同反射性质的特点,在小车行驶过程中向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的红外接收传感器接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机根据是否接收到反射回来的红外光来确定黑线的位置和小车的行走路线。
3)实例
例7.1 通过光敏传感器实现小车循迹行走,循迹道路如图7.23所示。
图7.23 循迹道路布置
设计思路:根据6.2节所述小车的硬件电路及工作原理,当发光二极管D1和D2所发射出的光线照射在白纸和黑色的轨迹上时,光线的反射作用不同,则光敏器件R13和R14接收到的光强不同,并以此为依据感知和定位小车的位置,进而决定和执行小车车轮的驱动,完成小车循迹行走任务。
(1)硬件连接
小车PCB板线路已经把检查左右黑线的光敏检查电路输出信号端分别连接到MSP430单片机的引脚P14和P15,此时,可以利用万用表的通断测试功能,进行实际确认。注意,当小车运行速度较快时容易脱离轨道,可把小车直流电机转速设置为较低状态。
(2)轮胎调试
小车的轮胎有不同的种类,但是小轮胎比大轮胎能更好地控制小车速度及方向,因此建议使用较小的轮胎,如图7.24所示。
图7.24 轮胎
(3)参数调试——光检测电路测试
调试小车的光检测电路(光检测电路详见6.2小节),测验工具与材料包括:黑纸、白纸和万用表,将光检测电路(主要是光敏电阻的接受面和发光二极管的照射面)分别置于黑纸和白纸上,用万用表直流电压挡测出光敏电阻R13和R14所在支路的输出电压值即P1.4和P1.5端口的电压,并记录数据。当光敏电阻检查电路的输出电压变化不大或者变化过大时,可以通过调试电位器R4/R5来调节检测信号电压变化范围,如图7.25所示。
图7.25 光检测电路的参数调试(www.xing528.com)
测试结果见表7.1。
表7.1 光检测电路输出电压测试结果
(4)控制参数设置
光敏电阻检查电路的输出电压值为模拟量,经PCB线路直接进入单片机I/O口,然后由内部AD进行模/数转换,转换后的数值作为小车对当前位置的监测值,然后结合任务进行控制。
控制方法可以采用7.2.2节所述的PID等控制算法,但这里采用更简单的门限控制方法,即超过某个值,就执行电机启停。其中,关键问题就是确定门限值的大小参数。根据光敏检查测试数据表7.1,结合AD转换换算关系,可以初步确定门限值,然后根据实际场景进行微调获得最佳值,如P1.4端口门限的最佳数值约为560,P1.5端口门限的最佳数值约为649。
(5)编写代码块
根据上述的思路分析,小车循迹过程有三种情况:当左右光检测电路输出值(块代码analogRead函数读取)都小于相应的阈值(如560和649)时,两个电机同时运行;当右轮监测值(VP1.4)大于相应的阈值时,右轮压线,停止右轮,并延时一段时间;当左轮监测值(VP1.5)大于相应的阈值时,左轮压线,停止运行,并适当延时。其中,延时函数时间参数的取值大小与小车实际轨迹的摆幅大小有关,参考代码如图7.26所示。
图7.26 小车循迹的参考代码
(6)测试
小车循迹运行效果如图7.27所示,其中发光二极管LED的发光情况指示小车左右电机运行状态。
智能小车进入循迹模式后,开始不停地读取光敏电阻输出电压值,判定检测信号是否满足某个条件,一旦满足就进入相应代码处理。如果是右传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过方向调整后,小车再继续向前行走,并继续探测黑线,重复上述动作。
图7.27 循迹测试结果
类似上述过程,利用超声波等模块可以完成小车的避障功能。超声模块检测前方、左边、右边是否有障碍物,当没有障碍物时,小车直走;当前方遇到障碍物,则小车做后退运动,直至前方没有障碍物,这时小车恢复直走;如果前方有障碍物,同时左边也有障碍物的时候,则小车右转,直至左边没有障碍或者前方没有障碍物,这时小车恢复直走,流程图如图7.28所示。
图7.28 超声波避障流程图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。