单片机自动小车.docx
- 文档编号:9410530
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:32
- 大小:552.54KB
单片机自动小车.docx
《单片机自动小车.docx》由会员分享,可在线阅读,更多相关《单片机自动小车.docx(32页珍藏版)》请在冰点文库上搜索。
单片机自动小车
郑州升达经贸管理学院
本科毕业设计(论文)
题目基于单片机的智能避障小车设计
学生姓名侯志强
专业班级电信二班
学号2009058239
院(系)信息工程系
指导教师(职称)呂丽平(讲师)
完成时间2013年5月5日
目录
摘要I
1引言1
2总体设计方案2
2.1设计要求2
2.2系统设计方案2
2.3总体设计2
2.4功能说明3
3硬件组成4
3.1单片机模块4
3.1.1STC89C52RC4
3.1.2接口和中断4
3.2避障模块5
3.2.1超声波避障5
3.2.2工作原理:
6
3.3驱动模块7
3.3.1驱动芯片7
3.3.2驱动电路8
3.4电源方案8
4软件程序流程图9
4.1主流程图9
4.2模块程序设计说明9
4.3超声波避障程序10
4.3.1超声波时序图10
4.3.2具体程序10
4.4驱动模块程序11
4.5程序语言12
5电路调试18
5.1硬件调试18
5.1.1元件的组装18
5.1.2检测中的问题18
5.2软件调试19
5.3系统联调19
5.4实现功能20
6结束语21
致谢22
参考文献23
附录24
基于单片机的智能避障小车设计
摘要
当今世界,随着汽车工业的快速发展,关于汽车的研究也越来越受到人们的关注。
从20世纪70年代,美欧等发达国家开始进行无人驾驶汽车的研究,我国从上世纪80年代开始着手无人驾驶汽车的研制开发,虽与国外相比还有一些距离,但目前也取得了阶段性成果。
智能汽车概念的提出给汽车产业带来机遇也带了挑战。
汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于单片机的智能小车的避障研究。
我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的结果,在这种情况下研究智能避障小车的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。
该设计利用单片机STC89C52RC作为主控芯片,该芯片是一种高速、低功耗、抗干扰能力强的芯片,其最高时钟工作频率为48MHz,用户应用程序空间为8K。
能够满足程序空间需要。
驱动采用L298N驱动芯片,它是一种双全桥步进电机专用芯片,通过对其输入端的控制可以实现小车的启动、转向、停止等动作。
为节省成本,小车由两个直流减速电机加一个万向轮构成,并采用后轮驱动。
本文首先介绍了智能车的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计实物图,及完整的C语言程序。
关键词:
单片机;超声波;直流减速电机;避障小车
DesignOfIntelligenceObstacle
AvoidanceCarBasedOnMCU
ABSTRACT
Intoday'sworld,withtherapiddevelopmentofindustry,researchaboutthecarisalsomoreandmoreattentionbypeople.Fromthe1970s,thedevelopedcountriessuchastheusandEuropebeganthedriverlesscarsresearch,ourcountryfromthe1980sbegantheresearchanddevelopmentofdriverlesscars,althoughcomparedwithforeigncountriesandsomedistance,butnowalsomadesomeprogress.Smartcarstotheconceptoftheautoindustryhasbroughtwithitachancechallenge.Thecarwillbethefutureoftheautoindustryintelligentdevelopmenttendency,inthiscontext,wecarriedoutbasedonMCUintelligenceobstacleavoidanceofthecar.Chinaasaworldpower,inthehigh-techfieldsmustalsoholdposition,thefutureoftheautoindustryistheintelligentaninevitableresult,inthiscasestudyintelligenceobstacleavoidanceofcarapplicationhasfar-reachingsignificance,thiswilltoChina'sfutureintheworldofintelligentvehicleresearchhigh-techfieldstooktheleadhasanimportantrole.
ThisdesignusingsinglechipcomputerchipSTC89C52RCasthemaster,thechipisahighspeed,lowpowerconsumption,stronganti-interferenceabilitychip,themaximumclockfrequencyofthework48MHz,userapplicationspacefor8K.Canmeettheprogramspaceneeds.ThedriverL298Ndrivechip,itisakindofsteppingmotorandproperbridgethespecialchip,throughitscontrolcanberealizedattheinputofthecartostart,stop,suchaction.Tosavecosts,thecarslowdownbytwodcmotorandauniversalwheelstructure,andtherearwheeldrive.
Thispaperfirstintroducedthesmartcarprospect,thenintroducesthedesignideaofthesubject,eachmodulecircuitanditscircuitprincipleofchoice,andfinallytothistopicdesignprocessaresummarizedandprospectwitheachmoduleofthecircuitprinciplediagram,andthisdesignrealfigure,andcompleteClanguageprogram
Keywords:
MCU;ultrasonicwave;dcmotor;obstacleavoidancecar
1引言
随着汽车避障技术的广泛应用,智能车的发展已成为未来汽车发展的一个方向,开发一种无需驾驶员的智能型汽车的任务,已经被社会所关注。
利用避障技术,汽车在行驶中能够自动转向刹车和换档,因此车上无需驾驶员,乘车人可以随心所欲地谈话、读书、工作、娱乐,车内成为一个充满乐趣的生活空间。
所以没有驾照的人也可以拥有自己的车。
智能小车是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统,随着计算机科学的发展,可以通过单片机控制来实现对其行驶方向、启动、停止以及速度的控制,无需人工干涉,操作人员可以通过修改智能小车的控制程序来改变它的行驶方式。
因此智能避障车可以解决一些特殊环境下人力无法完成的任务。
智能小车可集环境感知、动态决策、行为控制等多种功能于一体。
随着传感技术、计算机技术、人工智能及其它学科的迅速发展,机器人小车逐渐具有智能其必须具有感知作业环境、任务规划以及决策的能力。
从系统硬件方面讲,机器人小车必须具有复杂的传感器,功能强大的计算机以及精确的驱动系统。
该论文所设计利的用单片机控制的智能小车,体积不大,方便携带。
但由于知识水平及时间有限,本论文研究智能小车的一个方面即避障。
系统采用单片机为控制核心,利用自制小车或玩具小车进行小车的模拟,采用超声波避障模块进行障碍物的检测。
单片机控制避障模块发射和接收,通过相应的程序处理,判断障碍物的位置。
根据检测情况单片机控制电机驱动模块,控制小车电机的正反转实现小车的转向,启动等相应动作,来实现避开障碍物,为了降低了成本,小车是自己组装的。
软件采用所学的C语言来实现,实用性大。
2总体设计方案
2.1设计要求
(1)在小车行驶过程中,50ms启动一次超波模块,对前方路况进行检测。
(2)当障碍物小于15cm时,小车自动左转90度。
(3)当小车转过90度后,对前方道路再次检测,若无障碍,向前行驶。
如果存在障碍物且小于15cm,小车右转180度,并再次检测前方路况,若无障碍物,向前行驶,有障碍物且距离小于15cm,小车向右转90度并向前行驶。
2.2系统设计方案
根据设计要求,为了便于调试和改进,采用模块化设计。
系统可分为:
微控制器、避障模块、驱动模块、电源模块、小车模块。
其基本框图如下:
图2-1系统框图
2.3总体设计
基于单片机STC89C52RC设计的智能避障小车,本设计需提供+12V和+5V电源,DC+12V由市电直接转化,DC+5CV由直流+12V经7805转换得到。
为单片机及其他电路提供工作电压,直流12V主要为电机提供驱动电压。
超声波避障模块,采用购买的现成的超生波发射接收模块,通过单片机控制超声波模块去小车行驶道路上的障碍物进行检测,然后单片机通过处理反馈的信息,判断障碍物的距离,进而发出指令控制驱动模块,控制小车实现转向,达到避障的目的。
制作该产品用到的元器件都是以前学习或实训中用到过的元器件,对元器件性能及使用方法有一定的了解,可以熟悉运用,而且有效节省了硬件成本,又能实现预定目标。
该设计有很大的实用价值。
系统整体框图如下图所示:
图2-2整体设计框图
2.4功能说明
本设计主控芯片采用51芯片,负责传感器的状态,并向电机驱动模块发出动作指令。
复位采用手动复位。
电源模块有市电转出+12V,再将+12V转换成+5V提供给单片机及其他模块,+12V主要为驱动电机提供电源。
避障模块采用购买的成品,该模块在单片机的控制下对小车前方的路况进行检查,并将检测信息反馈给单片机,单片机经过处理反馈回来的信息,发出相应的指令控制驱动模块,从而控制小车做出相应的动作,达到避障的目的。
3硬件组成
3.1单片机模块
3.1.1STC89C52RC
采用单片机STC89C52RC为核心,8K的内部程序存储器(ROM),512个内部数据存储器(RAM),4个寄存器区,32个通用I/O端口,2个16位的定时、计数器,有ISP功能,能用于下载线进行的在线编程,设有4个中断源,能够完成设计要求,且该芯片价格便宜,采用该芯片能够达到设计要求,且平时实训中一直采用该芯片,对其比较熟悉,控制起来相对简单。
单片机用的是STC89C52RC,该芯片存储容量大,体积小。
单片机最小系统:
电源部分、晶振部分、复位电路和31号脚接高电平。
单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行。
3.1.2接口和中断
接口和中断系统等几个大单元及数据总线地址总线和控制总线等三大总线。
9号复位信号脚,时钟电器开始工作,复位端会出现24个时钟周期以上的高电平,系统即初始复位。
其复位方式一般为手动复位,VCC断电期间,此引脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
31脚程序存储器的内外部选通线,内置有8kb的程序存储器,当EA为高电平并且程序地址小于8kb时,读取内部程序存储器指令数据。
所以该设计31脚应该接高电平。
51单片机内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,18、19脚就接电容和晶振电路。
单片机40脚接VCC,可以提供电源,20脚接地。
图3-1最小系统电路
为方便端口的选择,单片机的P0口外界有上拉电阻,且32个通用I/O端口都接有排针,以方便使用及更换控制端口。
表3-1引脚功能表
/EA
访问程序储存控制信号
RST
复位信号
XTAL1和XTAL2
外接晶振引脚
VCC
+5V电源
Vss
底线
P0.0~P0.3
接驱动控制端
P2.2
超声波模块的ECHO引脚
P2.3
超声波模块的TRIG引脚
3.2避障模块
3.2.1超声波避障
超声波避障,基本原理是通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道障碍物的距离。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
(超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:
s=340t/2)优点:
超声波检测障碍物的精度高,反映灵敏,受外界干扰小,计算简单、易于做到实时控制。
该部分采用购买HC-SR04超声波测距模块,该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达到3cm,模块包括超生波发射器,接收器与控制电路。
3.2.2工作原理:
(1)采用IO口TRIG触发测距,给至少给10us的高电平
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340m/s))/2;
如图所示,TRIG是触发控制信号输入端,接单片机的P2.3引脚,ECHO回响信号输出端接P2.2引脚。
图3-2超声波模块接线图
3.3驱动模块
3.3.1驱动芯片
驱动采用L298N驱动芯片,该芯片是双全桥步进电机专用驱动芯片,内涵4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥驱动器,接收标准TTL逻辑信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号,驱动能力强,故采用该芯片设计驱动电路。
驱动采用L298N驱动芯片,该芯片是双全桥步进电机专用驱动芯片,内涵4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥驱动器,接收标准TTL逻辑信号,可驱动46V、2A以下的步进电机,且可以直接透
图3-3L298N硬件结构图
过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信,第1脚和第15脚可与电流侦测用电阻连接来控制负载的电路。
OUTPUT1、OUTPUT2和OUTPUT3、OUTPUT4之间分别接2个直流电机;INPUT1~INPUT4输入控制电位来控制电机的正反转;Enable则控制电机停转。
3.3.2驱动电路
图3-4驱动电路
驱动电路中,EN1、EN2直接接高电平,1A1、1A2接单片机的P1.0和P1.1口控制电机M1,2A1、2A2接P1.2和P1.3口控制电机M2,1Y1和1Y2接电机M1,2Y1和2Y2接电机M2。
有续流二极管构成的“H桥”,作为L298N的辅助电路来实现直流减速电机的控制。
在这里面,二极管起到了续流的作用,迅速释放电机在停止过程中产生的反电动势,对电机进行保护。
3.4电源方案
图3-5电源电路
电源供电部分,我使用了实训时自制的直流可调稳压电源,提供直流+12V电压,运用三线稳压器件7805,输出+5V电源。
由于7805简单易用、价格低廉,在大多电路中充分采用。
通过电解电容的隔离滤波作用,电源部分可输出+5V的直流电源。
电路图如上所示。
4软件程序流程图
4.1主流程图
图4-1主流程图
如上图所示,在程序设计中,为了便于调试,方便找到程序问题的所在,程序采用在主函数中调用各个子函数的形式。
当启动一次超声波测距程序时,单片机会根据检测反馈回来的信息进行相应的处理,进而判断是否有障碍物,当障碍物的距离小于设定的安全距离时,单片机会发出相应的指令,控制驱动电路,对小车的行驶方向进行调整。
当小车前方无障碍物时,主程序会在一定的时间内自动启动一次超生波测距程序,若无障碍继续按原来的方向行驶。
如此循环,达到避障的目的。
4.2模块程序设计说明
运用C语言编写程序,因为C语言是我所学专业的一门课程,并且在平时的制作中多次使用该语言,因此采用该语言编程相对容易一些。
在程序中我采用了两个计数器溢出中断,其中一个是T0计数器溢出中断,是用来计算障碍物的距离,如果障碍物的距离超出测距范围,利用该中断设置标志位。
另一个是T1计数器溢出中断,我利用该中断控制超声波发射的时间间隔,即对路面障碍物检测的时间间隔,来适时判断路面情况,改变小车的行驶方向,达到小车躲避行驶过程中遇到的障碍物。
4.3超声波避障程序
4.3.1超声波时序图
4-2超声波时序图
以上时序图表明,只需提供一个10us以上的脉冲信号,该模块内部将发出8个40KHz周期电平并检测回波。
一旦检测到有回波信号则输出回响信号。
回响信号的脉冲宽度与所测的距离成正比。
由此通过发射信号到接收到回响信号的时间间隔可以计算得到距离。
4.3.2具体程序
StartModule()//发射一次超声波
{
TRIG=1;//
DelayUs2x(8);//延时20us
TRIG=0;
while(!
RX);//当RX为零时等待
TR0=1;//开启计数
while(RX);//当RX为1计数并等待
TR0=0;//关闭计数T0
Count();//计算
}图4-3超声波检测流程图
4.4驱动模块程序
表4-1L298N正反转对应输入控制端一览表
电机
旋转方式
控制端IN1
控制端IN2
控制端IN3
控制端IN4
输入PWM脉冲信号,改变脉宽可调速
ENA
ENB
M1
正转
高
低
高
反转
低
高
高
停止
低
低
高
M2
正转
高
低
高
反转
低
高
高
停止
低
低
高
图4-5驱动程序流程图
如图4-5所示,当在主程序中当计数器T1溢出中断响应时,会首先判断障碍物的距离是否小于设定的安全距离(被设计中为15cm),若大于安全距离,小车继续按原来的方向行驶,若小于安全距离,小车首先左转90度,停下并启动超声波避障程序再次对前方的路况进行障碍有无的检测,若无障碍物或有障碍但大于安全距离,小车沿该方向前进,反之当障碍物的距离小于安全距离时,小车向右旋转180度,停止并再次启动超生波避障程序,对前方的路况进行检测,若无障碍物或有障碍物但距离大于安全距离,小车沿该方向前进,反之当障碍物的距离小于安全距离时。
小车向右转90度,沿该方向行驶。
如此循环实现避障。
4.5程序语言
/*========================================================
//超声波避障小车程序
=========================================================
超声波模块接线:
--------------------------
|TRIG接P2.3ECH0接P2.2|
--------------------------
L298N接线:
--------------------------------------------------------
|1A1----P1.0|1A2-----P1.1|
|2A1----P1.2|2A2-----P1.3|
--------------------------------------------------------
[注:
STC89C52,实测使用11.0592M]
======================================================*/
#include
#include
sbitRX=P2^2;//接受端口
sbitTX=P2^3;//发射端口
//驱动引脚定义
sbitIN1=P1^0;//M2
sbitIN2=P1^1;
sbitIN3=P1^2;//M1
sbitIN4=P1^3;
unsignedinttime=0;
unsignedlongS=0,num=0;
bitflag=0;
/*------------------------------------------------
uS延时函数大致延时
长度如下T=tx2+5uS
------------------------------------------------*/
voidDelayUs2x(unsignedchart)
{
while(--t);
}
/*---------------------------------
mS延时函数
---------------------------------*/
voidDelayMs(unsignedchart)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
voiddelay(void)//
{
DelayMs(200);DelayMs(200);
DelayMs(200);DelayMs(200);
DelayMs(200);DelayMs(200);
}
/*********驱动模块********************/
forword()//前进
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
turn_le
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 自动 小车