智能小车设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江汉大学物理与信息工程学院智能小车设计报告
课题名称:智能小车设计
专业: 电子与信息工程
班级:电信一班
学生姓名:XXXXXXX
2012年7月28日
一、设计要求
1.在外部只提供9v直流电源的情况下利用7805芯片及相关电路分别获取可驱动一对电机的+9v电源以可供51芯片及比较器、光电管正常工作的+5v电源;
2.通过三只单光束反射式光电传感器(RPR220)实现对轨迹的实时检测,并将获取的信号传给单片机进行分析、处理;
3.根据光电传感器获取的信号通过单片机对小车的两只电机进行调速,实现控速、左右偏转等。
4.运用霍尔元件及磁钢实时检测小车的运行速度并用数码管或1602屏显示。
二、设计方案
智能小车共分为6个小的模块:51芯片模块、电源模块、循迹模块、霍尔元件测速模块、电机驱动模块,整个系统的设计如下图所示:
三、单元电路设计
电源模块:
由外部+9v电源对智能车供电。该模块通过7805芯片及外围滤波电路将+9v电源转换成稳恒的+5v 电源为51芯片及比较器、光电管、霍尔元件供电。
51最小系统模块:
51最小系统模块主要实现在接入+5v电源时可简单控制整个系统的开关、复位。对获取的数据进行处理,并对相关模块进行控制。
循迹模块:
在允许距离内红外对管在正对黑白两种颜色的轨迹平面时由于接收到的反射红外光线的强度不同,接收端电阻值会相应发生变化,在串联电阻后会引起分压的变化,经比较器处理后这种电压的变化以高低电平的形式传送给51芯片进行识别、处理。在该模块中R1、R6、R10构成三个红外光发射管的限流电阻,确保发光管正常工作。R2、R7、R11与红外光接收端构成分压电路。接收端接收到的红外光的强度发生变化时会引起R2、R7、R11分得得电压大小的变化(实验测得在4.6V~2.1V(最低电压与距离有一定关系)范围内变化)。R3两端直接接在+5v电源两端用来调节比较器的基准电压。通过比较器后产生单片机可识别的高、低电平。
霍尔元件模块:
接通电源后,当有磁性物质(磁钢)靠近霍尔元件时(对磁体极性有要求)霍尔元件会相应产生一
个单片机可识别的脉冲(即将没有磁钢靠近时呈现的高电平短暂拉低)。
电机模块:
通过控制芯片的IB、IA端口的电平可控制电机转向(如果IB=1,IA=0电机正转,那么IB=0,IA=1电机反转)。通过控制电机来实现小车的转向方式有多种,使其中一个轮子正传一个反转或停止,或者由单片机控制驱动芯片的高低电平输入的时长比(占空比)从而调节两个轮子的速度。两个轮子存在速度差就可实现转向。
四、小车组装
根据由局部到整体、先组建外围硬件设备后植入程序调试的原则来组装小车。
1.小车框架:搭建小车大致框架,对电机组、铝角架及底板的尺寸测量后描点、钻孔并用螺柱固定。
2.电源模块:根据电路图对电源模块各器件进行合理布局,焊接电源模块,同时标记多组+5v、0v端口。
3.51最小系统:按照电路图焊接51最小系统的电路,并测试各引脚在植入相应程序时是否有相应的高、低电平变化以及开关、复位是否正常。
4.循迹模块:由于循迹模块的光电管与放大电路部分出于空间和简便的需要分离开来焊接,这部分尤其要对各元件进行合理安排,尽量减少从光电管接入放大电路的导线,同时应当依据轨道的轨迹宽度来合理安排两光电管之间的距离,由于LM324芯片在电源接反的情况下极易被烧坏,所以在电源接入处接入一个正向时才导通的二极管以保护电路(这样也需要考虑二极管分压对电路的影响)。
5.电源模块:这部分电路由于考虑到提高电机速度可调节的范围及工作性能而使用+9v电源对电机供电。
由于在该模块中需接入及需引出的导线较多,须将各个引脚标记清楚。
6.霍尔测速模块:霍尔测速部分电路焊接及组装的时候,应调整好轮子与传感器之间的距离。同时在往车轮边缘处粘贴磁钢的之前应对磁钢进行测试,找出能使传感器产生脉冲的一面并进行标记然后再将磁钢粘贴到车轮上。在电路焊接完成后,对该部分进行测试看轮子在转动时能否检测到传感器发出的脉冲信号。
7.显示模块:此处电路较为简单,但接线比较多,主要需要解决的问题就是焊接时防止导线短接等意外。为了编程时设置端口的方便应有意识地有序焊接插针。
8.在各个小模块焊接完成并测试成功之后,依据车身和电路板的空间进行组装。尽量保证小车整体比
较简洁,便于测试时对各个模块的拆卸、重装。
五、软件设计
光电管在探测的平面为白色时输出低电平,为黑色时输出高电平。将三个光电管分别设定为h1、h2、h3。在检测轨迹时只需检测h1、h2、h3的高低电平变化。然后根据获取的h1、h2、h3电平来控制电机的转速以实现小车的偏转。
程序流程图:
六、测试与调试
局部模块的测试与调试:
1.电源模块:测试+9v、+5v电压是否输出正常。
2.循迹模块:首先将+5v电源接入,用手机摄像查看红外对管是否发光(红光),如果没有发光查看电源
是否接反、限流电阻是否选择得当。在未接入比较器前,先测试正对黑白两色时红外对管接收端的电压变化(大致在2.4v~4.6v之间)如果正常再将基准电压调节到3.5v左右,并测试通过比较器之后是否输出正确跳变的高低电平。
3.电机模块:在接通+9v电源后,在与电机对应的驱动芯片的输入控制端输入高低电平看能否实现正转、
反转。
4.霍尔元件测速模块:接通电源后,并接通电机电源使车轮转动,通过示波器检测每个磁钢通过传感器
时是否有脉冲信号输入(检测不到信号,检查磁钢是否粘贴反了或没有接入上拉电阻抑或传感器引脚接错)。
5.单片机模块和显示模块:编译四位数码管的显示程序并载入单片机,测试数码管能否正常工作。如果
不能正常显示可能是由于引脚没有与程序一致,或没有上拉电阻(显示的数字比较暗)。
整体电路的测试:
各部分电路测试完成后,对各个模块进行合理的组装。编译程序的时候,首先编程控制电机的运转,并测定直行、左转、右转的程序代码。然后编译循迹模块和电机模块相关联的程序,在这个基础上再编译速度测定计算程序。
七、总结:
在这将近一个月的培训中,我们对几个课题进行了专门的学习和实践,虽然多数没有以一个比较完整的系统呈现,但也让人觉得收获颇多;与此同时也自行安排了一些基于51开发板的小程序的编写,像可调时的时钟、温度计等,同样也是获益不少。而真正使自己感觉到有显著提高的还是最后的智能车制作这一课题。首先它是一个比较完整的系统,包含多个小的板块,而且多数与我们之前的训练内容相关联,所以做起来比较得心应手,但是要实现各个模块之间的联调和正常工作就显得有些难以驾驭了。其次它由各小组独立完成,要顺利完成这一项目无疑要求各成员间协调配合、各司其职,使我们深切地感受到了与队友快速磨合、达成默契的重要性。最关键的是通过做智能车让我获得了以后面对这类课题甚至更为复杂的项目或工程时如何分析问题、解决问题的方法、要诀。总结出来有以下几点:
1.将复杂的系统模块化
像这次的智能车课题中,在硬件的组装、调试时都是将整个系统分为电源、循迹、测速、显示、电机驱动等几个小的模块,并对这些模块分别进行独立焊接、测试。在程序的编译方面更是如此,先将整段分成几个模块:数字显示、循迹分析、速度计算、驱动控制等小的模块,然后再将各个部分整合,联调。运用这种分而治之、各个击破的方式的确可以获得事半功倍的效果。
2.吃透设计原理
如果仅仅是按照给出的电路焊接电路而不搞清楚各个模块电路设计原理这样就有些本末倒置、舍本逐末了。一方面,吃透各个模块的设计原理,自己对各个电路要实现什么样的功能就有了一个合理的预期,有助于后面的电路检查和效果检测,编译程序时也就显得驾轻就熟;另一方面,可以在原电路的基础上作出合理改进,使系统性能更佳、效果更好。我们开始做循迹模块的时候,一不小心将比较器芯片(lm324)电源接反就将芯片烧坏,为了避免这一问题,可以在电源的输入端接入二极管,;利用二极管的单向导电性来保护电路。
3.不能主观臆断
做循迹模块的时候,没有仔细考虑红外对管之间的间距,就直接模仿别人的电路,结果跟实际跑道轨迹宽度有较大出入,为整体调试、程序编译带来了障碍。另外在调节基准电压的电路中主观地以为三组对管电路一致所需元器件一致,因此在这部分用了三个电位器,造成了浪费。