1.系统方案选择与论证
1.1系统基本方案
根据题目要求,有两种解决方案。
方案一:精确定时法
这种方案主导思想是:由题目要求可知电动车的运行轨道比较固定,因此可以通过不断的调试最终可以得到各阶段行驶的时间,得以通过定时方法到达平衡点C,终点B和返回起始点A。
缺点:供电电压不稳定,易导致小车车速不稳定,则距离不好控制;另外路线固定不变,不能应对意外事件,而且想要准确跑完全程需要对电动车的起始位置、直线行进参数、进行精密测量和计算,智能化差,容易跑偏坠落。
方案二:传感器引导法
这种方法核心是单片机通过对传感器信号检测来控制步进电机转速和转向,智能化大大增强。可以用下图形象的表示出来:
比起前一种方案来说,这种方案应用面更广,也更接近实用化,智能化。重要的是单片机可以通过传感器检测到的信号来精确控制电机运转,从而大大提高了运行过程中的实时性、准确性,使得电动车能够轻松的完成整个过程。因此我们选用方案二 。系统框图如图1所示:
图1 系统总体结构框图
1.2各模块方案选择与论证
1.2.1单片机最小系统的选择
方案一: 单片机选用89C51。其内部有4K字节的Flash Rom,电路设计简单,价格便宜。但时钟频率低、运行速度慢,功能不够齐全。
方案二:选用ARM单片机为控制核心。频率高、运行速度快、容量大、I/O口资源丰富,但价格较高。
方案三:选用SPCE061A单片机为控制核心。频率较高、响应快、有14个中断源,两个定时器,7路A/D转换,两路D/A转换,并且有丰富的语音资源、电路设计简单、价格便宜。
综合考虑我们选用方案三 。
1.2.2导航电路方案选择
方案一:用光电传感器采用循迹的方式保证电动车的直线行走。此方案简单可行,但通用性差,有一定的局限性。
方案二:用红外测距传感器测量跷跷板的两个边缘,当电动车发生偏转时,红外测距传感器变为检测地面与车体的距离,输出电压会急剧下降,单片机接到信号会及时控制电机的转动状态做出相应的调整。该方案没有对题目要求做任何限制就能实现其功能,因此本设计选用方案二。
1.2.3角度测量电路设计
方案一:使用铅垂线+光折断器。市售的光折断器的尺寸小的在5mm左右,也就是说,能检测到5mm的尺寸变化,按照大赛对平衡要求,平衡时平衡夹角Υ正切值为40/1600=1/40,也就是说,如果需要达到5mm的检测精度,需要使用200mm高的铅垂线,如需要更高的精度,可以通过提高铅垂线的长度来实现。此方案虽然可行,但体积较大,不便于安装。
方案二:采用光电编码器。光电编码器具有精度高、体积小、重量轻、安装方便、抗干扰强等特点。因此本设计选用方案二。这里采用的是ZSP3.806系列的光电编码器。
1.2.4电机的选择
方案一:采用直流电机做小车的动力。直流电机驱动电路设计简单,易于控制,但是直流电机惯性大、响应慢、不便于精确控制转速,根据题目要求的精度直流电机部容易实现,故不宜采用。
方案二:采用步进电机做动力。步进电机精度高、惯性小、响应快便于精确控制转速和转向,适合该题目的控制,因此本设计采用方案二。
1.2.5步进电机驱动电路的设计
方案一:使用多个功率放大器件驱动电机
通过使用不同的放大电路和不同参数的器件,可以达到不同的放大要求,放大后能够得到较大功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。
方案二:使用L298N芯片驱动电机
L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;也可以直接用单片机的IO口提供信号;而且电路简单,使用起来比较方便。 通过比较,使用L298N芯片能充分发挥它的功能,能稳定地驱动步进电机,且价格不高,故我们选用L298N驱动电机。
1.2.6显示电路的选择
方案一:根据题目要求,需要显示的内容只有数字或字母,因此可以选用LED数码管显示。但显示容量有限,且动态扫描需要占用大量单片机时间,无法做到实时显示。
方案二:具有显示容量大、内容丰富、占用单片机口线少、节省单片机时间、功耗低等优点,完全符合本系统要求。
1.2.7电源部分
方案一:采用自制的直流稳压电源。 自制电源功率大,绿色环保,电压稳定,但携带不方便,使电动车的运动受到限制,因此不宜采用。
方案二:采用镍氢蓄电池给系统供电,由于步进电机工作电压为9V,单片机工作电压为5V,根据系统要求,我们选择7809稳压管和7805稳压管将12V的电池组转成9V 和5V输出。该方案电压稳定,电池可重复利用,且携带方便,小车运动不受限制,可以方便快捷的完成任务,因此,我们选用方案二。
1.3 系统各模块的最终方案
经过上述的分析论证,系统各模块采用的最终方案如下:
(1)、控制核心:选用SPCE061A单片机;
(2)、导航电路: 用红外测距传感器测量跷跷板的边缘;
(3)、角度测量: 采用光电编码器;
(4)、动力模块:选用步进电机作为小车的动力装置;
(5)、步进电机驱动模块:使用L298N芯片驱动电机 ;
(6)、显示电路:用LCD液晶显示;
(7)、电源部分:采用镍氢蓄电池给系统供电;
2. 系统硬件设计与实现
2.1导航电路设计
为了保证小车沿直线行走,以及准确判断是否到达跷跷板的两端,本设计在车体的前端和后段各装一只红外测距模块,在前端的左右两侧和后端的左右两侧分别装有两只红外测距模块。
2.2角度测量电路设计
为了让小车尽快找到平衡点,我们采用光电编码器精确测量跷跷板的倾角。具体电路见附录图b、图e、图j。
2.3步进电机驱动电路设计
为了保证步进电机能够平稳高效运转,本设计采用L298N芯片驱动电机,并用光电耦合器进行隔离防止烧坏单片机。具体电路如图2所示:
图2 步进电机驱动电路
2.4显示电路设计
基于LCD具有显示容量大、内容丰富、占用单片机口线少、节省单片机时间、功耗低等优点,我们采用液晶显示。电路连接见附录图c
2.5 电源电路设计
为了给系统提供一个高效稳定可靠的工作电压,我们对电池组进行稳压措施。电路原理如图3所示:
图3电源电路设计
3. 系统软件功能设计、理论分析和计算、各程序框图
从题目的要求角度来看,本程序用各个阶段调用子程序的方法,思路简单易于思考,因为采用了步进电机,对小车的行进易于精确控制,但是由于步进电机的单步性使小车有了难以消除的突变性,程序采用渐进的方式使速度缓慢改变,寻找平衡时采用动态平衡比较现实 也比较容易控制。
根据题目要求平衡的定义为跷跷板的两端上下波动不超过2cm,由此可以计算出平衡时允许波动的最大偏角:ɑ=±ractan1/40≈±1.43°因此当角度传感器检测到偏角为零或正负摆动不超过1.43°且大小相等的角度时就可以认为处于平衡状态了。另外,为防止小车从跷跷板上掉下来我们采用红外线测边沿距离来进行模糊控制。
主要程序流程图见附录图e、图f、图g。
4. 系统测试
4.1测试仪器:YB4328双踪示波器(20Hz~20MHz)、4位半数字万用表、游标高度尺、计算器、秒表、水平仪、卷尺等。
4.2指标测试:
基
本
部
分
|
|
A点到C点附近时间
|
找到平衡点所需时间
|
平衡点到终点所需时间
|
保持平衡时间
|
终点返回起始点所需时间
|
平衡时上下波动差
|
秒表显示
|
5.19s
|
23.32s
|
4.31s
|
5.63s
|
9.67s
|
14.33mm
|
小车显示
|
5s
|
23s
|
4s
|
6s
|
10s
|
14s
|
秒表显示
|
5.14s
|
25.17s
|
4.22s
|
5.72ss
|
9.61s
|
15.56mm
|
小车显示
|
5s
|
25s
|
4s
|
6s
|
10s
|
16s
|
发挥部分
|
|
上板所用时
|
A点到C点时间
|
调平时间
|
保持平衡时间
|
配重物用时间
|
再次平衡耗时
|
保持时间
|
平衡点到终点时间
|
返回时间
|
秒表测得
|
17.21s
|
7.09s
|
28.06s
|
5.54s
|
4.59s
|
17.74s
|
6.01s
|
4.73s
|
10.03s
|
小车显示
|
18s
|
7s
|
28s
|
6s
|
5s
|
18s
|
6s
|
5s
|
10s
|
秒表测得
|
19.33s
|
6.03s
|
27.01s
|
5.67s
|
4.65s
|
18.22s
|
5.82s
|
4.56s
|
9.79s
|
小车显示
|
20s
|
6s
|
27s
|
6s
|
5s
|
18s
|
6s
|
5s
|
10s
|
由表格可看出基本部分所需最长时间为49.86s,发挥部分所需最长时间为101.17s,平衡时跷跷板两端上下波动最大距离为16.71mm,完全符合系统要求。
4.3调平测试
(1)将小车放在有重物的一端,打开开关,小车停止时跷跷板B端底部与水平状态的偏移量为16.71mm且能保持6.01秒,在平衡时能发出声光提示,完成全过程用时101.17秒,完全符合要求。
(2)改变重物位置重复(1),跷跷板平衡时的偏移量基本保持不变,用时103.24秒。
4.4角度测量
起始点处的倾角理论计算值为:ɑ=±ractan7/80=5°,平衡点处理论值为0°。
测量次数
|
起始点
|
平衡点
|
终点
|
1
|
4.8°
|
1.2°
|
-5.2°
|
2
|
5.2°
|
0.9°
|
-4.4°
|
3
|
5.0°
|
1.4°
|
-5.0°
|
4.5实现功能:
经过测试系统的各参数都在题目要求范围内。本系统在完成了题目要求的基本部分和发挥部分外,还增加了测温装置,有效防止电机因温度过高而烧坏的现象。此外,小车在跷跷板上保持平衡时可以在上面原地旋转。
|