避障小车课程设计论文.docx
《避障小车课程设计论文.docx》由会员分享,可在线阅读,更多相关《避障小车课程设计论文.docx(18页珍藏版)》请在冰点文库上搜索。
![避障小车课程设计论文.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/0862bcdb-bfc3-4ade-b407-7568efd61234/0862bcdb-bfc3-4ade-b407-7568efd612341.gif)
避障小车课程设计论文
单片机应用技术
课程设计论文
论文题目:
避障小车
毕业论文(设计)原创性声明
本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:
日期:
毕业论文(设计)授权使用说明
本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。
有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。
学校可以公布论文(设计)的全部或部分内容。
保密的论文(设计)在解密后适用本规定。
作者签名:
指导教师签名:
日期:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
【摘要】
本设计是设计一款基于单片机的遥控窗帘,其中的单片机是遥控控制的核心,用于接收处理遥控信号,通过对一台直流电机的正反转控制,模拟实现对窗帘开、合的控制。
此系统具有无线控制与手动控制两种方式,以保证一种控制方式出现问题,可以及时使用另一种控制方式对单片机进行控制。
本报告简要介绍了基于单片机技术的遥控窗帘的设计原理,并根据系统的基本原理制作出了实物模型。
本控制系统主要由以下几个模块组成:
无线信号发射模块、无线信号接收模块、电机驱动模块、电机运行转数检测模块以及单片机控制模块。
其中无线信号发射模块的控制核心是编码芯片PT2262,配套使用的是以解码芯片PT2272为核心的无线信号接收模块,这两组模块配合将对电机控制的正反转控制信息转变为单片机可以识别的二进制代码,通过与单片机内部的程序配合实现对窗帘正反停运行状况的无线遥控控制;电机驱动模块是以L298N芯片以及光耦芯片TLP521-4为核心的功率驱动电路;电机运行转数检测模块是根据霍尔元件对磁钢磁场变化而发出电压脉冲信号的原理做成的;单片机控制模块的核心组成元件是AT89S52芯片,配以单片机的最小系统电路,作为无线遥控窗帘系统的总的控制模块。
此外系统可以实现电机运行状态的显示,比如当电机正转是某对应信号灯亮等。
关键词:
单片机技术;红外传感器臂章技术;蜂鸣器;4WD驱动模块;
目录
1设计任务1
2系统硬件设计2
2.1器件选择2
2.2硬件原理图2
3系统软件设计10
3.1软件流程图10
4设计总结11
参考文献12
附1:
源程序代码6
附2:
系统原理图7
1设计任务
任务要求:
本次设计课题是智能避障小车,具体任务要求如下:
开始小车直线行走,当前方遇到障碍时,报警器报警,同时:
(1):
左边传感器检测到障碍物,小车向右撞。
(2):
左边传感器检测到障碍物,小车向右撞。
(3):
两个传感器都检测到障碍物,小车先后退,再左转。
本小组人员分工:
卢鹏飞程序设计;
康帅负责硬件设计;
杨飞负责文档整理。
2系统硬件设计
2.1器件选择
根据本次课题的实际需要,为了达到要避障的效果,小车采用的主要设计器件有51单片机,红外避障传感器,蜂鸣器,4WD电机驱动。
2.2硬件原理图
(1)51单片机
89C2051是由ATMEL公司推出的一种小型单片机。
95年出现在中国市场。
其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受,其程序的电可擦写特性,使得开发与试验比较容易。
89C2051共有20条引脚,详见图1.从图中可见,2051继承了8031最重要引脚:
图1
51单片机具有以下特点:
1.具有较高的性能价格比。
2.体积小,可靠性高。
由单片机组成的应用系统结构简单,易对系统进行电磁屏蔽等抗干扰措施。
另一方面,单片机不易受外界的干扰。
所以单片机应用系统的可靠性比一般微机系统高得多。
3.控制功能强。
单片机采用面向控制的指令系统,实时控制功能特别强。
CPU可以直接对I/0口进行输入、输出操作及逻辑运算,并且具有很强的位处理能力。
4.使用方便、容易产品化。
单片机的体积小、功能强。
能满足许多小型对象的嵌入式应用要求。
51单片机的原理图如下图所示:
图2
(2)红外避障传感器:
这是一种集发射和接收于一体的光电传感器,主要用于障碍物的检测,对障碍物检测的距离可以根据要求通过后部的旋钮进行调节。
工作原理:
避障传感器基本原理,和循迹传感器工作原理基本相同,利用物体的反射性质。
在一定范围内,如果没有障碍物,发射出去的红外线,因为传播距离越远而逐渐减弱,最后消失。
如果有障碍物,红外线遇到障碍物,被反射到达传感器接收头。
传感器检测到这一信号,就可以确认正前方有障碍物,并送给单片机,单片机进行一系列的处理分析,协调小车两轮工作,完成一个漂亮的躲避障碍物动作
实验接线:
实验时只需把信号输出端(signal)与单片机的P1^0口相连。
VCC端接5V电源,GND接电源负极或单片机上的逻辑地。
注意:
如果对红外避障传感器的使能感兴趣,可以把传感器的TC端接单片机的I/O口,通过控制TC实现是否开启红外避障传感器,当TC为高电平时传感器工作,为低电平时,传感器关闭,参照图7。
实物图及电路图如下所示:
图3
(3)蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
实物图如下:
图4
工作原理:
因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出低电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出高电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。
图5
(4)4WD电机驱动
电机驱动工作原理 驱动板由大功率驱动芯片L298为主,加上L7805稳压芯片为整个电路板提供稳定的5V电压。
驱动板能同时驱动两个直流电机。
通过对六个口的控制就可以分别实现对电机正反转、加减速的控制。
完成向前、向后、左转和右转等各种组合运动。
每个电机用三个口控制,一个使能端(EN)或PWM输入端,控制电机的转动与停止,也能用于PWM控制调速。
也就说,对这个输入端输入一定频率的脉冲,当为高电平时,电机转动,为低电平时,电机停止转动。
一定频率的脉冲,电机一段时间内转动一段时间内停止转动,但由于直流电机的惯性特性,它不会立即停下来,只要频率高于某个值,就不会感觉到电机的停滞现象,反而是一种很连续的运动。
只要改变一个周期内高低电平的时间比例,就可以改变电机的速度。
另外两个输入端是为了控制方向,分别为In1和In2。
In1为高电平,In2为低电平,电机按一个方向转,In1为低电平,In2为高电平,电机向相反方向转,如果他们同时为高电平或低电平,那么电机不转。
图6
驱动电路原理图
该驱动板需要用5V电源供电,但L298N的逻辑参考电平为典型的TTL电平。
用了一个L7805稳压芯片提供稳定的5V输出电压和逻辑参考电压,D9、D10、D11和D12是发光二极管,指示运动方向,与它们连接的电阻都是限流电阻。
R5和R8都是下拉电阻,让EnA和EnB口要么是高电平,要么是低电平,避免出现电平混乱,提高对输入信号的抗干扰能力。
输出端都接有0.1uF电容,加上二极管平衡电路。
他们都是为了保护L298N,电机是感性负载,当给电机突然通电与断电,因为电流的瞬变,电机两端会产生瞬时高压和大电流。
如果没有保护措施,L298N就可能会被烧毁
图7
驱动板连线:
驱动板与单片机和驱动板与直流电机的接线如图3,整个系统的总电源由L298驱动板的供电电源提供。
L298驱动板的5V电源输出给单片机。
L298驱动板的输入控制端与P0口相连,具体各管脚的连接的情况如图3。
L298驱动板的输出直接与直流电机连接,参照图3。
L298驱动板的有一个VCC和GND不用。
他们是使用步进电机时,作为公共端的。
要实现对电机的前后控制,只要P0^0和P0^1逻辑电平相反。
假设P0^0为高,P0^1为低时是正转。
那么在颠倒送数,即P0^0为低,P0^1为高,车轮就会反转。
调速,控制P0^2口的高电平保持时间相对总周期长点,速度就大,短点,速度就小
图8
驱动电机的实物原理图如下所示:
单片机控制信号输入给模块
ENB=控制直流电机B的PWM
B1、B2控制直流电机A正反转
B1B2=01正转B1B2=10反转
如果单片机为自己独立供电,请将单片机的GND和本模块的GND连接共地。
6-12V直流电源或电池输入
图8
AT89S52
3系统软件设计
3.1软件流程图
4设计总结
(1)通过本次红外避障小车实验,使我了解了机器人小车执行各种功能的原理和利用的器件。
了解了小车最基本的前进后退转弯的工作原理,了解了小车如何寻线行驶,了解小车如何避障和寻找目标。
(2)让我亲身感受到传感器在机器人工作中的运用,可以说,机器人每做一个任务都离不开传感器,从避障,找目标物等等任务中完全体现出来。
(3)体验到实际操作与理论的差别,例如,理论上只要调好程序,就可以完全做到精确地寻线行驶,但是实际中会出现外部因素的改变,周围物体对小车判断的各种影响红外避障小车,经过多次反复的验证,再经过多次的整体软硬件结合的调试,不断地对程序进行优化,小车完成了各项功能。
管脚的设定尤为重要。
对设计的优缺点进行总结。
参考文献
(四号,黑体,居中)
[1]田效伍.电气控制与PLC应用技术.北京:
机械工业出版社,2006
[2]邵惠鹤.工业过程高级控制.上海:
上海交通大学出版社,1997
[3]王孟效,汤伟,施颂椒.制浆过程筛选工段DCS控制.中国造纸,2001(4)
[4]逾金寿.过程自动化及仪表.北京:
化学工业出版社,2003
[5]戚新波.检测技术与智能仪器.北京:
电子工业出版社,2005
[6]马国华.监控组态软件及其应用.北京:
清华大学出版社,2001
[7]王孟效,张根宝,孙瑜.制浆造纸过程测控系统及工程.北京:
化学工业出版社,2003
附1:
源程序代码#include
#defineuintunsignedint
#defineucharunsignedchar
sbitc3=P3^7;
sbitc4=P3^6;
sbitBEEP=P0^4;
/*位定义*/
sbita0=P1^0;
sbita1=P1^1;
sbita2=P1^2;
sbita3=P1^3;
sbita4=P1^4;
sbita5=P1^5;
sbita6=P1^6;
sbita7=P1^7;
/*宏定义*/
#definemove_go{a0=1,a1=0,a2=1,a3=0,a4=1,a5=0,a6=1,a7=0;}
#definemove_right{a0=0,a1=1,a2=0,a3=1,a4=1,a5=0,a6=1,a7=0;}
#definemove_left{a0=1,a1=0,a2=1,a3=0,a4=0,a5=1,a6=0,a7=1;}
#definemove_stop{a0=1,a1=1,a2=1,a3=1,a4=1,a5=1,a6=1,a7=1;}
#definemove_back{a0=0,a1=1,a2=0,a3=1,a4=0,a5=1,a6=0,a7=1;}
voiddelay(uintz)//延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
voiddelay500(void)
{
uchari;
for(i=230;i>0;i--);
}
voidrun()//前进
{
move_go;
}
voidstop()//停止
{
move_stop;
}
voidleft()//左转
{
move_left;
}
voidright()//右转
{
move_right;
}
voidback()//后退
{
move_back;
}
voidfengming1()
{
ucharj;
for(j=200;j>0;j--)
{
BEEP=~BEEP;//输出频率1KHz
delay500();//延时500us
}
}
voidfengming2()
{
BEEP=1;
}
voidbaojing()
{
fengming1();
delay(10);
fengming2();
delay(10);
}
voidbizhang1()//避障
{
if(!
c3&&c4)
{left();baojing();delay(10);}
elseif(c3&&!
c4)
{right();baojing();delay(10);}
elseif(!
c3&&!
c4)
{back();baojing();delay(1000);left();baojing();delay(500);}
elseif(c3&&c4)
{run();}
}
voidmain()//主函数
{run();
while
(1)
{
bizhang1();
}
}
附2:
避障车实物图: