基于单片机的自动避障小车设计课设.docx
- 文档编号:24265134
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:27
- 大小:1.15MB
基于单片机的自动避障小车设计课设.docx
《基于单片机的自动避障小车设计课设.docx》由会员分享,可在线阅读,更多相关《基于单片机的自动避障小车设计课设.docx(27页珍藏版)》请在冰豆网上搜索。
基于单片机的自动避障小车设计课设
自控原理课程设计说明书
基于单片机的自动避障小车设计
院系航空航天工程学部(院)
专业
班号
学号
姓名
指导教师
沈阳航空航天大学
2016年7月
摘要
本论文介绍了利用超声波传感器实现小车自动避障的设计,能在有障碍物的情况下判断并能够提前自动躲避。
自动避障是基于自动避障小车的机器人系统。
课程设计中采用反射式超声波传感器采集外界信号,超声波传感器采集信号传输到单片机的外部中断0(INT0)引脚,再由单片机判断是否有信号输入,计算距离,从而控制电机,躲避障碍物。
系统控制核心采用STC89C52单片机,电机驱动芯片采用L298N,利用直流电机的差速行进来控制避障小车的转向,超声波传感器采用HC-SR04型。
该技术可以应用于儿童智能玩具开发、隧道或管道检测,无人驾驶机动车、无人工厂、仓库、服务机器人等领域,而且该技术较易实现,结构简单,可以大大方便人们的日常生活并产生经济收益。
关键词超声波模块自动避障单片机STC89C52
第1章引言……………………………………………………………………l
1.l研究背景…………………………………………………………………1
1.2本设计任务和主要内容……………………………………………………1
第2章总体方案…………………………………………………………2
2.1总体方案概述………………………………………………………………2
2.2设计思路……………………………………………………………………2
2.3总体电路原理图…………………………………………………………3
第3章各模块功能介绍…………………………………………………4
3.1障碍物测距系统……………………………………………………………4
3.2驱动模块…………………………………………………………………5
3.3电源模块…………………………………………………………………6
3.4主控模块…………………………………………………………………7
第4章软件设计…………………………………………………………9
4.1程序设计流程图……………………………………………………………9
4.2关键子程序设计……………………………………………………………10
4.2.1PWM产生原理及程序设计…………………………………………10
4.2.2超声波接收与发送程序设计………………………………………13
4.2.3距离计算程序设计………………………………………………13
第5章设计安装与调试……………………………………………………15
5.l小车的设计与安装…………………………………………………………15
5.2小车调试……………………………………………………………………15
5.3调试中遇到的问题…………………………………………………………16
第6章总结……………………………………………………………………………19
参考文献……………………………………………………………………………20
附录…………………………………………………………………………………21
第1章引言
本课程设计是以STC89C52单片机为控制核心,该单片机具有功耗低、抗干扰能力强等优点且应用广泛。
超声波传感器检测小车与障碍物之间的距离,单片机对障碍物位置信息进行判断,根据预先设置的规则及障碍物当前位置信息输出PWM波控制电机转弯、调速完成避障。
外加路面障碍物感测模块——HC-SR04超声波传感器完成对前方路面情况的实时检测,检测小车到障碍物的距离并把所采集的信息传输给单片机,单片机根据前方路面情况做出恰当的处理,进而控制小车的行驶。
1.1研究背景
自主式移动机器是人们对机器人智能化程度要求不断提高的必然产物。
它需要电子信息、计算机、智能控制等很多知识的支持。
随着近几年年来现代通信技术和信息处理技术的快速发展,使得自主式移动机器人不再局限于实验室和军事应用领域,它己经越来越普及到人们的日常生活和工作环境中.在环境未知的情况下,实现自主导航定位和路径规划是目前研发移动机器人的一个基本并且重要的问题,是移动机器人在未知环境中锁定目标完成任务的前提条件。
机器人在行走和探索的过程中,为避免造成机器人本体的损坏以及设备的损坏,使机器人无论在什么环境下都能够正常工作,避障行为是必不可少的。
现实作业环境要求机器人的定位与避障技术能够适应更复杂的环境,完成更精确任务。
在未知环境中,传统的机器人避障技术往往适应能力差,实时性与准确性不高,无法达到预期效果。
采用超声波测距技术,有效地解决了机器人在复杂环境中的实时避障问题并且提高了定位的准确性,为自主移动机器人的研究与应用提供了一种有效的技术手段。
美国斯坦福国际研究所的NilsNilssen和CharlesRosen等人,在1969年至1972年研制了移动式机器人Shakey。
该机器人安装了摄像机、测距传感器、力学传感器等器件,具有自主移动和路径规划的功能。
由于多传感器的复杂程度较高,且当时处理器的速度低,使机器人的环境探测与路径规划的连线性很差。
1970年前苏联设计的自主驾驶的月球车驶入月球,标志着移动机器人进入航天领域的应用。
在上世纪90年代,电子信息技术突飞猛进,使移动机器人的感知能力以及决策能力相应的得到了质的提高。
从而使移动机器人开始由实验室扩充到人们的各个生活工作领域,向实用化民用化发展。
在1994年4月,美国宇航局资助研制了“丹蒂II”移动机器人。
科学家为了实现机器人的远程探险任务,研制了一种八足行走方式。
科研人员使机器人的卫星通信系统与网络连接,然后他们通过网络控制和监视该机器人的行动。
机器人“索杰纳”在1997年成功登上火星。
索杰纳是在火星上真正从事科学考察工作的第一台机器人车辆,它是一辆自主式的机器人车辆,同时又可从地面对它进行遥控。
索杰纳能够敏捷迅速的在火星表面躲避障碍物和按计划移动。
研发实力领先全球的美国宇航局目前正在开发月球采矿机器人“RASSOR",该机器人可以通过机械手臂在月球上行走,攀爬以及钻井挖掘。
美国宇航局的设计初衷是通过机器人挖掘月球表面的水和冰的成分来转化为火箭使用燃料或宇航员呼吸的空气,但目前看来机器人有能力采集更多月球上的土壤或矿物质。
按照计划,该机器人2014年就将正式开展测试。
2008年的美国大片《机器人总动员》讲述的机器人太空作业后将物质运回地球这样的场景,也许在几年内就会变成现实。
随着电子技术、计算机技术等科技发展,科技进步改变着人们的生活方式。
移动机器人的使用场合越来越多。
移动机器人不再只局限于特殊行业,开始走向家庭、娱乐场所、医院、车间等人们的日常生活工作环境。
2002年美国iRobot公司正式开启家用机器人市场,推出经济实用的iRobot机器人吸尘器。
吸尘器能够自主在室内移动躲避家居障碍。
因此,不论是在高尖端行业还是日常民用产业,对智能自主式移动机器人的研究己成为了国内外研究的热点。
1.2本设计任务和主要内容
本设计是对以单片机STC89C52为核心的系统根据超声波感测模块传输的前方路面信息控制小车行驶走向的软、硬件设计开发。
系统要能够做到准确及时监测前方路面信息并传输给主控模块,做到根据前方路面信息及时调整小车的走向,实现及时避开障碍物的功能。
主要内容是:
①感测模块实时监测路面情况并及时传输给单片机;
②单片机核心模块根据感测模块给予的信息控制小车四电机转动;
③电机驱动模块驱动四电机转动,实现转向与行走。
第2章总体方案
2.1总体方案概述
本小车使用STC89C52单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,当接收到回波信号时计算小车与障碍物的距离,若距离大于80cm时,小车会沿直线前进,若计算得小车与障碍物的距离小于80cm,则小车转弯以避开障碍物,在避开障碍物后,使小车会沿直线前进。
原理框图如图2.1所示。
图2.1原理框图
2.2设计思路
本次设计中将小车主要分为三部分,分别为主控电路、控制电路、感测电路和电源电路。
其中主控电路即直流电机PWM控制模块主要由STC89C52单片机的I/O端口、定时计数器、外部中断扩展等控制直流电机的加速、减速以及转弯,并且可以调整电机的转速,能够很方便的实现电机的智能控制。
其间是通过STC89C52单片机产生脉宽可调的脉冲信号并输入到L298N驱动芯片来控制直流电机工作的。
控制电路主要由STC89C52单片机的外部中断扩展电路组成。
直流电机PWM控制实现部分主要由直流电机和L298N直流电机驱动模块组成。
感测电路主要由超声波探测传感器构成。
电源电路由一块7.4V锂离子电池与LM1117-5芯片组成的稳压电路构成,最终输出为5V稳定电压。
2.3总体电路原理图
本原理图2.2中分为四个模块分别为稳压源模块、超声波模块、主控模块、驱动模块,其中超声波模块是自行设定的虚拟超声波元件,只起到形象示意作用。
图2.2电路原理图
第3章各模块功能介绍
3.1障碍物测距系统
方案1:
使用超声波探测器
超声波探测器探测距离远,测距方便,价格合理,程序实现较容易。
方案2:
使用光电对管探测
光电对管价格低廉,性能稳定,但探测距离太近(一般不超过3cm),使得小车必须制动迅速。
而我们由于采用普通直流电机作为原动力,制动距离至少需要10cm。
因此不采取这一方案。
探测障碍的最简单的方法是使用超声波传感器,它是利用向目标发射超声波脉冲,计算其往返时间来判定距离的。
算法简单,价格合理因此我们选择方案一。
超声波测距原理:
首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。
时序图如图3.1所示。
由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:
,通过单片机来算出距离。
图3.1超声波测距原理
3.2驱动模块
此模块的主要作用的驱动直流电机,让直流电机有足够的动力。
方案1:
使用分立原件搭建电机驱动电路。
使用分立原件搭建电机驱动电路造价低廉,在大规模生产中使用广泛。
但分立原件H桥电路工作性能不够稳定,响应太慢且电流太小,较易出现硬件上的故障,故放弃了这一方案。
方案二:
采用由双极性管组成的H桥电路(L298N)。
用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。
这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。
而且它有更强的驱动能力。
L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。
经比较之后最终选定为方案二。
L298内部图如图3.2所示。
图3.2L298内部原理图
L298各引脚功能,如下表3.1所示。
表3.1封装引脚及功能
引脚
功能
1、15
SEN1、SEN2
分别为两个H桥的电流反馈脚,不用时可以接地
2、3
1Y1、1Y2
输出端,与对应输入端(IN1、IN2)同逻辑
4
VS
驱动电压,最小值需比输入的低电平电压高2.5V
5、7
IN1、IN2
输入端,TTL电平兼容
6、11
EN1、EN2
使能端,低电平禁止输出
8
GND
地
9
VSS
逻辑电源,4.5-7V
10、12
IN3、IN4
输入端,TTL电平兼容
13、14
2Y1、2Y2
输出端,与对应输入端(IN3、IN4)同逻辑
驱动电机的运行,I/O端口状态与电机制动对照表,如下表3.2所示。
表3.2I/O端口状态与电机制动对照表
IN1
IN2
IN3
IN4
EN1
EN2
转速
1
0
1
0
1
1
正转
0
1
0
1
1
1
反转
1
1
1
1
1
1
停止
0
0
0
0
1
1
停止
X
X
X
X
0
0
停止
3.3电源模块
方案1:
采用干电池组进行供电
采用四节干电池降压至5V后给单片机及其他各模块供电。
但由于电机驱动需要比较大的电流,所以采用干电池供电使用的周期不能很长,实用性不太好。
故放弃了这一方案。
方案2:
采用可充电锂离子电池供电
采用可充电锂离子电池(2S)给电机驱动模块供电,其它采用锂离子电池经LM1117-5稳压后供电。
2S锂离子电池不仅重量轻,而且供电的时间长而稳定,功率很足,况且该小车负重能力较好,所以采用此方案完全可行。
故采用了此方案。
其原理图如下图所示:
图3.3稳压模块原理图
3.4主控模块
单片机我们选择了STC89C52作为主控芯片,课堂上我们学习的是8051单片机,但实际应用中现在我们是不会再用8051单片机了。
学习8051单片机是学习一种方法,学习单片机的基本结构,指令。
现在单片机种类繁多,各有各的优点,结合具体情况恰当选择单片机型号也是非常重要的,在此系统中采用STC89C52为主控模块芯片,选此芯片的理由是:
(1)与MCS-51单片机完全兼容:
指令兼容,引脚兼容;
(2)超强抗干扰能力:
电源、I/O接口、时钟均有抗干扰措施;
(3)高可靠性:
① 宽电压范围,不怕电源波动5V产品3.4V~6V,;
② 宽温度范围:
-40℃~85℃;
(4)超低功耗:
①掉电模式典型功耗:
≦1uA,可由外中断唤醒;
②空闲模式典型功耗:
2mA;
③正常工作典型功耗:
4mA~7mA;
(5)可在线编程,节约投资;
(6)强驱动能力,无论灌电流还是拉电流,均优于MCS-51单片机;
(7)高速度,最高晶振达到90MHZ;
(8)内部资源更丰富,与MCS-51单片机相比增加了:
①T2定时/计数器;
②内部数据存储器RAM增加了1~8倍;
③自带A/D和PWM;
④有P4口;
其引脚图如下图3.4所示。
图3.4单片机引脚图
第4章软件设计
4.1程序设计流程图
本设计系统软件采用模块化结构,由主程序﹑定时计数子程序、电机驱动子程序﹑中断子程序、算法子程序构成。
在主程序中进行定时器的初始化,以及外部中断判断,当没有外部中断输入时T0定时器计数直到有外部中断输入时停止,此时调用距离计算子程序判断小车与障碍物距离是否小于80cm,若小于则减小PWM占空比使小车转弯,反之则正常行驶。
主程序流程图如图4.1所示。
图4.1主程序流程图
4.2关键子程序设计
4.2.1PWM产生原理及程序设计
随着科学技术的迅猛发展传统的模拟和数字电路已被大规模集成电路所取代,这就使得数字调制技术成为可能。
目前,在该领域中大部分应用的是数字脉宽调制技术。
电动机调速系统采用微机实现数字化控制,是电气传动发展的主要方向之一。
采用微机控制后,整个调速系统实现全数字化,并且结构简单、可靠性高、操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。
下面主要介绍直流电机PWM调速系统的算法实现。
根据PWM控制的基本原理可知,一段时间内加在惯性负载两端的PWM脉冲与相等时间内冲量相等的直流电加在负载上的电压等效,那么如果在短时间T内脉冲宽度为
幅值为U,由图4.2可求得此时间内脉冲的等效直流电压为
图4.2PWM脉冲
,若令
,
即为占空比,则上式可化为:
(U为脉冲幅值)
若PWM脉冲为如图4.3所示周期性矩形脉冲,那么与此脉冲等效的直流电压的计算方法与上述相同,即
(
为矩形脉冲占空比)
图4.3周期性PWM矩形脉冲
要改变等效直流电压的大小,可以通过改变脉冲幅值U和占空比
来实现,因为在实际系统设计中脉冲幅值一般是恒定的,所以通常通过控制占空比
的大小实现等效直流电压在0~U之间任意调节,从而达到利用PWM控制技术实现对直流电机转速进行调节的目的。
PWM产生程序在定时器T2中断中实现,每次进入中断时PWM脉冲计数变量click自加,然后与设定的占空比ZK1、ZK2进行比较,控制单片机相应引脚的输出电压,从而控制驱动实现电机转速控制。
该超声波避障小车的PWM程序流程图如图4.4所示。
图4.4PWM产生程序流程图
4.2.2超声波的发射与接收程序设计
超声波发射与接收程序在定时器T1中断中实现,设置定时器初值,每进入一次中断变量timer自加一次,当timer大于200时,发送脉冲使超声波模块接收回波。
程序框图如下图4.5所示。
图4.5超声波发射接收程序流程图
4.2.3距离计算程序
超声波测距的基本方法是TOF(timeofflight)渡越时间测量法。
它的基本原理是:
脉冲信号激励超声波发射器向外发射超声波。
当发射的超声波碰到障碍物时,会被反射。
当反射的声波被超声波接收器接收到,停止计时。
根据发射与接收的时间差与超声波的传播速度来计算被测物体的距离。
距离计算程序是通过调用计数器T0中所计的数值来进行计算的,距离计算公式为
。
程序流程图如图4.7所示。
图4.7距离计算程序流程图
第5章制作安装与调试
5.1小车的设计与安装
本设计中使用的小车为四个完全相同的小功率直流电机驱动的小车,采用两边电机差速转向并且可以正反转,左边两个电机和右边两个电机分别采用同一路PWM信号控制,但是该类电机机械特性比较钝,内部摩擦力矩较大,所以小车在开始接通电源时电机需要等候片刻才能达到初始速度。
供电电源采用7.4V(2S)锂离子电池,该电池续航力比较强。
驱动元件采用响应速度快、输出电流较大的L298N驱动。
安装完成的小车如图5.1所示。
图5.1小车安装完成图
5.2小车调试
小车完成安装工作后,需要做一系列检查调试工作如下:
(1)先连接各个模块,电池连接稳压模块,将其稳压输出的5V电压供给单片机、电机驱动以及超声波模块。
尤其注意正负极的正常连接,防止短接烧坏元器件;
(2)连接完成后,打开电源开关,观察稳压模块、单片机等部件的LED指示灯是否全亮,如若有不亮的,则要重新检查供电是否正常;
(3)电路连接完毕后,此时将L298N上控制信号直接连5V电压,观察四个电机是否可以正常转动,若有电机不转或者卡死现象,则要再次检查电路,并且检查电机是否存在接触不良等问题;
(4)全车检查完成后,软件调试时先用KEIL软件编译程序检查程序是否有错误,然后再将程序烧录进入芯片,观察小车的运行情况。
然后再将占空比相等的两路PWM信号程序烧录入单片机,打开电源,观察小车是否可以直道行驶;
(5)确定小车可以直道行驶后,此时就要进入小车的功能调试。
先确定小车的超声波模块探测到障碍物是的最大转弯距离,然后调节小车两路PWM信号的占空比,是小车能够在给定的距离内安全转弯并绕过障碍物。
5.3调试中遇到的问题
在调试时发现的问题主要有以下几个方面:
(1)小车前进过程中突然停止,经检查发现是由于电机机械特性较差所致。
(2)小车在遇到前方障碍物时未能转弯,经检查发现是由于程序中所写的转弯距离裕量太小,转弯时小车行驶速度过慢导致的,增大裕量及小车转弯速度后小车能够及时转弯。
(3)小车在转弯过程中电机卡死,经检查时由于差速转弯时两边电机的速度相差过大引起,减小速度差即可。
总结
历时两周的课程设计过程转眼就结束了,从最初的上网查资料,到在实验室安装小车并且设计小车的布局,再到修改程序调试小车。
一步步走过来,我也收获了很多。
在安装小车过程中,我发现要是小车能够运行得更好且能够经受长时间的调试过程,必须使用能够充电的蓄电池而不是干电池,用到蓄电池就需要稳压模块。
在调试过程中,发现单片机烧录入程序后电机不转动,经检查发现是因为驱动芯片L298N的使能端未接高电平,接入后小车正常行驶。
通过这些调试,提高了我检查电路的能力,以及巩固了电路的知识。
通过这样的设计,提高了我的动手能力。
每天在实验室除了安装元器件,还可以上机编程,使我软件调试知识也提高了。
最后,我要感谢在课设过程中老师们和同学们给予我的无私帮助,使我能够快速顺利地完成本次课程设计所要求的各项任务。
参考文献
[1]安岩.自动循迹智能小车的设计.苏州科技学院学报(工程技术版),2010,23
(1):
72-75.
[2]高振东等.直流电机PWM闭环调速系统.信息空间,1999.04.
[3]李华.MCS-51系列单片机实用接口技术.北京航空航天大学出版社.2002.1
[4]李扬,张喜验.MCS-51单片机在直流电机闭环调速系统中的应用.山东科学,2006.19(5),92-95.
[5]ST.L298N数据手册[DB/OL].2000-7-1/2008-5-9.
[6]沙占友.单片机外围电路设计[M].北京:
电子工业出版社,2003:
21.
[7]泰继荣.现代直流控制技术及其系统设计[M].北京:
机械工业出版社,1993:
141-145.
[8]李杰.51系列单片机输出PWM的两种方法[DB/DL].2002-2-14/2008-5-9.
[9]9孙传友.测控系统原理与设计[M].北京:
北京航空航天大学出版社,2003:
160-166,174.
[10]王兆安.电力电子技术[M].北京:
机械工业出版社,2006:
150-152.
[11]潘松,黄继业.EDA技术实用教程[M].北京:
科学出版社,2003:
33.
附录
1.源程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
unsignedchari;
sbittrig=P1^0;//触发信号引脚
sbitecho=P3^2;
sbitPWM1=P0^1;//pwm信号输出
sbitPWM2=P0^3;
staticcharclick=0;
unsignedcharZK1,ZK2;
unsignedinttime=0;
unsignedinttimer=0;
unsignedlongS;
bitflag=0;
voidConut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.5)/100;
}
voiddelay_1(void)//误差0us
{
unsignedchara,b;
for(b=215;b>0;b--)
for(a=45;a>0;a--);
}
voidTimer2Interrupt()
{
RCAP2H=0x0fe;
RCAP2L=0x33;
ET2=1;//允许T2定时器中断
EA=1;//打开总中断
TR2=1;//启动T2定时器
}
voidzd0()interrupt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 自动 小车 设计