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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

智能小车论文.docx

1、智能小车论文课程设计报告书智能小车班级:生物医学工程(医学影像技术)11成员:王贵瑜 1105512144苏美怡 1105512142韦丽萍 1105512145指导老师:何永玲 刘红秀智能小车作者:王贵瑜 苏美怡 韦丽萍班级:生物医学工程(医学影像技术11)指导老师:刘红秀 何永玲摘 要:利用红外对管检测障碍物与黑线,火焰传感器检测光源,并以STC89C51单片机为控制芯片控制电动小汽车的左右轮速度及转向,从而实现按照设计图的赛道实现自动避障、循迹和寻光的功能。其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波控制。关键词:智能小车;STC89C51单片机; L298N;红外对

2、管;火焰传感器一、引言1.1 智能小车的国状内外现 当今智能小车发展迅速,于国内外从智能小车玩具到其他行业都有实际成果。而现实中的智能小车能够完成的基本功能一般是循迹、避障、寻光入库、检测金属贴片等等,甚至在一些电子设计大赛或者国内外大学生实践比赛中,已经朝着声控检测或者无线网络wifi控制等功能方向研究,更加与时俱进,符合生活需求。飞思卡尔是当今较为出名的研究智能小车的公司。本组的课程设计主要为实现智能小车的红外避障、循迹、寻光入库的功能。1.2 智能小车的设计研究意义近年来,随着网购的风行,我国快递业市场规模急剧扩大。在网购高峰时期,很多快递都出现“暴仓”现象,使之变成“慢递”了。由于快递

3、大小不一,在分派中心的分类就特别费人力物力了,尤其是大型的分派中心。还有快递的分派中心的工作量波动大,工作人员的数量也不固定,在高峰期雇人比较困难,人手紧张。基于以上的现状我们想通过智能小车来代替一部分的人,节省人力还可大大提高快递分类的速度 。我们相信高效率的物流传输方式不仅仅有利于节省金钱与时间,更有利于整个社会经济和文化的沟通与发展,对于网络时代、电商时代快速发展的今天更具有非常实际的意义。利用整个轨道来模拟分拨中心,A点(起点),E点(终点)分别是快递传递的发、收点,两处均有快递员,智能小车在A、E点进行传送快递,具有实现减轻快递员工作压力,节约搬运快递时间,提高快递物流效率的实际意义

4、。二、总体方案2.1 设计要求设计一台智能电动小车,行进路线如上图,要求:(1)从起跑线A 出发,经B、C,沿轨迹至D,最后到达停止线E,总时间要求在90 秒内完成,并能实时显示时间。(2)赛场分、三个区。到区入口处D 点,应停留5 秒,并能发出断续声光报警。(3)到停止线E,小车车身中心点应对准停止线,误差控制在2cm,并能发出断续声光报警。2.2 设计方案1)制作小车轨道根据上图所示利用硬纸板、白炽灯等材料制作小车测试所需的轨道。包含障碍物、黑色轨迹、标注ABCDE各点等。2)确定各线路所需功能(1)A到B点小车在此段实现避障功能,主要通过红外避障传感器来实现避障与转弯。(2)B到C点白色

5、纸挡板作为障碍物,小车要实现避障,同样通过红外避障传感器来辅助实现避障。(3)C到D点小车实现循迹功能,需要循迹模块利用红外探测黑色轨迹来实现,按照黑色轨迹来行走到达D点,到达D点之后程序会进入蜂鸣器与led灯部分,发出5秒的声光报警。(4)D点到E点小车要根据白炽灯的光源来循光进行行驶,此时需要火焰传感器来实现循光功能,在到达E点之后小车的循迹模块感应到E处的黑线,驱动模块使小车停止在E处的黑线上,此时程序进入蜂鸣器与led灯部分,蜂鸣器与led灯工作,发出断续声光报警。(5)全过程中最小系统的51定时器对小车进行计时,小车从A点出发到达E点所用的时间会显示在1602液晶显示屏上。2.3 硬

6、件方案智能小车主要由STC89C51单片机最小系统控制模块、红外避障模块、红外循迹模块、寻光模块(火焰传感器)、L298N驱动模块、电源模块组成。避障功能红外避障传感器模块循迹功能红外循迹传感器模块循光功能火焰传感器模块驱动功能LN298驱动模块时间显示1602液晶声光报警蜂鸣器,led灯其他硬件杜邦线,最小系统,车身底座(包含马达),移动电源三、硬件设计与原理3.1 避障模块采用红外线避障,利用单片机来产生信号对红外线发射管进行调制发射,发射出去的红外线遇到避障物的时候反射回来,红外线接收管对反射回来信号进行解调,输出比较电平。外界对红外信号的干扰比较小,且易于实现,价格也比较便宜。红外线避

7、障方法,利用一管发射另一管接收,接收管对外界红外线的是否接收来判断是否遇障碍物,再结合51芯片上的程序判断来控制智能小车左右轮的速度,只要障碍物在所调灵敏度限定范围内就会产生相对的电平供单片机控制,实现避障功能。 4在本设计中,在车前中间放置一个红外避障传感器模块,与车前左右和车后左右两边各放置一个红外避障传感器模块,整个车上共5个红外对管。3.2 循迹模块小车循迹原理是小车在贴有黑胶带的地板上行驶,由于黑色和白色对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”一黑线。在模块中利用了简单、应用也比较普遍的检测方法红外探测法。红外探测法,即利用红外线在不同颜色的物理表面具有不同的反

8、射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车的接收管接收不到信号。电路图如下:利用集成型红外对管作为寻迹单元的传感器,其中红外线发射管发射红外线,红外线二极管进行接收。采用红外线发射,外面可见光对接收信号的影响较小,再用射极输出器对信号进行隔离。利用红外循迹易于实现,比较可靠。当小车底部的某边红外线收发对管遇到黑带时,可以检测到输入电平为高电平,反之为低电平。结合单片机判断是否检测到黑线,通过执行相应的程序语句来控制小车哪边轮胎转动来改变方向。这样不断循环检测,方向控制,使小车按黑线行

9、走。 4采用四路红外循迹模块并排安装固定在万能板上,然后固定在小车车头的底部,感应器朝下,用于检测地面轨道上的黑线。由杜邦线引出循迹模块的VCC、GND和端口分别与STC89C51单片机相应的I/O端口连接。当通电时,左一红外对管检测到黑线时,通过程序控制智能小车的轮子转速,此时右轮速度大于左轮,智能小车向左转幅度大一些,同理,左二检测到黑线时,智能小车向左转但是幅度小一点,右一检测到黑线向右转幅度大一点,右二检测到黑线则是向右转但是幅度小一点,这样小车就能按照轨道上的黑线来实现循迹行走了。 3.3 寻光模块利用火焰传感器对光源进行探测,判断火焰传感器上的感应器是否检测到光源,通过51芯片上所

10、编写的程序来判断并控制智能小车左右轮子的速度和方向来达到寻光行走。为实现小车位置与光源位置的判别,可以在小车车头和左右两侧分别安装一个火焰传感器。 4本设计中于车前左中右各放置一个火焰传感器模块。 3.4 驱动模块基于L298n的电机驱动模块。L298N是一款专门用于驱动电动机的芯片,具有高集成度、高功率的特点,其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,减速电机,伺服电机,电磁阀等,较少的外围电路(仅需要保护用的二极管和滤波电容)便可以很好地驱动大功率的电机。其输入端可以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直

11、接控制两路电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。而且模块体积小,稳定性高。综上所述,选择L298N及外围电路作为电机驱动模块,其电路连线图如下:L298N驱动模块上+12V、+5V、GND引脚用电线分别与最小系统引出的12V、5V和地连接起来,L298N驱动上的OUT1、OUT2和OUT3、OUT4用杜邦线分别与智能小车的两个电机相连,给两个电机供+12V的电源。 33.5 电源模块 选择了能够实现12v转5V的LM2596电源模块来分别实现给STC89C51单片机和L298N驱动电机模块进行供电。因为LM2596电源模块稳定性好,转换的电压比较精准,输出的电压也

12、相对稳定。 33.6 1602液晶模块以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。1602每行显示16个字符,一共可以显示两行。在此,主要运用1602液晶来显示小车行走时间。 13.7 声光报警模块为了在D点和终点E处发出声光报警,我们于车尾使用了蜂鸣器模块和两个led灯实现。蜂鸣器的原理图如下: 23.8 最小系统控制本模块采用STC89C51单片机作为核心处理器。单片机控制系统基本由最小系统和外围信号I/O口组成,其中最小系统包括电源(地),CPU时序电路(一般使用11.0592M或者12M和30P电容组成),复位电路组成。 2四、软件设计4.1主程序流程图4.2 主程序代码#

13、include#include #include pwm.h#include delay.h#include tracking.h#define uchar unsigned char#define uint unsigned int sbit front=P33; /*前边红外避障*/sbit right1=P34; /*右前红外避障*/sbit right2=P35; /*右后红外避障*/sbit left1=P36; /*左前红外避障*/sbit left2=P37; /*左后红外避障*/sbit shine0=P10; /*前趋光*/sbit shine1=P11; /*左趋光*/sb

14、it shine2=P12; /*右趋光*/sbit beef=P13;sbit led=P24; /*声光报警led灯*/uchar flag=0;void main(void) uchar k; int i; beef=1; pwm_init();/*从A到B*/ while(right1=0 | right2=0 ) if(left1=0 & left2=0) go(15,1); else if(left1=1 & left2=0) go(3,15); else if(left1=0 & left2=1) go(15,3); else go(14,15); /*转弯进入区*/ go(20

15、,-20); /右转 delay(4); TR0=0; stop(); delay(1000); TR0=1; go(20,15); delay(180); while(front=1) /检测到白板前直走 go(17,15); TR0=0; stop(); delay(200); TR0=1; go(20,-20); /检测到白板就右转 delay(4); TR0=0; stop(); delay(1000); TR0=1; while(left1=0 | left2=0) /靠左边白板直走 if(left1=0 & left2=0) go(15,1); else if(left1=1 &

16、left2=0) go(3,15); else if(left1=0 & left2=1) go(15,3); else go(14,15); while(right1=0 | right2=0) if(left1=0 & left2=0) go(15,1); else if(left1=1 & left2=0) go(3,15); else if(left1=0 & left2=1) go(15,3); else go(14,15); while(front=1) go(15,12); TR0=0; stop(); delay(1000); /*左转进入区*/ TR0=1; go(-20,2

17、0); delay(4); TR0=0; stop(); delay(1000); TR0=1; tracking_stop(); /打开循迹,当3个红外同检测到黑线时 TR0=0; stop(); k=100; /停留5 秒,并发出断续声光报警。 while(k-) beef=beef; led=led; delay(50); /*右转进入区*/ TR0=1; go(20,20); delay(150); go(35,10); delay(300); go(16,15); tracking_shine_stop(); /开始趋光走向E线 TR0=0; stop(); while(1) whi

18、le(k-) /停止在E线上,并发出连续声光警报声 beef=beef; led=led; delay(50); 4.3 驱动子程序代码#include#define uchar unsigned char#define uint unsigned intsbit in1=P20; /左轮前进sbit in2=P21; /左轮后退sbit in3=P22; /右轮前进sbit in4=P23; /右轮后退char left_go_duty_cycle=0,right_go_duty_cycle=0,num=0;void pwm_init(void) TMOD=0X01; /0010 0001

19、TH0=0XFF; TL0=0XA3;/0.1ms interrupt EA=1; ET0=1; TR0=1;void go(char left_speed,char right_speed) left_go_duty_cycle=left_speed; right_go_duty_cycle=right_speed;void timer0(void) interrupt 1 TH0=0XFF; TL0=0XA3; /0.1ms interrupt if(left_go_duty_cycle0) if(numleft_go_duty_cycle) /The higher the value,F

20、aster in1=0; /go-left else in1=1; else if(num0) if(numright_go_duty_cycle) /The higher the value,Faster in3=0;/go-right else in3=1; else if(num=100) /0.1*100=10ms Cycle 10000-1s num=0;void stop() in1=1; in2=1; in3=1; in4=1;4.4 寻迹、寻光子程序#include#include tracking.h#include HMC5883.h#include delay.h#inc

21、lude pwm.h#define uchar unsigned char#define uint unsigned intsbit Gleft1=P14; /左边第一个寻迹红外sbit Gleft2=P15; /左边第二个寻迹红外sbit Gright2=P16; /右边第二个寻迹红外sbit Gright1=P17; /右边第一个寻迹红外sbit shine0=P10;sbit shine1=P11;sbit shine2=P12;sbit beef=P13;void tracking_handle(void) /寻迹程序 if(Gright2=1) /当检测到黑线时输出高电平 go(20

22、,10); else if(Gleft2=1) go(13,18); else if(Gright1=1) go(45,1); else if(Gleft1=1) go(1,45); else go(15,14); void tracking_stop() /当左边3个或右边3个红外同时检测到黑线时关闭循迹 while(!(Gleft1=1 & Gleft2=1 & Gright2=1)|(Gleft2=1 & Gright2=1 & Gright1=1) tracking_handle(); void tracking_shine(void) /寻光程序 if(shine0=0) /当检测到

23、光时输出低电平 if(shine1=0) go(15,18); else if(shine2=0) go(18,14); else go(15,14); if(shine0=1) if(shine1=0) go(10,35); else if(shine2=1) go(35,10); else go(10,20); void tracking_shine_stop(void) /当寻迹3个红外同时检测到E线时关闭寻光 while(!(Gleft1=1 & Gleft2=1 & Gright2=1)|(Gleft2=1 & Gright2=1 & Gright1=1) tracking_shin

24、e(); 4.5 延时子程序#include #include #define uchar unsigned char#define uint unsigned intvoid delay(unsigned int k) /延时k 毫秒 unsigned int i,j; for(i=k;i0;i-) for(j=110;j0;j-) ; 4.6 1602液晶显示子程序#include#define uint unsigned int#define uchar unsigned charuchar code table1=travel time;sbit en=P34;sbit rs=P35;

25、uchar a,num1,add,miao;void delayms(uint u) uint x,y; for(x=u;x0;x-) for(y=110;y0;y-);void write_1602com(uchar com) rs=0; P0=com; delayms(5); en=1; /写了命令 delayms(5); en=0; /使能拉低 /en=1;void write_1602dat(uchar dat) rs=1; P0=dat; delayms(1); en=1; delayms(1); en=0; void init() TMOD=0x10; TH1=(65536-500

26、00)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1; void lcd_init() write_1602com(0x38); write_1602com(0x0c); write_1602com(0x06); write_1602com(0x01); write_1602com(0x80); for(a=0;a11;a+) write_1602dat(table1a); void jishi(uchar add,uchar sj) uchar i,j; i=sj/10; j=sj%10; write_1602com(0x80+0x40+add); write_1602dat(0x30+j); write_1602com(0x80+0x40+add-1); write_1602dat(0x30+i);void main() init(); lcd_init(); while(1) if(num1=20) num1=0; miao+; jishi(7,miao); if(miao=90) miao=0; void T1_time()interrupt 3 TH1=(

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

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