分享

《西部科教论坛》杂志社

 quasiceo 2015-09-23
基于MSP430的多功能小车

2010.7
基于MSP430的多功能小车
1.黄艳刚 ,2.刘董科 ,3.黄亮
(湖北 武汉 中国地质大学 430074)
摘要:本小车以MSP超低功耗单片机MSP430F168为控制核心,通过各种传感器采集外部信号,经过信号放大及滤波电路对信号进行处理后,利用单片机进行综合判别及对信号的运算处理,通过指令控制执行部件工作。结合各信号处理及控制电路实现了小车的寻迹、避障、避悬崖、寻光、语音录放等功能,并且能够精确地在停车线附近停车。本设计采用单片机输出PWM信号给集成驱动芯片来控制直流电机,使用了反射式红外传感器ST188检测红外线信号来矫正行车路线以及躲避障碍物和悬崖,通过光敏电阻检测光强。多传感器并行工作,MCU 则提供外部检测信号综合处理,并控制小车的正确运行。
关键字:MSP430F168PWM寻迹 避障 避悬崖 语音录放

前言
多功能小车采用MSP430F168为控制器,采用多传感器进行信息采集,运用反射式红外传感器ST188进行路径检测和速度控制。另外,采用PWM技术控制小车电机的转向与转速,系统还扩展了语音录放及趋光等功能。此外,寻迹算法的采用使小车行进性能更加优越。
1. 系统方案设计和论证
系统可以划分为以下几个基本模块,其模块组成如图1.1所示

系统模块组成框图
1.1控制核心的选择
采用以MSP430F168为控制核心,所有编程语言围绕MSP430F168进行描述。MSP430F168单片机,功耗低、运算速度快、精度高、外围模块丰富,像该单片机片上自带的比较捕获单元能够方便的产生频率和占空比可调的PWM信号,比其他单片机使用定时器来实现方便得多。
1.2检测方案的选择
红外线光电传感器ST188能够检测到一定距离内自身发射的红外线信号,以下各功能模块的实现基于它的这个特性。寻迹时小车行驶的跑道贴有黑色胶带,通过不同颜色背景对于光线的反射系数不同能够实现对寻迹时黑线的检测;而在避障环节则通过传感器能否接受到自身发出的红外线来判断前方是否存在障碍物;避悬崖实现原理与此类似,只是传感器安装方式不同。使用ST188可以方便地实现实时监控,有效的防止误触发,灵敏度容易控制,而且可以改变电阻来增加红外光电传感器的探测距离,因此选择方案三。
1.3电机选择以及驱动方案
采用减速直流电机。减速直流电机有很好的调速特性;功耗较低、过载能力强;更可以实现频繁的无级快速启动、制动和反转。考虑到本设计中电动车爬坡需要较大的力矩,在找平衡点是时需要反复的制动、变向,故减速直流电机可以很好的适用于此系统的设计。并且采用内部集成有两个桥式电路的专用芯片L298N所组成的电机驱动电路,利用它内部的桥式电路来驱动直流电机。此选择优点在于:每一组PWM波用来控制一个电机的速度,而另外两个I/O口可以控制电机的正反转,控制和保护电路简单,应用比较灵活,而且稳定,可以轻松实现对电机方向的控制。
1.4 寻迹算法
为了小车能够更好地实现寻迹的功能,此设计中采用较常用的PID算法。PID控制算法,简单地说,就是运用比例、积分、微分算法,来对回路中的偏差进行修正,通过执行器调节参数,使测量值稳定在设定值附近,达到控制某一参数的目的。PID算法在控制过程中能够在一定的范围内消除振荡,提高下偏差的稳定性。在小车高速行进时,遇到赛道变化,往往会产生很大的偏移信号,使加入I变量后的振荡增大,所以把I的响应加入一个逻辑系数,决定积分I变量是否参与调节小车状态,另外还使用微分D调节。并且我们把前四次的结果结合起来,消除单次扰动。
2. 系统具体设计与实现
2.1 系统硬件设计
2.1.1 车体设计
本小车体完全由手工制作。外形制作时用到了实验室的钻孔机和锯条,其各主要部件安装位置如图2.2所示。车的底板为一块铝板,用溶胶将两个电机固定在铝板的下面作为主动前轮,后面则固定一个摩擦较小的万向轮;MSP430最小系统模块,传感器模块,显示模块,电机驱动模块等都用螺丝安放在铝板上方,且有隔离层防止短路;共用到六个反射式红外传感器ST188和两个光敏电阻,三个ST188安在电机前用来检测黑线实现寻迹功能,一个被安插在小车正前方的底部以防止小车掉地,两个分布在小车两边检测前方是否有障碍物;而左右光敏电阻可以探测较强光源;
2.1.2 单片机最小系统设计
考虑到小车各模块功能的实现主要依靠传感器的信号检测及处理,这样会有较大的运算量,选用一款处理能力强的控制芯片尤为重要,而TI公司的MSP430系列单片机是一种16位的超低功耗的混合信号处理器,片上资源丰富,适合于低功耗、高速实时控制以及数据处理,是设计的不错选择。一片MSP430F168能够出色的完成电机控制、各传感器检测信号的处理、接口显示,使小车实现设定的各种功能。
2.1.3直流电机驱动模块
电机的驱动电路以L298N驱动桥为核心,工作时电机驱动信号由单片机提供,通过单片机输出的两路PWM信号来控制一对直流减速电机,电机的转速通过PWM信号的占空比来调节,通过调整脉冲信号的占空比,从而调整电机的力矩已达到对电机转速的精确控制,L298N控制电机原理如附录图2所示。
芯片控制方法见附录表1所示,11脚为高时,当10脚电平高于12脚时,13脚,14脚端电机正转;12脚电平高于10 脚时,电机倒转;当5脚电平高于7脚时,2脚,3脚端电机正转;7脚电平高于5 脚时,电机倒转;当11脚为低时,电机自由控制。
2.1.3寻迹·避障·避悬崖模块
主要用到反射式红外传感器ST188,其采用高发射功率红外光电二极管和高灵敏度光电晶体管组成。检测距离可调整范围为4-15mm;采用非接触检测方式,可完成寻迹、避障、避悬崖等功能。
ST188的工作原理如图2.5所示其中封装在矩形壳体中的是发射器LED(由左侧的白色方块表示)和探测器装置(在右侧)。虚线表示光线从发射器LED 中发出并反射回探测器;探测器检测到的光强大小取决于物体表面的反射率,而这一光强就是传感器的输出值。选通信号(高电平)经过三极管扩流后送到传感器的K 脚,如果检测到黑线,传感器C脚输出高电平;否则输出为低电平。
程序通过查询的方式检测小车前端的六个红外传感器信号,控制小车按照黑线标示的路线行驶,及按照外界情况作出相应反应。寻迹时主要检测电机正前方朝下安装的三个传感器;避障时用到边上两个朝前的传感器;避悬崖则用到突前的一个传感器。当小车在白色地面行驶或遇见障碍物时,装在车下的红外发射管发射红外线信号,经反射后,被接收管接收,一旦接收管接收到信号,输出端将输出低电平;当小车行驶到黑线或无障碍物时,红外线信号被吸收后,将输出高电平,从而通过检测红外线信号的有无实现路面情况的判断。寻迹时将检测到的信号经过滤波放大送单片机处理,当I/O 口检测到的信号为高电平时,表明红外光被地上的黑线吸收了,表明小车处在黑色的引线上,当I/O 口检测到的信号为低电平时,表明小车行驶在白色地面上。避障及避悬崖同样利用传感器检测信号的有无来判断路面状况,只是传感器的安装方式及信号处理方式有所不同。
2.1.4 寻光模块
光源检测模块采用两个光敏电阻从左右两个方向采光,将光敏电阻采集到的光强信号经过比较放大来判断哪边的光照较强从而确定小车的寻光特性。
2.1.5 液晶显示模块
考虑到单片机管脚的使用和占地面积,我们采用1602的LCD显示,控制灵活,同时功耗也较低。普通的LED显示需要更多的I/O口,这回是单片机资源急剧下降,同时也会占去电路板的大部分地方,1602则不会产生这样的问题,而且其价格便宜,电路简单使用方便。
2.1.6 电源模块
小车采用12V电源适配器给各模块供电,其中电机驱动需要12V电源,可以直接从电源适配器取得,传感器检测及信号处理单元需要5V供电,可通过稳压芯片LM7805转换实现,主控制芯片采用3.3V供电,通过单片机最小系统上的电压转换芯片LM1117-3.3来实现。传感器信号检测及处理主模块供电电路,主控芯片供电如MSP430最小系统电路原理图所示。
2.1.7 报警模块
报警模块主要有蜂鸣器和发光二极管实现一种附加的声光警示功能。
2.1.8 语音录放模块
这里我们用到ISD1420芯片实现语音录放功能,该录放系统电路内部由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器和输出放大器组成,一个麦克风(咪头)和一个喇叭可以实现语音的录制和播放功能,时间20S。该功能由直接模拟存储技术(DAST TM)实现的,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器。直接模拟存储允许使用一种单片固体电路方法完成其原本语音的再现。不仅语音质量优胜,而且断电语音保护。图2.11为我们使用的ISD公司提供的芯片电路。

语音录放模块电路
3. 系统软件设计
系统选用MSP430单片机实现,利用 C语言编程。采用模块化设计方法,先设计出子程序并进行调试,然后进行模块集成,形成主程序。

图3.1 小车系统软件流程图


4.系统测试
4.1 测试仪表
卷尺、直尺、秒表 、万用表
4.2 测试项目及方法
(1)小车循迹时行车速度的测量:开启电源开关,将电动车放于起始端A点,秒表开始计时,当小车到达终点时,记录下液晶上显示的时间和秒表测得的实际时间,用卷尺测出循迹路线的长度,根据速度公式计算出小车的平均速度,重复多次测量求平均值。
(2)小车避障时障碍物检测灵敏度的测量:当小车结束循迹进入避障环节时,在小车的正前方、前方偏左、前方偏右的一定距离放置障碍物,不断调整障碍物距离,测出小车做出避障反应的最大距离及小车调整的角度。
(3)测量避悬崖时小车遇到悬崖及时停车,不至于因为惯性而冲出的行车速度:采用不同的速度行车,当小车恰好能够稳定停在悬崖边上时,按照(1)中的方法测出此时的行车速度。
4.3 测试数据
(1)循迹时行车速度的测量,测试数据列于表4.3.1中。
表4.3.1行车速度测量
次数实际时间
(单位:s)显示时间
(单位:s)行车路程
(单位:cm)平均速度
(单位:
cm/s)总平均速度(单位:
cm/s)
第一次12.0712.0625521.13

21.68
第二次11.8811.8625521.46
第三次11.3611.3525522.45
(2)障碍物检测灵敏度的测量,测量数据列于表4.3.2中。
表4.3.2传感器灵敏度测量
障碍物方位检测到障碍的距离(cm)小车平均调整角度大小
(度)
第一次第二次第三次
正前方9.99.710.045
前方偏左8.58.78.736
前方偏右9.99.79.745
(3)避悬崖时小车安全停靠崖边速度测量,测量结果如表4.3.3
表4.3.3安全停靠速度测试
次数安全停靠最大速度(cm/s)总的平均速度
(cm/s)
第一次13.6
13.7
第二次14.2
第三次13.3
4.4 测试分析
分析表4.3.1结果如下:液晶显示的时间和秒表测得的时间基本相符.小车寻迹速度较快。
分析表4.3.2结果如下:小车前方左右两边的传感器检测灵敏度差别较大,这可能与传感器的位置不太对称有关,也可能与传感器本身的精度有关;小车左转右转调整的角度不太一样,这与PWM信号设定的占空比及传感器的检测灵敏度有关。
分析表4.3.3结果如下:小车能够在悬崖边上安稳停靠的极限速度比循迹的平均速度小很多,这主要是因为测试用的桌面摩擦系数较小,加上小车急停时会由于较大的惯性向前冲出,在实际路面上极限速度应该会快很多。
4.4 发挥创新
(1)在小车的循迹过程中,根据路面的实际情况,不断地调整左右电机的转速,使小车能够在频繁拐弯且弯度较大的黑线上较平稳的运行。
(2)小车避障利用循环检测传感器状态,并对车轮的转向进行适度的调整达到能够及时准确的避开障碍物的目的。
(3)为减小因小车惯性而可能发生的冲出悬崖的机率,适当减缓小车行进速度,并合理安放前端的传感器使之具有尽量高的检测灵敏度。
5.结论
本设计通过MSP430单片机很好的实现了小车的寻迹、避障、避悬崖、寻光等运动控制,并根据实际需要增加了声光报警、LCD显示及语音录放等功能。其中机械结构是小车能否稳定运行的基础,我们用到了较多螺丝和溶胶来固定各模块;硬件电路方面为了避免不同模块电路之间的相互干扰,使用单元模块化电路,使用排线连接各个模块;而软件部分则是控制的灵魂,算法的好坏直接决定了完成任务的质量,我们根据小车运行情况,不断的调试优化软件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多