超声波避障小车
自动避障小车工作原理
自动避障小车工作原理小伙伴们!今天咱们来唠唠超级有趣的自动避障小车。
你看那些小小的车子,在各种复杂的环境里能灵活地避开障碍物,是不是感觉特别神奇呀?自动避障小车呀,就像是一个小小的机灵鬼。
它里面最关键的部分之一就是传感器啦。
传感器就像是小车的小眼睛,有各种各样的类型呢。
比如说超声波传感器,这个东西可有意思啦。
它能发出超声波,就像小车子在喊:“前面有没有东西呀?”然后超声波碰到前面的障碍物就会反射回来,传感器就像小耳朵一样接收到这个反射波。
通过计算发出波和接收波之间的时间差,小车就能知道自己离前面的障碍物有多远啦。
就像我们玩捉迷藏的时候,通过听声音来判断小伙伴的位置一样有趣。
还有红外传感器呢。
红外传感器就像是小车发射出的小触手,它发射出红外线。
如果前面有障碍物,红外线就会被挡住然后反射回来。
小车就知道,“前面有东西挡着我啦,我得绕开。
”这种感觉就像是我们走路的时候,伸出手去摸一摸前面有没有墙一样。
如果摸到了,就赶紧换个方向走。
那小车知道前面有障碍物了,接下来该怎么办呢?这就轮到它的控制部分出场啦。
控制部分就像是小车的小脑袋,它根据传感器传来的信息做决定。
如果传感器告诉它前面的障碍物很近了,小脑袋就会说:“不行啦,得转弯啦。
”然后它就会控制小车的电机。
电机就像是小车的小脚丫,控制着小车的轮子转动。
如果要转弯,它就会让一边的轮子转得快一点,另一边的轮子转得慢一点,这样小车就自然而然地转弯啦。
就像我们走路的时候,想往左边转,就把左边的脚迈得小一点,右边的脚迈得大一点。
而且呀,这个自动避障小车的程序也很重要呢。
程序就像是给小车制定的小规则。
比如说,它规定了在距离障碍物多远的时候开始做出反应。
如果这个距离设置得太短,小车可能就会撞到障碍物上,那就像个小迷糊一样啦。
如果距离设置得太长,小车可能就会过于敏感,老是在没必要的时候转弯。
就像我们人一样,如果太胆小,看到一点点风吹草动就吓得乱跑,或者太大胆,对危险都没反应,那可都不行呢。
超声波避障小车实习报告
超声波避障小车实习报告一、实习背景及目的随着科技的不断发展,机器人技术逐渐应用于各个领域,其中智能避障小车在工业、农业、家庭等领域具有广泛的应用前景。
本次实习旨在学习并掌握超声波避障小车的设计原理与制作方法,提高自己在电子技术、嵌入式系统等方面的实践能力。
二、实习内容与过程1. 原理学习在实习开始前,首先学习了超声波避障小车的基本原理。
超声波避障小车主要是利用超声波传感器测量前方障碍物的距离,根据距离信息控制小车的行驶和转向。
通过学习超声波传感器、控制模块、电机驱动等关键部件的工作原理,为后续的实践操作打下基础。
2. 硬件选型与搭建根据实习要求,选择了AT89S51单片机作为控制核心,搭配HC-SR04超声波传感器、L293D电机驱动模块等硬件。
首先,将超声波传感器与控制模块连接,再通过电机驱动模块控制小车的行驶。
搭建过程中,注意保证电路连接的稳定性和可靠性。
3. 程序编写与调试编写程序时,首先实现超声波传感器的初始化,然后通过循环语句不断检测障碍物距离,当距离小于设定阈值时,控制小车转向。
在程序调试过程中,通过不断修改参数和逻辑,确保小车在各种环境下都能实现稳定避障。
4. 功能测试与优化在实际运行过程中,发现小车在遇到较低矮的障碍物时,避障效果不佳。
分析原因后,针对此问题进行优化,增加了一个红外传感器,用于检测地面高度,当红外传感器检测到地面时,小车进行转向。
经过多次测试,最终实现了较为理想的避障效果。
三、实习收获与反思通过本次实习,掌握了超声波避障小车的设计原理与制作方法,提高了自己在电子技术、嵌入式系统等方面的实践能力。
同时,在实习过程中,学会了如何分析问题、解决问题,培养了自己的动手能力和团队协作精神。
反思整个实习过程,认为在硬件选型和程序编写方面还有待提高。
在硬件选型方面,可以考虑使用更为先进的单片机和传感器,以提高小车的避障精度和速度。
在程序编写方面,可以尝试采用更高效的数据处理算法,减小误判和漏判的情况。
超声波避障小车实训报告
一、实训目的1. 了解超声波避障的基本原理和应用;2. 掌握超声波传感器的工作原理和操作方法;3. 学会使用单片机控制超声波传感器进行避障;4. 培养动手能力和团队协作能力。
二、实训内容1. 超声波传感器原理及特性;2. 单片机编程及驱动;3. 超声波避障系统设计;4. 小车底盘搭建及驱动;5. 超声波避障系统测试与优化。
三、实训步骤1. 超声波传感器原理及特性学习超声波传感器是一种利用超声波进行测距的传感器,其基本原理是发射超声波,接收反射回来的超声波,通过计算超声波的传播时间来得到距离。
超声波传感器具有非接触、抗干扰能力强、测量范围广等特点。
2. 单片机编程及驱动学习单片机是一种具有微处理器的嵌入式系统,用于控制电子设备。
本实训中,我们使用STC89C51单片机作为控制核心。
通过学习单片机编程,我们可以编写程序控制超声波传感器进行避障。
3. 超声波避障系统设计(1)设计思路本实训中,我们设计一款基于超声波避障的小车。
当小车遇到障碍物时,超声波传感器检测到障碍物,单片机接收到信号后,控制小车进行避障。
(2)系统组成系统主要由以下部分组成:①超声波传感器:用于检测前方障碍物;②单片机:负责处理传感器信号,控制小车行驶;③电机驱动模块:驱动小车前进、后退、左转或右转;④电源系统:为整个系统提供电力支持。
(3)系统原理当超声波传感器发射超声波时,遇到障碍物会反射回来。
单片机接收到反射回来的超声波信号后,根据超声波的传播时间计算出障碍物的距离。
当距离小于预设的安全距离时,单片机控制小车进行避障。
4. 小车底盘搭建及驱动(1)小车底盘搭建小车底盘采用4个轮子,分别连接到两个电机驱动模块上。
在底盘上安装超声波传感器,用于检测前方障碍物。
(2)电机驱动模块本实训中,我们使用L298N电机驱动模块。
该模块可以驱动两个电机,实现小车的运动控制。
5. 超声波避障系统测试与优化(1)测试在搭建好的小车底盘上,安装超声波传感器和电机驱动模块。
智能小车超声波避障原理
智能小车超声波避障原理
智能小车超声波避障原理
智能小车是一种能够自动识别环境并作出相应动作的机器人。
其中,
超声波避障技术是实现智能小车避免障碍物的重要手段之一。
超声波传感器是一种利用超声波原理工作的传感器,其工作原理类似
于蝙蝠发出超声波来探测周围环境。
当传感器发出一束超声波时,如
果有障碍物挡住了它的路径,这束超声波就会被反射回来,并被传感
器接收到。
通过计算反射回来的时间和速度,就可以得到障碍物与传
感器之间的距离。
在智能小车中,通常会使用多个超声波传感器分布在不同位置上,以
便更全面地掌握周围环境信息。
当智能小车行驶时,每个超声波传感
器都会不断地发出信号,并接收反射回来的信号。
根据接收到的信息,智能小车可以判断周围是否有障碍物,并做出相应动作。
例如,在前方有障碍物时,智能小车可以通过调整方向或减速等方式
避开障碍物。
同时,智能小车还可以根据不同的传感器反馈信息,判
断障碍物的具体位置和形状,从而更加精确地避开障碍物。
总之,超声波避障技术是智能小车实现自主避障的重要手段之一。
通过多个超声波传感器的配合和反馈信息的处理,智能小车可以更加准确地感知周围环境,并做出相应动作,从而实现自主避障。
超声波避障小车设计
该智能车系统可分为三个主要模块:单片机主控核心模块,传感器避障模块,电机驱动模块。系统主要原理是:经过超声波避障模块(即感测模块)实时监测路面情况并及时传输给单片机。由单片机主控核心模块根据感测模块给予的信息控制小车两电机转动工作状态。电机驱动模块驱动两电机转动,实现前进或者左、右转。
(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为超声波传感器。
超声波避障小车研究报告2024
超声波避障小车研究报告引言:超声波避障小车是一种基于超声波技术的智能移动装置,能够通过发射和接收超声波信号来实现避障功能。
本文将对超声波避障小车进行详细研究,包括其原理、设计和应用。
概述:超声波避障小车是一种以超声波技术为基础的智能移动装置,主要用于避免与障碍物发生碰撞。
它通过发射超声波信号并接收回波,计算出物体与小车之间的距离,在避障过程中调整方向和速度,从而实现安全移动。
正文内容:1.超声波避障小车的原理1.1超声波避障原理概述1.2超声波传感器的工作原理1.3超声波传感器的种类与选择2.超声波避障小车的设计2.1硬件设计2.1.1控制系统设计2.1.2超声波传感器布置设计2.1.3车体结构设计2.2软件设计2.2.1系统控制算法设计2.2.2超声波信号处理算法设计2.2.3状态判断与控制策略设计3.超声波避障小车的应用3.1家庭智能清洁3.2工业自动化生产线上的搬运工具3.3物流仓储场景中的无人搬运小车3.4农业领域中的自动化播种3.5无人驾驶汽车中的避障技术应用4.超声波避障小车的优缺点4.1优点4.1.1实时性强4.1.2精度较高4.1.3成本相对较低4.2缺点4.2.1受环境因素干扰较大4.2.2测距范围有限4.2.3障碍物形状复杂时易产生误判5.超声波避障小车的发展前景5.1技术趋势5.2市场需求5.3应用前景总结:超声波避障小车是一种利用超声波技术实现避障功能的智能移动装置。
它的原理是通过发射超声波信号并接收回波来测量物体与小车之间的距离,并根据距离调整移动方向和速度,以避免碰撞。
在设计方面,需要考虑控制系统、传感器布置和车体结构等因素。
在应用方面,超声波避障小车可以广泛应用于家庭清洁、工业自动化生产线、物流仓储、农业以及无人驾驶汽车等领域。
尽管超声波避障小车具有一定的优点,如实时性强、精度高和成本相对低廉,但也存在受环境因素干扰大、测距范围有限以及复杂障碍物误判等缺点。
随着技术的不断进步和市场的不断需求,超声波避障小车仍具有广阔的发展前景。
超声波避障小车实习报告
一、实习背景随着科技的不断发展,智能机器人技术在各个领域得到了广泛应用。
其中,超声波避障技术作为一种非接触式测距技术,因其具有非破坏性、高精度、抗干扰能力强等优点,在智能机器人领域具有广泛的应用前景。
本次实习,我们设计并制作了一款基于超声波避障技术的智能小车,旨在通过实践操作,提高我们的动手能力和创新能力。
二、实习目的1. 熟悉超声波避障技术的基本原理和应用。
2. 掌握超声波传感器、单片机、电机驱动器等硬件设备的使用方法。
3. 学会编写控制程序,实现小车自主避障功能。
4. 提高团队协作能力和实践操作能力。
三、实习内容1. 超声波避障原理超声波避障技术是利用超声波传感器发射超声波,当超声波遇到障碍物时,会被反射回来。
通过计算发射和接收超声波的时间差,可以计算出障碍物与传感器之间的距离。
当距离小于设定值时,控制系统会发出避障指令,使小车改变行驶方向。
2. 硬件设备(1)超声波传感器:用于检测前方障碍物距离。
(2)单片机:作为控制系统核心,负责处理数据、发出控制指令。
(3)电机驱动器:驱动小车前进、后退、左转或右转。
(4)电源模块:为整个系统提供稳定可靠的电力支持。
3. 软件设计(1)编写控制程序:根据超声波传感器检测到的距离,编写程序控制小车行驶方向。
(2)调试程序:通过调试,使小车在遇到障碍物时能够自动避障。
四、实习过程1. 硬件组装(1)根据电路图,将超声波传感器、单片机、电机驱动器等硬件设备连接到电路板上。
(2)连接电源模块,确保电路板供电正常。
2. 编写控制程序(1)编写程序实现超声波传感器数据读取、处理和避障逻辑。
(2)编写程序实现电机驱动控制,使小车按照预设逻辑行驶。
3. 调试程序(1)通过调试,使小车在遇到障碍物时能够自动避障。
(2)调整程序参数,提高小车避障精度和稳定性。
五、实习成果1. 成功制作了一款基于超声波避障技术的智能小车。
2. 掌握了超声波避障技术的基本原理和应用。
3. 提高了动手能力和编程能力。
寻迹避障小车原理
寻迹避障小车原理
小车避障就是一种无人机,它可以认出汽车前方的不同障碍物,并以
此作出响应。
它具有自主的智能,即在它看到障碍物之后,会根据障碍的
位置和距离选择合适的方法来避开它。
一种典型的小车避障就是超声波避障。
它使用超声波传感器来测量障
碍物的距离,而且能够自动识别障碍物的大小、形状和位置。
检测到障碍
物之后,小车就会根据障碍物的位置来决定向左转还是向右转,还可以前
进避开障碍物,最后回到正常的路径。
此外,超声波避障的检测距离通常
只有几厘米,所以它也可以用于小距离的避障。
另一种小车避障的解决方案是使用红外传感器。
与超声波传感器不同,红外传感器可以检测到更远距离的障碍物,而且它还可以分辨出障碍物的
形状。
因此,使用红外传感器就可以在更远的距离上检测到障碍物,从而
更好地避免碰撞。
有时候,为了更准确地让小车避障,还会使用摄像头。
摄像头可以拍
摄到前方的障碍物,从而让小车根据障碍物的形状和大小来决定避开它们
的方法。
同时,摄像头也可以用来检测前方是否有其他车辆,从而给小车
提供躲避其他车辆的能力。
最后,为了让小车自主寻找传感器能够检测到的障碍物,可以采用激
光定位系统。
(毕业论文设计)智能超声波避障小车的设计与制作(可编辑)
(毕业论文)智能超声波避障小车的设计与制作江阴职业技术学院项目设计报告项目超声波避障小车的设计与制作专业学生班级学号指导教师完成日期摘要智能小车是一种能够通过编程手段完成特定任务的小型化机器人它具有制作成本低廉电路结构简单程序调试方便等优点由于具有很强的趣味性智能小车深受广大机器人爱好者以及高校学生的喜爱本论文介绍的是具有自动避障功能的智能小车的设计与制作以下简称智能小车论文对智能小车的方案选择设计思路以及软硬件的功能和工作原理进行了详细的分析和论述经实践验收测试该智能小车的电路结构简单调试方便系统反映快速灵活设计方案正确可行各项指标稳定可靠AbstractSmart cars can be programmed to perform a specific task means the miniaturization of robot it has to make cost is low circuit simple structure convenient program test Because of it has strong interest intelligent robot car favored by the majority of the university students enthusiasts and love This paper introduces the is a automatic obstacle avoidance function of intelligent car design and production hereinafter referred to as the smart car the thesis to the intelligence of the car scheme selection design idea and the implementation of hardware and software function and working principle of a detailed analysis and discusses After practice acceptance test this intelligent car circuit structure is simple convenientdebug fast flexible system reflect correct and feasible design scheme each index is steady and reliable目录摘要IAbstract II目录III第一章绪论 111项目研究背景及意义 112项目主要研究容113设计思路114应用场合和功能2第二章总体方案 321总体方案概述 322 总体电路原理图 3第三章各模块功能介绍 431障碍物测距系统432显示模块533驱动模块1034电源模块12第四章软件设计1341 程序设计流程图1342 关键程序设计14第五章系统调试1751 调试的思路 1752 各模块的调试1753 调试心得19第六章结论与展望2061 结论 2062 展望 20致谢21参考资料22附录 231元器件清单232样机实物照片243电路原理图25相关程序26第一章绪论11项目研究背景及意义智能作为现代社会的新产物是以后的发展方向他可以按照预先设定的模式在一个特定的环境里自动的运作无需人为管理便可以完成预期所要达到的或是更高的目标本设计主要体现多功能小车的智能模式设计中的理论方案分析方法及特色与创新点等可以为自动运输机器人采矿勘探机器人家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义同时小车可以作为玩具的发展对象为中国玩具市场技术含量的缺乏进行一定的弥补实现经济收益形成商业价值超声波作为智能车避障的一种重要手段以其避障实现方便计算简单易于做到实时控制测量精度也能达到实用的要求在未来汽车智能化进程中必将得到广泛应用我国作为一个世界大国在高科技领域也必须占据一席之地未来汽车的智能化是汽车产业发展必然的在这种情况下研究超声波在智能车避障上的应用具有深远意义这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用本智能小车系统最诱人的前景就是可用于未来的智能汽车上了当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用如果汽车偏离车道或距障碍物小于安全距离时汽车就会发出警报提醒驾驶员注意如果驾驶员没有及时作出反应汽车就会自动减速或停靠于路边这样的小车还可以用于月球探测等的无人探月车帮助我们传达月球上更多的信息让我们更加的了解月球为将来登月做好充分准备这样的小车在科学考察探测车上也有广阔的应用前景在科学考察中有很多危险且人们无法涉足的地方这时智能科学考察车就能够派上用场在它上面装上摄像机代替人们进行许多无法进行的工作12项目主要研究容本设计题目为智能避障小车设计主要研究小车的避障功能小车遇到障碍物时当距离障碍物大于40cmPWM信号自增驱动电机加速小车加速前进当小于30cm时PWM信号自减驱动电机减速小车减速前进并且小车采取相应的避障措施这里探测装置必不可少因为超声波在距离检测方面的较准确定位所以采用超声波传感器作为探测装置由于超声波遇到障碍物时发生像光一样的反射和散射在经过多次发射之后再回到超声波检测端口会产生较严重的路程差从而影响对距离的检测进而影响对障碍物的较准确定位通过软件部校准优化消除外部物理条件造成的误差从而达到对障碍物的较准确定位13设计思路直流电机PWM控制系统的主要功能包括实现对直流电机的加速减速并且可以调整电机的转速能够很方便的实现电机的智能控制主体电路即直流电机 PWM 控制模块这部分电路主要由 AT89S52 单片机的 IO 端口定时计数器外部中断扩展等控制直流电机的加速减速以及转弯并且可以调整电机的转速能够很方便的实现电机的智能控制其间是通过 AT89S52 单片机产生脉宽可调的脉冲信号并输入到L298 驱动芯片来控制直流电机工作的该直流电机 PWM 控制系统由以下电路模块组成设计控制部分主要由 AT89S52 单片机的外部中断扩展电路组成直流电机PWM控制实现部分主要由电机和 L298 直流电机驱动模块组成设计显示部分LCD 数码显示部分实现对超声波测的距离的实时显示14应用场合和功能应用场合智能小车是一种能够通过编程手段完成特定任务的小型化机器人它具有制作成本低廉电路结构简单程序调试方便等优点由于具有很强的趣味性智能小车深受广大机器人爱好者以及高校学生的喜爱同时在玩具的应用上深受小朋友的青睐功能本小车使用AT89S52单片机作为主控芯片它通过超声波测距来获取小车距离障碍物的距离并且用LED显示出来当小车与障碍物的距离大于40cm时小车会沿直线前进当小车与障碍物的距离小于30cm时小车转弯以避开障碍物并且此时蜂鸣器报警在避开障碍物后小车会沿直线前进第二章总体方案21总体方案概述本小车使用AT89S52单片机作为主控芯片它通过超声波测距来获取小车距离障碍物的距离并且用LCD显示出来当小车与障碍物的距离大于40cm时小车会沿直线前进当小车与障碍物的距离小于30cm时小车转弯以避开障碍物并且此时蜂鸣器报警在避开障碍物后小车会沿直线前进简要框图如图2-1图 21简要框图22 总体电路原理图第三章各模块功能介绍31障碍物测距系统方案一超声波视觉优点价格合理夜间不受影响易于多目标测量和分类分辨率好缺点测量围小对天气变化敏感不能直接测量距离算法复杂处理速度慢方案二激光雷达MMW雷达优点夜间不受影响不受灯光天气影响缺点对水灰尘灯光敏感价格贵探测障碍的最简单的方法是使用超声波传感器它是利用向目标发射超声波脉冲计算其往返时间来判定距离的算法简单价格合理所以我们选择超声波传感器超声波测距原理首先利用单片机输出一个40kHz的触发信号把触发信号通过TRIG管脚输入到超声波测距模块再由超声波测距模块的发射器向某一方向发射超声波在发射时刻的同时单片机通过软件开始计时超声波在空气中传播途中碰到障碍物返回超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机此时单片机就立即停止计时时序图如图1所示由于超声波在空气中的传播速度为340ms根据计时器记录的时间t就可以计算出发射点距障碍物的距离即S VT2通过单片机来算出距离图31超声波测距原理32显示模块方案一用LCD显示优点辐射小显示容多低耗能散热小显示的画面稳定不闪烁缺点不适合做图图像还原不好有可视围限制方案二用LED显示优点亮度高成本低缺点不能显示汉字显示容较少对于本课题的要求我们选择LCD实现功能显示容多低功耗显示画面稳定不闪烁硬件电路设计简单字符型液晶显示模块是一种专门用于显示字母数字符号等点阵式LCD目前常用161162202和402行等的模块下面以太阳人电子的1602字符型液晶显示器为例介绍其用法一般1602字符型液晶显示器实物如图图 3211602字符型液晶显示器1602LCD主要技术参数显示容量16×2个字符芯片工作电压4555V工作电流20mA 50V模块最佳工作电压50V字符尺寸295×435 W×H mm引脚功能说明1602LCD采用标准的14脚无背光或16脚带背光接口各引脚接口说明如表所示编号符号引脚说明编号符号引脚说明 1 VSS 电源地9 D2 数据 2 VDD 电源正极10 D3 数据 3 VL 液晶显示偏压11 D4 数据4 RS 数据命令选择12 D5 数据 5 RW 读写选择 13 D6 数据 6 E 使能信号 14 D7 数据7 D0 数据15 BLA 背光源正极8 D1 数据16 BLK 背光源负极表-2-1引脚接口说明表第1脚VSS为地电源第2脚VDD接5V正电源第3脚VL为液晶显示器对比度调整端接正电源时对比度最弱接地时对比度最高对比度过高时会产生鬼影使用时可以通过一个10K 的电位器调整对比度第4脚RS为寄存器选择高电平时选择数据寄存器低电平时选择指令寄存器第5脚RW为读写信号线高电平时进行读操作低电平时进行写操作当RS和RW共同为低电平时可以写入指令或者显示地址当RS为低电平RW为高电平时可以读忙信号当RS为高电平RW为低电平时可以写入数据第6脚E端为使能端当E端由高电平跳变成低电平时液晶模块执行命令第7~14脚D0~D7为8位双向数据线第15脚背光源正极第16脚背光源负极1602LCD的指令说明及时序1602液晶模块部的控制器共有11条控制指令如表-2-2所示序号指令RS RW D7 D6 D5 D4 D3 D2 D1 D0 1 清显示0 0 0 0 0 0 0 0 0 1 2 光标返回0 0 0 0 0 0 0 0 1 3 置输入模式00 0 0 0 0 0 1 ID S 4 显示开关控制0 0 00 0 0 1 D C B 5 光标或字符移位 0 0 0 0 01 SC RL 6 置功能0 0 0 0 1 DL N F7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址8 置数据存贮器地址0 0 1 显示数据存贮器地址9 读忙标志或地址 0 1 BF 计数器地址10 写数到CGRAM或DDRAM 1 0 要写的数据容11 从CGRAM或DDRAM读数 1 1 读出的数据容表-2-2控制命令表1602液晶模块的读写操作屏幕和光标的操作都是通过指令编程来实现的说明1为高电平0为低电平指令1清显示指令码01H光标复位到地址00H位置指令2光标复位光标返回到地址00H指令3光标和显示模式设置 ID光标移动方向高电平右移低电平左移 S屏幕上所有文字是否左移或者右移高电平表示有效低电平则无效指令4显示开关控制 D控制整体显示的开与关高电平表示开显示低电平表示关显示 C控制光标的开与关高电平表示有光标低电平表示无光标 B控制光标是否闪烁高电平闪烁低电平不闪烁指令5光标或显示移位 SC高电平时移动显示的文字低电平时移动光标指令6功能设置命令 DL高电平时为4位总线低电平时为8位总线 N低电平时为单行显示高电平时双行显示 F 低电平时显示5x7的点阵字符高电平时显示5x10的点阵字符指令7字符发生器RAM地址设置指令8DDRAM地址设置指令9读忙信号和光标地址 BF为忙标志位高电平表示忙此时模块不能接收命令或者数据如果为低电平表示不忙指令10写数据指令11读数据与HD44780相兼容的芯片时序表如下读状态输入RS LRW HE H 输出D0D7 状态字写指令输入RS LRW LD0D7 指令码E 高脉冲输出无读数据输入RS HRW HE H 输出D0D7 数据写数据输入RS HRW LD0D7 数据E 高脉冲输出无表-2-3基本操作时序表读写操作时序如图和所示图 322 读操作时序图 323 写操作时序33驱动模块方案一采用ULN2003驱动它是由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成具有同时驱动7组负载的能力一般用于高速大功率驱动电路所以我们不采用这个方案方案二采用由双极性管组成的H桥电路L298N用单片机控制晶体管使之工作在占空比可调的开关状态精确调整电机转速这种电路由于工作在管子的饱和截止模式下则效率非常高H桥电路保证了可以简单地实现转速和方向的控制电子开关的速度很快稳定性也很高而且它有更强的驱动能力L298N有过电流保护功能当出现电机卡死时可以保护电路和电机等L298N有过电流保护功能当出现电机卡死时可以保护电路和电机等所以我们选择L298N下图为L298部图图33L298部原理图L298各引脚功能如下表引脚功能115 SEN1SEN2 分别为两个H桥的电流反馈脚不用时可以接地23 1Y11Y2 输出端与对应输入端IN1IN2同逻辑 4 VS 驱动电压最小值需比输入的低电平电压高25V 57 IN1IN2 输入端TTL电平兼容611 EN1EN2 使能端低电平禁止输出8 GND 地9 VSS 逻辑电源457V 1012 IN3IN4 输入端TTL电平兼容1314 2Y12Y2 输出端与对应输入端IN3IN4同逻辑表3-3-1 封装引脚及功能驱动电机的运行IO端口状态与电机制动对照表如下IN1 IN2 IN3 IN4 EN1 EN2 转速 1 0 1 01 1 正转0 1 0 1 1 1 反转 1 1 1 1 11 停止0 0 0 0 1 1 停止X X X X 0 0停止表3-3-2 IO端口状态与电机制动对照表34电源模块我们选择采用5v的独立的稳压电源优点稳定可靠且有各种成熟电路可供选用缺点各模块都采用独立电源会使系统复杂且可能影响电路电平综合电源模块的缺优点和电路的实际需求我们采用了两块独立稳压电源一块给小车的电机驱动供电一块给小车的芯片供电这样弥补了单个独立电源供电出现电力不足的情况第四章软件设计41 程序设计流程图本设计系统软件采用模块化结构由主程序、定时子程序电机驱动子程序、中断子程序显示子程序、算法子程序构成主程序流程图如图41所示图 41主程序流程图42 关键程序设计PWM产生程序设计void Timer2 void interrupt 5TF2 0RCAP2H 0x0feRCAP2L 0x33clickif click 100 click 0if click ZK1PWM1 1elsePWM1 0if click ZK2 PWM2 1elsePWM2 02超声波的发射与接受程序设计void zd3 interrupt 3TH1 0x0f8TL1 0x30timerif timer 200timer 0TX 1_nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop_TX 031602的初始化程序的设计void ini_lcd1602write_lcd1602 0x380delay 1write_lcd1602 0x0c0delay 1write_lcd1602 0x060delay 1write_lcd1602 0x010delay 141602的写程序的设计void write_lcd1602 uchar cmduchar ilcd_mangrs irw 0e 0_nop__nop_e 1_nop__nop_P0 cmd_nop__nop__nop__nop_e 051602的判忙程序的设计void lcd_mangrs 0rw 1e 1_nop__nop__nop__nop_while P00x80e 0第五章系统调试51 调试的思路本设计的智能避障小车一共分为四大模块分别是L298驱动模块超声波测距模块LCD显示模块以及蜂鸣器报警模块调试的时候我们可以把四大模块分别调试最后再把所有模块组合起来再进行最后的整机调试这样一个调试的思路52 各模块的调试521 LCD的调试首先根据电路图将显示模块焊好再用万用表检查电路是否出现短路一切都正常的情况下将LCD测试程序烧到芯片中观察LCD的显示是否正确如图521一开始可能什么都不显示这个时候我们只需调整LCD 3脚的变阻器阻值即可图 521LCD测试图522 超声波的调试超声波模块一共有四个脚一个是VCC一个是GND还有两个分别是超声波的发射和接收引脚连接电路时候只需引出四根插线分别连接到89S52的对应引脚烧制好测试程序测试结果图如522本设计四根插线分别连接到VCCGND还有发射和接收引脚分别为P30和P32口图 522超声波测试图523 蜂鸣器报警调试蜂鸣器的连接很简单只需用一个PNP管来做驱动当低电平到来时蜂鸣器发出声音当高电平到来时没有声音本设计中蜂鸣器连接到P34口如图523所示图523蜂鸣器报警电路53 调试心得通过系统的调试我们可以学到更多的知识我们也可以发现仿真和实物调试不同的地方程序设计的结果可能往往和实物调试出的结果不一样这就需要我们去思考去斟酌去改进以达到预期效果通过程序和硬件的调试我们可以更深刻的理解各功能模块之间的联系也可以明白各调试的步骤在调试的过程中我也遇到许多问题例如我在宿舍调试好小车之后带到班级时候在插上电源试图让小车跑起来时候发现超声波模块失去了作用LCD不再显示数据了后来我用电脑USB口供电发现也不可以检查了许久才发现是超声波模块上的电源线和地线的两根插线出现了断路换线之后LCD正常显示数值小车正常行驶整个调试过程需要硬件和软件结合起来调试要仔细检查电路认真思考程序硬件部分调试的步骤检查原理图连接是否正确用万用表检查是否有虚焊引脚短路现象检查原理图与上引脚是否一致680欧的电阻焊成了68千欧这使我深深感受到理论与实际间的差距在调试过程中发现插上编程器后不能烧制程序通过检查电路发现AT89S52芯片的使能端没有接VCC改好之后重新烧制发现还是不可以通过再次检查发现是共阴管的驱动芯片74LS245的引脚出现焊接错误通过这些调试提高了我检查电路的能力以及巩固了电路图的知识通过这样的设计提高了我的动手能力每天在实验室除了焊接线路板还可以上机编程使我软件调试知识也提高了本设计采用的是89S52单片机这主要是因为该单片机的稳定性比较好还可以采用其它系列的单片机比如采用陵阳单片机就可以简化编程但其稳定性不是很好62 展望1在本课题的基础上我们可以在小车的底座下面装一个吸尘装置这样就可以在小车行驶的过程中吸除一些预先放好的小纸屑2设计出两辆小车一辆小车放在另一辆的前面当前面一辆小车起动时候后面一辆小车也起动前面一辆小车转弯的时候后面一辆也跟着转弯前面一辆小车停止时后面一辆也跟着停止致谢历时三个月的毕业设计已经告一段落经过自己不断的搜索努力以及白老师的耐心指导和热情帮助本设计已经基本完成在这段时间里白老师严谨的治学态度和热忱的工作作风令我十分钦佩他的指导使我受益非浅通过这次毕业设计使我深刻地认识到学好专业知识的重要性也理解了理论联系实际的含义并且检验了大学四年的学习成果虽然在这次设计中对于知识的运用和衔接还不够熟练但是我将在以后的工作和学习中继续努力不断完善这三个月的设计是对过去所学知识的系统提高和扩充的过程为今后的发展打下了良好的基础由于自身水平有限设计中一定存在很多不足之处敬请各位老师批评指正参考资料1 负图传感器集成电路手册第一版化学工业2004590~5912华MCS-51系列单片机实用接口技术第三版1997年3红润实用自动控制科技大学1990年1月4康华光电子技术基础高等教育1983年10月5潘新民微型计算机控制技术人民邮电技术1988年3月6依军单片机微型接口技术人民邮电技术1989年3月7广弟单片机基础航空航天大学20018汉才单片机原理及其接口技术清华大学19969王毅单片机器件应用手册人民邮电1995附录1元器件清单序号元件名称数量参数 1 AT89S52单片机12 超声波模块 13 L298n 14 智能避障小车底盘 15 蜂鸣器 16 LCD液晶屏 1 2样机实物照片3电路原理图相关程序includeincludedefine uchar unsigned chardefine uint unsigned intunsigned char isbit rs P26 定义引脚sbit rw P25sbit e P27sbit TX P30 触发信号引脚sbit FM P34sbit PWM1 P36 pwm信号输出sbit PWM2 P37static char click 0unsigned char ZK1ZK2unsigned int time 0unsigned int timer 0unsigned long Sbit flag 0unsigned char code ASCII[19] 0123456789-MJU LI static unsigned char DisNum 0 显示用指针unsigned long S 0unsigned char disbuff[11] 0void Conut voidtime TH0256TL0TH0 0TL0 0S time17 100disbuff[0] 13disbuff[1] 14disbuff[2] 15disbuff[3] 16disbuff[4] 17disbuff[5] 18disbuff[6] S1000100disbuff[7] 10disbuff[8] S100010010disbuff[9] S100010 10disbuff[10] 12void delay_1 void 误差 0usunsigned char abfor b 215b 0b--for a 45a 0a--void delay uchar auchar iwhile a--for i 0i 250i_nop__nop__nop__nop_判忙void lcd_mangrs 0rw 1e 1_nop__nop__nop__nop_while P00x80e 01602的写void write_lcd1602 uchar cmduchar i 当i为0的时候为向1602写指令为1写数据lcd_mangrs irw 0e 0_nop__nop_e 1_nop__nop_P0 cmd_nop__nop__nop__nop_e 01602的初始化void ini_lcd1602write_lcd1602 0x380delay 1write_lcd1602 0x0c0delay 1write_lcd1602 0x060delay 1write_lcd1602 0x010delay 1void Timer2InterruptRCAP2H 0x0feRCAP2L 0x33ET2 1 允许T2定时器中断EA 1 打开总中断TR2 1 启动T2定时器void zd0 interrupt 1flag 1void zd3 interrupt 3 T1中断用来扫描数码管和计800MS启动模块TH1 0x0f8TL1 0x30timerif timer 200timer 0TX 1 800MS 启动一次模块_nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop__nop_TX 0void Timer2 void interrupt 5TF2 0 T2定时器发生溢出中断时需要用户自己清除溢出标记RCAP2H 0x0feRCAP2L 0x33 恢复定时器初始值clickif click 100 click 0if click ZK1PWM1 1elsePWM1 0if click ZK2 PWM2 1elsePWM2 0主函数void mainTMOD 0x19 设T0为方式1GATE 1 TH0 0TL0 0TH1 0x0f8 2MS定时TL1 0x30ET0 1 允许T0中断ET1 1 允许T1中断TR1 1 开启定时器Timer2InterruptEA 1 开启总中断ZK1 20ZK2 20ini_lcd1602while 1while INT0 0 当RX为零时等待TR0 1while INT0 1 当RX为1计数并等待TR0 0 关闭计数Conut 计算if S 40 控制加速FM 1P1 0xafZK1 ZK1-5ZK2 ZK2-5elseif S 30 控制转向FM 0ZK1 ZK15ZK2 ZK25P1 0X8Fdelay_1if ZK1 99 ZK1 1if ZK1 1 ZK1 10if ZK2 99 ZK2 1if ZK2 1 ZK2 10write_lcd1602 0x800for i 0i 10iwrite_lcd1602 ASCII[disbuff[i]]1- III -- 31 -。
超声波避障智能小车
目录
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调试和测试:对小车进行调试和测试,确保其正常工作。
四、应用领域:超声波避障小车在工业自动化、家庭服务、教育培训等领域具有广泛的应用前景。
超声波避障小车的设计书
超声波避障小车的设计书1.1立项目的(1)设计一辆利用超声波传感器来实现避障功能的小车,使小车对其运动方向受到的阻碍作出各种躲避障碍的动作。
(2)进一步学习单片机原理及其应用,了解超声波传感器的工作原理。
1.2立项意义在科学探索及紧急抢险中经常要对一些危险或人类不能直接到达的地域进行探测,这就需要用机器人来完成。
而机器人在复杂地形行进时自动避障是一项必不可少也是最基本的功能。
因此,自动避障系统的研发也就应运而生。
自动避障小车就是基于这一系统开发而成的。
随着科技的发展,对于未知空间和人类所不能直接到达的地域的探索逐步成为热门,这就使机器人自动避障功能的研发有了重大意义。
通过对自动避障小车的设计,我们可以将其运用于自动避障小车,以作为地域探索机器人和紧急抢险机器人的运动系统,让机器人在行进中自动避过障碍物。
1.3设计要求(1)在车前方没有障碍物时,小车沿直线向前走。
(2)在车前方有障碍物时,小车能避开障碍物,避障方法如下:①先向左边转90度,如果前面没有障碍物,再沿直线向前走;②如果前面仍有障碍物,则向右转180度,如果前面没有障碍物,则直线行走;③如果前面仍有障碍物,则向右90度,然后直线行走2课题设计2.1设计原理该智能车系统可分为四个主要模块:传感器避障模块,单片机主控核心模块,电机驱动模块,USB下载模块。
鉴于电机驱动模块、USB下载模块已经由实验室直接提供了,我们对于传感器避障模块和单片机主控核心模块进行了讨论。
(1)传感器避障模块。
智能车避障系统中的传感器一般分为接触型和非接触型两种,接触型相对比较简单。
这里我们使用了超声波传感器进行测量,也即非接触型传感器。
超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生震动产生的,在碰到杂质获分界面会产生显著反射从而形成反射回波,超声波传感器就是根据超声波在障碍物界面上的反射来判断检测物体的存在以及距离的。
超声波频率高,波长短,绕射现象小,方向性好,再加上信息处理简单且价格低廉,所以这里我们使用28015-PING-v1.6超声波传感器对小车行进前方路况进行探测以及判断,它能实现从3cm到1.8m距离的测量,从而识别出范围内的障碍物。
毕业论文智能超声波避障小车的设计与制作可编辑
毕业论文智能超声波避障小车的设计与制作可编辑一、绪论随着人工智能技术的不断发展,智能化的机器人越来越受到人们的关注。
而智能超声波避障小车就是其中一种。
其可以通过自动感知周围环境的障碍物,从而自主避开障碍物,实现自动化控制。
因此,设计一款智能超声波避障小车既可以满足人们对于机器人智能化的需求,也可以为未来机器自动化服务提供实用性的技术。
本文将介绍智能超声波避障小车的设计与制作。
首先,介绍超声波避障技术的原理,并详细讲解避障小车的硬件设计和软件设计。
最后,对避障小车的实现效果进行评估和总结。
二、超声波避障技术原理超声波避障技术是指利用超声波的运动特性实现物体避障的一种技术。
超声波在空气中传播速度快,同时传播能力强,能够在空气中传播500多米。
其利用超声波传播并测量回波时间的原理实现避障。
超声波避障小车需要具备两个超声波传感器:一个用于检测前方障碍物,另一个用于检测小车左右两侧障碍物。
当小车检测到前方或左右两侧的障碍物时,避障小车会停止运动,并通过电机控制实现左转或右转来避免碰撞。
三、硬件设计避障小车的硬件主要分为四个部分:车身结构、电机模块、超声波模块和电源模块。
1. 车身结构设计车身结构是汽车设计的基础,同样也是避障小车设计的基础。
车身结构可以由木板或者3D打印部件制成。
为了避免障碍物的干扰,车身需要封闭,但是保证超声波传感器可以正常工作。
2. 电机模块设计电机是小车的动力来源,因此电机的设计至关重要。
选用高扭矩的直流电机,可以保证小车在运动时的平稳性和速度。
同时,需要选用电机驱动控制芯片和电机驱动器电路,以保证电机能够按照程序控制的方向和速度旋转。
3. 超声波模块设计超声波传感器是避障小车的核心部件,能够检测前方障碍物。
超声波传感器具有测量范围远、响应快、精度高、干扰小等特点。
超声波传感器需要安装在小车前方,以便测量前方障碍物距离。
为了保证高精度的测距,需要选用高精度的模块并且将模块的定位准确。
智能超声波避障小车
智能超声波避障小车姓名:班级:学号:目录摘要 (3)一、总体方案概述 (3)二、总体电路原理图 (3)三、各模块功能介绍 (4)(一)、超声波测距模块 (4)(二)、步进电机控制模块 (5)(三)、单片机控制模块 (6)四、系统软件设计 (6)五、应用前景 (7)六、参考文献 (8)摘要:现今发达的交通在给人们带来便捷的同时也带来了许多的交通事故。
发生交通事故的因素有很多。
当然,如果我们的汽车能够更加智能,就是说事先能预测并显示前面障碍物离车的距离,当障碍物距离很近时汽车会自动采取一些措施避开障碍物,这样就能够在很大程度上避免这些事故的发生。
在本论文中,我们将会看到能够实现这一功能的智能小车。
关键字:超声波、测量、避障、单片机一、总体方案概述本小车使用一台AT89S51单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,并且用数码管实时的显示出来,在小车与障碍物的距离小于安全距离(用软件设定)时,小车会发出“在距您车前方x(数码显示的实时距离)米的地方有一障碍物,请您注意避让”的语音提示,并且拐弯,以避开障碍物,同时会点亮相应侧边的发光二极管作为提示信号。
在避开障碍物后,小车会沿直线前进。
本系统设计的简易智能小车分为几个模块:单片机控制系统、超声波路面检测系统、前进、转弯控制电机以及方向指示灯系统。
它们之间的相互关系如下图1所示。
图1:智能小车简要原理框架图二、总体电路原理图三、各模块功能介绍(一)、超声波测距模块首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。
时序图如图1所示。
由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。
智能超声波避障小车汇总
智能超声波避障小车汇总
智能超声波避障小车是一种新型的智能小车,它可以通过超声波传感器检测周
围环境,避免碰撞和撞墙。
本文将对智能超声波避障小车进行汇总,介绍其主要功能和技术特点。
主要功能
智能超声波避障小车主要具有以下功能:
•避免碰撞:通过超声波传感器检测前方障碍物的距离和位置,从而及时避免碰撞。
•自动导航:通过程序控制和超声波传感器的辅助,实现自动导航功能。
•远距离遥控:可以通过遥控器或者手机APP远程控制小车运动,控制方便,灵活性强。
•自动追踪:通过摄像头探测物体距离,实现小车自动跟随。
技术特点
智能超声波避障小车主要具有以下技术特点:
超声波传感器
智能超声波避障小车利用超声波传感器检测前方的障碍物距离和位置。
传感器
主要由发射器和接收器组成,发射器发出超声波信号,接收器接收反射波信号,并计算距离。
STM32单片机
智能超声波避障小车采用STM32单片机控制,能够实现高效的数据处理和控
制控制。
电机驱动
智能超声波避障小车通过电机进行驱动,电机通过减速器将转速降低,从而增
强扭矩,使得小车能够在不同的地形上行驶。
无线通信
智能超声波避障小车可以通过无线通信实现遥控和实时监控,通信方式包括蓝牙、WiFi等。
智能超声波避障小车是一种具有高度智能化的小型车辆,通过超声波传感器和程序控制实现自主避障和自动导航等功能。
它采用STM32单片机控制,具有高效的数据处理和控制能力,通过电机驱动和无线通信可以方便地控制和监控操作。
超声波避障小车设计
Harbin Institute of Technology课程设计说明书(论文)设计题目:超声波避障小车院系:电气工程及自动化班级:1201121设计者:张佳炜学号:1120110316指导教师:周庆东设计时间:2012.09.14-2012.09.25哈尔滨工业大学课程设计考核表题目:超声波避障小车学生姓名:张佳炜班级:1201121 学号:1120110316实验部分考核总结报告评分总成绩:指导教师签字:哈尔滨工业大学课程设计任务书开题报告1立项依据1.1立项目的(1)设计一辆利用超声波传感器来实现避障功能的小车,使小车对其运动方向受到的阻碍作出各种躲避障碍的动作。
(2)深入学习单片机原理及其应用,提高程序的编写能力。
(3)掌握单片机系统外围电路的设计,了解超声波传感器的工作原理。
(4)掌握软件和硬件调试的基本技巧与方法。
1.2立项意义汽车作为人们不可缺少的交通工具,给人类带来了极大的便利,但随着汽车的量越来越多,交通事故也越来越多。
交通事故成为了现在越来越严重的安全隐患。
我们必须加强对汽车安全性能的考虑。
随着电子技术、信息技术、网络技术的发展,智能汽车概念应运而生,将电子信息网络和汽车接合起来实现汽车的智能化,是传统汽车产业的机遇也是的挑战。
汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。
超声波具有穿透力强、方向性好、操作简单、方便、快速和安全等的特点,在很多领域有着广泛的应用前景。
超声波作为智能车避障的传感信号,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。
作为一个发展大国,应该把握未来汽车产业发展的方向,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。
2主要设计内容及方案2.1总体方案系统采用51单片机作为核心控制单元用于智能车系统的控制,在超声波检测到障碍物之后,主控芯片根据距离值控制直流电机的转动,在与障碍物距离较大的情况下,快速前进,在与障碍物距离较小但还未到达临界转弯方向值的时候,慢速前进。
智能小车超声波避障原理
智能小车超声波避障原理智能小车是一种集成了多种传感器和控制系统的智能化移动设备,能够根据预先设定的程序或实时环境信息做出相应的决策和动作。
其中,超声波传感器在智能小车中起着至关重要的作用,能够帮助小车实现避障功能。
本文将详细介绍智能小车超声波避障原理。
超声波传感器是一种利用超声波来探测周围环境的传感器,它通过发射超声波并接收回波的方式来测量距离。
在智能小车中,通常会使用多个超声波传感器来实现全方位的避障功能。
这些传感器会同时工作,不断地向周围环境发射超声波,并根据接收到的回波来判断前方是否有障碍物。
当超声波传感器发射出的超声波遇到障碍物时,会被障碍物反射回来,传感器可以根据接收到的回波的强度和时间来计算出障碍物与传感器之间的距离。
通过这种方式,智能小车就能够实时地感知到周围环境中的障碍物,并做出相应的反应。
在智能小车的控制系统中,会预先设定一套避障算法,根据超声波传感器实时获取的数据来判断小车前方是否有障碍物,并决定小车的行进方向。
当传感器检测到前方有障碍物时,控制系统会根据预设的算法来调整小车的速度和方向,从而避开障碍物并继续前行。
除了避障功能,超声波传感器还可以帮助智能小车实现其他功能,比如跟随、避障、定位等。
通过不同的传感器组合和算法设计,智能小车可以在不同的场景下实现各种复杂的任务。
总的来说,智能小车超声波避障原理是利用超声波传感器来感知周围环境中的障碍物,并根据传感器数据来调整小车的行进方向,从而实现避开障碍物的目的。
这种基于传感器和算法的智能控制方式,使得智能小车能够在复杂的环境中自主行动,展现出强大的智能化能力。
希望通过本文的介绍,读者能够更加深入地了解智能小车超声波避障原理,以及智能控制技术在移动机器人领域的应用前景。
超声波避障小车原理
超声波避障小车原理
超声波避障小车利用超声波传感器来检测周围环境,并根据检测结果做出相应的动作,以避免碰撞或与障碍物发生冲突。
该小车的原理如下:
1. 超声波传感器:小车上装有超声波传感器,它能够发射一束超声波信号,并接收它们被障碍物反射后的回波信号。
2. 超声波测距原理:超声波传感器通过测量从发射到回波返回所经过的时间来计算物体与传感器的距离。
它利用声音在空气中传播的速度和时间差来确定距离。
3. 信号处理:小车的控制系统接收到超声波传感器发送的距离信息后,对其进行处理。
根据测量到的距离,系统可以判断障碍物的位置和距离。
4. 避障动作:根据距离信息,小车的控制系统会判断是否有障碍物靠近。
如果探测到前方有障碍物靠近,系统会根据预设的程序进行响应动作,如停下、后退、转向等,以避免与障碍物相撞。
5. 反复检测:小车会不断地重复以上步骤,持续地检测周围的环境并作出适当的避障动作。
这样,即使有新的障碍物出现,小车也能及时作出响应,避免碰撞。
通过这些步骤,超声波避障小车能够实现对障碍物的检测和避免碰撞,使其能够在复杂的环境中安全移动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机课程设计》设计报告设计课题:超声波避障小车专业班级:电子信息工程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所示。
图2 超声波测距原理(2)显示模块:系统采用LCD1602显示,它不仅节省了单片机的资源,相比较数码管液晶显示更加直观、节能,同时可以直接显示字母、数字、符号等,具有灵活易操作的特性。
故采用LCD显示。
引脚功能说明:LCD1602采用标准的16脚(带背光)接口,各引脚接口说明如表1所示:表1 LCD1602引脚说明(3)电机驱动模块:本系统采用由双极性管组成的H桥电路(L298N)。
用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。
这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。
而且它有更强的驱动能力。
L298N 有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。
驱动电机的运行,I/O端口状态与电机制动对照表,如下表2所示。
表2 I/O端口状态与电机制动对照表(4)光耦传感器光耦传感器原理是传感器开孔圆盘的转轴与减速电机转轴相连,光源的光通过开孔盘的孔和缝隙反射到光敏元件上,开孔盘旋转体转一周,光敏元件上照到光的次数等于盘上的开孔数,从而测出旋转体旋转速度。
灵敏度较高,但容易受外界光源的影响。
虽然光电传感器受外界光源影响很大,但是它使用方便、安装简单,还有本设计要求的准确度不是很高,因此就选择了光耦测速传感器。
光耦测速传感器的原理图如图3所示。
图3 光耦测速传感器原理图2 主要性能参数计算当单片机的给一个20us的触发信号给超声波模块时,TRIG由低电平转换为高电平,TRIG=1,单片机开时计时,开启中断,并记录时间为T1,接收换能器等待接收回波,ECHO持续为高电平的时间为发射时间。
换能器接收回波将超声波转换为电信号,送至单片机,记录时间为T2。
超声波发射的时间为:T2-T1,C 为声速,计算发射距离为: L = (T2-T1)*C/2 。
速度的计算是通过小车轮胎的周长除以测码盘转过孔的个数,得出一个码盘孔对应的长度为1CM,通过定时器取1秒时间,1秒转过的码盘孔个数就是速度。
3程序流程图本设计系统软件由主程序﹑定时子程序、电机驱动子程序﹑中断子程序、显示子程序﹑算法子程序构成。
主程序流程图如图4所示。
图4主程序流程图四、电路制作及调试1 实物图通过以上步骤,制作出实物图。
正面图如图5所示,反面图如图6所示。
图5 实物图正面图6 实物图反面2 电路调试测试在小车的调试的过程中,碰到的最大的问题就是程序有时会跑飞,起初我觉得出现问题的原因是有以下三点,第一,程序的编写过于繁杂,数据处理和逻辑判断太多,芯片处理不过来,第二,数据经过处理后,传送出去未来得及经过处理就已经改变了值,导致芯片来不及处理而跑飞,第三,数据的类型没有定义好,导致数据的值超过定义的类型的极限。
经过几天的程序调试,我简化了程序的编写,在重要数据的传送过程中加入了延时函数,保证数据有充足的传送时间,并把各种参数定义的类型检查了几遍,结果并没有解决程序跑飞的问题。
最后我发现问题出在电源上,由于小车负载较多,电源带载能力有限,导致芯片受到干扰而跑飞,我将耗电能力较强的直流电机的电源断开,电源只给芯片和其他模块供电,程序能够良好的运行。
最后我通过在程序中加入“看门狗”的程序,判断程序是否跑飞,若程序跑飞,将软件复位。
能有效的解决程序跑飞的问题。
在做测速模块时,发现单片机的资源不够用,单片机只有两个定时器,我在做超声波测距时已经用了一个定时器的计数模式做测距,小车的PWM调速用了一个定时器。
而做测速还需要两个定时器,一个定时器做计数,计码盘转的圈数,一个定时器定1秒的时间,从而可以算出当前的小车速度。
我通过学习,了解了定时器复用,可以从PWM中的1MS定时做处理,取出1S的时间,用外部中断计码盘的圈数,再通过数据处理,可以得出小车的速度。
3 元件清单元件清单如表3所示。
表3 元件清单五参考文献[1]潘永雄.沙河.电子线路CAD实用教程(第四版)[M].西安电子科技大学出版社,2012.[2]高吉祥.电子技术基础实验与课程设计(第二版)[M].电子工业出版社,2005.[3]王港元.电子设计制作基础[M].江西科学技术出版社,2011.[4]彭介华.电子技术课程设计指导[M].高等教育出版社,2009.[5]陈伯时.电力拖动自动控制系统[M].机械工业出版社,2012.赣南师范学院科技学院2014-2015学年第二学期期末考试《单片机课程设计》成绩评定表专业:电子信息工程班级:121班学号: 1220085110 姓名:范东耀#include <AT89x51.H>#include <intrins.h>#define uchar8 unsigned char#define uint16 unsigned int#define pwm_left 70 //设置左右两边的PWM都为45sfr WDT_CONTR = 0xE1; //用sfr定义看门狗特殊功能寄存器#define RX P3_1 //收#define TX P3_0 //发#define LCM_RW P2_5 //定义LCD引脚#define LCM_RS P2_6#define LCM_E P2_7#define LCM_Data P0#define Busy 0x80 //0124用于检测LCM状态字中的Busy标识sbit tracking_right1 = P1 ^ 4; //右边电机sbit tracking_right2 = P1 ^ 5;sbit tracking_left1 = P1 ^ 2; //左边电机sbit tracking_left2 = P1 ^ 3;sbit pwm2 = P1 ^ 7;uint16 count1=0,count2=0,F=0;uint16 tmp=0;void LCMInit(void);void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Delay400Ms(void);void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,BuysC);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);unsigned char code email[] ={"juli"};unsigned char code ASCII[20] ={'0','1','2','3','4','5','6','7','8','9','.','-','M','m','/','s','S', '=','V','c'};unsigned char code A[] = {"sudu"};static unsigned char DisNum = 0; //显示用指针unsigned int time=0;unsigned long S=0;bit flag =0;unsigned char disbuff[4] ={ 0,0,0,0,}; //超声波距离值赋值进来 unsigned char disbuffsudu[4] ={ 1,2,3,4,};//速度值赋值进来void delayms(uint16 c){uint16 a,b;for(a=0;a<c;a++)for(b=0;b<113;b++);}void turn_left() //左转函数{tracking_right1 = 1;tracking_right2 = 0;tracking_left1 = 0;tracking_left2 = 0;}void big_left() //大左转函数{tracking_right1 = 1;tracking_right2 = 0;tracking_left1 = 0;tracking_left2 = 1;}void turn_right() //右转函数{tracking_right1 = 0;tracking_right2 = 0;tracking_left1 = 1;tracking_left2 = 0;}void go_straight() //直走函数{tracking_right1 = 1;tracking_right2 = 0;tracking_left1 = 1;tracking_left2 = 0;}void right_back()//右后退函数{tracking_right1 = 0;tracking_right2 = 1;tracking_left1 = 0;tracking_left2 = 0;}void left_back()//左后退函数{tracking_right1 = 0;tracking_right2 = 0;tracking_left1 = 0;tracking_left2 = 1;}void tracking(S) //避障函数{if(S<=15){right_back();delayms(10);}else if((S>15)&&(S<30)){turn_right();delayms(10);}else{go_straight();delayms(10);}}void Timer1Init(void) //pwm{TMOD &= 0x0F; //设置定时器模式TMOD |= 0x10; //设置定时器模式TL1 = 0x66; //设置定时初值TH1 = 0xFC; //设置定时初值,定时1MS TF1 = 0; //清除TF0标志TR1 = 1; //定时器0开始计时EA=1; //开总中断ET1=1; //开定时器1中断}void serve_T1() interrupt 3 //pwm{TL1 = 0x66; //设置定时初值TH1 = 0xFC; //设置定时初值count1++;if(++count2<=(pwm_left)){pwm2=1;}else if(count2<=100){pwm2=0;}else count2=0;if(1000==count1) //1s的定时{count1=0; //定时标志位清零,为下次做准备F=tmp; //F为每秒记录下来的脉冲,tmp为外部中断的个数,读取计数数据delayms(10);tmp=0;delayms(5);}}void counter(void) interrupt 0{EX0=0;tmp++; //外部中断计数delayms(10);EX0=1;}void cesu(F){disbuffsudu[1]=F/10%10; //取十位disbuffsudu[2]=F%10; //取个位DisplayOneChar(8, 1, ASCII[disbuffsudu[1]]);DisplayOneChar(9, 1, ASCII[disbuffsudu[2]]);DisplayOneChar(10, 1, ASCII[19]); //显示cDisplayOneChar(11, 1, ASCII[13]); //显示mDisplayOneChar(12, 1, ASCII[14]); //显示/DisplayOneChar(13, 1, ASCII[15]); //显示s}//写数据void WriteDataLCM(unsigned char WDLCM){ReadStatusLCM(); //检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; //若晶振速度太高可以在这后加小的延时LCM_E = 0; //延时LCM_E = 1;}//写指令void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC为0时忽略忙检测{if (BuysC) ReadStatusLCM(); //根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;}//读数据unsigned char ReadDataLCM(void){LCM_RS = 1;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);}//读状态unsigned char ReadStatusLCM(void){LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); //检测忙信号return(LCM_Data);}void LCMInit(void) //LCM初始化{LCM_Data = 0;WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1); //关闭显示WriteCommandLCM(0x01,1); //显示清屏WriteCommandLCM(0x06,1); // 显示光标移动设置WriteCommandLCM(0x0F,1); // 显示开及光标设置}//按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData){Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;X |= 0x80; //算出指令码WriteCommandLCM(X, 1); //发命令字WriteDataLCM(DData); //发数据}//按指定位置显示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData){unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1while (DData[ListLength]>0x19) //若到达字串尾则退出{if (X <= 0xF) //X坐标应小于0xF{DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符ListLength++;X++;}}}//5ms延时void Delay5Ms(void){unsigned int TempCyc = 5552;while(TempCyc--);//400ms延时void Delay400Ms(void){unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);};}void Conut(void){time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100; //算出来是CMdelayms(5);if((S>=900)||flag==1) //超出测量范围显示“-”{flag=0;DisplayOneChar(9, 0, ASCII[11]);DisplayOneChar(10, 0, ASCII[10]); //显示点DisplayOneChar(11, 0, ASCII[11]);DisplayOneChar(12, 0, ASCII[11]);DisplayOneChar(13, 0, ASCII[12]); //显示M}else{disbuff[0]=S%1000/100;//先对1000取余,再对100取整disbuff[1]=S%1000%100/10;disbuff[2]=S%1000%10%10;DisplayOneChar(9, 0, ASCII[disbuff[0]]);DisplayOneChar(10, 0, ASCII[10]); //显示点DisplayOneChar(11, 0, ASCII[disbuff[1]]);DisplayOneChar(12, 0, ASCII[disbuff[2]]);DisplayOneChar(13, 0, ASCII[12]); //显示M}}void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范{flag=1; //中断溢出标志}void StartModule() //启动模块{TX=1; //启动一次模块 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;}void main(void){WDT_CONTR = 0x34; //看门口启动,硬件清零后重新计数Timer1Init();IT0=1; //外部中断0设置为下降沿触发EA=1;EX0=1; //外部中断允许LCMInit(); //LCM初始化Delay5Ms(); //延时片刻(可不要)DisplayListChar(2, 0, email);DisplayListChar(2, 1, A);TMOD=0x01; //设T0为方式1,GATE=1;TH0=0;TL0=0;ET0=1; //允许T0中断EA=1; //开启总中断while(1){StartModule();while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数Conut(); //计算delayms(80); //80MStracking(S);cesu(F);WDT_CONTR = 0x34; //看门狗启动,硬件清零后重新计数}}。