《基于51单片机的红外避障自动车的实现》技术报告.docx

上传人:b****2 文档编号:1162089 上传时间:2023-04-30 格式:DOCX 页数:21 大小:383.38KB
下载 相关 举报
《基于51单片机的红外避障自动车的实现》技术报告.docx_第1页
第1页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第2页
第2页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第3页
第3页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第4页
第4页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第5页
第5页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第6页
第6页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第7页
第7页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第8页
第8页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第9页
第9页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第10页
第10页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第11页
第11页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第12页
第12页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第13页
第13页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第14页
第14页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第15页
第15页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第16页
第16页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第17页
第17页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第18页
第18页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第19页
第19页 / 共21页
《基于51单片机的红外避障自动车的实现》技术报告.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《基于51单片机的红外避障自动车的实现》技术报告.docx

《《基于51单片机的红外避障自动车的实现》技术报告.docx》由会员分享,可在线阅读,更多相关《《基于51单片机的红外避障自动车的实现》技术报告.docx(21页珍藏版)》请在冰点文库上搜索。

《基于51单片机的红外避障自动车的实现》技术报告.docx

《基于51单片机的红外避障自动车的实现》技术报告

 

《基于51单片机的红外避障自动车的实现》技术报告

 

摘要

本小组所设计一个带有红外传感器的小车,基本能实现自动避障的功能。

本小车以STC89C52为其主控单元,以俩个直流减速电机为驱动电机提供基本动力,并依据差速原理实现转向,用红外传感器进行探测,使用分离元件组成的电路去驱动电机,使用PWM波实现变速功能。

小车分为五个模块:

STC89C52主控模块,传感模块,电源模块,电机驱动模块,测速模块。

 

关键词:

89C52红外避障自动车

题目:

《基于51单片机的红外避障自动车的实现》

下面是一些基本资料:

——————————————小车参数——————————————

障碍检测方式

红外探测(探测模块功耗7mA)

车模几何尺寸(mm)

149x102x59

测障精度

前方:

75cm左右:

25cm

车模轮距(mm)

120

电源系统

4x1.5v干电池4x1.2v充电电池及其稳压输出

电机

直流减速电机,1~12V工作电压,传动比:

71.2:

1

主控芯片

STC89C52MCU

其他芯片

LM7806LM7805STC11F01等

—————————————小组资料———————————————

小组成员:

姓名

班级

善长项目

负责模块

王太杰

0804211班

擅长于硬件

焊接技术强

硬件知识充足

红外探测部分

驱动调试

孙学军

0904211班

擅长于编程

C语言功底扎实

思路开阔

程序驱动部分

程序调试

李相华

0804211班

查阅资料能力强

善于方案选择和优化

电源部分

 

小组优势:

硬件与程序搭配协调,每人负责各自模块,只提供最终模块接口,使对方不必关注自己模块内部结构,只需将接口连接完成即可,减少了每人负责的内容,提高了效率。

————————————制作流程与时间—————————————

2010年5月1日

小组成员对各模块电路进行了选择、优化,并进行了电路搭建、焊接,各模块调试,确定模块交互接口;主控程序思路成型,并编写了测试程序,对软硬件进行了测试。

最后各模块交互,整体调试,主程序确定及细节敲定。

2010年5月2日:

模块交互,整体调试,主控程序细节修改;经布局后各硬件模块转移至车体,最终焊接,整车成型。

主控程序下载,调试,最终成功。

—————————————技术资料——————————————

设计思路:

为节省电机数量和电路复杂程度,红外避障小车(以下简称小车)采用前轮主动,后轮从动原理。

前轮采用双电机驱动,利用差速法实现车身转向。

检测部分利用红外发射管发射红外光,遇障碍物后经反射被红外接受管接收,产生电平转换,利用单片机I/O口检测红外检测模块电平输出,以此判断前方障碍物有无,检测到障碍物后,经单片机I/O口控制电机驱动电路,经由电机驱动电路输出不同电压,产生差速,实现转向,最终以达到避障的目标。

其总体方框图如图所示:

主控模块:

方案一:

采用凌阳公司的16位单片机,它是16位控制器,具有体积小、驱动能力强、可靠性高、功耗低、结构简单、具有语音处理、运算速度快等优点,但考虑到我们小组对这个方案采用的微处理器并不熟悉,使用起来并不是很方便,这对于硬件电路的设计和软件编程增加了难度。

我们决定不再使用此方案,考虑其他方案。

方案二:

采用STC89C52单片机作为主控制器。

STC89C52是一个超低功耗,和标准51系列单片机相比较具有运算速度快,抗干扰能力强,支持ISP在线编程,片内含8k空间的可反复擦写1000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM),32个I/O口,2个16位可编程定时计数器。

其指令系统和传统的8051系列单片机指令系统兼容,降低了系统软件设计的难度,电路设计简单、价格低廉,在后来的实验中我们发现,STC89C52精确度和运算速度也都完全符合我们系统的要求。

综合以上方案我们选择比较普通的更为熟悉的方案二使用STC89C52单片机为我们整个系统的控制核心。

其各个引脚如图1所示

图1

探测模块:

方案一:

用三极管驱动红外发射管和红外解收管。

在三极管的射级接俩个红外发射管,加大红外线的强度,进儿提高其探测距离。

在红外接收电路中,用电阻和红外接收管串联来调节基极的电位,当接收管接收到红外线时可以改变基极电位,进儿使三极管工作在截止或饱和状态,即调节了输出电平,实现了高低电平的转换。

其发射和接受电路如图2所示:

图2

优点:

电路简单,搭建方便。

缺点:

探测精度不高,探测距离比较近。

考虑到小车行驶时对精度的要求,我们最终放弃了这套方案。

方案二:

用三极管驱动红外发射管,用LM358来实现接受电路。

发射电路和方案一基本一致,这里就不赘述了。

LM358是包含俩个运算放大器的集成器件,我们用第一个放大器来实现对探测到得信号进行放大,把第二个作为电压比较器(阈值电压Vth=1/2Vcc)。

把处理过的信号和阈值电压进行比较,实现高低电平转换,并把数字信号送给单片机,使小车做出正确动作。

器接收电路如图所示:

优点:

探测精度较高,并且通过滑动变阻器可以改变探测距离,可以适应不同环境进行探测。

缺点:

电路较为复杂。

综合考虑,最终我们选择了方案二。

测速模块:

方案一:

用光电对管实现测速。

光电对管是我们所熟知的器件,用它进行测速数据准确。

我们的电机上面正好有一个光栅,用其测速实现比容易。

但最终由于电机相对光电对管来说比较小,无法很好将二者结合起来,我们不得不放弃这种方案。

方案二:

用红外对管实现测速。

由探测模块中的方案一可知,此电路探测距离短,稍作改动可以实现测速。

再小车的一个轮子上贴上黑纸,并在黑纸上贴上一条白纸(黑色可以吸收绝大多数的红外线而白纸却可以反射大部分红外线),当轮子转起来时就会产生高低电平,送给单片机的计数器进行计数。

通过单位时间内的轮子转过的圈数实现了测速.。

其电路如图所示:

通过实验分析可得,此方案基本可以满足我们的需要。

最终选择了此方案。

电源模块:

方案一:

交流供电。

实现方式:

220V交流电经整流稳压获得。

优点:

供电稳定,电压输出灵活。

缺点:

须稳压,电源传输线较长,且可能会对车子的避障功能产生干扰。

考虑到小车行驶的灵活性和避障抗干扰性,我们抛弃了采用交流电的方案。

方案二:

直流电供电。

实现方式:

4接南孚电池串联获得。

优点:

无需稳压即可输出稳定电压,无需使用电源线。

缺点:

电压输出固定,无法获得灵活的电压输出。

考虑到避障小车工作时各模块需求电压分别为:

单片机4.5~5.5V,电机1~12V,红外测障模块5V,灵活性不高,因此可实现5V、6V的电压输出对各模块供电。

因此我们最终采用直流电供电方式。

 

在制作调试过程中,我们采取了4节5号南孚电池,用电池盒串联。

经测量4节南孚电池串联输出为6.3V稳定电压。

针对各模块电压需求我们产生以下具体实现方案:

单片机电源:

单片机工作电压为4.5V~5.5V,且其对工作电压要求比较严格

方案一:

我们设想采取基于LM7805稳压芯片的稳压芯片输出5V恒定电压。

但是由于LM7805对输入输出两端电压要求有2~3V压降,且稳压芯片功耗较大,可能导致电源利用效率不高,故最终舍弃了这种方案。

方案二:

经过在网上查阅相关经验方法,我们最终确定了一种简单易行的方法:

在电源处串联一个(两个/可通过跳线帽选择)二极管实现0.7V(1.3V)压降,用来提供单片机工作电压。

如图2所示:

图2电源模块

驱动电路电源:

电机对电压要求不精确,但电压会影响电机功率以及速度。

方案一:

采用模拟CD-DC升压电路获得较高电压供给电机驱动电路已获得较高的功率输出,提高转速。

最终考虑到电路实现的复杂性。

我们最终舍弃了这种方案。

方案二:

采用专门的直流电升压芯片(比如MC34063A)以简化电路。

不过最终由于经济原因放弃了这种方案。

方案三:

直接用电池串联后的电压给驱动电路供电,此方案简单易行,制作成本较低,不过电机功率不大。

最终经测试小车速度能达到我们的需求,最终采取了本种方案。

经分析电源方案的优缺点,我们得出以下方案:

考虑到一次性干电池的不可利用性,我们在整车成型时采用了4节可充电电池经电池盒串联的方案,以降低后续制作成本。

考虑到电压输出端的单一性,我们考虑采用10V稳压管另做一路电源输出,为电机提供工作电压,在一定程度上可提高电机功率,提高整车运行速度。

电机驱动模块:

方案一:

采用电机驱动集成芯片(如L9110)来驱动电机。

优点:

电路简化,双路输出,可以实现双电机的正反向转动,实现整车的前进后退。

但由于电机驱动集成芯片的价格比较高(18~30元/片),为降低制作成本,最终舍弃了采用电机驱动芯片驱动的方案。

方案二:

采用分立元件模拟电路驱动。

优缺点:

制作成本低,电路无法简化,稳定性较驱动芯片(如L9110)差。

经考虑避障小车的控制精度不是很高,运用分立元件模拟电路即可达到系统要求,最终采取了本种方案。

经选择我们最终采取了利用双三极管控制开关电路,利用三极管的反应灵敏性,并将其俩端接在MCU的I/O口上,可以通过控制I/O口输出0、1来控制三极管开关,以达到控制输出电压的目的。

最终驱动电路如图3所示:

其控制如表所示:

图3电机驱动

表1

P0^0

P0^1

P0^2

P0^3

状态

1

0

1

0

前进

0

1

0

1

后退

1

0

0

0

右转

0

0

1

0

左转

—————————————主控程序——————————————

为了降低程序复杂性,我们分析了软件运行原理,尽量简化程序设计。

单片机我们最终选用了10个I/O口。

其中1个用来计数或测速,3个I/O口用来接收红外部分电平转换,检测障碍物,2个I/O口用来控制转向灯,另外4个I/O口端接电机驱动电路,用程序使其产生0、1脉冲数量比来控制驱动电路开关,最终实现速度差以实现转向避障。

 

主控程序如下:

/******************************

程序开发环境KeiluVision3

语言:

C

编写者:

王太杰

时间:

2010/04/04

******************************/

/******************************

主程序及注释如下:

******************************/

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitx=P2^0;//定义左侧探测器接收端

sbity=P2^1;//定义中间探测器接收端

sbitz=P2^2;//定义右侧探测器接收端

sbitm1=P1^0;

sbitm2=P1^1;//定义左侧电机控制端

sbitn1=P1^2;

sbitn2=P1^3;//定义右侧电机控制端

sbitl=P1^4;//定义左侧转向灯控制端

sbitr=P1^5;//定义右侧转向灯控制端

uintk,num;

voiddelays(uinti)//定义一个延时1MS的延时函数

{

uintm,n;

for(m=i;m>0;m--)

for(n=110;n>0;n--);

}

input_num(ucharbai,ucharshi,ucharge)//信号运算函数

{

uinthe;

he=4*bai+2*shi+ge;

return(he);

}

voidzuo_zhuan()//小车左转函数

{

uinti;

for(i=1;i<=5;i++)

{

m1=0;

m2=0;

n1=1;

n2=0;

l=1;//控制转向灯

r=1;

delays(15);

m1=1;

m2=0;

n1=1;

n2=0;

l=0;

r=1;

delays(5);

}

}

voidyou_zhuan()//小车右转函数

{

uinti;

for(i=1;i<=5;i++)

{

m1=1;

m2=0;

n1=0;

n2=0;

l=1;

r=1;

delays(15);

m1=1;

m2=0;

n1=1;

n2=0;

l=1;

r=0;

delays(5);

}

}

voidhou_tui()//小车倒车函数

{

uinti;

for(i=1;i<=50;i++)

{

m1=0;

m2=1;

n1=0;

n2=1;

l=1;

r=1;

delays(15);

m1=0;

m2=1;

n1=0;

n2=1;

l=0;

r=0;

delays(10);

}

for(i=1;i<=50;i++)

{

m1=0;

m2=0;

n1=1;

n2=0;

l=1;

r=1;

delays(20);

m1=1;

m2=0;

n1=1;

n2=0;

l=0;

r=1;

delays(5);

}

}

voidqian_jin()//小车前进函数

{

uinti;

for(i=1;i<=5;i++)

{

m1=1;

m2=0;

n1=1;

n2=0;

l=1;

r=1;

delays(20);

}

}

uintread()//小车测速的计数函数

{

uchart1,th1,th2;

uintval;

while

(1)

{

th1=TH0;

t1=TL0;

th2=TH0;

if(th1==th2)

break;

}

val=th1*256+t1;

returnval;

}

voidT1_time()interrupt3//定义定时器1

{

TH1=(65535-45872)/256;

TL1=(65535-45872)%256;//定时时间为50ms

k++;

if(k==30)

{

num=read();

k=0;

TH0=0;

TL0=0;//计数器清零

}

}

main()//主函数

{

uintgrade;

TMOD=0x15;

TH0=0;

TL0=0;

TH1=(65535-45872)/256;

TL1=(65535-45872)%256;//在定时器中装入初值

EA=1;

ET1=1;

TR0=1;

TR1=1;

while

(1)

{

if(num==0)

hou_tui();

elseif(num!

=0)

{

grade=input_num(x,y,z);

switch(grade)

{

case2:

qian_jin();break;

case0:

case4:

case6:

you_zhuan();break;

case1:

case3:

zuo_zhuan();break;

case5:

case7:

hou_tui();break;

}

}

}

}

/******************************

程序结束,经测试程序符合硬件,功能达到预期目标。

******************************/

———————功能扩展————————

1:

本车人机交互性不强,车体速度无显示、障碍物有无显示不明显,无转向灯提示

预期可以增加速度测量以及液晶或数码管显示模块,显示模块可以附在车体本身,也可以单独成模块,利用无线传输将数据从车体发送到终端显示。

2:

增加自动循迹功能

实现自动循迹

3:

增加自动刹车功能

增加路径识别或特定障碍物识别,实现自动刹车功能。

4:

遥控功能

增加红外遥控功能,控制车体前进、后退、左转、右转、加速、减速等功能。

注:

 

附录1:

1.红外遥控

2.无线遥控

3.自动循迹

4.速度采集模块

5.温度多路采集

6.光电使用电路(如:

断电警报,依据外界光照自动调节亮度等)

7.各种数据的显示(如:

1602,诺基亚5110显示器等)

8.数字温度计

9.移动闹钟

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

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

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