红外避障小车课程设计报告.docx
- 文档编号:883809
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:22
- 大小:267.18KB
红外避障小车课程设计报告.docx
《红外避障小车课程设计报告.docx》由会员分享,可在线阅读,更多相关《红外避障小车课程设计报告.docx(22页珍藏版)》请在冰点文库上搜索。
红外避障小车课程设计报告
?
前言
---------------------------------------------------
随着生产自动化的发展需要,机器人已经越来越广泛地应用到生产自动化上,随着科学技术的发展,机器人的传感器种类也越来越多,其中红外传感器已经成为自动行走和驾驶的重要部件。
红外的典型应用领域为自主式智能导航系统,机器人要实现自动避障功能就必须要感知障碍物,感知障碍物相当给机器人一个视觉功能。
智能避障是基于红外传感系统,采用红外传感器实现前方障碍物检测,并判断障碍物远近。
由于时间和水平有限,我们暂选最基本的避障功能作为此次设计的目标。
本设计通过小车这个载体再结合由AT89S51为核心的控制板可以达到其基本功能,再辅加由漫反射式光电开关组成的避障电路、555组成的转速控制电路、电源电路、差分驱动电路就可以完善整个设计。
(
前言------------------------------------------------------------------------------1
目录------------------------------------------------------------------------------2
\
摘要------------------------------------------------------------------------------3
功能概述------------------------------------------------------------------------3
硬件设计------------------------------------------------------------------------3
避障电路------------------------------------------------------------------------4
单片机电路---------------------------------------------------------------------7
电机转速控制电路------------------------------------------------------------7
电源电路------------------------------------------------------------------------8
电机驱动电路---------------------------------------------------------------9
$
主程序设计--------------------------------------------------------------------12
小结-----------------------------------------------------------------------------23
参考文献-----------------------------------------------------------------------23
$
、
1.【摘要】:
本文提出一种智能避障小车的设计方法,利用红外技术检测障碍物信息,采用AT89S51单片机进行实时控制,实现智能避障,智能小车采用后轮驱动,两轮各用一个直流电机控制,避障用的传感器采用红外漫反射式传感器。
【
【关键词】:
避障光电开关差分控制LCD
2.功能概述
智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,分别控制两个轮子的转动从而达到转向的目的,后轮是万向轮,起支撑的作用。
将三个红外线光电传感器分别装在车体的左中右,当车的左边的传感器检测到障碍物时,主控芯片控制右轮电机停止左轮转动,车向右方转向,当车的右边传感器检测到障碍物时,主控芯片控制左轮电机停止转动,车向左方转向,当前面有障碍物时规定车右转。
于此同时测定速度并显示,在避障小车前进的同时从LCD点阵液晶显示器上显示小车当时速度。
在小车左转或右转时在显示器上显示出左或右。
3.硬件设计
如下图所示,是本次设计智能小车的电路框图。
以AT89S51为电路的中央处理器,来处理传感器采集来的数据,处理完毕之后以便去控制电机驱动电路来驱动电机。
电源部分是为整个电路模块提供电源,以便能正常工作。
%
4.避障电路
(1) 障碍物探测方案的选择
方案一:
脉冲调制的反射式红外线发射接受器。
由于采用该有交流分量的调制信号,则可大幅度减少外界干扰;另外红外线接受官的最大工作电流取决于平均电流。
如果采用占空比小的调制信号,再品均电流不变的情况下,顺势电流很大(50—100mA),则大大提高了信噪比。
并且其反应灵敏,外围电路也很简单。
它的优点是消除了外界光线的干扰提高了灵敏度。
方案二:
采用超声波传感器,如果传感器接收到反射的超声波,则通知单片机前方有障碍物,如则通知单片机可以向前行驶。
市场上很多红外光电探头也都是基于这个原理。
这样不但能准确完成测量,而且能避免电路的复杂性
由以上两种方案比较可知。
方案二要比方案一优势大,市场上很多红外观点探头也都基于这个原理。
其电路简单,工作可靠,性能比较稳定。
从而避免了电路的复杂性,因此我先用方案二作为小车的监测系统。
!
避障电路采用漫反射式光电开关进行避障。
光电开关是集发射头和接收头于一体的检测开关,其工作原理是根据发射头发出的光束,被障碍物反射,接收头据此做出判断是否有障碍物。
当有光线反射回来时,输出低电平;当没有光线反射回来时,输出高电平。
单片机根据接收头电平的高低做出相应控制,避免小车碰到障碍物,由于接收管输出TTL电平,有利于单片机对信号的处理。
光电开关工作原理:
光电开关是通过把光强度的变化转换成电信号的变化来实现控制的。
光电开关在一般情况下,有三部分构成,它们分为:
发送器、接收器和检测电路。
避障电路如下:
[
避障电路功能表:
传感器
避障电路输出(上升沿动作)
待执行命令
/
左
中
右
左转信号
右转信号()
0
0
^
0
√
右转
0
0
1
"
√
右转
0
1
0
√
右转
%
0
1
1
√
右转
1
0
!
0
√
左转
1
0
1
:
√
右转
1
1
0
√
左转
)
1
1
1
前进
注解(“0”表示有障碍物;“1”表示无障碍物)
4.单片机电路
(
本设计的主控芯片选择AT89S51,负责检测传感器的状态并向电机驱动电路发出动作命令。
复位电路采用手动复位。
单片机电路如下:
5.电机转速控制电路
由555时基电路构成多谐振荡器提供一个PWM信号,通过控制该信号的占空比来实现电机调速。
阻容元件的取值初步定为图中所示。
?
多谐振荡器如下:
其中占空比:
q=(R1+Rx1)/(R1+R2+Rx)
周期:
T=(R1+R2+Rx)Cln2
6.电源电路
本系统所有芯片都需要+5V的工作电压,而干电池只能提供的电压为1.5V的倍数的电压,并且随着使用时间的延长,其电压会逐渐下降,则需要LM7805稳压芯片。
L7805能提供300至500mA的电流,足以满足芯片供电的要求。
虽然微处理器和微控制器不需要支持电路,功耗也很低,但必须要加以考虑。
%
电源电路拟定为:
7.电机驱动电路
市场上用很多种类的小电压直流电动机,很方便的选择到。
主要有普通电动机、和步进电动机。
方案一:
采用步进电机,步进电动机的一个显著的特点就是具有快速启动和停止能力,能够达到我们所要求的标准。
如果负荷不超过步进电机所能提供的动态转矩值,就能够立即是步进电机启动或反转。
其转换灵敏度比较高。
正转、反转控制灵活。
但是步进电机的价格比较昂贵,对于我们的现状相差太远。
方案二:
采用普通的直流电机。
直流电机具有优良的调速特性,调速平滑、方便。
调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。
能满足各种不容的特殊运行要求。
由于普通直流电机价格适宜,更易于购买,并且电路相对简单,因此采用直流电机作为动力源
~
本设计采用差分放大驱动使电机正反转从而做到前进,左转右转。
采用四个大功率晶体管组成H桥式电路,四个大功率晶体管分为两组,交替导通和截止,用单片机控制使之工作在开关状态,进而控制电机的运行。
该控制电路由于四个大功率晶体管只工作在饱和与截止状态下,效率非常高,并且大功率晶体管开关的速度很快,稳定性也极强,是一种广泛采用的电路。
采用与门对两电机进行选择控制,从而实现前进、左转、右转。
驱动电路原路框图如下:
电路图如下:
注释:
将圆盘12等分半径2CM,周长4*pi.用程序设定1S内采集到的脉冲数可以转化为速度。
'
单位时间内前进距离为S,则:
速度V大小为S。
驱动状态表:
注解:
(“0”代表低电平“1”代表高电平)
电机驱动电路功能表
{
输入
小车状态
`
1
1
1
1
1
<
0
前进
1
1
1
1
0
0
【
停止
1
0
0
0
1
1
左转
\
0
1
0
0
1
1
右转
…
8. 主程序流程图
.
源程序:
RSBIT
RWBIT
EBIT
ORG0000H
LJMPMAIN
(
ORG0030H
MAIN:
MOVP2,#0FFH
MOVP1,#1FH;前进
MOVTMOD,#10H
MOVR1,#0C8H
SETBTR1
TIME:
MOVTH1,#0D8H
MOVTL1,#0F0H
/
JNBTF1,$
DJNZR1,TIME
CLRTR1
MOVR7,#00H;脉冲个数
MOVR1,#64H
MOVTMOD,#10H
SETBTR1
…
LOOP6:
MOVTH1,#08H
MOVTL0,#0F0H
NEXT:
MOVC,0
JBTF1,LOOP7;判断TF1是否溢出
ORLC,
JNCLOOP6;判断C是否为1
INCR7;1S内出现的脉冲个数
-
JBTF1,LOOP7
SJMPNEXT
LOOP7:
DJNZR1,LOOP6
CLRTR1
CLRC
MOVA,R7;脉冲个数乘以2
ADDCA,R7
MOVR7,A
]
MOVA,#01H;一个码格的弧长
MOVB,R7
MULAB;计算总弧长
DAA;十进制调整
MOVR5,A
MOVA,B;B的值给A
JNCLOOP8;判断十进制调整是CY有没有被置1
%
INCA
CLRC
LOOP8:
DAA;十进制调整
MOVR6,A
JNCLOOP9
INC70H;十进制调整如果CY被置1,70H赋值1
CLRC
LOOP9:
MOVA,R6;解释R6,R5分别表示总长的高位和低位
\
ANLA,#0F0H;取R6的高四位,赋给71H
SWAPA
MOV71H,A
MOVA,R6
ANLA,#0FH;取R6的低四位,赋给72H
MOV72H,A
MOVA,R5
ANLA,#0F0H;取R5的高四位,赋给73H
)
SWAPA
MOV73H,A
MOVA,R5
ANLA,#0FH;取R5的低四位,赋给74H
MOV73H,A
/******显示前进******/
MOVSP,#50H
ACALLINIT
…
MOVA,B
ACALLWC51R
MOVA,"G"
ACALLWC51DDR
MOVA,"0"
ACALLWC51DDR
MOVA,""
ACALLWC51DDR
·
MOVA,"A"
ACALLWC51DDR
MOVA,"H"
ACALLWC51DDR
MOVA,"E"
ACALLWC51DDR
MOVA,"A"
ACALLWC51DDR
,
MOVA,"D"
ACALLWC51DDR
MOVA,B
ACALLWC51R
MOVA,70H
ACALLWC51DDR
MOVA,71H
ACALLWC51DDR
|
MOVA,72H
ACALLWC51DDR
MOVA,"."
ACALLWC51DDR
MOVA,73H
ACALLWC51DDR
MOVA,74H
ACALLWC51DDR
、
MOVC,
JCLOOP1;判断
MOVP1,#0FH;停车
LCALLLOOP2
MOVP1,#32H;右转
LCALLRIGHT
LJMPLOOP4
!
LOOP1:
MOVC,
JCNEXT1;判断
MOVP1,#0FH;停车
LCALLLOOP2
MOVP1,#31H;左转
LCALLLEFT
LJMPLOOP4
NEXT1:
LJMPMAIN
$
/*****停车定时*****/
LOOP2:
MOVTMOD,#10H
MOVR0,#64H
SETBTR1
LOOP3:
MOVTH1,#0D8H
MOVTL1,#0F0H
JNBTF1,$
DJNZR0,LOOP3
`
CLRTR1
RET
/*****转向定时*****/
LOOP4:
MOVTMOD,#10H
MOVR1,#0C8H
SETBTR1
LOOP5:
MOVTH1,#0D8H
MOVTL1,#0F0H
、
JNBTF1,$
DJNZR1,LOOP5
CLRTR1
MOVP1,#1FH;前进
LJMPMAIN
/*****显示左转*****/
LEFT:
MOVSP,#50H
ACALLINIT
(
MOVA,B
ACALLWC51R
MOVA,"L"
ACALLWC51DDR
MOVA,"E"
ACALLWC51DDR
MOVA,"F"
ACALLWC51DDR
【
MOVA,"T"
ACALLWC51DDR
RET
/*****显示右转*****/
RIGHT:
MOVSP,#50H
ACALLINIT
MOVA,B
ACALLWC51R
;
MOVA,"R"
ACALLWC51DDR
MOVA,"I"
ACALLWC51DDR
MOVA,"G"
ACALLWC51DDR
MOVA,"H"
ACALLWC51DDR
^
MOVA,"T"
ACALLWC51DDR
RET
/***********初始化子程序***********/
INIT:
MOVA,#00000001H;清屏
ACALLWC51R
MOVA,#00111000B;使用8位数据
。
LCALLWC51R
MOVA,#00000110B;字符不动,光标自动右移一格
LCALLWC51R
/*****检查忙子程序*****/
F_BUSY:
PUSHACC;保护现场
PUSHDPH
PUSHDPL
`
PUSHPSW
WAIT:
CLRRS
SETBRW
CLRE
SETBE
MOVA,P1
CLRE
JB,WAIT;忙,等待
POPPSW;不忙,恢复现场
POPDPL
POPDPH
POPACC
ACALLDELAY
RET
/*****写入命令子程序*****/
WC51R:
ACALLF_BUSY
CLRE
CLRRS
CLRRW
SETBE
MOVP1,ACC
CLRE
ACALLDELAY
RET
/*****写入数据子程序*****/
WC51DDR:
ACALLF_BUSY
CLRE
SETBRS
CLRRW
SETBE
MOVP1,ACC
CLRE
ACALLDELAY
RET
/*****延时子程序*****/
DELAY:
MOVR6,#5
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
END
9. 小结
本文提出了一种经济实用的智能小车设计方法,给出了从硬件电路设计到软件设计的一系列步骤。
采用了直流电机作为执行元件,E3F系列光电开关作为检测元件,AT89S51单片机作为主控芯片,完成了小车避障功能的实现。
与此同时应用LCD显示状态,本设计不仅对于了解单片机的结构、电路设计及控制功能有一定的帮助,还有益于诱发学习单片机的兴趣。
参考文献
【1】李朝青.单片微机原理及接口技术(第三版)。
[M]北京航空航天大学出版社
【2】阎石.数字电子技术基础(清华大学电子学教研组编第五版)高等教育出版社
【3】康华光.电子技术基础(第五版)高等教育出版社
【4】《无线电》2009年第2期宋泽清关于灵活避障快速循迹
【5】杨加国单片机原理与应用及C51程序设计清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 红外 小车 课程设计 报告