基于飞思卡尔单片机的两轮车控制系统设计

来源 :电子世界 | 被引量 : 0次 | 上传用户:fengye3355
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】本文设计了一种基于飞思卡尔单片机的两轮车控制系统。该系统以飞思卡尔单片机为核心,采用加速度传感器和陀螺仪来检测小车当前姿态,结合互补滤波算法控制小车的平衡;然后由摄像头检测路况信息,控制小车的行驶方向;最后采用PID算法通过直流电机驱动电路在固定的周期内交替地控制小车的平衡和行驶方向,使小车按预设轨道行进。
  【关键词】飞思卡尔;单片机;两轮;平衡;摄像头
  1.前言
  本文以飞思卡尔的小车模型为对象,设计了以飞思卡尔单片机MC9S12XS128为核心,自主循迹的两轮车自平衡控制系统。实验证明该方案在摄像头导航的两轮车系统中具有准确、快速、稳定的自主寻迹效果。
  2.系统设计与原理
  本系统以飞思卡尔公司生产的MC9S12XS128单片机为控制核心,主要由电源管理模块、路径检测模块、车速检测模块、加速度检测模块、角速度检测模块、直流电机驱动模块、液晶显示模块、串口调试等功能模块构成。在电源管理模块为系统提供稳定电源的基础上,单片机把加速度和角速度检测模块获得的小车姿态信息、路径信息检测模块获得的小车前进方向信息、车速检测模块返回的车速信息通过PID算法控制直流电机驱动模块,以使得小车在保持直立的前提下快速地行驶。液晶显示模块可以实时地显示系统相关参数,串口调试模块把接收到单片机的数据送往上位机,方便相关参数及波形的实时观察和调试。系统框图如图1所示。
  3.系统硬件设计
  3.1 主控制器模块
  本系统的主控制器是飞思卡尔公司生产的16位MC9S12XS128单片机,它负责对智能车所采集到的信号进行处理并向各个功能模块发送控制信号。MC9S12XS128单片机最高总线频率可达40MHz,片内资源包括8K RAM、8K EEPROM和128K Flash,拥有4路8位或2路16位脉宽调制模块(PWM)、2个8路10位A/D转换器和带有16位计数器的8通道定时器、UART、PIT、I2C、FTM等外部接口模块。
  3.2 电源管理模块
  可靠的电源是系统稳定运行的前提。本系统采用额定电压7.2V、额定容量2000mAh的镍镉电池作为动力源。为减小电源纹波,获得更稳定的供电电压,本系统选用串联线性稳压芯片LM2940搭建5V稳压电路,并分别向主控制器模块、路径信息检测模块、车速检测模块、加速度检测模块、角速度检测模块、液晶显示模块和串口调试模块供电,再经过AMS1117稳压到3.3V,向无线传输模块供电。直流电机驱动模块则直接由电池供电。系统电源管理模块框图如图2示。
  3.3 路径信息检测模块
  由COMS摄像头和硬件二值化电路组成的路径信息检测模块通过检测跑道两边2.5cm宽的黑线来拟合赛道中心以实现路径信息检测。COMS摄像头是按固定分辨率以隔行扫描的方式采集图像上的点,并将这些点的灰度值通过图像传感芯片转换成模拟电压信号,然后采用二值化电路把此信号转换成数字信号,通过单片机I/O口采集获得赛道信息。硬件二值化检测电路如图3所示。
  硬件二值化电路的工作原理是通过图像传感芯片获得的模拟信号经R1、R2限流后输出到三极管Q1,使三极管Q1始终处于不饱和放大状态。R3上的电流大小随此模拟信号的变化而成反比变化,从R3采样出来的电压信号即为通过图像传感芯片获得模拟信号的镜像信号,最后通过比较器输出表征赛道信息的数字信号。
  3.4 车速及运动方向检测模块
  为了实现系统的闭环控制,在车模运行过程中需要实时监控其速度。本系统在左右电机上各安装一个500线两相光电编码器。在固定周期内,利用单片机内部计数器测量由编码器返回的脉冲信号个数以获得车模的运动速度大小;由于编码器A、B两相相位差为90°,可通过比较A、B两相信号先后顺序来判断电机的正反转,便可知道小车的运动方向。
  3.5 加速度检测模块
  加速度计可以测量由地球引力作用或者物体运动所产生的加速度。本系统选用MMA7260作为加速度检测器件,MMA7260是一款低成本单芯片三轴高灵敏度加速度传感器,可以同时输出三个方向上的加速度模拟信号,具有功耗低、工作范围宽等特点,并且具有4种不同的高灵敏度选择模式以适应不同的加速度的测量要求。
  通过软件设置让加速度传感器采用800mV/g的工作模式,使MMA7260各轴信号输出灵敏度为800mv/g,这时信号不需要进行放大,可以直接送到单片机进行A/D转换。同时由于MMA7260采用了开关电容滤波器,会有时钟噪声产生,所以需要在传感器输出端采用RC滤波电路,以改善信号的质量。加速度传感器在受外界振动时易带来测量误差,并且测量误差的大小和传感器在车模上安装的高度成正比。为减小由于安装高度带来的测量误差,加速度传感器在小车上应尽可能安装得低一些,但是依然不能彻底消除由于小车振动带来的误差,因此需要角速度传感器的辅助来获得车模直立平衡控制所需要的倾角信息。
  3.6 角速度检测模块
  本系统选用陀螺仪ENC-03来测量物体在旋转时的角速度。陀螺仪的输出信号是相对灵敏轴的角速度,通过角速率对时间积分可得到围绕灵敏轴旋转过的角度值,即小车的倾斜角度。因为陀螺仪易受温度和震动等因素的影响而产生微小的漂移和偏差,经积分后形成累计误差,最终导致电路饱和,无法得到准确的角度信号。因此,本系统采用互补滤波算法把加速度传感器获得的角度信号与陀螺仪输出经积分后的角度进行融合,最后得到较准确的车模倾角信息。
  3.7 直流电机驱动模块
  车速控制单元采用脉宽调制技术(PWM),加上PID算法实现闭环控制。系统利用单片机输出PWM信号通过隔离芯片LM244来控制直流电机驱动芯片BTS7960,通过改变PWM波的占空比调节电机的转速,加上PID算法对电机转速进行闭环控制。直流电机驱动芯片BTS7960是大电流、半桥、低通态电阻的集成芯片,它带有一个P沟道的高边MOSFET、一个N沟道的低边MOSFET和一个驱动IC。P沟道高边开关省去了电荷泵的需求从而减小了EMI。集成驱动IC具有逻辑电平输入、电流诊断、斜率调节、死区时间产生和欠压、过压、过温、过电流及短路保护的功能。采用BTS7960搭建的电机驱动电路如图4所示。   3.8 串口调试模块
  调试模块用于建立良好的人机交互界面,便于对系统相关波形及参数的观察和调试。本系统的调试模块采用RS-232串口通信,其最远传输距离可达到50英尺,最高传输速率是20Kbps。能做到双向传输,全双工通信。因为RS-232上传输的数字量采用负逻辑,只与地对称,所以与单片机连接时需要加入电平转换芯片MAX232。
  4.系统软件设计
  系统软件使用C语言编写而成,采用模块化设计思想,以主程序为核心,设计了单片机初始化模块、平衡控制模块、速度控制模块、转向模块、串口发送模块、液晶显示等模块。
  4.1 系统主函数
  系统进入工作状态时主函数首先进行系统初始化、发送系统相关参数到上位机、液晶显示、读取小车倾角参数等功能。初始化工作结束后便等待各个中断函数的执行。主程序流程图如图6所示。
  4.2 中断函数
  系统中断函数利用主函数设置和通过传感器检测到的各项参数来控制小车的平衡、速度和转向。程序进入总中断后,首先通过加速度传感器和陀螺仪检测小车的倾角信息,以控制小车的平衡;在保证小车平衡的前提下给定小车前进速度,然后通过路径信息检测模块获得小车转向所需要的信息。这样一来,在固定周期内循环控制小车的平衡、速度和转向,最终使得小车稳定并且快速地在跑道上行驶。中断函数流程图如图7所示。
  4.3 互补滤波算法
  陀螺仪的动态响应较好,可以检测瞬态角度变化,但由于其本身存在累计漂移误差,不适合长时间单独工作;加速度计的静态性能较好,能够准确地检测静态角度,但受动态加速度影响较大,不适合测量动态变化角度。因此本文采用互补滤波算法将陀螺仪和加速度计测量到的角度信息进行融合,得到准确的车模倾角信息。互补滤波算法公式为:
  θ_new=α_gyro*(θ_old+ω_gyro)+β_acc*θ_acc
  上式中θ_new是第n次滤波后的角度值,θ_old是第n次滤波前的角度值,α_gyro是陀螺仪滤波权重系数,在本系统中取值为0.97,β_acc是加速度计滤波权重系数,在本系统中取值为0.03,ω_gyro是第n次陀螺仪采样测量的角速度值,θ_acc时第n次加速度计采样测量的角度值。其中陀螺仪滤波权重系数和加速度计滤波权重系数纯在如下关系:
  α_gyro+β_acc=1
  4.4 小车平衡控制算法
  本系统在小车平衡控制上采用了PD算法,小车平衡控制算法公式为:
  ν_temp=P*θ_new+D*ν_gyro
  上式中ν_temp是控制小车平衡的电机控制变量,θ_new是当前小车倾斜角度,ν_gyro是当前小车的角速度。通过上位机观察在不同P、D参数情况下的响应曲线来确定具体的P、D参数。具体调节方法是首先改变P参数,得到一个超调量最小的响应曲线;然后改变D参数,使得响应曲线的反应速度快并且超调量小。
  4.5 电机速度及转向控制算法
  由于本系统采用了两个独立的直流电机,并且在每个电机的齿轮上组装了一只双相编码器作为速度反馈器件。因此两个电机在控制上均是独立的,这样便可实现小车的前进、后退及转向。在转向控制上,是通过控制左右电机差速的方法来实现。利用摄像头采集赛道边线位置信息,并通过赛道边线位置信息来拟合赛道中心线的位置信息。由于赛道宽度是已知并且固定的,所以当摄像头采集到左右两边赛道边线时,采用中值法获取赛道中心线;当摄像头只能采集到左右一边赛道边线时,给当前赛道信息补上赛道宽度一半的量来获取赛道中心线。最后通过计算,获得小车所需的转向比例。本系统在电机控制上采用了PI算法,左右电机控制算法公式为:
  Speed_New_Left=(1+K)*(P*Speed_Dev+I*Speed_Dev_Add)
  Speed_New_Right=(1-K)*(P*Speed_Dev+I*Speed_Dev_Add)
  上式中Speed_New_Left是左电机速度,Speed_New_Right是右电机速度。K是小车转向比例,即当小车在直道上时K=0,当小车需要左转时K<0,当小车需要右转时K>0,K的取值由小车偏离赛道中心线的程度决定。Speed_Dev是上一次期望速度与实际速度的偏差。Speed_Dev_Add是速度偏差的累积。其中P、I参数的确定方法是首先调节P参数,通过上位机观察响应曲线,直至得到反应快且超调量最小的响应曲线;然后调节I参数,以获得满意的响应曲线。
  5.结语
  本文介绍了一种自主循迹两轮智能车的设计与实现。在动态数据采集的基础上,主要研究了对由加速度传感器和陀螺仪采集的角度信号进行融合的互补滤波算法,在路径识别上对由摄像头采集路径信息的二值化处理方法。经过实验验证,该系统具有工作稳定、循迹准确和运行速度快的特点。本系统方案也能扩展到类似的机器人系统中,应用前景广阔。
  参考文献
  [1]曾军.基于MC9S12DG128单片机的智能寻迹车设计[J].电子设计工程,2009,17(3):54-56.
  [2]摆玉龙,杨利君,董存辉.基于MC9S128的电磁导航智能车的设计与实现[J].测控技术,2011,30(11):60-62.
  [3]王子辉,叶云岳.基于CMOS传感器的智能循迹小车图像识别技术研究[J].传感技术学报,2009,22(4):484-488.
  [4]马昌训,吴运新,孙科军.CC2420和MMA7260的无线传感器数据采集系统[J].单片机与嵌入式系统应用,2010(4):52-55.
  [5]侯向锋,刘蓉,周兆丰.加速度传感器MMA7260在步态特征提取中的应用[J].传感技术学报,2007,20(3):507-511.
  [6]王广文,陈洪亮.基于MMA2760车辆加速度测量系统开发[J].电工技术,2008(11):50-52.
  [7]冯智勇,曾瀚,张力,等.基于陀螺仪及加速度计信号融合的姿态角度测量[J].西南师范大学学报(自然科学版),2011,36(4):137-141.
  [8]张吉昌,程凯,郑荣儿.单轴双轮自平衡车姿态检测方案设计[J].中国海洋大学学报:自然科学版,2009(S1):467-470.
  [9]杨帅,迟瑞娟,赵晓鹏.基于MC9S12DG128单片机的智能循线车的设计[J].拖动机与农用运输车,2008,35(3):93-96.
  [10]谢世杰,陈生潭,楼顺天.数字PID算法在无刷直流电机控制器中的应用[J].现代电子技术,2004,27(2):59-61.
  作者简介:
  王悦(1993—),女,四川绵阳人,大学本科,现就读于西南科技大学信息工程学院,主要研究方向:嵌入式系统设计。
  杨文超(1991—),男,四川成都人,大学本科,现就读于西南科技大学信息工程学院,主要研究方向:嵌入式系统设计。
  陈晓琴(1991—),女,四川乐山人,大学本科,现就读于西南科技大学信息工程学院,主要研究方向:嵌入式系统设计。
  赵思蕊(1991—),男,云南宣威人,大学本科,现就读于西南科技大学信息工程学院,主要研究方向:嵌入式系统设计。
  武丽(1967—),女,山东加祥人,副教授,西南科技大学信息工程学院自动化系主任。
其他文献
【摘要】根据预瞄最优曲率理论及模糊控制理论,利用Matlab/Simulink软件建立模糊PID控制驾驶员模型,并引入对驾驶员预瞄时间的控制,分析预瞄时间函数对轨迹跟踪效果的影响,从更广的方面研究驾驶员的特性。通过仿真与实车实验证明,所建立的驾驶员模型具有较高的准确度,能够较好的拟合车辆的行驶轨迹,其操作特性与真实驾驶员较为接近。  【关键词】驾驶员模型;模糊PID控制;预瞄时间函数  1.引言 
期刊
【摘要】为实现恶劣环境下角度值的测量,分析了各类角度传感器的优缺点,设计一款基于MLX90316的非接触式、低成本、高分辨率,高抗干扰的磁性角度传感器。整个系统中重点分析了信号采集模块的实现原理和影响测量精度的机械结构,通过微处理器实现角度值的解算,在此基础上编写软件算法。实验证明所设计的角度传感器的精度能达到0.5°。  【关键词】角度传感器;非接触式;MLX90316  1.引言  角度传感器
期刊
【摘要】为了提高调度自动化和通信信息等机房机柜内工作效率,提高电力自动化设备的运行可靠性,减轻设备维护人员的工作强度,降低设备维护成本,增强维护人员工作时的安全性,保障电网安全。文中介绍了一种多功能线缆引导器的研制过程,以及此工具在电力自动化和通信信息机房设备维护中的应用情况。  【关键词】调度自动化;服务器机柜;线缆引导器  1.前言  电力系统作为保证社会稳定和居民生活的支柱行业,在国民经济的
期刊
【摘要】本文介绍了以labview为基础构架,通过下位机即传感器与单片机相结合的数据采集系统得到周边环境参数的数据,通过设置通讯协议传递到上位机即labview中进行环境参数的数据通信,以实现数据曲线显示及数据分析等功能,从而可以得到周边环境变化的规律,进一步可以进行各环节的控制功能。  【关键词】环境监测;labview;数据采集;串口通信  1.引言  LabVIEW(Laboratory V
期刊
【摘要】孤岛检测作为电网运行状态转变的一个必要检测环节,在较大程度上限制了分布式发电系统的发展,引起越来越多的研究人员关注。本文从被动检测法入手,提出了一种有效减小盲区的孤岛检测方法。该方法采用公共耦合点PCC处相位变化与电压变化的比值作为检测标准,不仅具有低成本、易实现的优点,而且与传统的检测方案相结合,进行多重判断,具有很高的可靠性。本文用Matlab/Simulink进行仿真实验,结果表明该
期刊
【摘要】近年来研究表明,组合预测方法比单一预测具有更高的预测精度。提出了一种利用改进的Elman神经网络修正ARIMA模型预测结果的短期风速组合预测模型。先利用ARIMA模型对风速进行预测,其线性规律信息包含在时间序列预测结果中,非线性规律包含在预测误差中。再将ARIMA模型的预测误差及历史风速一阶差分序列作为改进的Elman神经网络输入变量,将ARIMA模型的风速预测误差作为输出变量。最后将AR
期刊
【摘要】数控机床是多品种小批量生产的高效自动化的技术群体,它是把多工序加工、切削处理、刀具磨损和测量等各种功能集为一体的自动化机床。我国是世界上机床产量最多的国家,但数控机床的产品竞争力在国际市场中仍处于较低水平,在目前形式下将一大批闲置的普通机床或是旧数控系统的机床进行改造、升级,以较小的投入尽快使这批设备在生产中发挥效能、创造效益,是许多制造业企业正在做的一项工作。  【关键词】数控机床;数控
期刊
【摘要】为了简化卫星导航接收机框架,提出一种基于数字信号抽取的下变频方法。通过分离和累计法,人们发现了一种具有高频率数字载波信号的直接下变频方法。这种方法不仅具有结构简单、速度高和计算简单的特点,还能够很好的保持导航电文和多普勒信息,但这种方法有可能会使S/N信号和接收机的灵敏度降低:分析和仿真结果显示,它对接收机的定位灵敏度没有任何的影响。  【关键词】数字下变频;抽取算法;BPSK  1.引言
期刊
【摘要】本文详细介绍了嵌入式linux下串口应用编程,详细介绍了串口设置的步骤,可以更好的理解串口的工作原理。  【关键词】linux操作系统;串口设置;串口使用  一、引言  串口是一种常用的接口,常用的串口有RS-232-C接口。S3C2410X内部具有两个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模式或者DMA(直接存储访问)模式。同时,每个UART均具有16字节
期刊
【摘要】笔者以自身经历为广大读者解析从软硬件上如何维护高校电子阅览室。从管理软件的选择,杀毒软件的选择,到软件的安装范围,升级频率,硬件维护上进行的详细说明。  【关键词】电子阅览室;安全;维护  众所周知,图书馆电子阅览室已经成为各大高校不可或缺的一部分,众多来图书馆的读者也频繁出入于电子阅览室之间,然而经作者观察发现,通过科学合理的管理方法和维护手段,可以节约人力并且优化上机质量,也就是说,通
期刊