采用Arduino为核心控制的智能小车避障系统
图4程序流程图
2.2避障代码
根据以上避障原理,编写相应的程序,以实现小车的全面避障,程序主要分电机、超声波和红外测距三部分。电机部分由analogWrite()、digitalWrite()分别控制车速和小车前进、后退或转向;超声波测距部分由Trig.Pin控制超声波输入,由EchoPin控制超声波输出,控制模块通过对接收到的脉冲波时间进行处理,转化为距离参数,从而获得距离Middle_distance;红外测距部分由控制模块通过红外传感器获得一个模拟量analo.gRead(),通过输出的模拟量可以推算出电压值volts,而输出电压和探测距离关系为distance:65*pow(volts,-1.10),从而可获得小车与障碍物的距离。
3实验研究
智能车在进行了器件选型和确定控制算法后,为了验证系统的性能,进行了实验验证。
实验中选用一块放着多种障碍物的平地,障碍物分两大种:一种是规则的障碍物,如正方体、圆柱等。另一种为不规则障碍物。实验时,智能避障小车在行进过程中不断探测前方周围是否有障碍物,当存在障碍物时候,判断出相应障碍物位置,并进行相应动作。
为了有效验证智能小车避障成功率,通过改变障碍物形状来对小车进行性能测试,结果如图5所示。其中测试小车100次,并统计出单面避障和全方位避障成功通过不同障碍环境的次数,障碍环境由总数为100的规则障碍物和不规则障碍物组成。由图5可见,普通的单面避障方法有着较低的成功通过率,而本文所提出的全方位避障方法则受此影响不大,有着较高的通过率。
图5单面避障与全方位避障成功率对比
4结论
设计的基于Arduino的智能小车避障系统,采用了单红外和双超声波避障方式,使小车在行车过程中对障碍物的探测更加精确。实验结果表明,设计的全方位避障系统较大地提高了避障的效率和成功率,可有效地实现全方位避障。
- 基于MSP430自动往返小车的设计(11-24)
- 智能小车制作大集合,蓄力15年电子大赛(10-05)