哈工大2012测控系单片机课程设计说明书——超声波避障小车

合集下载

超声波避障小车开题报告

超声波避障小车开题报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y课程设计说明书(论文)设计题目:超声波避障小车院系:电气学院自动化测试与控制系班级:设计者:学号:指导教师:***设计时间:9.2~9.13哈尔滨工业大学哈尔滨工业大学课程设计任务书*注:此任务书由课程设计指导教师填开题报告1立项依据1.1立项目的(1)设计一辆利用超声波传感器来实现避障功能的小车,使小车对其运动方向受到的阻碍作出各种躲避障碍的动作。

(2)进一步学习单片机原理及其应用,提高程序的编写能力。

(3)掌握单片机系统外扩器件的连接与使用,了解超声波传感器的工作原理。

(4)掌握软件和硬件调试的基本技巧与方法。

1.2立项意义在当今社会,汽车成为了越来越普遍,人们不可缺少的交通工具。

但汽车的不断增加,随之而来就是越来越多的交通事故。

交通事故成为了现在越来越严重的安全隐患。

所以随着汽车工业的快速发展,我们必须加强对汽车安全性能的考虑。

所以,智能汽车概念应运而生,他既是汽车产业的机遇也是汽车产业的挑战。

汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。

超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。

我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。

2主要设计内容及方案2.1总体方案系统采用51单片机作为核心控制单元用于智能车系统的控制,在超声波检测到障碍物之后,主控芯片根据距离值控制直流电机的转动,在与障碍物距离较大的情况下,快速前进,在与障碍物距离较小但还未到达临界转弯方向值的时候,慢速前进。

超声波避障小车程序设计

超声波避障小车程序设计
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;
sbitEN1=P1^4;
sbit EN2=P1^5;
bitRight_moto_stop=1;
bitLeft_moto_stop =1;
#defineLeft_moto_go{IN1=0,IN2=1,EN1=1;} //左电机向前走
超声波避障小车程序设计
———————————————————————————————— 作者:
———————————————————————————————— 日期:

/***********************************************************************************************************/
time=TH0*256+TL0;
TH0=0;
TL0=0;
S1=(time*1.7)/100; //算出来是CM}
void Count2()//计算函数
{ while(!RX2); //当RX2为零时等待
TR0=1; //开启计数
while(RX2); //当RX2为1计数并等待
TR0=0;//关闭计数
time=TH0*256+TL0;
TH0=0;
TL0=0;
S4=(time*1.7)/100; //算出来是CM }
void Count5()//计算函数
{
while(!RX5);//当RX5为零时等待
TR0=1;//开启计数
while(RX5); //当RX5为1计数并等待

超声波蔽障小车设计方案

超声波蔽障小车设计方案

超声波蔽障小车设计方案一、系统总体方案选择与说明1.系统总体方案选择该毕业设计是利用MCS-51单片机部的定时/计数器、中断系统、和LED显示器等部件,设计的一个单片机控制系统。

超声波传感器的信号在单片机运算后对电机驱动模块进行控制电平输出,从而对电机的转向控制2. 说明(1)系统由STC89C52、按键、电容、电阻等部分构成,能实现时间的脉冲等功能。

对超声波传感器发送40KHZ的脉冲。

(2)回波计时用于计算超声波接受端子从发送出脉冲到遇到障碍物返回后的时间(3)中断:中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机CPU的效率,也可以对突发事件处理。

所谓中断就是当CPU正在执行程序A时,发生了另一个急需处理的事件B,这是CPU暂停当前执行的程序A,立即转去执行处理事件B的程序,处理完事件B后,再返回到程序A继续执行,这个过程被叫做中断。

关于中断的概念有下列几个名词:(1)程序A称为主程序,(2)处理事件B的程序称为中断服务程序,(3)主程序中转向中断服务程序的地方称为断点,(4)引起中断的原因即事件B称为中断源,(5)转去执行中断服务程序称为中断响应。

关于中断的概念可以打个如下的比喻。

领导(CPU)在自己的房间办公(执行主程序),下属(外设)有问题打来请示(中断源),领导停下正在进行的工作,通过给下属做指示(执行中断服务程序),指示完后,领导挂断,继续做自己的工作(返回主程序继续执行)。

二、系统结构框图与工作原理1. 系统结构框图小车整体结构,双轮驱动,前轮靠万向轮方便转向2.工作原理蔽障功能是利用单片机部的定时器\计数器和外部中断来实现的,它的处理过程如下:首先设定单片机部的一个定时器\计数器工作于定时方式,然后通过某个P口发送40KHZ,经过一级放大后接超声波发送端,不断的向车前方发送超声波,超声波在空气中的速度就是声音的速度340M/S,当车行驶到前方障碍物预计距离时,接收端子收到同等频率的信号脉冲,再经过一级整形放大后送回外部中断0,P3.2,单片机在部计算和预设值做对比,进行对电机驱动控制,从而实现蔽障功能。

智能超声波避障小车

智能超声波避障小车

智能超声波避障小车智能超声波避障小车姓名:班级:学号:目录摘要 (3)一、总体方案概述 (3)二、总体电路原理图 (3)三、各模块功能介绍 (4)(一)、超声波测距模块 (4)(二)、步进电机控制模块 (5)(三)、单片机控制模块 (6)四、系统软件设计 (6)五、应用前景 (7)六、参考文献 (8)摘要:现今发达的交通在给人们带来便捷的同时也带来了许多的交通事故。

发生交通事故的因素有很多。

当然,如果我们的汽车能够更加智能,就是说事先能预测并显示前面障碍物离车的距离,当障碍物距离很近时汽车会自动采取一些措施避开障碍物,这样就能够在很大程度上避免这些事故的发生。

在本论文中,我们将会看到能够实现这一功能的智能小车。

关键字:超声波、测量、避障、单片机一、总体方案概述本小车使用一台AT89S51单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,并且用数码管实时的显示出来,在小车与障碍物的距离小于安全距离(用软件设定)时,小车会发出“在距您车前方x(数码显示的实时距离)米的地方有一障碍物,请您注意避让”的语音提示,并且拐弯,以避开障碍物,同时会点亮相应侧边的发光二极管作为提示信号。

在避开障碍物后,小车会沿直线前进。

本系统设计的简易智能小车分为几个模块:单片机控制系统、超声波路面检测系统、前进、转弯控制电机以及方向指示灯系统。

它们之间的相互关系如下图1所示。

图1:智能小车简二、总体电路原理图三、各模块功能介绍(一)、超声波测距模块首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。

时序图如图1所示。

由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。

超声波避障小车设计

超声波避障小车设计
2.2设计原理
该智能车系统可分为三个主要模块:单片机主控核心模块,传感器避障模块,电机驱动模块。系统主要原理是:经过超声波避障模块(即感测模块)实时监测路面情况并及时传输给单片机。由单片机主控核心模块根据感测模块给予的信息控制小车两电机转动工作状态。电机驱动模块驱动两电机转动,实现前进或者左、右转。
(1)单片机主控核心模块。在这次设计中我们选用已经学过的MCS-51单片机为核心作为控制模块。MCS-51系列单片机是美国Intel公司于1980年推出的产品,MCS-51系列单片机的影响及其深远,许多公司都推出了兼容系列单片机,使MCS-51内核成为一个8位单片机的标准,其典型产品有8031、8051、8751等等。
同组设计者及分工:
张佳炜:资料查找、电路搭建与调试、方案设计
魏孙贵:程序设计及编写
指导教师签字___________________
年月日
教研室主任意见:
教研室主任签字___________________
年月日
开题报告
1立项依据
1.1立项目的
(1)设计一辆利用超声波传感器来实现避障功能的小车,使小车对其运动方向受到的阻碍作出各种躲避障碍的动作。
(2)传感器避障模块。智能车避障系统中的传感器一般分为接触型和非接触型两种,接触型相对比较简单。这里我们使用了超声波传感器进行测量,也即非接触型传感器。
超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生震动产生的,在碰到杂质获分界面会产生显著反射从而形成反射回波,超声波传感器就是根据超声波在障碍物界面上的反射来判断检测物体的存在以及距离的。超声波频率高,波长短,绕射现象小,方向性好,再加上信息处理简单且价格低廉,因此这里我们使用28015-PING-v1.6超声波传感器对小车行进前方路况进行探测以及判断,它能实现从3cm到1.8m距离的测量,从而识别出范围内的障碍物。我们将其作为传感器避障模块,利用其返回的数据,从而实现小车避障的功能。图1为超声波传感器。

超声波避障小车

超声波避障小车

超声波避障小车超声波避障小车报告摘要超声波避障小车是根据超声波测距原理制作的智能小车。

其中用到超声波传感器模块DYP-ME007,控制芯片是STC89C52,一对减速电机以及一个步进电机。

关键词超声波测距避障电机小车方案本系统主要包含以下模块:1.小车车体2.单片机最小系统模块3.超声波传感器模块4.直流电机驱动模块5.步进电机驱动模块6.电源模块各模块间的连接如下:硬件系统1.小车车体小车车体由一块天蓝色透明有机玻璃(0.3*18*23cm)为主体,前轮为两个料万向轮,后轮为两个直径约为6cm的车轮(带橡胶车胎)。

其中,后轮分别由两个直流减速电机控制,由此可以看出,小车为后轮驱动,差速转向。

2.单片机最小系统模块此次所用的控制芯片为STC89C52单片机,拥有8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。

外接11.0592M晶振。

其I/O口应用情况如下;P1.0:Trig(超声波模块控制端);P3.2:Echo(超声波模块接收端);P1.4~P1.7:直流电机驱动模块;P2.0~P2.3:步进电机驱动模块。

3.超声波传感器模块此次所用的超声波模块是DYP-ME007(无法找到模块电路原理图)。

DYP-ME007的主要参数有:使用电压:DC5V;静态电流:小于2mA;电平输出:高5V ;电平输出:底0V;感应角度:不大于15度;探测距离:2cm-500cm(实际上大约为3CM-250CM);探测精度:0.3cm。

各引脚为:1. Vcc:电源端;2.Trig:控制端;3.Echo:接收端;4.out:此模块作为防盗模块时的开关量输出脚(测距时不用);5.GND:电源地端。

模块时序图:4.直流电机驱动模块直流电机驱动模块选用L298N作为控制芯片。

L298N是ST公司生产的一种高电压、大电流的电机控制芯片。

基于51单片机的超声波避障小车设计-毕业论文

基于51单片机的超声波避障小车设计-毕业论文

基于51单片机的超声波避障小车设计-毕业论文内蒙古科技大学本科生毕业设计说明书(毕业论文)题目:基于单片机的超声波避障小车设计学生姓名:祝伟泰学号:1267112115 专业:测控技术与仪器班级:测控2012-1指导教师:燕芳副教授内蒙古科技大学毕业设计说明书(毕业论文)基于单片机的超声波避障小车设计摘要随着科学技术的飞速发展,人们对智能汽车的研究有增无已,智能车已然成为以后科学技术发展的新思路和新方向。

智能车可以按照预先设定的模式在一个环境里自动的运作,不需要人为的操控,可应用于路面检测,科学勘探,智能温度测量等。

本设计中制作的智能小车(又称轮式机器人)是本人在综合应用了本科所学的专业知识后设计出的一台智能小车,它具有超声波测距,自动避障,同步测速等功能。

虽然超声波避障小车只是智能车领域中的冰山一角,但是它却也是智能车中一个典型的代表。

麻雀虽小五脏俱全,本次设计的超声波避障小车,用STC15单片机作为核心控制器,设计出一种可以自动避障,并能同步实现速度和距离的测量以及显示的智能小车。

避障和测距通过超声波测距模块实现,并加入光电码盘测速模块从而实现测速功能,小车驱动由L298N驱动电路完成,数据的显示用LCD1602实现。

关键词:STC15单片机;超声波;避障;测速I内蒙古科技大学毕业设计说明书(毕业论文)Ultrasonic obstacle avoidance car design basedon Micro Computer UnitAbstractWith the development of science and technology, People have increased the research of smart car.Smart car has become the new way of thinking and a new direction for after the development of science and technology . Smart cars can be according to the preset mode automatically in an environment of operation, without the need of human control, can be applied to road testing, scientific exploration, intelligent temperature measurement, etc.This paper discusses the intelligent car (also known as wheeled robot) is I after summarized the major undergraduate course design a smart car, it has the ultrasonic distance measurement, automatic obstacle avoidance, synchronous speed, and other functions. Although ultrasonic obstacle avoidance car is just the tip of the iceberg in the field of smart car, but it is also a typical representative in intelligent vehicles. The sparrow is small all-sided, the design of ultrasonic obstacle avoidance car, use STC51 single-chip microcomputer as the core controller, design a kind of can automatic obstacleavoidance, and can realize the speed and distance measurement simultaneously and the smart car show. Obstacle avoidance and the distance by ultrasonic ranging module, and add light code disc speed measuring module and function of speed of the car drive by L298N drive circuit is completed, through LCD1602 display of measured data.Keywords: STC15;Ultrasonic sensors; avoidance; speedII内蒙古科技大学毕业设计说明书(毕业论文)目录摘要 (I)Abstract (II)1.1课题研究背景和意义 (1)1.2智能汽车的发展概述 (1)1.3 课题研究技术要求与主要内容 ....................................... 2 第二章总体方案设计 (4)2.1总体方案设计 (4)2.1.1具体设计思路 .................................................52.2系统各模块的设计方案 (6)2.2.1控制核心模块的选择方案论证 ...................................62.2.2主电路板的方案论证 ...........................................67 2.2.3测距避障传感器的方案论证 .....................................2.2.4 测速模块的选择方案论证 ......................................89 2.2.5电机驱动选择方案论证 .........................................2.2.6 显示装置的选型方案论证 ......................................92.3 本章小结 ........................................................11 第三章硬件电路设计 (11)3.1 STC15单片机简介 .................................................123.1.1 引脚说明 ...................................................123.1.2 特别管脚说明 ...............................................133.1.3 中断说明 ...................................................133.2 时钟电路和复位电路 (14)3.3电源电路部分 .....................................................143.4超声波传感器 .....................................................143.4.1 超声波测距的物理性质 .......................................153.4.2 超声波测距的原理 ...........................................153.4.3超声波测距过程分析 ..........................................163.5 电机驱动电路 ....................................................17III内蒙古科技大学毕业设计说明书(毕业论文)3.5.1 电机驱动电路分析 ...........................................183.5.2 PWMD调速分析 ...............................................193.6 LCD1602显示电路设计 .............................................193.6.1 LCD1602显示 ................................................193.6.2 LCD1602引脚功能说明 ........................................203.6.3 1602LCD的指令说明及时序: (20)3.7 光电测速模块 (22)3.8 报警电路设计 ..................................................... 23 第四章软件设计部分 (24)4.1 主程序的设计 (24)4.2 超声波测距程序设计 (25)4.3 避障程序设计 (26)4.4 PWM程序设计 .....................................................2728 4.5 显示子程序设计 ...................................................4.7 报警程序设计 (29)系统调试 .........................................................30 第五章5.1概述 .............................................................305.2 各模块的调试 (30)5.2.1 LCD的调试 ..................................................305.2.2光电码盘调试 ................................................315.2.3 蜂鸣器报警调试 .............................................315.2.4 电机及驱动调试 .............................................325.2.5 超声波模块调试 .............................................32 总结 .................................................................... 33 参考文献 (34)附录A 实物图 ............................................................ 36 附录B 源程序 (37)致谢 ....................................................................38IV内蒙古科技大学毕业设计说明书(毕业论文)第一章绪论1.1课题研究背景和意义随着21世纪的到来科学技术的发展步入了一个高速发展的阶段,智能化也普及了各个领域。

超声波避障小车

超声波避障小车

《单片机课程设计》设计报告设计课题:超声波避障小车专业班级:电子信息工程121班学生姓名:范东耀指导教师:蔡岗设计时间: 2015年7月8日赣南师范学院科技学院数学与信息科学系超声波避障小车一、设计任务与要求1.设计任务:1、采用超声波模块实现小车自动避障功能。

2、用LCD1602显示当前的障碍距离。

2.扩展部分:测出当前小车的行驶速度,并用LCD1602显示当前速度。

二、方案设计与论证1设计方案系统采用51单片机作为核心控制单元用于智能车系统的控制,驱动板则以L289N驱动芯片为核心,应用超声波模块及光电传感器和LCD液晶模块,成功的实现了小车的避障、测速和显示功能这三大功能。

在超声波检测到障碍物之后,主控芯片根据距离值控制电机的转动,在与障碍物距离较大的情况下,快速前进,在与障碍物距离较小但未到达临界转弯方向值得时候,慢速前进。

在与障碍物距离较近时,小车转弯,在与障碍物很近时,小车后退转弯,来进行避障。

测速传感器为光电测速传感器,在单位时间内计算脉冲的次数,然后再进行转换和处理即得到所测量的速度。

通过软件pwm进行调速。

通过LCD1602显示障碍距离及当前的小车行驶速度。

2 原理框图简要原理框图如图1所示。

图1 系统原理框图三、电路设计1 电路设计(1)超声波测距模块:超声波测距的原理是首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。

时序图如图1所示。

由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。

超声波测距原理图如图2所示。

哈工大 单片机课程设计超声波避障小车

哈工大 单片机课程设计超声波避障小车

H a r b i n I n s t i t u t e o f T e c h n o l o g y课程设计说明书(论文)设计题目:超声波避障小车院系:电气工程及自动化学院班级:XXXXXXX设计者:XXX学号:XXXXXXXXXX指导教师:于彤彦设计时间:2013.09.02.-2013.09.11哈尔滨工业大学哈尔滨工业大学课程设计任务书开题报告一.立项依据1.1课题目的●进一步熟练掌握单片机的使用方法、提高程序的编写能力●掌握单片机系统外扩器件的连接与使用●掌握软件和硬件调试的基本技巧与方法●提高器件说明书以及时序过程的阅读、理解能力1.2立项目的(1)设计一辆利用超声波传感器来实现避障功能的小车,使小车对其运动方向受到的阻碍作出各种躲避障碍的动作。

(2)进一步学习单片机原理及其应用,了解超声波传感器的工作原理。

1.3立项意义在当今社会,汽车成为了越来越普遍,人们不可缺少的交通工具。

但汽车的不断增加,随之而来就是越来越多的交通事故。

交通事故成为了现在越来越严重的安全隐患。

所以随着汽车工业的快速发展,我们必须加强对汽车安全性能的考虑。

所以,智能汽车概念应运而生,他既是汽车产业的机遇也是汽车产业的挑战。

汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。

超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。

我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。

二.课题设计2.1设计要求(1)在车前方没有障碍物时,小车沿直线向前走。

(2)在车前方有障碍物时,小车能避开障碍物,避障方法如下:①先向左边转90度,如果前面没有障碍物,再沿直线向前走;②如果前面仍有障碍物,则向右转180度,如果前面没有障碍物,则直线行走;③如果前面仍有障碍物,则向右90度,然后直线行走2.2设计原理该智能车系统可分为四个主要模块:传感器避障模块,单片机主控核心模块,电机驱动模块,USB下载模块。

超声波避障小车.

超声波避障小车.

超声波避障小车项目研究报告项目组成员:计科专业0901 余恒洋计科专业0901吴林生医专业0902 史思总“智能机器人”创新实践班2011年5月20日摘要Mega16是A VR系列单片机里应用比较广泛的一款,在自动控制领域里享有很高的价值,以其易用性和多功能性受到了广大电子设计及爱好者的好评。

本次设计主要是利用arduino板、超声波传感器和L298N完成避障小车的制作,以ATmega16为主控芯片,利用超声波对距离的检测将前方的障碍探测出来并且通过超声波传回的数据进行判断,然后ATmega16发出指令控制电机的转动。

关键词:超声波传感器避障小车 ATmega16目录摘要 (II)1绪论.................................................................................................................... - 1 -1.1 项目研究背景及意义 ................................................................................. - 1 -1.2 项目主要研究内容 ..................................................................................... - 1 -2总体设计方案及论证........................................................................................ - 2 -2.1 总体方案设计 ............................................................................................. - 2 -2.2 硬件设计 ..................................................................................................... - 2 -2.2.1 电源设计............................................................................................. - 2 -2.2.2 电机驱动设计..................................................................................... - 3 -2.2.3 超声波测试模块................................................................................. - 4 -2.2.4 主控系统设计..................................................................................... - 5 -2.3 软件设计 ..................................................................................................... - 5 -2.3.1 直流电机控制模块............................................................................. - 5 -2.3.2 超声波探测模块................................................................................. - 7 -2.4 软件与硬件的整合 ................................................................................... - 10 -2.4.1 调试超声波模块............................................................................... - 10 -2.4.2 电机调试........................................................................................... - 10 -3测试.................................................................................................................. - 11 -4结果分析.......................................................................................................... - 12 -5总结.................................................................................................................. - 13 -6参考文献.......................................................................................................... - 14 -7附录................................................................................................................ - 15 -1绪论1.1项目研究背景及意义随着汽车工业的快速发展,关于汽车的研究也越来越受到人们的关注。

毕业设计论文智能超声波避障小车

毕业设计论文智能超声波避障小车

编号:毕业设计(论文)说明书题目:智能超声波避障小车系别:电子工程系专业:电子信息工程题目类型:☐理论研究☐实验研究☑工程设计☐工程技术研究☐软件开发☐应用研究摘要随着当今社会智能化越来越高,智能性交通工具的改善是必不可确少的,由于交通工具的普及,由于驾驶员的长时间驾驶引起精神注意力不集中而发生许多严重的交通事故比比皆是,所以智能车的诞生是必然的,它致力于提高汽车的安全性、适应性、舒适性、和提升良好的人车交互界面。

自主智能寻迹避障小车是通过单片机、传感器、信号处理器、电机驱动以及自动控制等技术来实现环境感知和自动行驶相结合的高新技术综合体,随着不断提高企业生产技术以及不断加深对自动化技术的要求,智能车已广泛的应用于许多工业部门。

可以说它已日益深入到社会和工业的各个方面,例如:智能车在物流运输方面的应用;智能车在军事领域的应用;智能车在社会生活中的应用;智能车在智能运输系统上的应用等等。

这些应用可以使社会上正在面临各种各样的问题得以有效解决,对于城市公共交通服务质量的提高,缓解各地交通拥堵,减轻交通管理,道路建设压力起到积极的推动作用。

在我国高科技水平的日益提高的同时,工业自动化进程也在不断地推进,智能小车能够通过自动采取一些躲避障碍物的措施,有效避免交通事故的发生,同时也被广泛应用于各种玩具和其他产品的设计中,极大地丰富了人们的生活。

本次设计主要是利用ATmega16单片机,超声波传感器、红外线传感器和L298N完成避障小车的制作。

以ATmega16为主控芯片,利用超声波传感器对距离的检测,将前方障碍探测出,并且通过超声波的传回数据以及红外线传感器对小车两侧的障碍物位置的确定,进行判断,1602液晶显示所测距离,然后由ATmega16单片机发出指令,控制电机转动,电机驱动采用常用的PWM方式进行电机的调速控制。

关键词:智能小车;单片机;超声波;避障AbstractAs intelligent in today's society more and more high, the improvement of the intelligent transportation is will not do less, due to the popularity of traffic tools, because the driver from driving for a long time of the spirit of inattention and many serious traffic accidents, so the birth of smart cars is inevitable, it aims to improve vehicle safety, adaptability, comfort, and promote good interactive interface, autonomous intelligent tracing car obstacle avoidance is by single-chip computer, sensor, signal processors, motor drive and automatic control technology to realize environmental awareness and the combination of autonomous driving technology, along with the continuously improve enterprise production technology as well as the growing demand for automation technology, intelligent vehicle has been widely used in many industrial sectors. It has increasingly deep into the social and industrial aspects, such as: intelligent car applications in logistics; Smart car in the field of military application; Smart car in the application of social life.High-tech level rising in our country at the same time, industrial process automation is in constant propulsion, smart car can automatically take some measures to avoid obstacles, effectively avoid the happening of traffic accident, but also are widely used in the design of all kinds of toys and other products, greatly enriched people's life.This design mainly use ATmega16 single chip microcomputer, ultrasonic sensors, infrared sensors and L298N complete obstacle avoidance car production. ATmega16 as main control chip, using ultrasonic sensors to the detection of the distance, will be in front of the obstacle detection, and returned by ultrasonic and infrared sensors data for determining obstacles on either side of the car position, judge, 1602 liquid crystal display measured distance, and instructions issued by the ATmega16 single chip microcomputer to control motor rotation, the motor driver uses the commonly used PWM motor speed control in the form of control.Key words :intelligent car; Single chip microcomputer; Ultrasound; Obstacle avoidance目录引言 (1)1 系统设计 (1)1.1 任务要求 (1)1.2 总体设计 (1)2 方案论证 (2)2.1 系统控制模块设计方案论证 (2)2.2 电机的选择方案论证 (3)2.3 避障模块设计方案论证 (4)2.4 显示模块设计方案论证 (5)2.5 直流调速方案设计 (5)2.6 电源模块设计方案论证 (5)3 元器件介绍 (6)3.1 AVR单片机主控芯片介绍 (6)3.2 L298N驱动芯片 (6)3.2.1L298N驱动芯片介绍 (6)3.2.2L298N驱动芯片特点 (6)3.3 直流电机 (6)3.4 超声波传感器 (7)3.4.1超声波传感器概述 (7)3.4.2接口说明 (8)3.4.3超声波测距原理 (8)3.5 光电传感器 (8)3.6 LCD1602液晶显示 (9)3.6.1液晶显示LCD实物图 (9)3.6.2液晶显示原理 (9)3.6.3管脚功能 (9)4 系统单元电路的设计 (10)4.1 超声波收发电路 (10)4.2 红外线收发电路 (10)4.3 单片机主控电路 (11)4.4 电源电路 (11)4.5 LCD1602显示电路 (12)4.6 电机驱动电路 (13)4.6.1直流电机H 桥驱动方案的选择 (14)4.6.2PWM调速原理 (14)4.7 光警示电路 (16)4.8 单片机复位电路 (16)4.9 单片机时钟震荡电路 (17)5 软件设计 (18)5.1 主程序 (19)5.2 避障子程序 (19)5.3 电机驱动子程序 (20)5.4 显示子程序 (21)5.5 测量距离子程序 (23)5.6 光警示子程序 (24)6 调试与仿真 (24)6.1 调试仿真工具Proteus介绍 (24)6.2 硬件的制作与调试 (26)6.3 电路与程序调试过程 (28)6.3.1电路的仿真调试 (28)6.3.2电路的调试 (28)7 结论 (30)谢辞 .......................................................................................... 错误!未定义书签。

超声波避障小车设计毕业设计

超声波避障小车设计毕业设计

摘要80C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。

这里介绍的是如何用80C51单片机来实现长春工业大学的毕业设计,该设计是结合科研项目而确定的设计类课题。

本系统以设计题目的要求为目的,采用80C51单片机为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。

整个系统的电路结构简单,可靠性能高。

实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。

采用的技术主要有:(1)通过编程来控制小车的速度;(2)传感器的有效应用;(3)新型显示芯片的采用关键词80C51单片机、光电检测器、PWM调速、电动小车TitleAbstract80C51 is a 8 bit single chip computer.Its easily useing and multi-function suffer large users. This article introduce the CCUT graduation design with the 80C51 single chip copmuter.This design combines with scientific research object. This system regard the request of the topic, adopting 80C51 for controling core,super sonic sensor for test the hinder.It can run in a high and a low speed or stop automatically.It also can record the time ,distance and the speed or searching light and mark automatically The electric circuit construction of whole system is simple, the function is dependable. Experiment test result satisfy the request, this text emphasizes introduced the hardware system designs and the result analyse.The adoption of technique as:(1)Reduce the speed by program the engine;(2)efficient application of the sensor;(3)The adoption of the new display chip.Keywords 80C51 single chip computer、light electricity detector、PWM speed adjusting毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

超声波避障小车研究报告

超声波避障小车研究报告

超声波避障小车研究报告一、引言随着科技的不断发展,智能小车在各个领域的应用越来越广泛。

其中,超声波避障小车作为一种具有自主避障功能的智能设备,引起了人们的极大关注。

本文将对超声波避障小车的工作原理、硬件组成、软件设计以及实际应用进行详细的研究和分析。

二、超声波避障小车的工作原理超声波避障小车主要依靠超声波传感器来检测周围环境中的障碍物。

超声波传感器通过发射超声波并接收反射回来的声波,根据声波的传播时间和速度来计算障碍物与小车之间的距离。

当检测到障碍物距离小于设定的安全距离时,小车会采取相应的避障措施,如转向、减速或停止。

超声波在空气中的传播速度约为 340 米/秒。

传感器发射超声波后,开始计时,当接收到反射波时停止计时。

根据时间差和传播速度,可以计算出障碍物的距离:距离=(传播时间×传播速度)/ 2 。

三、硬件组成(一)控制模块控制模块是小车的核心,通常采用单片机,如 Arduino 或 STM32 等。

它负责接收传感器的数据、处理信息并控制电机的运行。

(二)超声波传感器超声波传感器用于检测障碍物的距离。

常见的超声波传感器有HCSR04 等,其工作电压一般为 5V,测量距离范围在 2cm 至 400cm 之间。

(三)电机驱动模块电机驱动模块用于控制小车的电机转动,实现前进、后退、转向等动作。

常用的电机驱动芯片有 L298N 等。

(四)电机小车通常使用直流电机作为动力源,根据实际需求选择不同规格的电机。

(五)电源模块为整个系统提供稳定的电源,一般使用电池组,如锂电池或干电池。

四、软件设计(一)编程语言常用的编程语言有 C、C++等。

(二)主程序流程1、系统初始化,包括设置单片机的引脚、初始化传感器和电机驱动模块等。

2、循环检测超声波传感器的数据。

3、根据检测到的障碍物距离,判断是否需要采取避障措施。

4、控制电机的运行,实现避障动作。

(三)避障算法常见的避障算法有:1、简单阈值法:当障碍物距离小于设定的阈值时,采取避障动作。

超声波避障智能小车

超声波避障智能小车
超声波避障智能小车
目录
01 一、研究背景
03 三、设计制作
02 二、技术原理 04 四、实验结果
目录
05 五、实验分析
07 参考内容
06 六、结论
随着科技的不断发展,自动驾驶技术成为了人们的热点。而超声波避障智能 小车,作为自动驾驶技术的一种,具有独特的技术优势和应用前景。本次演示将 介绍超声波避障智能小车的研究背景、技术原理、设计制作、实验结果以及未来 改进方向。
一、系统设计
1、硬件设计
智能小车的硬件主要由以下几个部分组成:单片机、红外线传感器、超声波 传感器、电机驱动、电源和车轮。其中,单片机是整个系统的核心,负责处理传 感器数据和控制电机驱动。红外线传感器和超声波传感器用于感知周围环境中的 障碍物,并将数据传输给单片机。电机驱动部分负责根据单片机的指令来控制小 车的运动。最后,电源为整个系统提供能量,车轮则是小车移动的关键部件。
2、软件设计
智能小车的软件部分同样重要。在单片机上运行的程序需要能够处理传感器 数据、判断是否遇到障碍物、计算路径并控制电机驱动。具体的程序流程包括: 初始化各个模块、读取红外线传感器和超声波传感器的数据、判断是否遇到障碍 物、根据障碍物的位置计算出最佳的避障路径、控制电机驱动等。
二、实验结果与分析
在完成硬件和软件的设计后,我们进行了一系列实验来验证智能小车的性能。 实验结果表明,基于单片机控制的红外线与超声波混合避障智能小车能够在各种 环境下有效地感知障碍物,计算出最佳的避障路径,并成功避开障碍物。
然而,我们也发现了一些问题。例如,红外线传感器的响应速度较慢,可能 会在小车遇到快速移动的障碍物时无法及时反应。此外,超声波传感器的精度受 到环境噪声的影响较大,可能会对避障效果产生一定的影响。针对这些问题,我 们提出了改进方案,包括优化红外线传感器的响应速度和采用更先进的滤波算法 来降低超声波传感器的环境噪声干扰。

超声波避障小车设计

超声波避障小车设计

超声波避障小车设计引言:随着科技的不断发展,人们对机器人的需求越来越大。

超声波避障小车是一种能够利用超声波测距技术进行环境感知和避障的智能机器人。

本文将介绍超声波避障小车的设计方案及其原理、实现和应用。

一、设计方案:1.1硬件设计:1.1.1小车平台设计:小车平台应具备良好的稳定性和可扩展性,可以根据需要添加其他传感器或执行器。

常见的平台材料有金属和塑料,可以根据实际需求选择适合的材料。

1.1.2驱动电机选择:驱动电机应具备足够的功率和转速,以保证小车的运动能力。

一般可以选择直流无刷电机或步进电机。

1.1.3超声波传感器安装:超声波传感器通过发射和接收超声波信号,实现对周围环境的测距。

传感器应安装在小车前方,可以通过支架或支架固定在小车上。

1.2软件设计:1.2.1运动控制程序:运动控制程序通过控制驱动电机的转速和方向,实现小车的前进、后退、转弯等运动。

可以使用单片机或开发板来编写控制程序。

1.2.2避障算法:避障算法是超声波避障小车的核心功能。

当超声波传感器检测到前方有障碍物时,小车应能及时做出反应,避免与障碍物碰撞。

常见的避障算法包括简单的停止或转向,以及更复杂的路径规划算法。

二、工作原理:超声波避障小车的工作原理是通过超声波测距模块对周围环境进行测量和感知。

超声波传感器发射超声波信号,当信号遇到障碍物后会反射回传感器,通过测量反射时间可以计算出距离。

根据测得的距离,小车可以判断是否有障碍物,并采取相应的措施进行避障。

三、实现步骤:3.1搭建小车平台:根据设计方案搭建小车平台,安装驱动电机和超声波传感器。

3.2连接电路:将驱动电机和超声波传感器与单片机或开发板连接,建立电路连接。

3.3编写控制程序:利用编程语言编写运动控制程序,实现小车的基本运动功能。

3.4设计避障算法:根据需求设计避障算法,实现小车的避障功能。

3.5调试和测试:对小车进行调试和测试,确保其正常工作。

四、应用领域:超声波避障小车在工业自动化、家庭服务、教育培训等领域具有广泛的应用前景。

超声波避障小车结题报告

超声波避障小车结题报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y课程设计说明书(论文)设计题目:超声波避障小车院系:电气学院自动化测试与控制系班级:设计者:学号:指导教师:周庆东设计时间:9.2~9.13哈尔滨工业大学课程设计考核表题目:超声波避障小车学生姓名:班级:学号:实验部分考核总结报告评分总成绩:指导教师签字:结题报告1课题完成情况本超声波避障小车的设计基于单片机原理和传感器原理,以51单片机为主控芯片,采用直流电机为驱动元件,通过软件编程制作了一整套结构完整,功能模块化,反应较为灵敏的超声波避障小车。

经过对该避障小车的避障测试实验,实验结果证明该避障小车能够很好的按照预期完成避障动作,并且能够快速运动灵敏避障,效果良好,运行稳定性较好。

预期的目标都能够实现:(1)在车前方没有障碍物时,小车沿直线向前走。

(2)在车前方有障碍物时,小车能避开障碍物,避障方法如下:①先向左边转90度,如果前面没有障碍物,再沿直线向前走;②如果前面仍有障碍物,则向右转180度,如果前面没有障碍物,则沿直线向前行走;③如果前面仍有障碍物,则向右90度,然后直线行。

但是该超声波避障小车还存在着许多的不足,比如说只能对正前方一定角度内进行探测,使用的是一路超声波而不是多路超声波探测,并且为了简化,默认的只是向同一个方向转弯等,这些都是有待进一步发展和提高的。

2 所遇问题及解决方案首先,我们对硬件的原理不够明白,在此之前超声波传感器并没有接触使用过,课程设计指导书上介绍的并不详细,我们利用课后时间查了更加详细的资料,对其做了近一步的了解。

其次,在烧写完程序,通电之后,小车不停地旋转,旋转次序与设计的避障旋转次序一致,说明子函数“getx()”返回的Dis 的值一直小于10. 出现这个结果的问题是子函数“getx()”里面的子函数delay_nus(1),因为delay_nus(1)的实现的延时时间实际上不是1us,因为delay_nus()函数里面有这样的语句“i=i/10”,这样实际上i就等于0;为了解决这个问题我们重新编写了一个延时函数delay_nus1(1),结果小车正常运行。

超声波避障小车程序设计

超声波避障小车程序设计

超声波避障小车程序设计/**************************************** ***************************************** **************************///5路超声波避障实验:51单片机+ HC-SR04超声波///**************************************** ***************************************** **************************/#include <AT89x52.H> //器件配置文件#include <intrins.h> #defineRX1 P3_6//小车左侧超声波HC-SR04接收端#define TX1 P1_7 //发送端#define RX2 P3_3//左前方超声波#define TX2 P0_2#define RX3 P2_4 //正前方超声波#define TX3 P2_5#define RX4 P3_5 //右前void Count2() //计算函数{ while(!RX2); //当RX2为零时等待TR0=1; //开启计数while(RX2); //当RX2为1计数并等待TR0=0; //关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S2=(time*1.7)/100; //算出来是CM }void Count3() //计算函数{ while(!RX3); //当RX3为零时等待TR0=1; //开启计数while(RX3); //当RX3为1计数并等待TR0=0; //关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S3=(time*1.7)/100; //算出来是CM }void Count4() //计算函数{ while(!RX4); //当RX4为零时等待TR0=1; //开启计数while(RX4); //当RX4为1计数并等待TR0=0; //关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S4=(time*1.7)/100; //算出来是CM }void Count5() //计算函数{while(!RX5); //当RX5为零时等待TR0=1; //开启计数while(RX5); //当RX5为1计数并等待TR0=0; //关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S5=(time*1.7)/100; //算出来是CMvoid leftrun(void) {push_val_left=20;push_val_right=20;Left_moto_back //左电机往后走Right_moto_go //右电机往前走}/************************************** **********************************/ //右转void rightrun(void){push_val_left=20;push_val_right=20;Left_moto_go //左电机往前走Right_moto_back //右电机往后走}/************************************** **********************************/ //停止void stoprun(void){Left_moto_Stop //左电机停Right_moto_Stop //右电机停}/************************************** **********************************/ /*PWM 调制电机转速*/ /**** ***************************************** ***************************//*左电机调速*/ /*调节push_val_left的值改变电机转速,占空比*/void pwm_out_left_moto(void){if(Left_moto_stop){ if(pwm_va l_left<=push_val_left){ Left_mo to_pwm=1; }else {Left_moto_pwm=0;}if(pwm_val_left>=20)pwm_val_left=0;}else {Left_moto_pwm =0; } } /******************************************************************/ /*右电机调速*/void pwm_out_right_moto(void) { if(Right_moto_stop){ if(pwm_val_right<=pu sh_val_right){ Right_moto_pwm =1;}else {Right_moto_pwm=0; } if(pwm_val_right>=20)pwm_val_right=0; }else{ Right_moto_p wm=0; } }/************************************** ******************/void timer0() interrupt 1 / /T0中断{ }/************************************** *************/ ///*TIMER1中断服务子函数产生PWM信号*/void timer1()interrupt 3{ TH1=(65536-1000)/256; //1ms定时TL1=(65536-1000)%256;timer++;pwm_val_left++;pwm_val_right++;pwm_out_left_moto();pwm_out_right_moto(); }/************************************** ******************* ****************** ****************************************/void main(void){TMOD=0x11; //设T0为方式1,GATE=1;TH0=0;TL0=0;TH1=(65536-1000)/256; //1ms定时TL1=(65536-1000)%256;ET0=1; //允许T0中断ET1=1; //允许T1中断TR1=1; //开启定时器EA=1; //开启总中断while(1) {TX1=1; //开启超声波1探测delay_1ms(1);TX1=0;Count1(); //测距TX2=1;delay_1ms(1);TX2=0;Count2();TX3=1;delay_1ms(1);TX3=0;Count3();TX4=1;delay_1ms(1);TX4=0;Count4();TX5=1;delay_1ms(1);TX5=0;Count5();if(S3<20 && S1<20 && S5<20) //进入狭窄通道{ backrun(); //倒车delay_1ms(100);}else if(S3<20 && S1<S5 ) //车子与障碍物90度垂直,左边距离小右转{ rightrun(); }else if(S3<20 && S5<S1 ) //车子与障碍物90度垂直,右边距离小左转{ leftrun(); }else if(S2<20){ rightrun(); //车与障碍物呈45度角时,车的左边比车的右边距离小,右转}else if(S4<20){ leftrun(); //车与障碍物呈45度角时,车的右边比车的左边距离小,左转}else { run();} } }。

超声波避障小车程序设计

超声波避障小车程序设计

***** ***/// 5路超声波避障实验:1单片机HC-SR04 超声波/// **** ****** ** */#include 〈AT89x52、H> //器件配置文件#i nclude <intrins 、h> #define RX1P3_6// 小车左侧超声波HC—SR04 接收端#define TX1 P1_7 //发送端#define RX2 P3_3 //左前方超声波#define TX2 P0_2#define RX3 P2_4 //正前方超声波#defineTX3 P2_5#defin eRX4 P3_5 //右前方超声波#define TX4 P3_4#define RX5P3_7 //右侧超声波#defineTX5 P1_6#define Left_moto _pwm P1_5 //P WM信号端#defineRight_moto_pwmP1_4//PWM 信号端//定义小车驱动模块输入IO 口sbitIN1=P1^0 ;sbit IN2=P1^1;sbit IN 3=P1^2;sbit IN4=P1^3 ;sbitEN1=P1^4;sbit EN2=P1^5;bit Right_moto_s top=1;bit Left_ moto_ stop =1;#define Left_m oto_go { IN1=0,IN2=1,EN1=1;} // 左电机向前走#defineLeft_moto_ back {IN1=1,IN2=0,EN1=1;} //左边电机向后走#defi neLeft_moto_Stop { EN1=0;} // 左边电机停转#def ineRight _mo to_go {IN3=1,IN4=0,EN2=1;} // 右边电机向前走#define Right_moto_back {IN3=0,IN4=1,EN2=1;} //右边电机向后走#define Right_moto_ Stop { EN2=0;} // 右边电机停转unsigned charpwm_val_l eft =0;// 变量定义unsigned char push_val_left =0 ;//左电机占空比N/20unsigned char p wm_val_right=0;unsignedchar push_val_ right=0;// 右电机占空比N/20 unsigned in ttime =0; unsigned int tim er= 0;unsigned long S1=0;unsignedlong S2=0; unsigned long S3=0;unsignedlong S4=0;unsigned long S5=0;void delay_ 1m s(unsignedchar x)//1ms 延时函数,100ms 以内可用{ unsigned char i;while(x——)for (i=124;i〉0;i--); } ***** */void Count1() // 计算左侧超声波距离得函数{ while(!RX1);//当RX1为零时等待TR0=1;// 开启计数while(RX1);//当RX1为1计数并等待TR0=0; //关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S1=(time*1、7)/100;//算出来就是CM } voi dCount2()//计算函数{ while(!RX2);// 当RX2 为零时等待TR0=1;/ /开启计数while(RX2);// 当RX2 为1计数并等待TR0=0;// 关闭计数time=TH0* 256+TL0;TH0=0;TL0=0;S2=(time*1、7)/100; // 算出来就是CM } v oidCount3() // 计算函数{ whi le(!RX3);// 当RX3 为零时等待TR0=1; // 开启计数while(RX3);//当RX3为1计数并等待TR0=0;// 关闭计数time=TH0* 256+TL0;TH0=0;TL0=0;S3=(time*1、7)/100;//算出来就是CM } void Count4 ()// 计算函数{ while(!RX4); // 当RX4 为零时等待TR0=1;// 开启计数while(RX4); //当RX4为1计数并等待TR0=0; // 关闭计数time=TH0* 256+TL0;TH0=0;TL0=0;S4=(time*1 、7)/100;//算出来就是CM } void Count5 () / /计算函数{while ( !RX5); // 当 RX 5为零时等待TR 0=1; //开启计数w hil e (RX 5) ; //当 R X5为 1计数并等待TR0=0; / /关闭计数time = TH0* 256+T L 0;TH0=0;TL0=0;S5=(t i me*1 、7)/100; / /算出来就是C Mvo id left run (void ) {push _ val_left=20 ;push_va l _right=20;/ * ** * ** * * * * ******* */ // 右转/* * ** ** * * ********// * * *** * * ***/ oi d p w m _ out_l e f t_moto ( void )if (Left_moto_ s to p) fi ( pwm _ val _ left 〈=pu sh_v a l_l eft )p wm_val_left= 0 ;/ ** * * * * * * * **v oid p w m _ou t_ r i ght_m ot o ( void )** ** ** **** *** ******/ /* 右电机调速*/ Le f t_moto_ ba c k //左电机往后走 Right _mot o_go / /右电机往前走o i d r gh run (voi d)p us h va l le f t=2 0;u sh_val_r i gh t =20;Le ft _moto_go // 左电机往前走 Rig h t_mot o_ ba ck //右电机往后走/ * * ** * *** ** * ** * * * * **** */ / /停止voi d stoprun ( v o id )Left m o to_S t op // 左电机停 R ig ht_m o to_Stop // 右电机停PWM 调制 电机转/* 左电机调速*/ */ 调节 sh_val_lef t得值改变电机转速, 占空比 */Lef t m oto _ p w m=1 ;el s e Le tf _mo t o_ pwm=0;if ( pw m_ val_left 〉 =20)el se L ef t _m ot o_pwm =0;{ if(Right_moto_stop){ if(pwm_va l_right〈=push_val_r ight)Right_moto_ pwm=1;else Right_ moto_pwm=0;f(pwm_val_right〉=20)pwm_val_right=0; }else Rihg t_moto_pw m=0;/******/vo d timer0()inter pt 1 / /T0 中断{/*/ ///*TIMER1 中断服务子函数产生PWM 信号*/void timer1()interrupt 3{ TH1=(65536—1000)/256;//1ms 定时TL1=(65536-1000)%256; timer ++;pwm_val_left++; pwm_val_ri ght ++; pwm_out _left_mot o();pwm_ out_r ight_moto (); }/*** *** ******* *** *** ***** ** ***** ** ****** *** **** ** ******** ***** /void main(void){TM OD=0x11;//设T0 为方式1,GATE=1;TH0=0;TL0=0;TH1=(65536—1000)/256;//1ms 定时TL1=(65536—1000)%256;ET0=1;// 允许T0 中断ET1=1;//允许T1 中断TR1=1;// 开启定时器EA=1; //开启总中断whil e(1){TX1=1; //开启超声波1 探测delay_1ms(1);TX1=0;Count1();// 测距TX2=1;delay_1ms(1);TX2=0;Count 2()TX3=1; delay_1ms(1);TX3=0;Count3();TX4=1;delay_1ms(1);TX4=0;Count 4();TX5=1;delay_1ms (1);TX5=0;Count 5();if(S3<20 &&S1<20 && S5<20) / /进入狭窄通道{ backrun(); // 倒车delay_1ms(100);}else if(S3<20 && S1<S5 )//车子与障碍物90 度垂直,左边距离小右转{ rightrun();}elseif(S3<20 &&S5<S1)//车子与障碍物90 度垂直,右边距离小左转 { lef trun(); }else if(S2<20){ rightr un(); //车与障碍物呈45 度角时,车得左边比车得右边距离小,右转 } else if (S4<20){ leftrun();// 车与障碍物呈45 度角时,车得右边比车得左边距离小,左转 } else { run(); } } }。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

H a r b i n I n s t i t u t e o f T e c h n o l o g y课程设计说明书(论文)设计题目:超声波避障小车院系:学院班级:设计者:学号:指导教师:设计时间:哈尔滨工业大学哈尔滨工业大学课程设计任务书开题报告1绪论课题目的通过上学期单片机课程的学习,我们基本掌握了51单片机的基本使用方法,本学期开学初,单片机课程设计给了我们更大的挑战,课题的目的有以下几点。

●进一步熟练掌握单片机的使用方法、提高程序的编写能力●掌握单片机系统外扩器件的连接与使用●提高器件说明书以及时序过程的阅读、理解能力●掌握软件和硬件调试的基本技巧与方法1.1项目研究背景及意义在当今社会,汽车成为了越来越普遍,人们不可缺少的交通工具。

但汽车的不断增加,随之而来就是越来越多的交通事故。

交通事故成为了现在越来越严重的安全隐患。

所以随着汽车工业的快速发展,我们必须加强对汽车安全性能的考虑。

所以,智能汽车概念应运而生,他既是汽车产业的机遇也是汽车产业的挑战。

汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。

超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。

我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。

设计要求采用超声波模块实现小车避障功能,实现小车自动避障任务。

2主要设计内容及方案总体方案设计系统采用51单片机作为核心控制单元用于智能车系统的控制,在超声波检测到障碍物之后,主控芯片根据距离值控制直流电机的转动,在与障碍物距离较大的情况下,快速前进,在与障碍物距离较小但还未到达临界转弯方向值的时候,慢速前进。

在与障碍物距离很近需要转向避障时,方案上将尝试进行转向,来进行避障。

系统总体的设计方框图如图2-1所示。

根据以上的总体方案设计,我们进行了主程序流程图的设计,下面为所设计的主程序的流程图。

其中DIS即为小车与障碍物的距离;图错误!文档中没有指定样式的文字。

2 主程序流程图主要模块的基本原理2.1.1 超声波探测模块超声波探测模块的基本原理及使用方法如下:IO口触发,给Sin口至少5~10us的高电平,启动测量;模块自动发送8个40Khz的方波,自动检测是否有信号返回;有信号返回,通过IO口Sin输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*340)/ 2。

图2- 3 超声波探测模块时序图直流电机控制模块机器人的动作由伺服电机控制。

伺服电机与单片机接口的连接,图电机连接原理图和实际接线图,P1_0引脚的控制输出用来控制右的伺服电机,而P1_1则用来控制左边的伺服电机。

图2- 4 左、右电机连接图控制电机运动转速的是高电平持续的时间,当高电平持续时间为1.3ms时,电机顺时针全速旋转,当高电平持续时间1.7ms时,电机逆时针速旋转。

图2- 5 电机顺、逆时针旋转控制脉冲图所以可知,若令左、右车轮电机高电平持续时间为1.5ms时,小车将处于静止状态。

若令左车轮电机高电平持续时间为1.7ms,右车轮电机高电平持续时间为1.3ms时,则左车轮电机逆时针,右车轮电机顺时针,小车将会以最快的速度前进。

此时,若想改变小车的前进速度,则逐渐减小左电机的高电平时间,逐渐增加右电机的高电平时间,则可以减小车速。

同理可知,若令左车轮电机高电平持续时间为1.3ms,右车轮电机高电平持续时间为1.7ms时,则左车轮电机顺时针,右车轮电机逆时针,小车将会以最快的速度后退。

当需要转弯时,通过分析和测试我们可以知道,当小车想左转时,需令左右两轮均顺时针旋转,而当小车想右转时,需令左右两轮均逆时针旋转。

通过对直流电机模块的学习和了解,我已经了解了控制小车运动的方法。

需解决的关键问题关键问题首先是要学会使用超声波测距器件,根据老师所提供的知识,利用图像读懂超声波器件的工作时序,根据时序以及超声波测距器件的工作信号特点,并且结合单片机的定时器/计数器等功能,来顺利的完成小车对于前方障碍物距离的测量。

另一个比较关键的问题就是确定小车的避障方案,根据上方的主程序流程图,我们采用一种避障方案,在接下的设计中,我们需要对于该方案能否正确躲避障碍进行验证,并且需要不断思考,提出更多的更好的更有效的避障方案。

具体实施方案及程序2.4.1 程序初始化初始化函数中需要对定时器/计数器的模式进行设定,以及初始值的设定,流程图如下程序如下:void IO_init(void){EA=1;ET0=1;TMOD=0x11;//将T0定时器/计数器设置为16位计数模式TH0=0x00; //初始值为0TL0=0x00;TR0=0; //不开始计数}2.4.2 测距函数测距函数是本程序的比较关键的一个函数,需要根据仪器的本身特点来进行编程,流程图如下测距函数如下:void getx(unsigned char a) //测距函数{TH0=TL0=0; //初始值设置为0if(a){Sin=0; //Sin置0Sin=1; //Sin置1,并且延时一段时间,提供一个测距的触发脉冲delay_5us();Sin=0; //Sin重新置0}while(Sin);while(!Sin);//SIN信号从低电平变为高电平,此时跳出该循环TR0置1,开始计数TR0=1;while(Sin); /SIN信号从高电平变为低电平,此时跳出该循环TR0置0,停止计数TR0=0;LTime=TL0;HTime=TH0;Time=HTime*256+LTime; //将高8位乘以256加上低8位得到总值Dis=Time/(2*29); //计算出所差距离}2.4.3 主函数主函数的流程图如下主函数如下:void main() //主程序{IO_init(); //初始化while(1){getx(1); //测距if(Dis>=50) //如果距离大于50{Forward_fast(); //快速前进}else if(Dis>=10&&Dis<50) //如果距离在10与50之内{Forward_slow(); //慢速前进}else //否则,小于10,需转向避障{Left_90(); // 先左转90度getx(1); //测量距离if(Dis>=10) //如果距离大于10{Forward_slow(); //慢速前进}else //如果距离依旧小于10{Right_180(); //右转180getx(1); //测距if(Dis>=10) //如果此时距离小于10{Forward_slow(); //慢速前进}else //否则,继续调试{Right_90(); //右转90度}}}}}2.4.4 完整程序代码与注释#include<reg51.h>#include<intrins.h>sbit Sin=P1^5; //超声波模块控制端口sbit right=P1^0; //右轮控制信号sbit left=P1^1; //左轮控制信号unsigned int Dis,Time;unsigned char LTime,HTime;void IO_init(void){EA=1;ET0=1;TMOD=0x11;//将T0定时器/计数器设置为16位计数模式TH0=0x00; //初始值为0TL0=0x00;TR0=0; //不开始计数}void delay_nus(unsigned int i) //延时函数{i=i/10;while(--i);}void delay_5us() //短时间延时函数,为SIN高电平准备{_nop_();}void getx(unsigned char a) //测距函数{TH0=TL0=0; //初始值设置为0if(a){Sin=0; //Sin置0Sin=1; //Sin置1,并且延时一段时间,提供一个测距的触发脉冲delay_5us();Sin=0; //Sin重新置0}while(Sin);while(!Sin);//SIN信号从低电平变为高电平,此时跳出该循环TR0置1,开始计数TR0=1;while(Sin); /SIN信号从高电平变为低电平,此时跳出该循环TR0置0,停止计数TR0=0;LTime=TL0;HTime=TH0;Time=HTime*256+LTime; //将高8位乘以256加上低8位得到总值Dis=Time/(2*29); //计算出所差距离}void Forward_fast(void) //快速前进{left=1;delay_nus(1700);left=0;delay_nus(20000);right=1;delay_nus(1300);right=0;delay_nus(20000);}void Forward_slow(void) //慢速前进{left=1;delay_nus(1580); //减小左电机的高电平时间,增加右电机的高电平时间,减小速度left=0;delay_nus(20000);right=1;delay_nus(1420);right=0;delay_nus(20000);}void Left_90(void) //左转90度{unsigned int i=0;while(i<20){i++;left=1;delay_nus(1300); //令左、右两轮均顺时针转动left=0;delay_nus(20000);right=1;delay_nus(1300);right=0;delay_nus(20000);}}void Right_180(){unsigned int i=0;while(i<38){i++;left=1; //令左、右两轮均逆时针转动delay_nus(1700);left=0;delay_nus(20000);right=1;delay_nus(1700);right=0;delay_nus(20000);}}void Right_90() //令左、右两轮均逆时针转动{unsigned int i=0;while(i<20){i++;left=1;delay_nus(1700);left=0;delay_nus(20000);right=1;delay_nus(1700);right=0;delay_nus(20000);}}void main() //主程序{IO_init(); //初始化while(1){getx(1); //测距if(Dis>=50) //如果距离大于50{Forward_fast(); //快速前进}else if(Dis>=10&&Dis<50) //如果距离在10与50之内{Forward_slow(); //慢速前进}else //否则,小于10,需转向避障{Left_90(); // 先左转90度getx(1); //测量距离if(Dis>=10) //如果距离大于10{Forward_slow(); //慢速前进}else //如果距离依旧小于10{Right_180(); //右转180getx(1); //测距if(Dis>=10) //如果此时距离小于10{Forward_slow(); //慢速前进}else //否则,继续调试{Right_90(); //右转90度}}}}}结题报告1课题完成情况本超声波避障小车的设计基于单片机原理和传感器原理,以51单片机为主控芯片,采用直流电机为驱动元件,通过软件编程制作了一整套结构完整,功能模块化,反应较为灵敏的超声波避障小车。

相关文档
最新文档