ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:1.22MB ,
资源ID:327705      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-327705.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(轨道检测并测角度智能车设计报告.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

轨道检测并测角度智能车设计报告.docx

1、轨道检测并测角度智能车设计报告轨道检测车设计报告Rasing star group严若亚、胡云鹏、刘炜炘小车总体效果1 智能小车的设计分析1.1设计要求本次比赛的要求是:制作一辆循迹功能的小车,在一个2MX2M的白色场地上以最快的速度沿1CM宽的黑色轨迹由起点行走到终点。在行走过程中,要对轨迹上的弯角的角度进行测量记录,对圆弧型轨迹的半径、弧度进行测量记录,并将所有测量结果显示在液晶屏幕上。1.2设计方案及论证1.2.1总体的设计思路总体可以分为以下模块:(1)信号采集模块:此模块主要由传感器和运算放大器组成,负责循迹检测和测角度的任务,其中通过红外传感器来实现循迹功能,通过电子指南针进行角度

2、和半径弧长的测量。(2)控制模块:此模块的核心是单片机STC89C52。单片机将采集到的信号进行判断和处理后,将处理好的信号送入下面的执行模块,使之做相应的动作。(3)执行模块:此模块主要包括电机驱动和液晶显示部分,他们分别从控制模块中得到结果,通过液晶屏显示出来,通过电机驱动小车做相应的动作。1.2.2 各部分设计方案1 小车主体的设计方案1)方案一:使用四驱玩具车。此方案优点在于节省了时间,将更多的精力放在了小车控制方面的制作,此外玩具车的结构合理,组装较为简单容易,其缺点在于质量各有差别,价格偏高,电路布局受小车结构的限制。2)方案二:自己设计小车的主体结构。使用自己设计主体结构的小车,

3、可以很好地解决主体结构带给电路带来的局限,可以安放各个器件,使其能够协调工作,此外通过自制小车可以提高我们的动手能力,更加全面了解各部分电路的布局。综合以上考虑我们选择方案二。2 电源的设计方案1)供电:外接电源和电池组采用电池组:采用电池组需要五节电池串联,其优点在于方便易行,但是在调试的过程中将会多次使用电池,这样会很费电量。外接电源12v:采用外加电源的方法可以避免电量不足的缺点,而且环保。 综合二者考虑我们采用外加12V电源的方案。2)稳压:采用7805+7805,2576+2576,2576+7805。2576为单片式开关稳压芯片,具有电流大,带负载能力强,转化效率高,稳压效果好等优

4、点。7805为线性稳压芯片,其稳压效果好,外围电路简单,应用电路成熟可靠等优点,但是其带负载能力差,电流输出差,效率低,根据其自身性能特点,有以下三个方案。1)方案一:7805+7805其优点是电路设计简单,成本低廉,缺点是带负载能力差,效率低,在动力电机受阻的情况下以被烧毁。2)方案二:2576+2576其优点是转化效率高,输出电流能力强,缺点是外围电路复杂,成本较高,PWM开关稳压电容对单片机等逻辑电路造成影响。3)方案三:2576+7805用7805为单片机以及其他逻辑电路提供稳定电压,用2576为电机提供动力驱动。综合以上方案,我们决定采用方案三,各取两个芯片的优点,将它们合理的搭配起

5、来。3 电机驱动模块1)方案一:自己构建根据需要分析,可以用功率三极管来搭建。采用自己搭建的方法主要是有助于提高我们的动手能力和对知识灵活使用能力。但是要是想得到两个独立驱动,必须选择两个参数尽量一致管子才可以,而市面上购买的三极管只能将参数满足在一定范围内,会出现一定的误差,因此给调试带来了一定的困难,而且电路抗外界干扰能力差,复杂化了电路设计。2)方案二:购买专用的电机驱动芯片可以购买到专门的双电机驱动芯片L298,可以满足小车的电机控制要求,而且外围电路比较简单,稳定性较好,驱动能力较强,能够很好地保证电机的同步性。为了通过此次实践充分得锻炼自己的动手能力,我们决定使用L298芯片,并自

6、己搭建驱动模块。4 循迹所用传感器的设计1)方案一:采用CCD传感器,可以获取大量的图像信息,可以全面完整的掌握路径信息,可以进行远程距离的预测和识别图像的复杂路面,抗干扰能力强,但对于本项目来说它也有缺点,它需要大量的图像处理工作,需要进行大量的数据存储和计算,因为是以实现小车视觉为目的,此方案实现起来工作量较大,过于繁琐。2)方案二:采用光电传感器,其优点在于结构简明,实现起来容易,成本低,免于大量的数据处理工作,反应灵敏,响应时间低。但其缺点在于获取信息的完整性差,只能对简单的路面状况进行判定,抗干扰能力差,背景光源、各个传感器间的差异以及据测试路面高度的差异都会对测试结果造成一定的干扰

7、。由于本次路面只有黑白两种颜色,路面简单,小车只需要区分黑白两色即可采集到准确的路面信息。经过综合考虑,我们决定使用红外光电传感器。5 角度测量和圆弧形轨道半径测量的设计 1)轨道半径的测量:红外对管用光电反射管接收发射信号计算,在车轮边缘用黑白相间的弧线将车轮内边缘圆周平均分为6等分进行计算,测量时码盘会随车轮转动,每转 一周传感器采集六次信号,送给单片机进行计算,分为六等分的好处在于增加测量精确度。2)测量转角:电子指南针电子指南针代替旧的磁指南针,精度高,稳定性好,对角度的测量更为精准。使用电子指南针应注意减少外界磁场的干扰。6 显示模块的设计1)LED数码管显示数码管显示具有亮度高,色

8、彩选择多的优点,但是数码管占I/O资源多,控制复杂,功耗较大,显示信息量少且单一。2)1602液晶显示液晶显示驱动简单,易于控制,功耗小,且信息量大,可以直观地观测到小车经过圆弧轨道时的圆弧弧度及半径。综合考虑,我们决定用1602液晶显示作为本次设计的显示模板。7 超声波测距在本次比赛要求之外我们为小车装上了测距功能,超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。利用它可以测量据前方障碍的距离。2 循迹小车的硬件设计2.1 机械设计小车的机械设计不容忽视,它有以下几点需要注意的:符合机械力学

9、性能,能够完成各机械动作;易于组装和拆卸,便于对小车的检查和维修;总体布局要有一定的电气隔离性,尽可能减少器件间的相互干扰。2.1.1各模块的分布各模块分布应该以尽量减少相互干扰为原则,并且要排布整齐,易于检查。尽量防止电机磁对电信号的干扰。2.1.2传感器的位置分布循迹所用的七个红外光电传感器分布在小车的前面,测速的两个非一体红外传感器分布在轮子的两边,电子指南针放在显示屏的板上。2.2 电路设计2.2.1 电机驱动模块驱动部分采用的是L298芯片,该芯片是专门的双全桥步进电机驱动芯片,也可以作为直流电机的驱动。该芯片的驱动能力较强,完全可以驱动本次设计所使用的电机。芯片上的ENA与ENB为

10、高电平时有效,只有当ENA与ENB为高电平时,电机才旋转,否则电机不转。ENA为IN1和IN2的使能端,ENB为IN3和IN4的使能端。当ENA=1,IN1=1,IN2=0是电机1正转,ENA=1,IN1=0,IN2=1电机1反转。同理ENB=1,IN3=1,IN4=0是电机2正转,ENB=1,IN3=0,IN4=1电机2反转。OUT1、OUT2接电机1,OUT3、OUT4接电机2。L298的应用电路如图所示:2.2.2 显示模块液晶由单片机控制,实时显示小车行驶时圆弧型轨迹的半径、弧度,由于其内部集成了显示处理,所以外围电路简单。电路图如下:2.2.3 电源模块电源模块使用LM2576和LM

11、7805两片稳压芯片分别作为动力供电和逻辑供电。LM2576是一个高性能的开关稳压芯片,具有52KHZ的内部固有开关频率,TTL关断功能,低功耗待机模块等特点。本次电机为6V电机,在电源模块的制作中由于经过开关芯片稳压后的电压带有较高的杂波,所以要对输出信号进行滤波,在输出端加大电容。LM7805是一片三段线性稳压芯片,具有较好的现行稳压效果,外围电路简单。为了得到理想的电压,在输出端用大的滤波电容和小电容并联的方式进行整波。电路图如下:2.2.4 传感器模块小车共放置九个红外光电传感器,其中七个用来来循迹,将采集到的信号通过P1口传给单片机,循迹传感器将采集到的信号经LM324放大整形后传送

12、给单片机,最终达到控制小车循迹的目的。另用两个非一体的红外对管实现测弧长功能。使用电子指南针进行角度测量,将写好的程序送入单片机,将从电子指南针采集到的信号进行处理,最终实现角度的测量。因为每个光电传感器的信号处理过程相同,其电路图如下:2.2.5 核心控制模块单片机采用了STC89C52,该芯片的应用电路与其他的51单片机完全相同。介于小车各部分功能均为模块实现,所以,将单片机最小系统布置好后,其余各I/O口用指针引出。STC单片机支持串口下载功能,所以省去了调时插拔芯片的麻烦,也保证了芯片的完好。单片机引脚分布图及最小系统图如下:2.2.6 超声波测距模块该模块放小车对前面,超声波发射器向

13、某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。3 智能小车的软件设计软件编程是循迹小车的灵魂,它给予了小车精确的循迹和测量合理的编程算法。为了便于调试结构明朗,小车的软件编程分为主函数、检测循迹函数、角度测量函数和控制函数。其中主函数合理的分配条用各个模块函数,主要负责各模块的总体协调。循迹检测函数和角度测量函数负责稳定地判断各种信息,将信息之返回,以便主函数或别的函数调用处理。控制

14、函数主要负责小车的状态控制,根据传感器返回的信息准确的判定小车的位置,并作相应的响应。函数见附录。4 总结与心得4.1 开发与调试过程此次我们本着做出最轻最快的小车的宗旨,认真地实施每一步计划。在整个开发过程中我们以总分总的思想进行,分为以下几个部分。4.1.1 总体方案的论证与确立在开发初期我们的主要任务就是对本次比赛的题目进行确立和研究。主要分为以下几个步骤:1)根据小组成员的兴趣和想法,确定设计循迹小车题目。2)对设计要求进行认真的阅读,明确设计方向和各部分的要求。3)对设计方案进行确立,此过程我们是通过到图书馆查阅相关图书和利用网络资源等渠道,做好前期资料的准备工作。4)确立总体方案,

15、将整体分为各个模块,列出全程计划。5)购买所需要的元器件,为下一部分做好准备。 4.1.2 分立模块的制作调试及遇到的问题在此阶段中我们主要的任务就是完成搭建各分立模块,并将其调试到预期的参数指标。在驱动模块的制作中,我们首先决定用四轮驱动,使用一个驱动芯片驱动四个电机,但在开始调试的时候小车运转约一分钟后停止工作,经过检查发现是驱动芯片烧坏,所以我们改用两个驱动芯片,每个驱动芯片需要驱动两个电机。开始时将一个驱动芯片焊在另外一个板上,在按下开关的一瞬间小车轮子转动,待稳定后轮子不转,循迹功能出现异常,驱动芯片过热,猜想是驱动芯片的问题,所以将驱动芯片换个新的,并将两个驱动芯片焊接在同一个板上

16、,小车正常工作。在焊接循迹模块时,其中一个自己焊接的循迹模块出现差错,查找原因后发现是一个红外对管不工作,又将该模块重新焊接。此外在单片机开始下程序时工作正常,但经过一段时间单片机模块坏了,循迹出现了混乱,后来进过检查,单片机的两个I/O扣坏了,发现程序下载异常,现在是通过将单片机拆下放到单片机实验板上下载程序,再按上来实现程序的下载。4.1.3 总体装配调试此部分的任务是务必使车完全达到大赛的性能指标,使各个模块间协调可靠,互不影响,按预期完成任务。 在调试的过程中我们才发现,所有的情况并不是想象中的那么符合常理,每一次的循迹和位置信息的获取都在反复的调试中完成。我们要对之前的方案不断地改进

17、并查找问题,使之慢慢变得更加符合要求,对函数进行优化。4.2 心得与展望在本次设计中,我们初步完成了小车的制作,基本上达到了比赛的要求,但是由于时间有限,知识积累程度不够,还有很多地方需要学习,使得开发进展的没有想象中的那么顺利。小车的很多性能还有待于提高和改进,设计方案还可以进一步扩展,一些地方可以进一步大胆创新,不仅仅局限于比赛的基本要求,这些都是需要我们今后进一步完善的地方。参加本次比赛的目的并不在于要拿到名次,而是为自己找到了一个动手实践的好机会。作为大学生的我们不得不承认在四年时光即将过半的时候还没有真正的做过与本专业相关的实物,缺乏实践的我们更应该给自己找多一些的机会实践,将理论付

18、诸于实践,这样即可以锻炼动手能力,又可以更好地理解理论知识。在制作初期我们遇到了很多困难,比如开始元器件不会挑选,才发现买元件是需要各种指标。再如制作时的各种无法预料的状况需要我们耐心地查找问题,还有临近比赛时电子指南针不工作等问题。这些困难会让我们很苦恼,但是在解决的过程中我们收获的不仅仅是将问题解决,更多的是解决问题的方法和解决问题的心态,这些都将是我们未来实践的经验。通过本次比赛的设计,我们获得了不小的收获,不光是知识和经验上的收获,更多的是态度上的收获。首先让我们自主学习了单片机以及驱动显示等相关知识。再者在我们学会了一种生活态度,凡事不可能像想象中那么完美,我们会在前进的过程中不断地

19、面对阻碍,然后不断地努力将它们解决。在面对查找麻烦的问题时我们应有面对挫折的勇气和克服困难的韧性。在实践中我们有好几次因为元器件短缺而不得不放慢节拍,而这些本应该在规划过程中避免的,所以我们认识到做事要有系统的规划和合理的预算,要积极培养自己的远见。通过此次比赛让我们明白,一件事情的执行并不能总是一帆风顺,遇到难题时我们不需要抱怨和气馁,而是一种不怕阻碍,耐心解决的精神。参考文献:1 2 C51单片机高效入门第二版 3 附录一、所用所有零件清单 元器件数量元器件数量元器件数量STC89C521L2982芯片底座14若干12M晶振1电感100H1芯片底座16若干电容22001LM3243TCRT

20、50007LM25761LED16021非一体红外278051减速电机4按键开关2电阻5.1K若干车轮4电阻3K若干电阻1K若干万能板2电阻150K若干电位器10K10电解电容100F6个 ln4007 16 16个电位器50K1稳压管ln58221个杜邦线若干二、循迹程序/*/ HMC5883 IIC测试程序/ 使用单片机STC89C51 / 晶振:11.0592M/ 显示:LCD1602/ 编译环境 Keil uVision2/ 参考宏晶网站24c04通信程序/ 时间:2011年3月1日/*#include #include /Keil library #include /Keil lib

21、rary #include #define uchar unsigned char#define uint unsigned int /使用的端口,请按照以下接线#define DataPort P1 /LCD1602数据端口sbit SCL=P20; /IIC时钟引脚定义sbit SDA=P21; /IIC数据引脚定义sbit LCM_RS=P26; /LCD1602命令端口 sbit LCM_RW=P27; /LCD1602命令端口 sbit LCM_EN=P07; /LCD1602命令端口 #define S_CIRCLE 100#define PWM_CHUZHI 100#define

22、 MM 22#define zuoyou 100sbit SEN1=P37;sbit SEN2=P36;sbit SEN3=P35;sbit SEN4=P34;sbit SEN5=P30;sbit SEN6=P23;sbit SEN7=P31; sbit inl_1=P00;sbit inl_2=P01;sbit enl=P02;sbit inl_3=P00;sbit inl_4=P01;sbit inr_1=P24;sbit inr_2=P25;sbit enr=P22;sbit inr_3=P24;sbit inr_4=P25;sbit zuo_cesu=P32;sbit you_cesu

23、=P33;uchar x,y;uchar Speed_L_Now;uchar Speed_R_Now;uchar Speed_Deser=100;uchar count;uint sec=0,min=0,s_left=0,s_right=0,r=0,p=0,j=0;uchar code table=R:0000mm ;double angle3; double angle2;double angle4;double tt,ttt;#define SlaveAddress 0x3C /定义器件在IIC总线中的从地址typedef unsigned char BYTE;typedef unsign

24、ed short WORD;BYTE BUF8; /接收数据缓存区 uchar ge,shi,bai,qian,wan; /显示变量int dis_data; /变量void delay(unsigned int k);void InitLcd();void Init_HMC5883(void); /初始化5883void WriteDataLCM(uchar dataW);void WriteCommandLCM(uchar CMD,uchar Attribc);void DisplayOneChar(uchar X,uchar Y,uchar DData);void conversion(

25、uint temp_data);void Single_Write_HMC5883(uchar REG_Address,uchar REG_data); /单个写入数据uchar Single_Read_HMC5883(uchar REG_Address); /单个读取内部寄存器数据void Multiple_Read_HMC5883(); /连续的读取内部寄存器数据/以下是模拟iic使用函数-void Delay5us();void Delay5ms();void HMC5883_Start();void HMC5883_Stop();void HMC5883_SendACK(bit ack

26、);bit HMC5883_RecvACK();void HMC5883_SendByte(BYTE dat);BYTE HMC5883_RecvByte();void HMC5883_ReadPage();void HMC5883_WritePage();/-/*void delay1(uint z)for(x=200;x0;x-)for(y=z;y0;y-);void init()TMOD=0x11;TH1=0;TL1=0;TH0=0;TL0=0;EA=1;ET0=1;ET1=1;TR0=0; TR1=0;IT0=1;IT1=1;EX0=0;EX1=0;void conversion(ui

27、nt temp_data) wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余运算 qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; /取余运算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; /取余运算 shi=temp_data/10+0x30 ; temp_data=temp_data%10; /取余运算 ge=temp_data+0x30; /*/void delay(unsigned int k) unsigned

28、 int i,j; for(i=0;ik;i+) for(j=0;j121;j+) ; /*/void WaitForEnable(void) DataPort=0xff; LCM_RS=0;LCM_RW=1;_nop_();LCM_EN=1;_nop_();_nop_();while(DataPort&0x80); LCM_EN=0; /*/void WriteCommandLCM(uchar CMD,uchar Attribc) if(Attribc)WaitForEnable(); LCM_RS=0;LCM_RW=0;_nop_();DataPort=CMD;_nop_(); LCM_EN=1;_nop_();_nop_();LCM_EN=0; /*/void WriteDataLCM(uchar dataW) WaitForEnable(); LCM_RS=1;LCM_RW=0;_nop_();DataPort=dataW;_nop_(); LCM_EN=1;_nop_();_nop_();LCM_EN=0; /*/void InitLcd() uchar num; WriteCommandLCM(0x38,1); WriteCommandLCM

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2