基于MC9S12DGl28单片机的智能寻迹车设计

发布者:FreeSpirit123最新更新时间:2009-05-05 来源: 国外电子元器件关键字:MC9S12DGl28  单片机  PID  智能寻迹 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  智能汽车是汽车电子、人工智能、模式识别、自动控制、计算机、机械多个学科领域的交叉综合的体现,具有重要的应用价值。智能寻迹车是基于飞思卡尔MC9S12DGl28单片机开发实现的,该系统采用CCD传感器识别道路中央黑色的引导线,利用传感器检测智能车的加速度和速度,在此基础上利用合理的算法控制智能车运动,从而实现快速稳定的寻迹行驶。

  2 硬件系统设计

  该系统硬件设计主要由MC9S12DGl28控制核心、电源管理模块、直流电机驱动模块、转向舵机控制模块、道路信息检测模块、速度检测模块和加速度检测模块等组成,其结构框图如图1所示。

结构框图

  2.1 主控制器模块

  智能车的控制核心为MC9S12DGl28。MC9S12DGl28是飞思卡尔公司生产的一款16位单片机,片内总线时钟可达到25 MHz;片内资源包括8 K RAM、128 K Flash、2 K EEP-ROM;SCI,SPI,PWM和串行接口模块;脉宽调制模块(PWM)可设置成4路8位或2路16位,逻辑时钟选择频率脉宽:2个8路10位A/D转换器,增强型捕捉定时器并支持背景调试模式等。

  2.2 电源管理模块

  该系统设计采用7.2 V/1 800 mA镍镉电池供电,7.2 V电压经过BMlll7—5稳压后得到5 V电压,向单片机、红外传感器和加速度传感器供电。5 V电压经MAX8715升压后得到12 V电压,向CCD图像传感器供电:7.2 V电压经二极管降压得到约6 V的电压来驱动舵机;电机驱动器MC33886则直接由电源供电。

  2.3 道路信息检测模块

  该系统设计使用NEC公司的线阵CCDμPD3575D检测赛道信息。该器件可工作在5 V驱动(脉冲)和12 V电源条件下。μPD3575D的驱动需要4路脉冲,分别为转移栅时钟φIO、复位时钟φRD、采样保持时钟φSHO和传输门时钟φTG。系统设计由外围电路直接产生CCD驱动时钟,采用计数器和触发器专门设计时序电路,产生转移栅时钟φIO、复位时钟φRO、采样保持时钟φSHO,单片机只需产生一个帧同步信号(传输门信号φTG)与外围时序电路保持同步即可。μPD3575D输出的是模拟信号,将采集图像传输至单片机,一般需对μPD3575D输出信号进行A/D转换,考虑到设计实际上只需要区分黑色和白色,μPD3575D对这两种输出信号差异较大,因此,将μPD3575D输出信号放大后直接使用一个比较器对信号二值化处理,如图2所示。由单片机检测二值信号的跳变时间,便可计算出黑线位置,从而进一步缩短单片机在CCD上所消耗的时间。

CCD图像检测电路

  2.4 车速检测模块

  系统使用红外传感器检测直流电机的转速。在后轮减速齿轮上粘贴一个均匀分布有黑白条纹的编码盘。红外接收管接收与未接收红外光所表现的特性是阻抗变化,所以只需用一个电阻电压变换电路和比较电路便可将其模拟信号转换为数字信号,供单片机采集。

  2.5 直流电机驱动模块

  系统采用RS380-ST型直流电机,其驱动电路采用集成电机驱动器MC333886。此器件是单片集成的H桥元件,有单桥和双桥两种控制方式,其可控电压为5~40 V,最大PWM频率达10 kHz,内置短路保护电路和过热保护电路,最大能承受的5 A的工作电流。其中D1、D2是MC33886的使能端,INl、IN2为输入端,0UTl、0UT2为其输出端。图3是将MC33886的D2端接到单片机的PWM输出端口,通过MC33886的两个输出端口实现电机的转速控制、方向控制及制动等。采用输出端并联并连接到电机一端,以及增加散热片的方法使智能车在相同电压和占空比时,其速度更快,同时还降低H桥上的压降,减少MC33886发热,防止器件由于温度过高被烧毁。

直流电机驱动电路

  2.6 加速度检测模块

       智能车在高速行驶中如果突然转向,会出现侧滑现象。该系统设计采用ADXL202加速度传感器判断移动智能小车在行驶中是否出现侧滑现象。ADXL202是美国ADI公司推出的低成本双轴加速度传感器,其外围电路简单.采用5 V供电,将加速度传感器的输出端9引脚和10引脚直接接到单片机的AN00,AN01引脚,通过计算输出信号的占空比可精确检测轴向和横向加速度。

  2.7 转向控制模块

  智能车使用韩国futaba公司的S3010舵机完成转向控制。舵机控制信号由单片机的PWM模块PWM0和PWMl联合产生一个16位的PWM信号。由于舵机的转角与脉冲宽度存在线性关系,改变PWM占空比可改变输出脉冲的宽度。从而控制舵机转向。将驱动舵机脉冲波型的周期从原来的20ms减小到10 ms,增加舵机控制信号的更新频率,减少舵机控制环节中的延时,提高整个车模转向控制速度。

  3 系统软件设计

  系统的基本控制策略是根据CCD传感器检测到的路径信息,车速检测模块检测到的当前车速信息和加速度传感器检测到的加速度信息,来控制舵机和直流驱动电机运动。

  3.1 车速控制

  为了提高机器人运行的稳定性,采用PID算法实现直流电机的转速闭环调节,PID控制器的输入量为给定转速与输出转速的差值,采用增量式PID算法。

  3.2 智能车平稳性控制

  为了避免智能车发生侧滑现象,应在智能车上安装加速度传感器,以检测是否发生侧滑。车速为v,转向角为δ,车体质量为m,轴距为l,当理想转向时,向心加速度为a,则a=mv2tanδ/l。当加速度传感器反馈回的实际加速度a*小于理论加速度a时(实际中应当保持一定的死区),表明智能车系统存在侧滑现象。这时便命令智能移动小车减速,速度参考量为公式

  3.3 舵机转向控制

  系统使用模糊控制算法控制智能车转向。传感器检测的重点是转向角误差,当转向角误差相同时,不同的误差变化率反映不同的轨道半径,因此,该设计还检测转向角误差变化率。当误差量很小,且误差变化率不变时,则判定为智能小车正沿着引导线行驶,则机器人小车沿直线行进;若误差变化率较大时,表明智能小车正在偏离引导线,此时,需对航向角做相应调整。通过CCD图像传感器检测白色地面上的黑线,根据返回的信号得出驾驶角误差和误差变化率,将CCD图像传感器视觉中心的误差和误差变化率作为控制器的输入,分别用e和ec表示;输出为驾驶角,用δ表示。模糊语言值分别选为:e:{LB,LM,LS,CE,RS,RM,RB};ec:{PB,PM,PS,Z0,NS,NM,NB};δ:{LB,LM,LS,CE,RS,RM,RB}。隶属度函数采用三角形,如图4所示。交叠系数β=(c1一a2)/(c2-b1),取0.75。根据驾驶经验建立规则库进行模糊推理后.利用重心法进行反模糊化得出舵机所要转的角度。

隶属度函数

  3.4 智能车控制流程

  设计中,程序初始化完成后便进入空闲模式,等待中断发生。中断包括车轮转速计数器中断、CCD图像捕捉中断和以10 ms为周期的定时器0中断。驱动电机和舵机的PWM控制信号由单片机的PWM模块自动产生,其定时器0的中断服务程序如图5所示。

定时器0的中断服务程序

  4 结语

  以MC9S12DGl28作为控制核心,设计自主寻迹的智能车控制系统,在检测到智能车运动信息和道路信息的基础上,采用模糊控制算法控制舵机转向,通过转速PID调节的方式控制直流电机。实验证明:该智能车在白色的跑道上能沿着一定宽度任意弧度的黑色引导线以较快的速度平稳地行驶,寻迹效果良好,速度和转向控制响应快,系统的稳定性和抗干扰能力强,速度可以达到1.5 m/s,此方案已应用于全国智能车大赛。

关键字:MC9S12DGl28  单片机  PID  智能寻迹 引用地址:基于MC9S12DGl28单片机的智能寻迹车设计

上一篇:基于MSP430单片机的行驶车辆检测器的设计
下一篇:基于CAN总线的轿车车窗智能控制系统设计

推荐阅读最新更新时间:2024-03-16 12:25

飞思卡尔推出专为工业和汽车电机控制而优化的MCU
通过推出 S08MP16,飞思卡尔半导体公司正在扩展其嵌入式电机控制系列。这种入门级 8位微控制器 (MCU) 系列为从工业驱动到汽车电子燃油泵等无刷直流(BLDC)电机控制应用提供了一种安全、精确且成本优化的解决方案。 BLDC 电机在消费电子、工业和汽车电子方面日益流行,因为它们比传统的有刷直流和电磁感应电机提供效率和可靠性方面的优点。这种S08MP16 微控制器经过优化,满足这一快速发展的电机细分市场的需求,并且也能够支持其他的电机类型,包括交流电磁感应电机。 “智能电机控制在降低全球能耗方面是非常重要的,而飞思卡尔在提供嵌入式解决方案以满足这一需求方面有着优良的传统,” 飞思卡尔工业和多市场微控
[汽车电子]
飞思卡尔推出专为工业和汽车电机控制而优化的<font color='red'>MCU</font>
51单片机12分频 ----- 学习笔记
51单片机12分频的原因 由于初期设计硬件技术缺陷,使执行指令时需要子时钟,就把12个振荡周度期规定为1个机器周期。 51单片机是12M晶振,如果是单指令周期的语句,刚好是1us,其他语句好似1us的整数倍,便于计算指令时间。 AT公司的AT89系列51单片机,工艺上存在不足,分频后频率降低,程序得以稳定执行,不易跑飞。 AT新出的单片机和一些公司出的新单片机不一定要用问12M的晶振,11.05925M也行,18M也行,即35M以内的无源晶振(两脚的)都可以的。 图片素材来源于网络 晶振频率为12MHz定时器/计数器计算 一个计算脉冲所用的时间=一个机器周期 一个机器周期=1
[单片机]
51<font color='red'>单片机</font>12分频 ----- 学习笔记
51单片机 1602液晶显示静态字符
#include reg52.h #define LCD1602_DB P0 typedef unsigned char uchar; typedef unsigned int uint; typedef unsigned long ulong; sbit LCD1602_RS = P1^0; sbit LCD1602_RW = P1^1; sbit LCD1602_E = P1^5; void initLCD1602(); void LCDShowStr(uchar i, uchar j, uchar * pCh); void LCDWaitRdy(); void
[单片机]
基于AT89C51单片机和DTMF通信实现电话远程控制家用电器的设计
引言 随着计算机技术和电信业的发展,通过电话线进行的远程通信越来越常见。人们通常采用MODEM进行通信,但是在通信数据量不大,对通信速率要求不高的应用场合,我们可以考虑一种DTMF通信方式,它具有接口简单,成本低廉且可靠性高的特点。本文介绍了一种电话远程控制家用电器的实现方法。用户可通过任意一部双音频电话(包括手机、电话分机)对自己家庭安装的家用电器进行开机、停机、设定等操作。 1、系统结构 本系统主要包括电话振铃检测电路、电话自动摘挂机电路、DTMF信号解码电路、语音提示电路以及整个系统的控制心脏CPU电路。当有电话打入时,电话振铃检测电路检测到有振铃并等待至系统默认的振铃次数后,控制器自动摘机,并在语音电路的提示下依次输入
[单片机]
基于AT89C51<font color='red'>单片机</font>和DTMF通信实现电话远程控制家用电器的设计
51单片机实现模拟打乒乓球
电子 乒乓球 游戏机 ********************** 初始化 ********************** lw bit 20h.0 rw bit 20h.1 speed bit 20h.2 sd bit 20h.3 fs bit 20h.4 jq bit 20h.5 zy bit 20h.6 fq bit 20h.7 date equ p0 led equ p1 rp equ p3.0 lp equ p3.3 ks equ p3.2
[单片机]
51<font color='red'>单片机</font>实现模拟打乒乓球
C51单片机的IO口介绍(下)
上一篇文章我们对C51的IO简单的介绍了一下,现在我们来简单了解C51的IO的结构 这里我们学习一下比较常见的单片机的IO模式,分别是准双向,开漏输出和推挽输出 (这里要提一嘴,我们用的STC88C52RC是没有推挽输出功能的,STC公司后续推出的一些机型才有推挽输出功能) 接下来我们来看看这几种模式 1.准双向 看看下面的原理图,机内信号通过一个非门取反后送入一个MOS管,MOS管负责控制这个IO的高低电平,配合内部上拉电阻完成高低电平的输出 为了方便我们分析,我们把这个MOS管看成一只NPN三极管。区别是三极管靠电流导通,MOS管靠电压导通 结合前面我们讲过的知识,对于一只NPN三极管,基极b电压比集电极c电压
[单片机]
C51<font color='red'>单片机</font>的IO口介绍(下)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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