基于μCOS-Ⅱ系统的智能寻迹模型车的设计与实现

发布者:化羽2015最新更新时间:2011-01-19 来源: 现代电子技术关键字:智能车  OS-Ⅱ系统  路径识别  脉冲宽度调制  AVR单片机 手机看文章 扫描二维码
随时随地手机看文章

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

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

1 硬件系统的设计及实现

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

1.1 核心控制单元

    智能车采用ATmage16型单片机作为主控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文件。

    μC/OS-Ⅱ是采用的可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。μC/OS-Ⅱ中最多可以支持64个任务,分别对应优先级0~63,其中0为最高优先级。在该系统设计中,共应用了7个优先级,其中,操作系统建立任务,即Task Start()的优先级最高。调度工作可以分为两部分:最高优先级任务的寻找和任务切换。

    在该系统中,共定义了路径识别、光电转盘检测等7个任务,控制器任务划分及说明如表1所示。其调度和通信实现流程如下:系统执行Task Start(),在初始化任务执行完成后,利用μC/OS-Ⅱ的OSTaskDel()函数将这个任务返回并处于休眠状态。此时,Task Po-sition Check()成为优先级最高的任务,将会一直执行。当Task Position Check()检测到路径有所改变,通过邮箱传送数据到Task Control(),并由TaskControl()控制PWM波输出的改变。任务Task Op-tical_Wheel()的优先级稍低,同样会一直执行,即当任务Task_Optical_Wheel()检测到黑白跳变时,任务中的变量加1,Task_Optical_Wheel()每隔1 s向任务Task_Path_Calculate()和Task_Speed_Calculate()发送1次消息,分别计算速度和已走的累加路程,控制器任务关系图如图4所示。
 

2.1 路径黑线的识别

    路径黑线的识别的准确程度决定智能车能否完成快速、稳定的寻线。识别装置由高发射功率红外光电二极管和高灵敏度光电晶体管组成,以非接触检测方式,检测距离可调整达4~20 mm。为了精确测定智能车的相对位置,将7对ST178并排安放在车底盘下部的前端,其分布垂直于智能车行走的方向。当车行走时,保持7个发光管发光,当某一个光电对管的下方为黑色轨迹时,相应的接收管输出为高电平,而下方为白色路面的接收管输出为低电平。再经数据处理后,控制系统就可以分析出当前车行走的位置,从而达到调整智能车运行状态的目的。例如,假设路面黑线的宽度为三组红外线对管的宽度,当黑线在车体中间时,7个输入引脚为28H(0011100);当车体左或右偏时,接收到的数据会改变,即“1”会相应的左移或右移,如0001110(右偏)、0111000(左偏),偏移幅度不同,“1”的移动位数便不同。

2.2 转向控制模块

    采用PWM(脉冲宽度调制)控制,配用L298驱动电路实现直流电机的调速,方法简单且调速范围大,它利用的是直流斩波原理,假定高电平导通,在一个周期T内导通时间为t,那么一个周期T内的平均电压U=(t/T)VCC=qVCC,其中占空比q=t/T。

    电机的转速与电机两端的电压成正比,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成正比,占空比越大,电机转的越快,当占空比q=1时,电机转速达到最大。该智能车系统采用8 MHz的晶体振荡器,PWM信号引脚OCRO/2的频率为:

   
式中:变量N代表分频因子:1.8,32,64,128,256或1 024。占空比计算公式为:

    t/T=(OCR0/1/256)

2.3 车速及路程测量模块

    在智能车车后轮上粘贴均匀分布有黑白条纹。在轮转动的过程中,红外传感器会不断检测到黑、白条纹的出现。当红外传感器检测到的为黑条纹时,输入电压为高电平,当检测到的为白条纹时输入电压为低电平。若传感器检测到电平跳变,则计数变量加1。时钟每秒产生一次中断,Task_Clock()进程通过邮箱向Task Speed_Calculate()进程发送数据,由此可算出小车速度:速度=数据/每圈条纹数。如图5,图6所示。

3 结 语

    本文介绍了一种智能寻迹模型车的设计与实现。实践证明,该智能车定位准确,系统响应快且稳定,具备良好的动力性能和精确的转向性能,证明了μC/OS-Ⅱ系统的有效性和稳定性。相比同类智能车,该模型车还具有高性能、低功耗的优点。

关键字:智能车  OS-Ⅱ系统  路径识别  脉冲宽度调制  AVR单片机 引用地址:基于μCOS-Ⅱ系统的智能寻迹模型车的设计与实现

上一篇:基于WinCE的GPS导航数据提取的设计与研究
下一篇:支持多种全球导航系统的单片定位器件【ST】

推荐阅读最新更新时间:2024-05-02 21:15

AVR单片机按键检测
程序代码如下: #include avr/io.h #include util/delay.h int main(void) { DDRA=0XFF; PORTA=0XFF; DDRD=0X00; PORTD=0XFF; while(1) { if(PIND==0XFE) { _delay_ms(100); if(PIND==0XFE)PORTA=~PORTA; } } }
[单片机]
串行1602的四位数据线程序-avr单片机
1602的四位数据线程序,节省了IO。单片机用的是Atmega16,编译环境ICC6.31A,1602驱动头文件。 1602Driver.h /*********************LCD模块1602底层驱动库*********************** * LCD模块与单片机的硬件连接: * /端口名称 /端口符号 /MCU端口 / LCD引脚号/ * * RS数据/指令选择线 * RS PD3 4 * R/W读写选择线 * R/W GND 5 * EN写使能线 * EN PD2 6 * 三态双向数据总线 * D0-D3 N
[单片机]
AVR单片机相位修正PWM定时器0发生模式试验程序
/*AVR相位修正PWM定时器0发生模式*/ /*PWM波的产生机理是定时器0的TCNT0由0到255,在由255到0,不断地计数,当在0-255计数时TCNT0=OCR0时在OC0引脚上出现低电平,*/ /*当在255-0计数时TCNT0=OCR0时在OC0引脚上出现高电平,当由0加到255,再由255减到0时,产生溢出中断,可以再终端服务中修改OCR0的值,以改变占空比,比用引脚模拟要准确*/ /*另外值得说的是相位修正PWM很适合用在电机控制的场合,他比快速PWM慢,因此它的最大频率要比快速PWM低的多*/ /* 相位修正PWM实验 20110416 天津第四项目部宿舍 王均伟 */ #include iom16v.
[单片机]
基于Zigbee的智能车运行状态实时监控系统设计
0 引言 智能车又称轮式机器人,是集传感器、计算机、自动控制、通信以及机械等技术于一身的综合系统。在智能车的设计和制作过程中,控制算法调试是一个极其重要而又关键的环节,面临着许多急需解决的问题:智能车能否按照事先设计的思路运行;控制策略是否符合实际需求;运行中出现问题时,智能车的各项实时参数是什么。针对这些问题,许多学者提出了基于仿真的解决方案。有学者提出基于参数化的机械系统几何模型,使用拉格朗日方法建立系统动力学方程,来对虚拟机械系统进行动力学分析。但由于车辆机械结构的复杂性,这种建模和仿真方式过于繁琐,影响了仿真和研究的效率。清华大学针对全国大学生智能车竞赛开发的PlaSTid仿真平台,其动力学模型虽然较为简单,但该模型是一种
[单片机]
基于Zigbee的<font color='red'>智能车</font>运行状态实时监控<font color='red'>系统</font>设计
AVR单片机的特性介绍
RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC 并非只是简单地去减少指令,而是通过使计算机的结构更加简单合理而提高运算速度的。RISC 优先选取使用频率最高的简单指令,避免复杂指令:并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于 AVR 采用了 RESC 的这种结构,使AVR系列单片机都具备了1MIPS/MHz(百万条指令每秒/兆赫兹)的高速处理能力。 AVR单片机吸收了 DSP 双总线的特点,采用 Harvard 总线结构,因此单片机的程序存储器和数据存储器是分离的,并且可对具有相同地址的程序存储器和数据存储器进行独立的寻址。 在 AVR单片机中,
[单片机]
全新一代未来智能车机CC2 震撼亮相
5月16日,CC2在天猫正式发布,炫酷的产品视频“亮瞎”了眼睛。 很多车主在问,CC2是什么?有什么奇特功能? CC2是天之眼打造的全新一代未来智能车机。这一里程碑代表作,采用全新车载软件架构,实现了主界面一屏多显功能,并且支持主界面直接操控导航或记录仪软件。流媒体后视常开是一大创新,炫酷的行车动效让车机更科技,更未来。同时,采用高端DSP和功放芯片,也让音质非同寻常。 看到官方介绍,不由得暗暗竖起大拇指,不是一般的酷啊! 凭什么能做到这一点呢? 首先了解下天之眼。天之眼是国内智能车机知名品牌,连续多年取得天猫双十一桂冠。力求完美,追求极致的工匠精神,成为汽车智能生态车联网领军品牌,为千万车
[汽车电子]
全新一代未来<font color='red'>智能车</font>机CC2 震撼亮相
一种基于AVR单片机的工频干扰滤除快速算法
摘要:提出了一种利用数字滤波器滤除工频干扰的快速算法。这种算法从AVR单片机内部硬件乘法器的特点出发,采用分配系统数法进行低通数字滤波器设计。经过VMLAB集成开发环境的仿真验证,算法速度快、代码效率高、滤波效果理想。 关键词:单片机 定点小数 FIR 工频干扰 分配系数法 VMLAB 工频干扰广泛存在各种工业现场中,其产生的途径主要包括输电馈线、照明设备、发动机以及各种电子仪器设备等。一般可以通过滤波电路消除工频干扰,但这必将增加硬件结构的复杂程度。实际上,还可以采用数字信号处理的相关算法,通过软件滤波器滤除工频干扰。软件滤波算法的采用,无疑会在简化电路结构的同时,使系统的硬件资源得到更加充分的利用,并达到降低产品成本的要求
[单片机]
基于AVR单片机的灭火机器人设计与实现
摘要:根据灭火机器人的竞赛规则,给出了灭火机器人的硬件结构设计方案和软件设计流程。所用的机器人处理器为AVR单片机,主要利用红外传感器、光敏传感器对环境进行检测,使机器人在场地中按照预定的方案寻找火源并扑灭。 关键词:灭火机器人;传感器;ATmega32 1 引言 机器人竞赛是近年来迅速开展起来的一种对抗活动,它涉及人工智能、机械、电子、传感器、精密机械等诸多领域。通过竞赛可以培养学生的创新意识、动手能力、团队写作能力等。其中灭火比赛是开展范围最广、影响最大的机器人竞赛项目之一。 比赛规则为模仿生活中消防员灭火,机器人从H点出发,在四个房间内寻找任意摆放的蜡烛,并且设法将其灭掉。比赛场地的墙壁高33cm,材质为木板,颜色为
[工业控制]
基于<font color='red'>AVR单片机</font>的灭火机器人设计与实现
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved