EDN China > 设计实例 > 汽车电子 > 车身控制 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于μC/OS-Ⅱ系统的智能寻迹模型车的设计与实现

刘红蕾 张键洋 郝宁 周立超 许雪梅?? 2009年12月02日 ?? 收藏0

  0 引 言

  智能车辆是当今车辆工程领域研究的前沿,它体现了车辆工程、人工智能、自动控制、计算机等多个学科领域理论技术的交叉和综合,是未来汽车发展的趋势。以往智能小车在软件设计上多采用单程序控制,不利于智能车在外部环境改变时做出快速反应,为使智能车系统反应更为快速,该智能车应用μC/OS-Ⅱ系统,该系统适合小型控制系统,具有执行效率高、占用空间小、实时性能优良等特点。且选用功耗较低、资源更为丰富的AVR系列ATmega16单片机作为核心控制单元。

  采用红外探测法实现寻迹功能,即将红外光电传感器固定在底盘前沿,利用其在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。并在后轮上粘上均匀分布的黑白条纹,根据光电反射原理,测量车速。为保证智能车在行驶过程具有良好的操稳性和平顺性,控制系统对直流电机驱动控制提出了较为理想的解决方案。

  1 硬件系统的设计及实现

  智能车的硬件部分以AVR系列ATmega 16单片机为核心控制器,由核心控制单元、电源管理模块、路径识别模块、转向控制模块、电机驱动模块和速度及路程检测模块等组成。智能车控制系统总体结构如图1所示。

智能车控制系统总体结构

  1.1 核心控制单元

  智能车采用ATmage 16型单片机作为主控CPU其主要特点为高性能、低功耗、高性价比,资源丰富,并且支持高级语言编程,在运行速度。内存容量,内部功能模块集成化等诸多方面比MCS-51系列先进。在智能车系统设计中,单片机的I/O资源分配如下:PB3,PD7为伺服电动机的PWM控制信号输出引脚;PD0~PD3为驱动电机正反转引脚;路径识别系统经排线由PA0~PA6输入至单片机。

  1.2 电源管理模块

  为避免电机等器件对系统产生干扰,智能车的各功能模块单独供电。采用12 V蓄电池为直流电机供电,将12 V电压降压、稳压后给单片机系统和其他芯片供电。相对于其他类型的电源,蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。考虑到蓄电池的体积大,在车体设计时留出了足够的空间。

  在稳压时,采用两片7812芯片将电压稳压至12 V后给直流电机供电,然后采用2576将电压稳至5 V。2576的输出电流最大可到3 A,完全满足系统要求。

  1.3 路径识别模块

  智能车采用红外探测法实现小车在黑色地板上循白线行走,为了提高控制精度,要求传感器排列紧密,越近越好。但传感器排列紧密,传感器发射管的光线可能会从地面反射进入临近传感器的接收管。为消除传感器之间互相干扰,传感器共分为7组,由PA0~PA6这7个I/O口直接供MCU读取传感器数据。利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在智能车行驶过程中传感器不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光(原理图为图2所示)。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。

路径识别模块

  1.4 电机驱动模块

  在电机驱动方面,采用运用L298作为电机驱动芯片,A,B两个电机分别控制左面和右面各两个轮。通过调节两轮的转速来实现智能车的转向,即由单片机控制进行PWM变频调速,通过程序设计改变脉冲调宽波形的占空比,从而实现调速。转向角度不同,则两电动机的转速差异不同。当小车处于较大的偏离状态时,需把一个电机的速度调至极低,另一电机全速运行,从而在较短时间内完成路线的调整。

  通过设定电机的正转和反转来控制智能车的前进和后退。这种电路设计简易高效,并能确保前后两轮同步。

  1.5 车速检测模块

  智能车系统通过车速检测模块来读取实时车速。采用在后轮上粘贴均匀分布有黑白条纹的方法。利用图3的检测电路来对车轮上的黑白条纹进行检测。根据光电反射原理,在车轮转动时,红外接收管接收到反射光强弱高低变化,就会产生与车轮转速相对应的脉冲信号,将该脉冲信号进行放大整形后输入单片机的输入捕获引脚 PA7,记录单位时间内所得到的脉冲数,就能够表示出当前车速,同时通过累加可以计算出小车所行走的路程。

车速检测模块

  2 软件系统设计与实现

  为使智能车在环境改变时做出更为及时准确的响应,在程序设计时应用μC/OS-Ⅱ系统。μC/OS-Ⅱ适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2 KB。μC/OS-Ⅱ的代码是用C语言编写,可以直接移植到有C语言编译器的处理器上。移植主要都集中在多任务切换的实现上,由于这部分代码用于保存和恢复CPU现场(即写/读相关寄存器),不能用C语言,只能使用汇编语言完成,即编写OS CPU A.S文件。另外还需要修改体系结构相关的OS CPU.H文件和用户规定任务栈初始化结构的OS CPU C.C文件。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

智能寻迹? L298? 红外探测?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈