电动车跷跷板设计报告.docx
《电动车跷跷板设计报告.docx》由会员分享,可在线阅读,更多相关《电动车跷跷板设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
![电动车跷跷板设计报告.docx](https://file1.bdocx.com/fileroot1/2023-2/3/102087f2-c299-4d20-a5ae-8ff573975828/102087f2-c299-4d20-a5ae-8ff5739758281.gif)
电动车跷跷板设计报告
2013年滨州学院大学生电子设计竞赛:
电动车跷跷板
设计报告
参赛队员:
张伟 专业:
电气工程与自动化
参赛队员:
张超 专业:
电气工程与自动化
参赛队员:
杨珂 专业:
应用电子技术
日期:
2013年5月7日
摘 要
本系统采用Atmel公司的ATmega16单片机作为主控制器;采用四个转速和力矩基本完全相同的直流电机进行驱动,并配合PWM调速;采用L298N驱动电路芯片;使用E18-D80NK型光电开关;采用SCA60C单轴倾角传感器,角范围在±90间,分辨率能达到0.1度,能准确测量小车与平面的夹角,易于单片机控制;采用NOKIA5110显示屏;采用BMP5008系列多段高音质低价格语音录放板。
整个系统用12V电源给前、后轮电机供电,然后使用L7805稳压管来把高电压稳成5V分别给单片机和电机驱动芯片供电。
关键词:
ATmega16;光电开关;SCA60C单轴倾角传感器;BMP5008语音录放板;NOKIA5110
Abstract
ThissystemadoptstheAtmelcompany'sATmega16microcontrollerasthemaincontroller;Usingfourbasicsamerotationspeedandtorqueofdcmotortodrive,andcooperatewiththePWMspeedregulation;AdoptedL298Ndrivercircuitchips;UsetheE18-D80NKtypephotoelectricswitch;AdoptSCA60CsingleshaftAnglesensor,Anglerangebetween90,theresolutioncanreach0.1degrees,canaccuratelymeasurethecarandplaneAngle,easytosingle-chipmicrocomputercontrol;TheNOKIA5110displayscreen;WithBMP5008seriesmuchperiodofhighqualitylowpricevoiceplaybackplatearoundtheentiresystemwith12vlithiumbatterytopowerarearwheelmotorbefore,thenusetheL7805stabilivolttohighvoltagestabilityinto5vrespectivelytoSCMandmotordriverchip.
Keywords:
Tmega16;optoelectronicswitch;SCA60CSingleshaftAnglesensor;BMP5008Voicerecordingplate;NOKIA5110
目 录
1.系统设计 4
1.1设计背景 4
1.2电动小车的整体结构的设计 4
1.3模块方案的比较与论证 5
1.3.1微控制器模块 5
1.3.2车体设计 6
1.3.3电机模块 6
1.3.4电机驱动模块 7
1.3.5循迹传感器模块 7
1.3.6角度传感器模块 8
1.3.7电源模块 8
1.3.8显示模块 8
1.3.9语音模块 9
1.3.10时钟模块 9
1.4创新点 10
2.系统的硬件电路设计 10
2.1硬件电路设计特点 10
2.2各功能模块电路设计及功能 10
2.2.1电机驱动电路的设计 10
2.2.2光电开关检测电路的设计 11
2.2.3角度检测电路的设计 12
3.软件系统设计及实现软件设计 13
3.1开发软件及编程语言简介 13
3.2开发工具与调试 13
3.3程序流程图 15
3.4主要源程序 19
4.总结 19
5.参考文献 20
附表一:
总电路图 21
附表二:
源程序 22
1.系统设计
1.1设计背景
制作一个电动车跷跷板,在跷跷板起始端A一侧装有可移动的配重。
配重的位置可以在从始端开始的200mm~600mm范围内调整,调整步长不大于50mm;配重可拆卸。
电动车从起始端A出发,可以自动在跷跷板上行驶。
1.电动车从起始端A出发,在30秒钟内行驶到中心点C附近;
2.60秒钟之内,电动车在中心点C附近使跷跷板处于平衡状态,保持平衡5秒钟,并给出明显的平衡指示;
3.电动车从
(2)中的平衡点出发,30秒钟内行驶到跷跷板末端B处(车头距跷跷板末端B不大于50mm);
4.电动车在B点停止5秒后,1分钟内倒退回起始端A,完成整个行程;
5.在整个行驶过程中,电动车始终在跷跷板上,并分阶段实时显示电动车行驶所用的时间。
1.2电动小车的整体结构的设计
系统总体设计框图如图1所示:
图1 系统总体设计框图
1.3模块方案的比较与论证
1.3.1微控制器模块
方案一:
采用Atmel公司的AT89S52单片机作为主控制器。
AT89S52是一个低功耗,高性能的51内核的CMOS8位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM),32个IO口,2个16位可编程定时计数器。
且该系列的51单片机可以不用烧写器而直接用串口或并口就可以向单片机中下载程序。
我们自己制作51最小系统板,体积很小,下载程序方便,放在车上不会占用太多的空间。
方案二:
采用Atmel公司的ATmega16单片机作为主控制器。
ATmega16是一个低功耗、高性能的8位AVR微处理器,片内含16k字节空间的可反复擦些10000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM),32个I/O口,32个8位通用工作寄存器。
ATmega16单片机采用RISC结构,其目的就是在于能够更好地采用高级语言(例如C语言、BASIC语言)来编写嵌入式系统的系统程序,从而能高效地开发出目标代码。
从方便使用的角度考虑,我们选择了方案二,采用Atmel公司的ATmega16单片机作为主控制器。
1.3.2车体设计
方案一:
购买玩具电动车。
购买的玩具电动车具有组装完整的车架车轮、电机及其驱动电路。
但是一般的说来,玩具电动车具有如下缺点:
首先,这种玩具电动车由于装配紧凑,使得各种所需传感器的安装十分不方便。
再次,玩具电动车的电机多为玩具直流电机,力矩小,空载转速快,负载性能差,不易调速。
而且这种电动车一般都价格不扉。
因此我们放弃了此方案。
方案二:
自己制作电动车。
经过反复考虑论证,我们制定了左右四轮分别用四个转速和力矩基本完全相同的直流电机进行驱动。
当小车前进时,四个车轮同时驱动,并配合PWM调速,这种结构使得小车在前进更加平稳,可以避免出现左右电机转速不均的弊端,并且经济美观。
综上考虑,我们选择了方案二,自己动手制作一辆电动车。
1.3.3电机模块
方案一:
用步进电机。
步进电机可以精确地控制角度和距离。
步进电机的输出力矩较低,随转速的升高而下降,且在转速较高时会急剧下降,故其转速较低,不适用于小车等有一定速度要求的系统,并且它的体积大,价格高,质量大,另外步进电机的编程复杂,增加了编程的难度。
方案二:
采用直流减速电机。
直流电机运转平稳,精度也有一定的保证,虽然没有步进电机那样高,但完全可以满足本题目的要求。
通过单片机的PWM输出同样可以控制直流电机的旋转速度,实现电动车的速度控制。
并且直流电机相对于步进电机价格经济。
综合性价比和功耗等方面的考虑,我们选择方案二,使用直流减速电机作为电动车的驱动电机。
1.3.4电机驱动模块
方案一:
采用继电器对电机的开关进行控制,可以完成电机的正转,反转,调速,但继电器响应时间慢,使小车运动灵敏度降低,增加了避障的难度。
而且机械结构易磨损,可靠性不高。
它适用于大功率电机的驱动,对于中小功率的电机则极不经济。
方案二:
采用集成的驱动电路芯片L298N。
L298N驱动芯片具有体积小,可靠性安全性高,抗干扰能力强等优点,适合控制智能小车的运动。
且有较大的电流驱动能力,连接方便简单。
综合以上考虑,我们选择方案二,使用L298驱动直流电机。
1.3.5循迹传感器模块
方案一:
用红外发射管和接收管自己制作光电对管寻迹传感器。
红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。
这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。
方案二:
使用E18-D80NK光电开关。
光电开关检测到黑白线只出现高低电平变化,变化明显,易于区别,且传感器接线简单,信号稳定,非常适合小车的寻迹。
所以我们选择了择方案二,采用黑白传感器作为寻迹模块。
1.3.6角度传感器模块
方案一:
采用水银开关和编码器。
控制精度很低,不易实现题目要求。
方案二:
采用AME-B001角度传感器。
AME-B001,0-360度测量范围,同步串行接口,绝对角位置输出,但是安装非常不方便,而且电压输出信号,采集不便。
方案三:
采用SCA60C单轴倾角传感器,角范围在±90间,分辨率能达到0.1度,能准确测量小车与平面的夹角,且只需5V供电,消耗电流低,同时比例输出电压,提高故障检测。
易于单片机控制。
价格低廉,便于安装。
由于跷跷板最大倾角为5度左右,角度变化范围较小,因此要求角度传感器精度高,频率快。
综上考虑我们选择方案三,采用SCA60C单轴倾角传感器。
1.3.7电源模块
在本系统中,需要用到的电源有单片机的5V,L298N芯片的电源5V和电机的电源7-15V。
所以需要对电源的提供必须正确和稳定可靠。
方案一:
采用双电源,把单片机的供电和驱动电路分开来,即:
用直流电12v供给单片机,后轮电机的电源用5V供电,这样有助于消除电机干扰,但是相对麻烦,且增加了小车自身的重量。
方案二:
用一组锂电池使用L7812稳压管将电压稳定到12V给前、后轮电机供电,并使用L7805来把高电压稳成5V分别给单片机和电机驱动芯片供电。
这种接法更稳定且简单易行。
基于以上分析,我们选择了方案二,采用单电源供电。
1.3.8显示模块
方案一:
采用带字库的12864显示。
LCD可以用全中文界面显示,显示内容丰富,易于人机交流,且可以串行接口,节省I/O资源,显示简单。
方案二:
采用NOKIA公司使用过的5110显示屏,它不仅可以实现中英文和数字的显示,而且价格更加便宜。
考虑到本题及经济上的要求,故我们选择方案二,利用5110液晶显示屏实时显示各阶段行驶所用时间,并配合两个外加LED小灯实时指示小车的行驶状态(小车前进时左灯点亮,后退时右灯点亮,寻找平衡时两灯熄灭,暂停行进时两灯同时点亮)。
1.3.9语音模块
方案一:
采用ASRM08-A非特定人语音识别模块。
ASRM08-A非特定人语音识别模块的关键词返回值取值为000~255,其中值“255”为模块占用的具有特殊意义的值。
模块内部设定了值返回255时模块不做任何动作。
方案二:
采用BMP5008系列多段高音质低价格语音录放板。
通过外挂不同容量的FLASH,获得从30秒—32分钟的录音容量;录音信息掉电后不会丢失;且板上自带稳压电路,支持5V—6V电压直接输入;主芯片自带0.5W功放,可自定义6个I/O口的触发功能为单端触发放音还是62段(8421并行编码)地址选段放音。
对于以上两种方案,方案二较方案一来说较为简单且价格低廉,基于以上分析我们采用方案二。
1.3.10时钟模块
方案一:
利用软件实现数字时钟。
使用一个外部8MHz石英晶振,利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1,并在5110显示屏上显示。
该方案具有硬件电路简单的特点,且程序易执行的特点。
方案二:
本方案采用Dallas公司的专用时钟芯片DS1302。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,芯片内部包含锂电池,当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
基于上述方案的特点,时钟模块我们采用方案一。
1.4创新点
我们组以SCA60C单轴倾角传感器和AVR单片机为核心模块,利用AVR单片机自带的片内ADC资源,对小车行驶过程中的实时角度进行采集和反馈,并最终通过单片机对小车的行驶状态进行控制和调整。
并在小车上添加了语音模块和LED小灯,可以通过不同小灯的亮灭以及语音提示反馈出小车任意时刻的行驶状态及内部程序执行的过程。
最后由5110显示屏显示出小车行驶每阶段所用时间。
2.系统的硬件电路设计
2.1硬件电路设计特点
我们设计的小车硬件部分功能可大致分为:
L298N驱动直流电机、光电检测器和单轴倾角传感器SCA60C。
L298N驱动直流电机,它靠两个引脚控制一个电机的运动。
通过光电检测器来实现黑白线的监测,当检测到黑线时输出端为低电平,白色时为高电平。
通过把单轴倾角传感器SCA60C水平的固定在平衡板上,达到了实时检测平衡板倾斜角度的目的,并通过对电机驱动电路的控制实现了平衡板的转动。
2.2各功能模块电路设计及功能
2.2.1电机驱动电路的设计
L298N驱动直流电机,它靠两个引脚控制一个电机的运动。
智能寻迹小车采用后轮驱动,左右后轮各用一个直流减速电机驱动,通过调制后面两个轮子的转速或正反转来达到控制小车转向的目的。
芯片引脚和功能如表1,驱动电路图如图2:
IN1(IN3)
IN2(IN4)
电机运行情况
1
0
正转
0
1
反转
1
1
刹车
0
0
停止
表1 L298N的引脚和功能
图2 驱动电路图
2.2.2光电开关检测电路的设计
通过光电检测器来实现黑白线的监测,当检测到黑线时输出端为低电平,白色时为高电平。
三个光电开关来实现小车走直线。
输出端要加上拉电阻,才能得到稳定信号,其原理图如图3所示:
图3光电开关原理图
2.2.3角度检测电路的设计
通过把单轴倾角传感器SCA60C水平的固定在平衡板上,达到了实时检测平衡板倾斜角度的目的,并通过对电机驱动电路的控制实现了平衡板的转动。
在单轴倾角传感器SCA60C中:
1引脚、2引脚、3引脚和5引脚接在一起;4引脚接地;6引脚制空;7引脚接单片机的PA0口;8引脚接电源。
其原理图如图4所示:
图4单轴倾角传感器SCA60C原理图
3.软件系统设计及实现软件设计
3.1开发软件及编程语言简介
自ATMEL公司的AT90系列单片机诞生以来有很多第三方厂商为AT90系列开发了用于程序开发的C语言工具,ICCAVR就是ATMEL公司推荐的第三方C编译器之一。
ICCAVR是一种符合ANSI标准的C语言来开发MCU(单片机)程序的一个工具,功能合适、使用方便、技术支持好,它主要有以下几个特点:
1.ICCAVR是一个综合了编辑器和工程管理器的集成工作环境(IDE);
2.源文件全部被组织到工程之中,文件的编辑和工程的构筑也在这个环境中完成,错误显
示在状态窗口中,并且当你点击编译错误时,光标自动跳转到错误的那一行;
3.该工程管理器还能直接产生INTELHEX格式文件的烧写文件(该格式的文件可被大多数
编程器所支持,可以直接下载到芯片中使用)和符合AVRStudio的调试文件(COFF格式)。
4.ICCAVR是一个32位的程序,支持长文件名。
5.ICCAVR]是一个综合了编辑器和工程管理器的集成开发环境(IDE),是一个纯32位的程序,可在Win95、Win98、WinME、WinNT、Win2000、WinXP和Win7环境下运行。
3.2开发工具与调试
通过题目可知小车与水平面的夹角从arcsin(7/80)到-arcsin(7/80)之间变化,当为0度角时跷跷板处于平衡状态,这是理想状态。
题目中平衡的定义为A、B两端与地面的距离差d=∣dA-dB∣不大于40mm。
因此只要小车角度在arcsin(4/160)到-arcsin(4/160)之间即认为是达到平衡了。
电动车从平衡点出发,向B点行驶的过程中,小车车前的光电开关一直在检测黑白线,只要三个传感器同时检测到黑线,即认为是到达B点。
根据题目要求只要车头距跷跷板末端B不大于50mm即可。
根据题目要求,自制了跷跷板,上面布置上黑线,以引导小车走直线以及到A点和B点停车。
反复让小车在环境中进行实验。
测试并记录下小车多次完成各个阶段任务的情况,用统计的方法得出小车的性能参数及误差范围。
测试仪器的名称及型号见表2所示:
仪器名称
型号
用途
数量
计算机
PC
调试程序
1
数字万用表
VC890D
测量各模块电路参数
是否满足要求
1
秒表
PC396
计时
1
表2测试仪器的名称及型号
测试结果见表3所示:
阶段
时
间
T(s)
测试
1
2
3
4
5
A到C附近
7
8
7
7
6
寻找平衡点
10
10
12
11
12
平衡点
到B
3
2
3
3
3
B到A
5
5
5
5
5
表3测试结果
3.3程序流程图
总体流程图如图5所示:
直线调节流程图如图6所示:
N N N N
Y
Y Y
图6直线调节流程图
平衡调节流程图如图7所示:
返回流程图如图8所示:
3.4主要源程序
见附表二
4.总结
经过我们小组的努力,我们终于成功的完成了题目的要求,并在此基础上进行了创新。
制作过程中,我们遇到了很多困难,比如角度传感器的使用,液晶的时间显示,小车寻找平衡点的不稳定性,熔丝位设置错误导致单片机被锁等问题。
我们小组的成员并没有因此而退缩,而是更加努力的学习自己欠缺的知识,查阅相关资料,有不懂的问题小组内又不能解决的就会主动找其他的同学请教。
通过一段时间的学习,现在我们可以熟练使用AltiumDesigner、WPS、ICCAVR、PROGISP这几个软件进行电路原理图、流程图、结构图的绘制,以及开发工具的调试和程序的下载等。
在这个过程中我学到了很多课本以外的知识。
我们组三位组员各司其职,相互配合,遇到问题会相互讨论,为最终该课程设计的成功实现奠定了良好的基础。
整个课程设计过程,我们小组收获颇丰。
一方面加强了自我学习的能力。
另一方面,因为和组员一起工作,大大培养了团队合作能力,加强了团队意识。
5.参考文献
[1]徐益民范红刚苏凤武.零基础学AVR单片机.北京:
机械工业出版社,2011.1
[2]阎石王红.数字电子技术基础第五版. 北京:
高等教育出版社,2006.5
[3]谭浩强.C语言程序设计(第二版).北京:
清华大学出版社,2000
附表一:
总电路图