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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

智能小车控制系统设计报告.docx

1、智能小车控制系统设计报告智能小车控制系统一、 方案论证比较1. 车体模型的比较与选择2. 驱动电机的比较与选择3. 传感器的比较与选择4. 电源的比较与选择二、 系统设计三、 系统调试四、 系统功能五、 设计总结六、 小车程序摘要:本系统采用AT89S52作为核心芯片,控制智能车的一系列动作。小车采用ULN2803A芯片驱动两步进电机,能精确控制小车的转弯,前进,后退等动作;结合两个红外对射管,对边界黑线进行检测,从而判断小车的位置,然后对红外对管输出的信号处理后控制小车做出各种动作。关键词:超声波传感器 红外线传感器一、方案论证比较1.车体模型的比较与选择方案一、购买玩具电动车:购买的玩具电

2、动车具有组装完整的车架车轮。依靠电机与相关齿轮一起驱动,装配紧凑,使得各种所需电路的安装十分方便,看起来也比较美观,但是市面上多是用于飞思卡尔之类的车,较难找到完全符合比赛要求,在大小,前轮可转向以及价格方面都兼顾的车。方案二、自己组装车:一般的说来,自己制作的车体比较粗糙简陋,主要由几块基板组成,但胜在适合改造,基板表面对称着钻有许多孔,方便安装电路板、电源、车轮以及固定电机,还可以根据需要进行钻孔、拼接,而且价格比较便宜。通过比较,选用方案二。2.驱动电机的比较与选择方案一、直流电机+转向舵机:直流电机应用了“通电导体在磁场中受力的作用”的原理,励磁线圈两个端线同有相反方向的电流,使整个线

3、圈产生绕轴的扭力,使线圈转动。直流电动机的调速范围宽广,调速特性平滑。起动力矩大。可以均匀而经济地实现转速调节。但是由于使用直流电机难以控制左右速度差实现转弯,必须加上转向舵机使小车实现转弯,这使小车的结构制造复杂,价格较高。方案二、步进电机+万向轮:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。由于每步的精度在 3%-5%,而且不会将一步的误差积累到下一步

4、因而有较好的位置精度和运动的重复性;优秀的起停和反转响应;仅仅将负载直接连接到电机的转轴上也可以极低速的同步旋转。由于速度正比于脉冲频率,因而有比较宽的转速范围。采用两个万向轮+两个步进电机驱动小车,可以通过左右两个电机的转速差容易实现左右原地转弯。并且由于步进电机转动角度可以精确控制,使得小车能够精确控制左右转弯的角度以及前进后退的距离。这给小车各种功能的实现带来了极大的方便。基于以上分析,我们采用了方案二。3.传感器的比较与选择:方案一、发光二极管+光敏电阻:采用发光二极管发光,用光敏光敏电阻配合判断。当发光二极管发出的可见光照射到黑带时,光线被黑带吸收,光敏电阻没受到光照,呈现高阻态,输

5、出端为低电平信号给单片机;当发光二极管发出的可见光照射到白底时,光线反射,光敏电阻受到光照,呈现低阻态,输出端为高电平信号给单片机。通过这种方法来判断是否遇到黑线。但是光敏电阻极易受环境影响,稳定性也很差。方案二、红外对管:利用红外线发射管发射红外线,红外线二极管进行接收。采用四组红外对管发射和接受红外信号,外面可见光对接收信号的影响较小,接收的红外信号经LM324进行比较转换为电压信号,产生高电平或低电平返回给单片机。同方案一的远离一样,当遇到黑线时,红外线被吸收,信号经过处理返回低电平给单片机;当遇到白底时,红外线被反射,信号经过处理返回高电平给单片机;此方案最大的优点是受外界环境干扰小。

6、通过比较,我们采用了受外界环境干扰小的方案二。4.电源的比较与选择方案一、采用双电源为了确保单片机控制部分和后轮电机驱动的部分的电压不会互相影响,要把单片机的供电和驱动电路分开来,即:12v来驱动步进电机,同时用7805稳压管将电压来稳成5V供给单片机,这样有助于消除电机干扰,提高系统的稳定性。但采用双电源实现起来比较麻烦。方案二、采用5v单电源用10.8V的锂电池通过7805稳压到5v同时给单片机及步进电机供电。这种接法比较简单,但小车的电路功耗过大会导致后轮电机动力不足。由于我们的小车质量不大,而且速度要求不高,通过综合分析,我们采用了方案二。二、系统设计1.总体设计本系统利用单片机AT8

7、9S52单片机作为本系统的控制核心,该单片机可以将从传感器的输出信号得到外界的信息,判断小车是否到达边界,然后在程序中控制步进电机转动的角度精确控制,从而实现电动车的前进距离的精确控制以及左右轮差速转动实现转弯等。2.单元电路设计2.1传感器模块利用光的反射原理,当光线照射在白纸上,反射量比较大,反之,照在黑色物体上,由于黑色对光的吸收,反射回去的量比较少,这样就可以判断是否遇到黑带。采用红外线发射,外面可见光对接收信号的影响较小,利用红外对管对黑线边界进行检测,再用LM324对检测信号进行比较,取反,送单片机进行处理。电路原理如下所示2.2单片机控制模块本系统采用AT89S52单片机系统控制

8、电路,主要由:电源电路、晶振电路、复位电路,电路结构简单,性能稳定,是单片机系统控制普遍采用的硬件电路。电路原理如下图2.3步进电机驱动模块本系统采用两个步进电机作为后轮驱动力。两个步进电机通过ULN2803A芯片对单片机送来的脉冲信号进行取反放大,然后送到步进电机处,保证通过电机的电流足够大,使电机正常工作。电路原理图如下电路原理图如下2.4电源模块电源模块采用10.8V锂电池组对单片机控制部分和电机驱动部分进行供电。电源经7805稳压成5V稳定电压后给单片机控制部分及步进电机供电。电路原理图如下2.5倒车、刹车灯模块为了使我们的小车更加接近现实,更加逼真,我们特意在小车后部加了六个LED灯

9、,小车处在不同状态下,有不同的信号灯亮,比如前进的时候两个绿灯亮,后退的时候两个黄灯亮,前进过程中小于安全距离就亮红灯,左转、右转过程中小于安全距离就亮黄灯等等。原理图如下:3.各单元模块的联接整个智能小车系统主要由四大模块组成,以AT89S52为核心的控制模块,传感器模块,电源模块以及步进电机模块。四大模块构成了小车的主要框架。附带一个提醒灯模块,主要是增加小车的真实性。步进电机模块通过ULN2803A驱动芯片与单片机连接起来,驱动芯片主要功能是将单片机发送的脉冲指令放大取反。传感器模块通过LM324电平比较芯片与单片机连接起来,芯片主要将红外对管采集到的模拟信号转换为数字信号发送给单片机,

10、让单片机进行判断并执行相应的动作。电源模块通过7805芯片将一个10.8V的锂电池組稳压到5V给单片机及步进电机供电。三、系统调试根据题目要求,我们对各要求进行排序并逐个设计制作和调试,我们通过多次试验,对比,调试,通过软硬件调试和磨合后,效果良好。四、系统功能1、模式1:利用无线模块实现简单的遥控车,按A键为前进,按B键为右转,按C键为左转,按D键为后退,其中还用到超声波传感器来进行测距,从而使得小车不发生碰撞;2、模式2:实现自动入库3、模式3:按A键为走圆弧,按B键为走梯形,按C键为走S形,按D键为停止。五、设计总结通过各种方案的讨论及尝试,再经过多次的整体软硬件结合调试,不断地对系统进

11、行优化,可能出现失误的就是受光线影响致使小车有时会检测不到黑线而跑出界或者接线不良导致的失误。在本次设计过程中,我们深刻体会到共同协作的重要性。通过对此课题的研究,我们体验到在实践中学习的显著效果,提高了自己解决问题的能力。这次的比赛,我们从不懂地去摸索,到有了一点方向地去了解,学到了很多东西。不管这次的成绩如何,这次比赛对我们有着特殊的意义,而在电子方面的启蒙将是我们最大的收获与成功。附2:小车程序#include#include#define uchar unsigned char /定义一下方便使用#define uint unsignedint#define ulong unsigne

12、d longsbitTx = P33; /产生脉冲引脚sbit Rx = P32; /回波引脚sbit K1 = P14;sbit K2 = P15;sbit K3 = P16;sbit K4 = P17;sbit led1 = P30; /红灯sbit led2 = P31; /红灯sbit led3 = P34; /黄灯sbit led4 = P35; /黄灯sbit led5 = P36; /绿灯sbit led6 = P37; /绿灯sbit g1=P24;sbit g2=P25;uint distance4; /测距接收缓冲区uintdistance_data;uchartemp,f

13、lag,outcomeH,outcomeL; /自定义寄存器 bit succeed_flag; /测量成功标志bitt_flag=0;uchar code FFW8=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9; /正转uchar code REV8=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1; /反转uchar code CIRCLE16=0xf1,0xf1,0xf3,0xf3,0xf2,0xf2,0xf6,0xf6,0xf4,0xf4,0xfc,0xfc,0xf8,0xf8,0xf9,0xf9;void delay1m

14、s(uint i) uchar j; while(i-) for(j=0;j245;j+) /1ms基准延时程序 void motor_ffw(int n) /两步进电机正转 uchar i;uint j; for (j=0; jn; j+) /转1*n圈 for (i=0; i8; i+) /一个周期转45度 P0= REVi; /取数据 P2= FFWi; /取数据 delay1ms(1); /调节转速 void motor_rev(int n) /两步进电机反转 uchar i;uint j; for (j=0; jn; j+) /转1*n圈 for (i=0; i8; i+) /一个周

15、期转45度 P0= FFWi; /取数据 P2= REVi; /取数据 delay1ms(1); /调节转速 void turn_left(int n) /左转 uchar i; uint j; for(j=0;jn;j+) for (i=0; i8; i+) /一个周期转45度 P0=REVi; /取数据 delay1ms(1); /调节转速 void turn_right(int n) /右转 uchar i; uint j; for(j=0;jn;j+) for (i=0; i8; i+) /一个周期转45度 P2=FFWi; /取数据 delay1ms(1); /调节转速 voidtu

16、i_you(int n) uchar i; uint j; for(j=0;jn;j+) for (i=0; i8; i+) /一个周期转45度 P2=REVi; /取数据 delay1ms(1); /调节转速 voidtui_zuo(int n) uchar i; uint j; for(j=0;jn;j+) for (i=0; i8; i+) /一个周期转45度 P0=FFWi; /取数据 delay1ms(1); /调节转速 void Syou(int n) /走S型向左 uchar j,k1=0,z; for (j=0; jn; j+) /转1*n圈 for (z=0; z 15) k

17、1=0; void Szuo(int n) /走S型向右 uchar j,k2=0,z; for (j=0; jn; j+) /转1*n圈 for (z=0; z 15) k2=0; void stop() P0=0xf0; /P2口设置为输入状态先全部写0 P2=0xf0; /P3口设置为输入状态先全部写0 void delay_20us() ucharbt ;for(bt=0;btdistance1) t=distance0;distance0=distance1;distance1=t; if(distance0distance2) t=distance2;distance2=dista

18、nce0;distance0=t; if(distance1distance2) t=distance1;distance1=distance2;distance2=t; voidcejuinit() flag=0; Tx=0; /首先拉低脉冲输入引脚 TMOD=0x11; /定时器0,定时器1,16位工作方式 TR0=1; /启动定时器0 IT0=0; /由高电平变低电平,触发外部中断 EX0=0; /关闭外部中断 EA=1; /打开总中断0 voidceju() int i; i=0; EA=0; Tx=1; delay_20us();Tx=0; /产生一个20us的脉冲,在Tx引脚 wh

19、ile(Rx=0); /等待Rx回波引脚变高电平 succeed_flag=0; /清测量成功标志 EX0=1; /打开外部中断 TH1=0; /定时器1清零 TL1=0; /定时器1清零 TF1=0; / TR1=1; /启动定时器1 EA=1; while(TH1 30);/等待测量的结果,周期65.535毫秒(可用中断实现) TR1=0; /关闭定时器1 EX0=0; /关闭外部中断if(succeed_flag=1) distance_data=outcomeH; /测量结果的高8位distance_data= 80) motor_ffw(8); /前进 led5=0; led6=0;

20、 led1=1; led2=1; led3=1; led4=1; else stop(); led5=1; led6=1; led1=0; led2=0; led3=1; led4=1; if (i=0x01) /如果是0x01,则代表无线遥控器的按键b按下,执行显示 if(distance_data= 100) turn_right(8); /右转 led5=1; led6=0; led3=1; led4=1; led1=1; led2=1; else led3=0; led4=0; led5=1; led6=1; led1=1; led2=1; stop(); if (i=0x08) /如

21、果是0x08,则代表无线遥控器的按键C按下,执行显示 if(distance_data= 100) turn_left(8); /左转 led5=0; led6=1; led3=1; led4=1; led1=1; led2=1; else led3=0; led4=0; led5=1; led6=1; led1=1; led2=1; stop(); if (i=0x02) /如果是0x02,则代表无线遥控器的按键d按下,执行显示 motor_rev(8); /后退 led3=0; led4=0; led1=1; led2=1; led5=1; led6=1; while(K2 = 0) /模

22、式2 ceju(); led1=1; led2=1; led3=1; led4=1; led5=1; led6=1; tui_you(384); stop(); delay1ms(50); while(g2 != 0) /基础部分 motor_rev(1); stop(); led1=0; led2=0; delay1ms(500); led1=1; led2=1; tui_you(384); while(distance_data= 100) motor_rev(1); ceju(); while(distance_data 100) stop(); led1=0; led2=0; ceju

23、(); while(K2 = 0); while(K3 = 0) /模式3 uchari,j,k,z; stop(); P1=0xff; /P1口设置为输入状态先全部写1 i=P1; k=0; i=i&0x0f; /和0x0f相与屏蔽高四位,读取无线遥控码 if (i=0x04) /如果是0x04,则代表无线遥控器的按键A按下,走圆圈 for (j=0; j8; j+) /转1*n圈 for (z=0; z 15) k=0; if (i=0x01) /如果是0x01,则代表无线遥控器的按键b按下,走梯形 motor_ffw(1024); stop(); delay1ms(100); turn_right(768); motor_ffw(1024); stop(); delay1ms(100); turn_left(768); if (i=0x08) /如果是0x08,则代表无线遥控器的按键C按下,走S形 if(t_flag = 0) Syou(1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1