基于ARM的智能避障小车设计
扫描二维码
随时随地手机看文章
0 引言
汽车的紧急避障是由电脑模拟司机的主动控制过程,以汽车为控制对象进行实时信号采集、分析和处理,在紧急情况下可代替司机的驾驶操作。通过红外线传感器可以感知汽车行驶环境,实现汽车的避障功能。
本文通过s3c44b0x开发板和ADS集成开发平台,设计出基于嵌入式系统的智能小车控制器。其优点是功耗低、体积小、集成度高、可靠性强,为智能汽车技术的发展提供了广阔的前景。
1 系统的功能描述
普通的玩具小车一般需要在外加条件下才能按照自己的设想避开前方存在的障碍去自动行驶,而目前可借助嵌入式技术让小车无需外加条件便可完成智能化,即实现自动避开障碍物的功能。从原理上讲主要是依靠小车上的红外避障传感器来检测可能出现的障碍物的信号并将其反馈回控制电路。当传感器检测到障碍物时,传感器会产生高电平信号
驱动某一侧步进电机转动使得小车能够平稳转动方向,随后继续前进。
2 系统硬件设计
总体设计方案的硬件部分如图1所示。
在本设计中选择的开发平台是ADS集成开发环境,通过s3c44b0x芯片相关工具tftp等进行硬件方面的设计调试工作。
红外传感器是一种能探测红外线的器件,能把红外辐射量变化转换成电量变化。本设计所采用的红外避障传感器GP2YOA02YK性能如下:1)反射率:对反射物体的颜色有较小影响。2)传感器返回的模拟电压值与测量的距离值一一对应。3)探测距离的范围:10~60cm。4)不需要外部控制电路。
硬件设计中选用的直流电机驱动模块是中小电流 直流电机专用驱动器,所用芯片1293属于H桥集成电路,其输出电流为1000mA,最高电流2A,最高工作电压36V,可以驱动感性负载,比如小型直流电机、继电器、步进电机和开关电源晶体管。当驱动小型直流电机时,可以直接控制两路电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。该驱动模块具有体积小、控制方便的特点。测试实验表明采用此模块能够对电机进行平稳可靠的控制。
3 系统软件设计
系统软件设计在集成开发环境ADS和Microsoft Vistlal C++6.0集成开发平台下完成,主要采用C语言进行程序编制。软件设计主要包括对控制主程序、电机驱动程序、中断程序和软件算法等程序的设计。
在系统整体设计的初始阶段,智能小车系统的正前方安装一个红外线避障传感器,通过这个传感器采集来自正前方的障碍物信号,然后将其传递给控制系统,由控制系统根据该信号进一步采取动作控制两个步进电机的运转,在经过设定好的一定时间的延时过程之后,系统主程序动作继续循环进行下去,直到电源关闭或者系统出现故障。
小车主程序流程图如图2所示,其初始化过程包括ARM微处理器的初始化和外部驱动电路的初始化等。图3为小车使用单个传感器示意图。
4 系统深入设计展望
继本次系统设计使用单个传感器进行智能避障小车设计完成之后,下一步计划是使用三个传感器进行功能更加完善、系统更加稳定的智能避障小车设计。
图4为使用三个红外避障传感器的小车示意图。图中,三个传感器分别位于小车的左、中、右方,能够检测来自左、前、右三方的障碍物信号。针对此硬件框架设计,相应的主程序流程图如图5所示。
三个传感器分别检测三个方向的障碍物的好处是明显的,因为能够最大程度地扩充智能避障小车的“视野”,但同时也存在一些问题,比如三个传感器扫描范围之间的检测死区就是智能小车一个比较大的硬伤。因此,在接下来的设计中,我们将针对诸如此类的问题进一步研究分析,争取能够在不影响智能小车基本功能的前提下丰富小车系统的设计。
5 结论
由于板,该板有十八种设计功能,在本试验中就应用其一种功能,即产生控制直流减速电机的脉冲。本系统设计简单、软件编程易实现、实时性好且成本较低,红外线传感器对障碍物的检测虽然存在些误差,但并不影响小车避障。在室内环境中,小车可以顺利绕过障碍物到达指定地点。但是由于红外线探测仪的角度问题和车的宽度问题,使小车在障碍物较大时不能全部避开障碍物,所以小车并不能完全实现智能,因为传感器获得的信息非常有限,而且对步进电机的控制受到驱动的影响也带有不确定性。在程序烧制方面,由于技术或方法等方面的原因,使程序在烧制后有时也会出现自动删除的问题。总的来说,实验是成功的,因为基本实现了实验前所要求的功能。