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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

智能寻迹小车实验报告.docx

1、智能寻迹小车实验报告DIY 达人赛基于 STC89C52单片机智能寻迹小车实验报告参赛队伍 :队员:2014 年 4 月一、引言我们所处的这个时代是信息革命的时代, 各种新技术、新思想层出不穷,纵 观 世界范围内智能汽车技术的发展,每一次新的进步无不是受新技术新思想的推 动。 随着汽车工业的迅速发展,传统的汽车的发展逐渐趋于饱和。伴随着电子 技 术和嵌入式技术的迅猛发展,这使得汽车日渐走向智能化。智能汽车由原先 的驾 驶更加简单更加安全更加舒适,逐渐的向智能驾驶系统方向发展。智能驾 驶系统 相当于智能机器人,能代替人驾驶汽车。它主要是通过安装在前后保险 杠及两侧 的红外线摄像机,对汽车前后左右

2、一定区 域进行不停地扫描和监视。 计算机、 电子地图和光化学传感器等对红外线摄像 机传来的信号进行分析计 算,并根据 道路交通信息管理系统传来的交通信息,代替人的大脑发出指令, 指挥执行系统 操作汽车。1、来源 汽车的智能化是 21 世纪汽车产业的核心竞争力之一。 汽车的智能化是以迅猛 发展的汽车电子为背景,涵盖了控制、模式识别、传 感技术、电子、电气、计 算机、机械等多个学科交叉的科技。2、智能汽车国外发展情况从 20 世纪 70 年代开始,美国、英国、德国等发达国家开始进行无人驾驶汽 车 的研究,目前在可行性和实用化方面都取得了突破性的进展。 目前日本、 欧美已 有企业取得实用化成果。与国

3、外相比,国内在智能车辆方 面的研究起步较晚, 规模较小, 开展这方面研究工作的单位主要是一些大学和研究所, 如国防科技大 学、清华大学、吉林大学、北京理工大学、长安大学、沈阳 自动化所等。 我国 从 20 世纪 80 年代开始进行无人驾驶汽车的研究, 国防科技大学在 1992 年成 功研制出我国第一辆真正意义上的无人驾驶汽车。先后研制出四代无人驾驶汽 车。第四代全自主无人驾驶汽车于 2000 年 6 月在长沙市绕城高速公路上进行 了全自主无人驾驶试验,试验最高时速达到 75.6Km/h。3、我们的小车我们做的是基于 STC 8 9 C52单片机开发,主要是研究3轮小车的路径识别及其 遥控运动。

4、二、智能寻际小车基本原理1、红外寻迹原理探测路面黑线的基本原理:光线照射到路面并反射,由于黑线和白纸对光 的反射系数不同,可以根据接收到的反射光强弱来判断是否是黑线。利用这个 原理,可以控制小车行走的路迹。 这里的循迹是指小车在白色地板上循黑线行 走,通常采取的方法是红外探测法。 红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外 光,当红外光遇到白色纸质地板时发生漫反射, 反射光被装在小车上的接收管接 收;如果遇到黑线则红外光被吸收, 小车上的接收管接收不到红外光。处理器就根据是否收到反射回来的红外光为依 据来确定黑线的位置和小车的行走

5、路 线。红外探测器探测距离有限,一般最大不应超过 3cm。2、驱动原理:利用L298N构成电机驱动电路2. 1 L298N的恒压恒流桥式 2A驱动芯片L 2 9 8 N引脚介绍:#1和15和8引脚直接接地;#4管脚VS接2 .5到4 6的电压,它是用来驱动电机的。#9引脚是用来接4 .5到7 V的电压的,它是用来驱动L 2 9 8芯片的,L298 需要从外部接两个电压,一个给电机,一个给芯片。#6和11引脚是使能端, 一个使能端控制一个电机, 至于控制哪个取决自己。 可以理解为总开关,只有都是高电平的时候两个电机才能工作。#5,7,10,12是298的信号输入端,和单片机的 10 口连接。2,

6、3,13,14是输出端。#输入5和7控制输出2和3,输入的10 ,12控制输出的13,14 .1; L298N是SGS公司产品,内部包含4通道逻辑驱动电路,是一种二相 和四相电机的专用驱动器,即内含二个 H 桥的高电压大电流双全桥式驱动器, 接收标准 TTL 逻辑电平信号,可驱动 46V, 2A 以下的电机。2; OUT1, OUT2,和 OUT3, OUT4 直接分别接 2 个电动机。TN1 , TN2, TN3,TN4 引脚从单片机接输入控制电平,控制电机的正反转, ENA,ENB 接 控制使能端,控制电机的停转。3;对于电机的调速,我们采用 PWM 调速的方法。其原理就是开关管在一 个周

7、期内的导通时间为t,周期为T。 VCC是电源电压。电机的转速与电机两 端的电压成正比, 而电机两端的电压与控制波形的占空比成正比, 因此电机的速 度与占空比成比例。在硬件电路的连接上,我们将单片机的P2. 0P2 .3 口分别连接到2 9 8的IN 1IN 4 上,通过改变P2.0P2. 3上的高低电平变 化以控制小车的前进方向,通过改变P2. 0P2. 3 口上的高低电压的占空比以控制电机的转速。4; PWM配合桥式驱动电路L 2 9 8 N,实现直流电机调速,非常简单, 且调速范围大。另外我们特别在直流电机的电驱两端并联一个磁片电容104, 以稳定电机的电压不致对单片机造成干扰, 实际效果

8、不错, 省掉了通过光耦隔离 TPL 5 2 1实现单片机输出信号与电机驱动信号隔离2.2 驱动板电路原理:该驱动板需要7 . 2电源供电,但L 2 9 8的逻辑参考电平为典型的 TTL电 平。用了一个L1117稳压芯片是为了提供稳定的5 V输出电压和逻辑参考电压D9,D10,D1 1和D12是发光二极管,指示运动方向,与它们连接 的电阻是限流电阻R5,R8是下拉电阻,让 ENB和ENB要么是高电平,要 么是低电平,避免电平混乱,提高对输入信号的抗干扰能力。输出端都接有0 .1uf电容,加上二极管平衡电路。都是为了保护 L298N,电机是感性负载,当 给电机突然通电和断电,因为电流的瞬变,电机两

9、端会产生瞬时高电压和大电流。如果没有保护措施,L 2 9 8会被损害实际控制中需要不断地使电机在正转下皈转之间切换,也就是在Qx Q+导通且 a关断到Qb q斗关断且a导通这两种状态间这种情况理论上要求两组控制信 号完全互补,但是由于实师的开关器件都存在导通和応fi时间,绝对的互补控制逻辑会导致 上下桥臂直逋短路。为了避免直通短腐且保证各个幵关管动作的协同性和同步性,两组控制 信号理论上叢求互为倒相,而实际必须相差f足勺张的死区时间,即保证在某一功率器件 导通的同时,同桥臂的功率器件可案的截止防止桥臂直通短1X2111梯陋过逻辑门 器件实现了死区时间的延迟即由1X2111高端和低端输岀的波刑如

10、隔6所示。基中,DT即 为定文的死区时间Will典型死区时间是初疏IK2111死匡延时特性Ft?51R2111 Dead tune delzvfejrui? Q J3 智能小车舵机控制原理利用舵机灵活控制超声波探头 1800旋转,可以实现小车的全方位避障。 什么是舵机在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以 在微机电系统和航模中作为基本的输出执行机构, 其简单的控制和输出使得单片 机系统非常容易与之接口。舵机是一种位置(角度)伺服的驱动器,适用于那些 需要角度不断变化并可以保持的控制系统。舵机工作原理控制信号由接收机的通道进入信号调制芯片, 获得直流偏置电压。 它内部

11、有 一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏 置电压与电位器的电压比较, 获得电压差输出。 最后, 电压差的正负输出到电机 驱动芯片决定电机的正反转。 当电机转速一定时, 通过级联减速齿轮带动电 位器 旋转,使得电压差为 0,电机停止转动。舵机的控制舵机的控制一般需要一个 20ms 左右的时基脉冲,该脉冲的高电平部分一 般 为 0.5ms2.5ms 范围内的角度控制脉冲部分。 以 180 度角度伺服为例, 那么对 应 的控制关系是这样的:0.5ms 0 度;1.0ms 45 度;1.5ms 90 度;2.0ms 135 度;2.5ms 180 度;4.智能小

12、车避障基本原理小车避障是 利用超声波测距, 并根据测出离障碍物不同距离而做出不同反应。 超声波测距模块简介检测距离: 5CM-5M 分辨率: 5MM 数字电平信号,可直接接单片机,无需 任何辅助电路, 也无需单片机产生任何信号辅助, 距离和模块输出信号脉冲长度 成正比。 尺寸:43.5*20.5毫米 高度:13.8毫米2.5.2 .超声波测距原理你只需要提供一个短期的10uS脉冲触发信号。该模块内部将发出 8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信 号是一个脉冲的宽度 成正比的距离对象。可通过发射信号到收到的回响信号时 间间隔可以计算得到距式:uS/58=厘米

13、或者口5/148=英寸。建议测量周期为 60ms以上,以防止发射信号对回响信号的影响.5.智能小车液晶显示原理加入液晶显示一方面是为了弥补数码管显示的局限性,其次是为了显示小车 的运动状态,离前方障碍物距离,循迹状态,是否遇到黑线,后退,前进还是 转 向,作为一个控制平台,实现小车的灵活控制。液晶显示原理液晶显示其实就是对屏幕的每个点的扫描, 带字库的液晶内部自带控制芯片, 直接对它操作就可以显示出汉子字符, 需要读写命令和数据,才能达到对液晶控 制器的操作。6.避障模块电路设计小车避障模块由超声波和舵机两部分组成,超声波测量距离障碍物的距离, 舵机来控制超声波探头的 18 0。旋转,从而达到

14、全方位的避障控制。7.电源我们用的是六节干电池,用LM2940S降压。原理图如下5fl8.红外通信原理通用红外遥控系统由发射和接收两大部分组成,应用编 /解码专用电路芯 片来进行控制操作。遥控器在按键按下后,周期性地发出同一种 32位二进制码,周期约为108ms。 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲, 这108ms发射代码由一 个起始码(9ms),一个结果码(4.5ms),低8位地 址码(9ms18ms ),高 8 位地址码(9ms18ms),8 位数据码(9ms18ms) 和这8位数据的反码(9ms18ms )组成。VS1838B三、材料准备1.小车底

15、盘,电机。我们从淘宝网上买的车模,他们直接组装好的。2.四路红外探测系统。3 超声波探测模块。4.舵机、液晶5.STC89C52,L298N,LM2940S,VS1838B, IN5819。瓷片电容 104接收器及解码一体化红外线接收器是一种集红外线接收和放大于一体,不需要任何外接元件, 就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的 塑圭寸三极管大小一样,它适合于各种红外线遥控和红外线数据传输。四、实验过程i.我们先做了单片机STC89C52最小系统。以及稳压电路。ii.我们用L298N以及IN5819,104电容照前边原理图搭建了驱动电路iii.第三阶段做红外探测

16、,用的是LM339,红外发射、接收二极管,好多次都失 败了,最后我们就买了四路红外探测系统。调试时发现还不太好用,就换掉了滑动变阻器。iv.第四阶段我们对小车进行组装,加上了液晶显示器,超声波模块,舵机(带 动超声波探头),红外一体化接收头。v.最后阶段对小车进行总体调试。五、程序1 一些定义#include /头文件一般无需改动 #include /头文件一般无需改动 #include hongwai.h#define uchar unsigned char /宏定义#define uint unsigned intsbit out1=P2A2;/电机驱动输出控制管脚配置sbit out2=

17、 P2A3;sbit out3= P2AO;sbit out4= P2A1;sbit en a=P3A7;sbit en b=P3A6;sbit SPK=P3A5;sbit in1 =P0A1;/循迹模块的信号输入管脚配置sbit in2 =POA2;sbit in3 =P0A3;sbit in4 =P0A4;sbit RS =P2A4; /定义端口sbit RW =P2A5;sbit EN =P2A6;sbit pwm=P0A0;sbit ECHO=P3A3;sbit TRIG= P3A4;extern un sig ned char YO;/外部链接变量#define RS_CLR RS=

18、0#define RS_SET RS=1#define RW_CLR RW=0#define RW_SET RW=1#define EN_CLR EN=0#define EN_SET EN=1#define DataPort P1long S=0;2 驱动程序void qianjin()/ 使小车向前行驶ena=enb=1;out2=out4=1;void zuozhuan()控制小车做轻微左转动作ena=enb=1;out1=0;out2=out3=out4=1;void youzhuan()控制小车做轻微右转? ena=enb=1;out1=out2=out4=1;out3=0;void

19、zuozhuan1()/控制小车做左转动作ena=enb=1;out1=out4=0;out2=out3=1;void youzhuan1()/控制小车做右转动作 ena=enb=1;out1=out4=1;out2=out3=0;void houtui()/控制小车可以使小车倒退行驶ena=enb=1;out1=out3=1;out2=out4=0;void tingzhi () /使小车停止当前所有动 ?ena=enb=1;out1=out2=out3=out4=1;void TIM2Inital(void) /用定时器 2RCAP2H = (65536- 1 00)/256;/晶振 12

20、M 60ms 16bit 自动重载RCAP2L = (65536-100)%256;ET2=1; /打开定时器中断EA=1; /打开总中断/对小车调速void TIM2(void) interrupt 5 using 1/ 定时器 2 中断 输出不同 PWM 信号 TF2=0;count+; if(countshu)out1=out3=1;else out1=out3=0; count=count%50;3 液晶显示函数 bit LCD_Check_Busy(void) / 判忙 DataPort= 0xFF;RS_CLR;RW_SET;EN_CLR;_nop_();EN_SET;return

21、 (bit)(DataPort & 0x80);void LCD_Write_Com(uchar com) /命令while(LCD_Check_Busy(); / 忙则等待 RS_CLR;RW_CLR;EN_SET;DataPort= com;_nop_();EN_CLR;void LCD_Write_Data(uchar Data) /写数据while(LCD_Check_Busy(); / 忙则等待RS_SET;RW_CLR;EN_SET;DataPort= Data;_nop_();EN_CLR;void LCD_Clear(void) / 清屏LCD_Write_Com(0x01);

22、delay(5);void LCD_Write_String(uchar x,uchar y,uchar *s)/* 写字符串 */if (y = 0)LCD_Write_Com(0x80 + x); / 表示第一行elseLCD_Write_Com(0xC0 + x); / 表示第二行while (*s)LCD_Write_Data( *s);s +;void LCD_Write_Char(uchar x,uchar y,uchar Data) /* 写单个字符 */if (y = 0)LCD_Write_Com(0x80 + x);elseLCD_Write_Com(0xC0 + x);L

23、CD_Write_Data( Data);void LCD_Init(void) / 初始化/* 显示模式设置 */*显示关闭 */*显示清屏 */* 显示光标移动设置 */* 显示开及光标设置 */LCD_Write_Com(0x38); delay(7);LCD_Write_Com(0x08);LCD_Write_Com(0x01);LCD_Write_Com(0x06); delay(7);LCD_Write_Com(0x0C);4.超声波检测unsigned int time=0;bit flag =0;void Conut(void)time=TH0*256+TL0;TH0=0;TL

24、0=0;S=time*1.7/100; / 算出来是 CM 12M 晶振void StartModule()TRIG=1;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();TRIG=0;StartModule();while(!ECHO); /当 ECHO 为零时等待TR0

25、=1; /开启计数while(ECHO); /当 ECHO 为 1 计数并等待TR0=0;Conut();void disp(void) /液晶显示障碍距离LCD_Write_Char(8,1,0+S%1000/100);LCD_Write_Char(9,1,0+S%1000%100/10); LCD_Write_Char(10,1,0+S%1000%10 %10);5避障程序void bizhang()uchar a;StartModule();delay(5);if(S13)delay(10);if(S13)TR2=0;delay(2);tingzhi();delay(3);LCD_Cle

26、ar(); 清屏 delay(20);LCD_Write_String(5,0,Barrier);delay(5);for(a=0;a200;a+) /蜂鸣器报警DelayUs2x(200);SPK=!SPK;SPK=O;防止一直给喇叭通电造成损坏for(a=0;ayou) / 判断左右转 zuozhuan();delay(400);else youzhuan();delay(400); TR1=0; /关 PWMvoid init_pwm() /定时器 1 控制舵机带动超声波模块摇头TMOD|=0X10;TH1=0XFE;TL1=0X33;ET1=0;EA=1;void duoji() in

27、terrupt 3 定时器 1 中断TH1=0XFE;TL1=0X33;if(count1shu1)pwm=1;elsepwm=0;count1+;count1=count1%40;6.循迹程序void xunji() if(in1=1&in2=0&in3=0&in4=0)delay(1);TR2=0;zuozhuan(); else if(in1=0&in2=1&in3=0&in4=0)delay(1);TR2=0;youzhuan();else if(in1=0&in2=0&in3=0&in4=1)delay(1);TR2=0;youzhuan1();else if(in3=1&in1=0

28、&in2=0&in4=0)delay(1);TR2=0;zuozhuan1(); else if (in1=0&in2=0&in3=0&in4=0)delay(1);TR2=1; qianjin(); else if (in1=1&in2=1&in3=1&in4=1)delay(1); TR2=0; tingzhi();7红外通信sbit IRIN = P3A2;/红外接收器数据线unsigned char Y0=2;/unsigned char IRCOM7;/ 暂存数组void IRdelay(unsigned char x) /x*0.14MSunsigned char i;while(

29、x-)for (i = 0; i13; i+) void IRInit()IE |= 0x81;/允许总中断中断 ,使能 INT0 外部中断TCON |= 0x01;/触发方式为脉冲负边沿触发IRIN=1;IRdelay(1);/I/O 口初始9ms的前导低电平void IR_IN(void) interrupt 0unsigned char j,k,N=0;EX0 = 0;IRdelay(15);if (IRIN=1) EX0 =1;return;while (!IRIN)信号。IRdelay(1);for (j=0;j4;j+)for (k=0;k8;k+)while (IRIN) IRdelay(1);/确认 IR

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

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