软件安装完毕后,我们就可以把MSP430/432接上电脑,上传一些简单的示例程序(如点灯) 看有没有问题,如果没有问题的话,就可以开始项目制作了。
为了完成本次项目的要求,我使用的是 MSP430F5529 LaunchPad 实验板作为小车的核心控制板(具体介绍可自行搜索,其他同类型的也可以),它可以利用集成的全速 USB 2.0 来开发低功耗、与 PC 连接的应用程序,刚好可以完成需求。车身选择的是常见的铝合金车板,配合直流减速电机使速度降下来,作为小车的驱动;同时选用橡胶轮胎增大摩擦力,让爬坡更稳定。选择三路红外循迹模块进行 1cmX1cm 的黑白交替方格巡线,走过一米长的路径。最后配合一个简单的蜂鸣器来达到停车鸣笛的效果。同时在车身上配备了一个 LCD 的液晶显示模块,可以实时显示车速和运行时间,方便测速和定时。为了使小车以低速、稳定的情况运动,在控制小车时还采用了 PWM 输出来控制小车速度,采用 PID 算法稳定小车速度,使之能随着坡道角度增大时还能稳定小车的速度。
各模块关系如上图所示。有了思路以后就可以分模块的选择我们所需要的器件,然后将其组合起来,搭配软件控制,实现功能。
(1)控制器模块:MSP430F5529LP
选这个模块的理由很多,用起来也很好用,有四十个IO口,可以说是完全够用了,不过其他的也可以,没有太大的影响。
(2)驱动模块:L298N驱动模块+带编码盘的直流减速电机2个+舵机
为了能让小车运动起来,必须给小车配以电机和相应的驱动模块。对于电机的选型,我选择了带编码盘的直流减速电机,使速度降下来的同时还能测速,方便PID控制。驱动模块选择了较为常见的L298N。采用的方式为两个后轮驱动,前轮舵机转向。(为了方便直接买了如图的电机加车架组合,也可分开购买)
(3)循迹模块:三路红外循迹模块
循迹模块我选择的是常见的三路集成式红外探头,它具有集成度高、工作性能可靠的优点。为了实现要求,三路就已经足够了。当然其他循迹模块也可以,能实现循迹功能就行。
(4)显示模块:LCD1602A显示
对运动的小车,为了能有效记录运动时间以及实时速度,我还为电动小车添加了显示模块。本来应该选择较好的OLED显示,但由于Energia内部的库太少了,导致使用OLED时所需要调用的库暂时没有(或者是我还没找到),所以只能选择稍差一点的LCD显示,这也是本项目中一个比较无奈的点。
(5)电源模块:可降压的多路电源模块
小车的主要电源是 12V 三节电池,考虑到不同模块所需要的电压不同以及 对接线端口的要求,采用一个多路电源模块,将 12V 总电压降为 5V 和 3.3V 对各模块进行供电,从而实现电源模块的设定。(尽量不要选图中这个,我用了这个后发现虽然它有很多个5V的接口,但是当把两个电机接上后,如果再接上5V的舵机,供电就会变得极不稳定,影响正常工作,不知道是不是电流过大的原因)
(7)报警模块:普通蜂鸣器
为了实现小车报警停车的功能,还应该选择小车的报警装置,我选择普通的无源蜂鸣器作为小车的报警模块即可实现设计要求,通过程序控制,使小车在停车时发出警报。
(8)供电模块:三节12V电池组
将以上各组成模块准备好之后,先利用单片机独立对各部分进行功能测试,没有问题后,准备好若干杜邦线,就可以进行硬件的组装过程了。接线等详情见下篇。