版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(物理与电子科学学院)参赛学院:物理与电子科学学院参赛专业:电子信息科学与技术参赛班级:电子三班参赛队员:刘保路 何隆应 周宇目录系统的基本方案系统各模块的基本组成的最终方案系统硬件的基本组成部分主要单元电路的设计电源电路的设计控制电路的设计循迹模块设计电机驱动电路一、研究内容智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。智能电动车就是其中的一个体现。本次设计的简易智能电动车,采用AT89S52单片机作为小车的检测和控制核心;采用金属感应器TL-Q5MC来检测路上感应到的铁片,从而把反馈到的信号送单片机,使
2、单片机按照预定的工作模式控制小车在各区域按预定的速度行驶,并且单片机选择的工作模式不同也可控制小车顺着S形铁片行驶;采用霍尔元件A44E检测小车行驶速度;采用1602LCD实时显示小车行驶的时间,小车停止行驶后,轮流显示小车行驶时间、行驶距离、平均速度以及各速度区行驶的时间。本设计结构简单,较容易实现,但具有高度的智能化、人性化,一定程度体现了智能。二、研究方案与技术路线根据题目要求,我们将系统划分为电源部分、信号检测部分、控制部分。其中信号检测部分包括循迹探测模块、树木计数模块、隧道长度测量模块;控制部分包括电机驱动模块、单片机模块。为实现各模块的功能,分别作了几种不同的设计方案并进行了论证
3、证。电源模块单片机循迹模块LCD显示模块电机驱动模块 电源模块 方案一:采用蓄电池供电,蓄电池具有较强的电流驱动能力和较好的电压稳定性能,且成本低廉。可采用蓄电池经7812芯片稳压后给电机供电,再经过降压接7805芯片给单片机及其他逻辑单元供电。但蓄电池体积相对庞大,且重量过大,造成电机负载过大,不适合我们采用的小车车架(玩具电动车车架)。故我们放弃了这一方案。方案二:采用干电池组进行供电 采用四节干电池降压至5V后给单片机及其他逻辑单元供电,另取六节干电池为电机及光电开关供电。这样电机启动及制动时的短暂电压干扰不会影响到逻辑单元和单片机的工作。干电池用电池盒封装
4、,体积和重量较小,同时玩具车底座可以安装四节干电池,正好可为单片机及其他逻辑单元供电。在稳压方面,起始时考虑使用7805芯片对6V的电池电压进行降压稳压。但考虑到这样使得7805芯片消耗大量能量,降低电池寿命;同时,由于mega16、光电开关、小车电机对于供电电压要求并不苛刻,故我们将6V电池电压接一个二极管降压后直接给单片机及其他逻辑单元供电。而电机和光电开关的电源不做稳压处理。这样只需在小车主板上加两个调速按钮,根据电池电量选择合适功率即可,甚至于可直接在软件里设置自动换挡。这里我们选用方案二。复位电路模块:单片机的复位电路通过手动来实现,复位电路图如(图8)所示。电机驱动模块方案一:采用
5、电机驱动芯片L298N。L298N为单块集成电路,高电压,高电流,四通道驱动,可直接的对电机进行控制,无须隔离电路。通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,亦能满足直流减速电机的大电流要求。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单。缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案一:MC33886(电机驱动)的应用示意图如图2所示。图中,V+是为直流电机供电的电源。IN1和IN2两个逻辑电平输入端分别控制输出端OUT1和OUT2。当IN1输入高电平时,OUT
6、1输出也为高电平即通过H桥与V+导通;当IN1输入低电平时,OUT1输出也为低电平即通过H桥与GND导通。IN2和UT2的关系与此相同。FS为故障信号开漏极输出,低电平有效。当D1是高电平或者D2是低电平时,同时禁用OUT1和OUT2的输出,使OUT1和OUT2同时变为高阻态。通过控制IN1和IN2的电平,即可控制电机正转、反转、停转。对IN1和IN2的电平信号进行脉宽调制,即可控制电机的转速方案一:采用直流减速电机。直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便,小车电机内部装有减速齿轮组,所以并不需要考虑调速功能,很方便的就可以实现通过单片机对直流减速电机前进、后退、停止等操作
7、, 方案二:采用步进电机作为该系统的驱动电机,由于其转动的角度可以精确定位,可以实现小车前进距离和位置的精确定位。虽然采用步进电机有诸多优点,但步进电机的输出力矩较低,随转速的升高而下降,且在较高的转速时会急剧下降,其转速较低时不适于小车等对速度有一定要求的系统。 控制器模块选择 采用STC公司的STC89C系列芯片作为系统控制器的CPU方案。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。 循迹探测模块
8、0;方案一:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。比较器就可以输出高低电平。单片机据此来判断小车是否偏离轨道或是否到达转弯标志,并根据反馈来不同的电平信号,发出相应的控制操作命令来控制小车当光线照射到白纸上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在木板轨迹上方和黑色轨迹上方时,阻值会发生明显的变化。将阻值的变化值经过。但是这种方案的缺点是受环境中光线的影响很大,且由于电压变化不是很大,不能够稳定的工作。 方案二:采用光电传感器ST188,即利用红外线遇到障碍物会反射回来红外接收管可以接受到,在小车行驶过程中红外发射管不断
9、发出红外线,当发出的红外线射入黑线时,没有反射,红外输出低电平,若红外接收管没有在黑线上方则可以接收到经轨道地板反射回的光线则输出高电平。此光电传感器调理电路简单,工作性能稳定。是在黑暗或者是强光照射下,小车系统均可以很稳定的工作,对环境的适应能力较强。 方案三:三只光电开关。一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到白线(即回到轨道)再恢复正向行驶。 图10所示电路中,R1起限流电阻的作用,当有光反射回来时,光电对管中的三极管导通,R2的上端变为高
10、电平,此时VT1饱和导通,三极管集电极输出低电平。当没有光反射回来时,光电对管中的三极管不导通,VT1截至,其集电极输出高电平。VT1在该电路中起到滤波整形的作用。经试验和示波器验证,该电路工作性能一般,输出还有杂散干扰波的成分。如果输出加施密特触发器就可以实现良好的输出波形。但是这种电路用电量比较大,给此种传感器调理电路供电的电池压降较快。究其原因,是因为光敏三极管和三极管VT1导通时的导通电流较大。因此我们考虑用比较器的方案。可调电阻R3可以调节比较器的门限电压,经示波器观察,输出波形相当规则,可以直接够单片机查询使用。而且经试验验证给此电路供电的电池的压降较小。因此我们选择此电路作为我们
11、的传感器检测与调理电路。检测到白纸有接收到反射光LM3242脚比较器反向端T1=0V3脚比较器同向端=3V同向端大于反向端则OUT1输出1检测到黑线没接收到反射光了LM3242脚比较器反向端T1=5V3脚比较器同向端=3V 数据显示模块采用LCD和数码管显示,显示分为两部分:数量显示与隧道长度显示,显示的数据来自外部存储器中存储的值,实时刷新,树木的数目依次增加,而隧道长度依次显示在LCD上。开始设初值启动电机循迹隧道长度检测树木白线LCD显示停止结语软件设计 接线的说明: VCC 接 VCC GND 接 GNDL298驱动模块接法: INT1 接 P20 INT2 接 P21 INT3 接
12、P22 INT4 接 P23寻迹模块接法: OUT5 接 P10 OUT4 接 P11 OUT3 接 P12 OUT2 接 P13 OUT1 接 P14*/#include <reg52.h> /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include <intrins.h>#define L 3/左转90度的宏定义#define R 4/右转90度的宏定义/*寻迹模块IO口定义*/sbit xun_ll =
13、P14; /从左到右第1个sbit xun_l = P13; /从左到右第2个sbit xun_z = P12; /从左到右第3个sbit xun_r = P11; /从左到右第4个sbit xun_rr = P10; /从左到右第5个/*LN298电机驱动IO口定义*/sbit qu_ll = P20; /左边电机控制IN1sbit qu_zl = P21; /左边电机控制IN2sbit qu_zr = P22; /右边电机控制IN1sbit qu_rr = P23; /右边电机控制IN2sbit c_send = P33;/超声波发射sbit c_recive = P34;/超声波接收uc
14、har flag_hc_value; /超声波中间变量long distance = 888; /距离uint set_d; /距离bit flag_csb_juli; /超声波超出量程uint flag_time0; /用来保存定时器0的时候的bit flag_300ms ;bit flag_1s ;uint shudu_l,shudu_ll;uint juli;#include "lcd1602.h"/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;i<q;i+)for(j=0;j<115;j+);/*小车前
15、进函数*/void go()qu_ll = 1; qu_zl = 0; qu_zr = 0; qu_rr = 1; /*小车后退函数*/void back()qu_ll = 0; qu_zl = 1; qu_zr = 1; qu_rr = 0; /*小车左转函数 只有一个轮子动*/void left()qu_ll = 0; qu_zl = 0; qu_zr = 0; qu_rr = 1; /*小车左转函数 左边轮子后退 右边轮子前进*/void left_s()qu_ll = 0; qu_zl = 1; qu_zr = 0; qu_rr = 1; /*小车停下函数*/void stop()qu
16、_ll = 0; qu_zl = 0; qu_zr = 0; qu_rr = 0;/*小车右转函数 只有一个轮子动*/void right()qu_ll = 1; qu_zl = 0; qu_zr = 0; qu_rr = 0; /*小车右转函数 左边轮子前进 右边轮子后退*/void right_s()qu_ll = 1; qu_zl = 0; qu_zr = 1; qu_rr = 0;/*左右转90度结束程序*/void che_90_180_break(uchar dat)uchar i_z = 0;while(1) /循环等待中间寻迹传感器到黑线上 if(xun_z = 0) /如果中
17、间那寻迹传感器到了黑线上,要让小车停下来前进了i_z+; /消去干扰if(i_z >= 10) /10次之后就确定寻迹模块的中间传感器到黑线上了if(dat = L) /如果是左转90度就让右转的方法制动right_s();else left_s(); /如果是右转90度就让左转的方法制动delay_1ms(2);stop();delay_1ms(100);go(); break; /break退出while(1)这个死循环else /没有在黑钱上就给i_z变量清零i_z = 0;/*小车左转90度*/void left_s_90_while()/小车向左转90度go();/前进一小会让
18、小车转90度时刚好让黑线在小车的中间 delay_1ms(120);left_s();/左转90度注意这个延时不能太长 只要能让寻迹模块中间的传感离开黑线就好delay_1ms(180);che_90_180_break(L);/*小车向右转90度*/void right_s_90_while() /go();/前进一小会让小车转90度时刚好让黑线在小车的中间 delay_1ms(120);right_s();/左转90度注意这个延时不能太长 只要能让寻迹模块中间的传感离开黑线就好delay_1ms(180);che_90_180_break(R);/*小车左转90度*/void left_9
19、0()left_s();delay_1ms(280);/right_s();/delay_1ms(30);stop();delay_1ms(150);go();/*小车右转90度*/void right_90()right_s();delay_1ms(270);/left_s();/delay_1ms(30);stop();delay_1ms(150);go();/*寻迹小车程序*/ 白线为 1 黑线为 0void xunji() if(xun_ll=1) && (xun_l=1) && (xun_z=0) && (xun_r=1) &&
20、amp; (xun_rr=1)/xunji:11011go(); /小车前进if(xun_ll=0) && (xun_l=0) && (xun_z=0) && (xun_r=0) && (xun_rr=0) /xunji:00000stop(); /小车停下if(xun_ll=1) && (xun_l=1) && (xun_z=0) && (xun_r=0) && (xun_rr=1) | (xun_ll=1) && (xun_l=1) &&a
21、mp; (xun_z=1) && (xun_r=0) && (xun_rr=1) | (xun_ll=1) && (xun_l=1) && (xun_z=1) && (xun_r=0) && (xun_rr=0) | (xun_ll=1) && (xun_l=1) && (xun_z=1) && (xun_r=1) && (xun_rr=0) /xunji:11001/把从左到右把每一个会让右转的情况写出来 /xunji:11101/x
22、unji:11100/xunji:11110right(); /小车右转if(xun_ll=1) && (xun_l=0) && (xun_z=0) && (xun_r=1) && (xun_rr=1) | (xun_ll=1) && (xun_l=0) && (xun_z=1) && (xun_r=1) && (xun_rr=1) | (xun_ll=0) && (xun_l=0) && (xun_z=1) && (x
23、un_r=1) && (xun_rr=1) | (xun_ll=0) && (xun_l=1) && (xun_z=1) && (xun_r=1) && (xun_rr=1) /xunji:10011/把从右到左把每一个会让左转的情况写出来 /xunji:10111/xunji:00111/xunji:01111left(); /小车左转if(xun_ll=1) && (xun_z=0) && (xun_r=0) && (xun_rr=0) /xunji:1X000g
24、o(); delay_1ms(1);if(xun_ll=1) && (xun_z=0) && (xun_r=0) && (xun_rr=0) /xunji:1X000right_s_90_while(); /小车右转90度if(xun_ll=0) && (xun_l=0) && (xun_z=0) && (xun_rr=1) /xunji:000X1go();delay_1ms(1);if(xun_ll=0) && (xun_l=0) && (xun_z=0) &am
25、p;& (xun_rr=1) /xunji:000X1left_s_90_while(); /小车左转90度 /*小延时函数*/void delay()_nop_(); /执行一条_nop_()指令就是1us_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); /*超声波测距程序*/void send_wave()c_send = 1; /10us的高电平触发 delay();c_send = 0; TH0 = 0; /给定时器0清零TL0 = 0;TR0 = 0; /关定时器0
26、定时while(!c_recive); /当c_recive为零时等待TR0=0;while(c_recive) /当c_recive为1计数并等待flag_time0 = TH0 * 256 + TL0;if(flag_time0 > 40000) /当超声波超过测量范围时,显示3个888TR0 = 0;flag_csb_juli = 2;distance = 888;break ;else flag_csb_juli = 1;if(flag_csb_juli = 1)TR0=0; /关定时器0定时distance =flag_time0; /读出定时器0的时间distance *=
27、0.017; / 0.017 = 340M / 2 = 170M = 0.017M 算出来是米if(distance > 500) /距离 = 速度 * 时间distance = 888; /如果大于3.8m就超出超声波的量程 /*避障程序*/void bizhang()static uchar value;if(distance < 20)value +;if(value >= 7)stop();delay_1ms(200);right_90(); /右转90度go();delay_1ms(200);stop();delay_1ms(200);left_90(); /左转9
28、0度go();delay_1ms(1000);stop();delay_1ms(200);left_90();go();delay_1ms(100);while(xun_l = 1) && (xun_r = 1); /等待回到轨道right_s_90_while(); /小车右转90度elsevalue = 0;/*定时器0、定时器1初始化*/void time_init() EA = 1; /开总中断TMOD = 0X11; /定时器0、定时器1工作方式1ET0 = 1; /开定时器0中断 TR0 = 0; /允许定时器0定时ET1 = 1; /开定时器1中断 TR1 = 1; /允许定时器1定时/*外部中断0 中断1的初始化程序*/void int01_init()EA = 1; /开总中断EX0 = 1; /允许外部中断0中断IT0 = 1;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年木工雕刻机项目规划申请报告模板
- 2024年真空管太阳热水器项目申请报告
- 颜料中间体相关行业投资规划报告
- 泵与泵站排水课程设计
- 氨气吸收塔课程设计
- 毕业设计c语言课程设计
- 比特币机制问题研究报告
- 殡葬车投标方案
- 工程勘察设计合同范本
- 企业财务分析服务合同范本
- 大班语言《说明性讲述:动物》课件
- 基于SLP的仓库布局优化设计-以ZR印刷集团股份有限公司仓库为例
- 小学《爱国主义教育》课件
- 统编版语文九年级上册 第一单元整体教学设计
- 深基坑安全施工培训讲义
- 波形护栏施工应急预案
- 北师大版二年级数学上册《秋游》教案及教学反思
- 中学化学实验室管理制度
- 2023年05月北京科技大学人才招聘(第二批)笔试历年高频考点试题含答案附详解
- 信息技术应用于高三化学复习课教学的研究的开题报告
- 2023上海高三高考英语模拟试卷20套(含答案)
评论
0/150
提交评论