当前位置: 首页 > 传感测量产品 > 工业传感器 > 光电传感器

类型分类:
科普知识
数据分类:
光电传感器

智能小车光电传感器:光电传感器智能循迹小车

发布日期:2022-10-09 点击率:37


智能小车光电传感器:光电传感器智能循迹小车  第1张

智能小车光电传感器:光电传感器智能循迹小车

? ?  ? ? ?2020年大三上的时候和同学们一起组队参加了学校举办的机器人大赛,走的是循迹竞速赛道,规则很简单,就是看谁可以以最快的速度跑完全程,经过一个多月的学习与调试,最终我们的小车“德芙”(因为全程跑的十分丝滑)以26s的成绩(领先第二名7s)获得了第一,在此就写一篇博客记录记录自己调车的经历吧。

? ? ?我们队在比赛中使用的是舵机加双编码电机的机械结构,以芯片主频为72MHz的STM32F103ZET6为核心控制器,赛道的主要元素包括直道,环岛,S弯和连续直角弯; 我们通过一字排列的光电传感器阵列对黑线进行识别,进而检测车身在赛道上的位置;通过编码电机检测智能车的实时速度;使用结合BANGBANG算法的积分分离PI控制算法调节电机的转速,通过基于分段控制思想的舵机转向PD控制舵机的打角,通过基础速度和偏离速度相结合的思想实现针对不同赛道元素的速度调节,实现了智能车在运动过程中速度和方向的闭环控制。

一、路径识别模块的设计

? ? ? ?在选择传感器的时候,我们最初选择的是TCRT5000红外反射式开关传感器,但是发现因为赛道和车子结构的原因,其实际的循迹效果不是特别好,经常会误判,故而我们便改用了数字灰度传感器,其灵敏度更高,抗干扰能力强;普通照明灯基本对其无影响,其发光源常用高度良白色聚光LED,接收管对不同的发射光的强弱进行对比处理,只要对白光发射强弱不同即可,差值越大,分辨越好,比普通的红外传感器抗干扰能力要强的多。

? ? ? ?其输出为数字输出,即1或0输出,需要根据场地,光线等基本情况来调节基准电压,电压比较器有着两个电压输入,一个为接受管的电压,另一个是电位器输入的基准电压,需要根据接受管在2种色的电压值来调节基准电压,一般将电位器电压调到2种电压的中间值。

? ? ? ? 我们将七个传感器按一字型非等距排列在超前于车身主体的横杆上,正中间的传感器在正常情况下正对于赛道的黑线,两边的传感器则按间隔距离则由小到大对称分布排列,用以确定小车与中心线的偏差大小,我们根据各个传感器返回的01值来确定小车与中心线偏差的大小,同时我们将偏差的大小分为9级,并由参数error来表征,0代表小车循迹无偏差,不需要进行转弯,正数代表左转,负数代表右转,而数字越大代表小车偏离中心的程度越大。对于十字圆环而言,所有的传感器均会检测到黑线,此时应题目要求是向前走直道,故而将error设定为0。当小车超过终止区域黑线时,所有的传感器都检测不到黑线,此时比赛完成,故而小车要停止,此时令两个电机反转,消除其惯性,使其迅速停下来,当检测到实际速度为 0 时则断开电源,实现制动的同时避免反接制动运行情况发生。

二、舵机

? ? ? ? ?该循迹系统选用的是HS-425BB型舵机,HS-425BB型舵机是一款高性能舵机,扭力大,稳定性好,角度控制准确。由于舵机所需要的电压较大,运行过程中电流也会发生很大变化,还会带来不同程度的干扰,因此,舵机往往采用单独供电,舵机的输入线有三根,其中红色的线用于接电源,黑色的线用于接地,白色的线为信号线,对舵机的控制过程比较简单,提供主控制器产生的PWM控制信号输出至舵机的信号线接口,在输出PWM波频率不变的情况下,通过改变PWM波的占空比,就能相应地改变机器人的转角,从而实现舵机的转角控制。

三、电机

? ? ? ?在该系统的设计中,我们选择了GB37-520编码电机。电机编码器由光电模块和光栅组成,光电模块输出的信号有AB两相。电机的主轴连接着编码器并带动编码器的光栅盘转动,光电模块检测其输出的脉冲数。由于AB两相相差90°,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位;绝大部分的直流电机采用的是开关驱动方式,采用这种方式,半导体功率器件有开启和关闭两种状态,然后用输出可调的PWM电平实现对电机电压的控制,实现调速功能。

四,PID算法控制

? ? ? ?PID控制是工程实际中应用最为广泛的调节器控制规律,单位反馈的PID控制原理框图如图:

e(t)代表理想输入与实际输入的误差,这个误差信号被送到控制器,控制器算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组合,得到输出量。

? ?

其中,kp、kd、ki分别为比例系数、积分系数、微分系数。

PID各个参数作用基本介绍:

(1)比例调节(p):是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用,以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,会使系统稳定性下降,甚至造成系统的不稳定。

(2)积分调节(I):使系统消除稳态误差,提高无差度,因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一个常值。

(3)微分调节(D):微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成 PD?或 PID?控制器。

? ? ? ? ? 以 T 作为采样周期,则离散采样时间对应着连续时间,用矩形法数值积分近似代替积分,用一阶向后差分近似代替微分,可得到离散 PID公式为:

位置式 PID 算法具有以下优点:比例部分只与当前的偏差有关,而积分部分则是系统过去所有偏差的累积。故而位置式 PI 调节器的结构清晰,P 和 I 两部分作用分明,参数调整简单明了,编写代码更为简单。

? ? ? ? 速度策略是影响智能车速度快慢的一个重要因素。首先速度控制必须配合方向控制,即在直道或类似直道时,应该将PWM波提到最高,让通过主电机的电流达到最大,从而让智能车以最快的速度行驶;当进入弯道时,应该根据弯道的曲率大小,适当的较低小车的基础速度,使得小车不容易冲出赛道,对于该基础速度v_set的设定,我们采用PD控制,以小车与中线的偏差大小为输入,以速度的设定量为输出,实现不同赛道类型下的自主速度调整。

? ? ? ? ?我们的小车转弯方式不同于其他万向轮转弯的智能小车,我们采用差速转向和舵机转向方式相配合,相比之下其灵活性提高了很多。小车利用差速电机实现转弯,其原理是利用两个电机的转速不同构成转速差;舵机控制前轮是从动轮,不需要有转速。舵机的位置是在两个前轮的中间,控制两个前轮的转向。

? ? ? ? 整个比赛过程,从最开始的选择车型和主控芯片到后来的编程和现场实际的调车,可以说那段时间一有空,我们就呆在调试赛道旁边,不断改善程序,同时因为我们是舵机和差速控制的方案,故而pid的参数较多,我们需要一个一个的慢慢整定,一遍遍的跑去确定一个合适的参数;当时的我们参数整定全靠自己的判断和车子跑的情况,故而效率其实还是很低的,如果可以的话,其实可以运用无线模块将每一次车子的PWM数据实时的传送到电脑上,画出相应的曲线,这样的话调试会快一点,还有就是最后因为时间等缘故,我们的速度到最后其实没有闭环,即没有用编码电机将实际的速度值传送回来,这样输出的PWM和实际的还是会有一定的区别的,这个以后也可以加上,如果有机会的话,其实我还是想去参加一下飞思卡尔智能车比赛的,再享受一次调车的乐趣,享受看着小车一次又一次以更快的速度跑完全程的那种喜悦!

智能小车光电传感器:基于红外反射式光电传感器的智能循迹小车

相关推荐

不得不知的生活常用七大传感器

传感器的静态特性的主要指标有线性度、迟滞、重复性、灵敏度和准确度等。传感器的动态特性则指的是对于输入...

发表于 2018-04-02 08:14
?
118次阅读

光电传感器中发射器与接收器的选取

光电传感器的输出电流ICON是光电传感器一个十分关键的参数。对槽型光电传感器而言,在给定条件下,IC...

发表于 2018-03-23 09:02
?
42次阅读

采用光电传感器的太阳追踪系统设计方案

针对固定式太阳能利用装置的光能利用率低,设计一种太阳追踪系统。此系统由单片机智能控制,采用光电传感器...

发表于 2018-03-20 10:08
?
132次阅读

光电感应器怎么调节_光电传感器工作原理分析

本文开始介绍了光电传感器的定义和光电传感器的特点,其次阐述了光电传感器的结构和光电感应器开关的调节方...

发表于 2018-03-14 17:14
?
352次阅读

RPR220光电传感器应用设计

LM339是一个四电压比较器,一个芯片有四个比较器,因为我们不可能只用一个光电传感器去寻迹,至少要三...

发表于 2018-03-14 10:16
?
96次阅读

浅谈近红外光谱分析技术和光电传感器的结构设计

系统要求光电传感探测部分具有较高的检测精度和稳定性,且实时性高,即需要对待测海水进行连续不间断的在线...

发表于 2018-03-13 13:59
?
77次阅读

浅谈光电传感器的原理及三种类型

光电传感器 光电传感器一般由光源、光学通路和光电元件三部分组成。 把被测量的变化转换成光信号的变化...

发表于 2018-03-13 11:56
?
147次阅读

光电传感器怎么调节_光电传感器使用方法

本文开始阐述了光电传感器概念与光电传感器特点,其次阐述了光电传感器分类和工作方式与光电传感器工作原理...

发表于 2018-03-06 13:58
?
381次阅读

光电传感器在太阳能应用领域的解析

发表于 2018-01-16 15:44
?
774次阅读

光电传感器的应用实例_光电传感器工作原理_光电传...

本文主要介绍了光电传感器结构、光电传感器工作原理好光电传感器特点、最后对光电传感器应用案例和光电传感...

发表于 2018-01-08 15:21
?
942次阅读

生活中应用比较广的七大常用传感器

发表于 2018-01-04 16:26
?
873次阅读

光电传感器的性能优势及应用领域分析

发表于 2017-12-21 16:26
?
987次阅读

光电传感器GL6G-N1211中昊自动化sick一级代理

发表于 2017-11-06 16:03
?
368次阅读

SICK中程距离光电传感器DS50-P1112

发表于 2017-11-06 15:43
?
314次阅读

中程距离光电传感器DS35-B

发表于 2017-11-06 15:25
?
332次阅读

宜科发布紧凑型光电传感器,可用于汽车和印刷行业

宜科公司的光电传感器已有多年的发展历史,通过标准品与定制化解决方案,为许多客户带来了多元化的选择,好...

发表于 2017-11-04 11:45
?
515次阅读

想做一个检测是否水平的装置,各位朋友能不能推荐几款传感器

发表于 2017-11-03 10:10
?
279次阅读

光纤与光电传感器区别是什么

光纤与光电是传感器中比较典型的产品,为了消除工业烟尘污染,首先要知道烟尘排放量,因此必须对烟尘源进行...

发表于 2017-09-27 17:27
?
421次阅读

PM-R45(1M线)松下槽型光电传感器

发表于 2017-09-20 19:54
?
423次阅读

PM-T65-P松下光电传感器中昊自动化

发表于 2017-09-20 19:49
?
467次阅读

E3和A3这两种自由电压型光电开关有什么区别,哪种比较好?

发表于 2017-09-20 16:37
?
363次阅读

光电传感器的应用实例详解

光电传感器由于反应速度快, 能实现非接触测量,而且精度高、分辨率高、可靠性好,加之光电传感器具有体积...

发表于 2017-01-10 13:58
?
1597次阅读

光电传感器检测的优越性

自动化设备和装置中采用光电传感器检测先进系统,同时也是采用了先进过程控制、操作优化、节能策略的基础。...

发表于 2017-01-01 17:31
?
196次阅读

光电传感器的原理与应用

在高度发达的现代社会中,科技突飞猛进,信息瞬息万变,生产过程自动化已成为社会发展的必然趋势。而这些必...

发表于 2017-01-01 17:28
?
1013次阅读

光电传感器工作原理、分类及特性详解(收藏)

光电传感器是一种小型电子设备,各种光电检测系统中实现光电转换的关键元件。它主要是利用光的各种性质,检...

发表于 2016-12-13 13:38
?
629次阅读

擦亮眼睛!看清穿戴医疗终极目标

新日本无线广告企划课的张挺先生表示,传感器是任何可穿戴设备的最初必要环节,它的测量精确度直接关系到后...

发表于 2015-11-25 14:05
?
621次阅读

采用FPGA实现的红外密集度光电立靶测试系统

光电靶的基本原理是:当光幕内的光通量发生足够大的变化时,光电传感器会响应这种变化而产生电信号。##电...

发表于 2014-07-23 14:31
?
320次阅读

一种多功能电子焊接操作台的设计方案

本文提出了一种多功能电子焊接操作台的设计方案,该方案以单片机作为主控芯片,通过反射式光电传感器检测操...

发表于 2013-10-29 10:21
?
1334次阅读

美军研制新型车载电子装置光电传感器

美国雷神公司空间与机载系统部的光电专家将帮助美军研究者开发新型基础航空电子设备和车载电子装置用光电传...

发表于 2013-10-11 10:41
?
577次阅读

ELMOS推出用于手势识别非接触式光电传感器芯片...

日前,德国艾尔默斯半导体ELMOS公司推出一款用于手势识别的非接触式光电传感器E527.16。该芯片...

发表于 2013-05-08 15:16
?
1316次阅读

一种高可靠性光电开关的电路实现

本文介绍一种高可靠性的光电开关电路,带有稳频调制光以抗各种干扰,具有大功率驱动电路和光电三极管的自动...

发表于 2012-08-20 14:44
?
1233次阅读

采用光电传感器的智能车控制研究

本文是根据第三届全国大学生“飞思卡尔”杯智能汽车大赛要求设计自主识别道路的智能车。

发表于 2012-08-18 11:26
?
1448次阅读

基于光电传感器的能自主识别道路的智能车

本文主要设计的是一辆自主识别道路的智能车。整个系统采用了16位单片机mc9s12dg128,模型车本...

发表于 2012-08-07 11:33
?
1785次阅读

可监测人体脉搏波及心率的健康鼠标

脉搏波的波形特征与心血管疾病密切相关,为此用户需要一种简单、实时的便携装置。通过安装在正常使用鼠标时...

发表于 2012-05-17 10:35
?
6159次阅读

光电传感器对金属丝杨氏模量测量方法

文章介绍了一种通过使用光电传感器来对金属丝杨氏模量测量的新方法。该测量的关键在于对金属丝的微小长度变...

发表于 2012-02-21 10:39
?
761次阅读

三星宣布量产光电传感器一体化LCD

三星电子(Samsung Electronics)宣布,将开始量产的光传感器一体化设计的大尺寸LCD...

发表于 2011-12-14 10:04
?
319次阅读

光电传感器实现智能灯光控制系统

文章设计了一种基于光敏电阻和光电传感器的智能灯控系统。一旦光线强度足够低,检测系统启动,MOC306...

发表于 2011-11-14 11:04
?
2364次阅读

基于FPGA的光电抗干扰电路设计方案

光电靶的基本原理是:当光幕内的光通量发生足够大的变化时,光电传感器会响应这种变化而产生电信...

发表于 2011-01-03 15:09
?
282次阅读

基于光电传感和路径记忆的智能车导航系统

基于路径记忆算法的转向及驱动控制策略,在电源管理、噪声抑制、驱动优化等方面也都进行了研究工作,通过大...

发表于 2010-09-16 16:35
?
412次阅读

光电传感器式三相断相保护电路图

光电传感器式三相断相保护电路图

发表于 2010-04-03 13:51
?
323次阅读

光电传感器的电磁兼容设计

光电传感器的电磁兼容设计
引 言
广泛应用于工业自动化领域的光电传感器,一般是开关型的,被称为光...

发表于 2010-03-26 12:18
?
210次阅读

光电传感器在机场物流行业的设计应用

随着国内航空运输业的持续快速发展,机场物流项目逐渐增多,技术水平不断提高。民航总局预计...

发表于 2010-03-05 12:08
?
237次阅读

微型光电传感器,微型光电传感器是什么意思

微型光电传感器,微型光电传感器是什么意思
微型光电传感器概要

发表于 2010-03-03 15:39
?
711次阅读

光电传感器分类有哪些?

光电传感器分类有哪些?
①按检测方式分类(1)对射型 检测方式

发表于 2010-03-03 14:48
?
4678次阅读

光电传感器,光电传感器是什么意思

电传感器,光电传感器是什么意思
光电传感器的定义
「光电传感器」是利用光的各种性质,检测物体的有...

发表于 2010-03-03 14:40
?
2338次阅读

光电传感器,光电传感器原理

光电传感器,光电传感器原理
光电传感器是指能够将可见光转换成某种电量的传感器。光敏二极管是最常见...

发表于 2010-03-02 14:27
?
531次阅读

光电传感器在自动化生产线上的应用

光电传感器在自动化生产线上的应用
引言 光电传感器是采用光电元件作为检测元件,首先把被测量的变化转...

发表于 2009-11-25 10:07
?
566次阅读

新型光电传感器的原理及应用

新型光电传感器的原理及应用
概况
随着全球制造...

发表于 2009-11-25 09:59
?
9187次阅读

光电传感器

光电传感器

发表于 2009-09-22 16:48
?
546次阅读

光电式传感器工作原理

光电式传感器的英文解释:photoelectric transducer

发表于 2008-09-22 13:54
?
4169次阅读

光电传感器工作原理与应用

光电式传感器工作原理与应用
光电式传感器 光电传感器是采用光电元件作为检测元件的传...

发表于 2008-01-07 12:56
?
6898次阅读

智能小车光电传感器:系统功能

我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了3种可用来让小车实现避障的传感器,本文作为本系列的第三篇文章,主要介绍如何让车实现自动避障。
本系列文章链接:
-----------------------------------------------------------------------------
详细介绍如何从零开始制作51单片机控制的智能小车(一)———让小车动起来
详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用
详细介绍如何从零开始制作51单片机控制的智能小车(三)———用超声波模块和漫反射光电传感器实现小车的自动避障
详细介绍如何从零开始制作51单片机控制的智能小车(四)———通过蓝牙模块实现数据传输以及通过手机蓝牙实现对小车运动状态的控制
详细介绍如何从零开始制作51单片机控制的智能小车(五)———对本系列第四篇文章介绍的手机蓝牙遥控加减速异常的错误的介绍及纠正
-----------------------------------------------------------------------------
一、避障思路及传感器的选择
1、利用4路红外寻迹避障传感器模块实现避障
?可以让一路传感器检测左边的障碍物,一路传感器检测右边的障碍物,两路传感器检测前方的障碍物,如下图所示:

?这种方法呢实现起来是最简单的,对于0基础的可以尝试一下,障碍物检测距离一般在20cm左右,在车速不太快,而且在室内(也就是无阳光直射)时是可行的,也可以很好的实现避障。

?缺点呢或者说不足之处,也就很明确了,在室外(或者阳光直射时)传感器受阳光干扰可能不能正常工作,检测距离20cm左右,车速过快时,在检测到障碍物时,不能直接转弯(因为车速过快,还没来得及转弯可能就撞上了),需要往回倒一下,再转弯。

2、利用4个漫反射光电传感器模块实现避障
?可以让一个传感器检测左边的障碍物,一个传感器检测右边的障碍物,两路传感器检测前方的障碍物。就像上面的4路红外寻迹避障传感器的摆放方向一样
?这种方法呢,避障思路跟利用4路红外寻迹避障传感器模块实现避障是相同的,只是换了传感器类型而已,但是漫反射光电传感器抗阳光干扰能力强,克服了4路红外寻迹避障传感器模块在室外(或者阳光直射时)传感器受阳光干扰可能不能正常工作的缺点。

?缺点呢或者说不足之处,检测距离也在20cm附近,依然没能克服车速过快时,在检测到障碍物时,不能直接转弯的不足,而且呢漫反射光电传感器模块体积、重量、价格都要高一些。

3、利用超声波模块和舵机云台实现避障
?避障思路呢大体是这样的,正常情况下超声波模块检测前方障碍物,当检测到障碍物时,小车停止前行,舵机云台转动,让超声波模块分别转向小车的左右两侧检测左右两侧是否有障碍物,来决定下一步的转向,超声波模块重新超前,开始转向。

?这种方法呢,利用超声波模块测距远,一般常见的超声波模块测距最远在4.5米左右,完全不用担心车速过快来不及反应的情况,而且基本不受阳光干扰(当环境温度升高时,声音的传播速度会加快,对测距产生一定的误差,但是误差很小很小,对于超声波模实现避障来说完全可以忽略)也就是说超声波模块很好的解决了以上两个问题

?缺点呢或者说不足之处,也很明确,从避障思路我们可以看出这种方案小车不能连续的运动,当遇到障碍物时,小车就会停下来判断下一步该往哪个方向转弯,除此之外,超声波模块用起来比前两种难一些

4、利用超声波模块和2个漫反射光电传感器实现避障(也就是本文采用的方法)
?避障思路呢就是利用超声波模块检测前面的障碍物,两个漫反射光电传感器分别检测左右两侧的障碍物。

?这种思路结合了这两种传感器的优点,互补了他们的不足,即同时克服阳光直射时传感器不能正常工作、车速过快时,在检测到障碍物时,不能直接转弯、遇到障碍物需要停车判断 这三种不足可以说是一种比较理想的方案。唯一的缺点呢,就是超声波模块本身用起来难度要大一些,当然对富有挑战精神的人,也就不算缺点了

二、超声波测距程序的编写
1、概述
?我将在本系列第一篇博文中介绍的程序的基础上进行超声波测距程序的编写的介绍,前提是理解超声波模块的测距的工作流程(不明白的可以去看本系列第二篇文章的介绍),我们需要用到两个定时器,而STC89C52单片机只有两个定时器,前面呢我们已经把定时器0中断用来控制电机的PWM输出,所以我们把超声波测距的启动信号也合并到定时器0里面,让定时器1来检测超声波模块有无信号返回。
2、I/O口触发测距的实现程序的编写
?超声波模块工作的第一步呢就是让块Trig 管脚所接的单片机I/O口置为高电平,而且需要持续10us以上,(本例中我采用的是让单片机P14 I/O口 接在了超声波模块的Trig 管脚上,让单片机P15 I/O口 接在了超声波模块的Echo管脚上,大家可以根据实际情况自己选择,只要跟程序对应起来就行),此处有一点需要注意就是为了避免下一次超声波模块发出的信号,对上一次的返回信号产生影响,超声波模块发出信号的时间间隔要在60ms以上,本例中我配置的定时器0是每1ms产生一次中断,设置一个变量HC_SR04_time,定时器0每产生一次中断,该变量累加1,每当加到250时,让该变量清零,同时让超声波模块发出检测信号,也就是说每250ms 超声波模块发出一次检测信号(数值呢大家可以自行调节),发出检测信号只需要让Trig为高电平并且持续10us以上 ,再让Trig为低电平,这样超声波模块就会自动发出一次检测信号了,我把这个过程写在函数StartModule() 里面本部分相关程序如下:

3、检测有无障碍物的程序编写以及检测距离的调节方法
?上面呢我们已经利用定时器0来通过 Trig口让超声波模块每250ms发出一次检测信号,接下来我们需要用定时器1来检测有没有信号返回,也就是前方有没有障碍物,怎么实现呢,通过前面的介绍我们知道,只要Echo管脚为高电平就有信号返回,通过定时器1来测量高电平持续的时间,通过公式:测试距离=(高电平时间*声速(340M/s)/2) 就可以计算障碍物距离传感器的距离了,当Echo变为高电平时,就让定时器1清零,并打开定时器1,开始计数,当Echo变为0时,利用公式计算障碍物距离,计算完后令定时器1清零 并关闭定时器1 这样只要有信号返回,即只要Echo被置为1 定时器1就会被及时的清零,也就不会触发定时器1溢出中断,若是没有信号返回(也就是没有障碍物,或者障碍物超出了传感器的测量范围,本文用的传感器测量最大值为4.5米),Echo就不会被置1,定时器1也就不会被清零,从而产生溢出中断,在溢出中断里放一个变量flag ,若产生中断则让其置1,这样就通过定时器是否产生溢出中断,即flag是否为1,来判断是否检测到障碍物了。
?有一点需要注意,这样检测的是距离传感器最大检测距离内有无障碍物,但是我们把它用来让小车避障,我不能距离障碍物4.5米就让小车转弯吧,这就需要通过程序调节检测距离了,只需要增加一个判断条件就行了,我们利用公式算出来障碍物的距离S ,将flag=1或者S>我们设定的检测距离,都视为没有障碍物处理就可以了,如 if(flag==1||S>50) 就是把50cm作为检测距离,检测的是50cm内有无障碍物,50呢是暂定的,在后期调车的时候,根据实际情况进行调节
?本部分有关程序如下(完整的工程文件会在介绍完避障程序后一并给出):

三、自动避障的实现
?目前呢我们用于避障的传感器有检测左右两侧障碍物的漫反射光电管,检测前方障碍物的超声波模块,大体思路是这样的,当超声波模块没有检测到设定距离内的障碍物时,小车直行,当检测到前方障碍物时,若此时左边漫反射传感器没有检测到障碍物,则左转,当此时左边有障碍物时,若右边没有障碍物则右转,若右边也有障碍物则后退,大家看的可能比较乱,我整理成如下的逻辑表:

?表格中的有代表有障碍物,无代表无障碍物,X代表可以有也可以没有障碍物 若前方有障碍物则 M_sensor=0 没有则 M_sensor=1,若左侧有障碍物 ,则 L_sensor=0 ,没有则 L_sensor=1 若右侧有障碍物则 R_sensor=0 没有则 R_sensor=1,程序如下:

?在测试中我发现,当电池电量较低时,原来的转弯方式(一侧电机停转,另一侧电机前进)转弯效率较低,所以说把转弯的函数修改为一侧后退,另一侧前进,代码如下:

?经过测试后,这种方案呢并没有理想的那么好,因为超声波模块存在一些缺陷,比如偶然会产生误判,明明前方什么障碍物都没有,会在一瞬间突然检测到障碍物,又突然消失,而且在以下两种情况下检测不到障碍物

?如上图的这种情况呢,超声波模块检测不到返回的信号,产生误判

?如上图的这种情况呢,超声波模块检测不到侧前方的细柱型障碍物,产生误判
? 以上两种缺陷呢,是超声波模块固有的缺陷,是无法通过超声波模块本身去纠正的,解决方法呢,可以在超声波模块的两侧分别再加一个朝前的检测前方障碍物的漫反射光电传感器,这样呢可以克服以上的几个缺陷,经过我的实际测试,漫反射光电传感器几乎不会产生误判,除了检测距离有点短之外,可以说是比较好的,这样呢就是4路漫反射光电传感器为主,超声波模块呢只是辅助检测前方的较远的的障碍物,补充漫反射传感器检测距离有限的缺陷,这种方案呢我就不详细介绍了,有兴趣的可以自己尝试一下
四、完整的各文件代码
?main.c文件

?motor_control.c文件

?HC_SR04.c文件

?car.h文件

本文到这里就结束了,本文介绍的内容的完整的keil文件会放在附件里,需要者自取,我放的时候都是免费的,但是过段时间它会自己涨…需要的在评论区留言我可以直接发给你,欢迎大家继续阅读本系列的后续文章“详细介绍如何从零开始制作51单片机控制的智能小车(四)———通过蓝牙模块实现数据传输以及对小车状态的控制”
  欢迎大家积极交流,本文未经允许谢绝转载
智能小车光电传感器:光电传感器智能循迹小车  第2张

智能小车光电传感器:详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用

我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了如何让小车动起来,本文作为本系列的第二篇文章,主要介绍让小车实现自动避障所涉及的一些传感器,如超声波模块、漫反射光电管、4路红外寻迹避障传感器的介绍及使用。
对于熟悉这些模块的读者,可跳过此篇文章,直接阅读本系列的下一篇文章
本系列文章链接:
-----------------------------------------------------------------------------
详细介绍如何从零开始制作51单片机控制的智能小车(一)———让小车动起来
详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用
详细介绍如何从零开始制作51单片机控制的智能小车(三)———用超声波模块和漫反射光电传感器实现小车的自动避障
详细介绍如何从零开始制作51单片机控制的智能小车(四)———通过蓝牙模块实现数据传输以及通过手机蓝牙实现对小车运动状态的控制
详细介绍如何从零开始制作51单片机控制的智能小车(五)———对本系列第四篇文章介绍的手机蓝牙遥控加减速异常的错误的介绍及纠正
-----------------------------------------------------------------------------
一、4路红外寻迹避障传感器模块

1、线路连接
?传感器与控制板之间的连接很简单,每个传感器与控制板都有3根线相接,即一根VCC,一根GND,还有一根信号线,传感器和控制板上都有白色标识,连线很方便,稍微细心一下就行,别把VCC和GND接反了就行(接反了,一通电传感器可能就烧坏了,我烧过…),控制板与单片机之间的连接,有6根线,一根VCC,一根GND,4根信号线,接法如下:DO1— 第1路TTL电平输出,接在单片机选定的管脚上,如P10,D02—第2路TTL电 平输出,接在单片机选定的管脚上,如P11,DO3—第3路TTL电 平输出,接在单片机选定的管脚上,如P12,DO4—第4路TTL电平输出,接在单片机选定的管脚上,如P13,GND— 接单片机的GND管脚,VCC— 接单片机的5V管脚
2、工作原理
?每1路的传感器的红外发射管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的TTL输出端为高电平,相应指示二极管一直处于熄灭状态;当被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管导通,此时模块的TTL输出端为低电平,指示二极管被点亮。
?简单点说,当传感器检测到障碍物时,对应的TTL输出低电平,比如第一路传感器信号线连接在单片机的P10口,当第一路传感器检测到障碍物时,单片机P10口就为低电平,也就是说通过读取传感器信号线连接的单片机I/O口的高低电平,就可以知道传感器前方有没有障碍物。

3、检测距离的调节
?当模块检测到前方障碍物信号时,电路板上红色指示灯点亮电平,同时oUT端口持续输出低电平信号,也就是说,我们可以通过在传感器前面一定距离放置障碍物,通过观察电路板上的指示灯的亮灭,来调节检测距离,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少,官方介绍该模块检测距离2~30cm,但是根据我的实测在20cm以上时,随着距离的增加会趋向不稳定,尤其是在30cm附近,车处于运动状态时可能会由于车的震动从而使传感器始终处于检测到障碍物状态,所以检测距离一般调节在20几厘米左右较好。
4、注意事项
?(1)使用本模块时候,避免探头阳光直射。光线对模块有干扰作用。也就是说本模块受阳光干扰严重,在室外传感器大概率不能正常工作,当然可以采取一定的防护措施,但是效果有限,这也是本次我不采用这种传感器的原因
?(2)灵敏度调节不应过高,过高的灵敏度可能引起误触发。
?(3)在临界值时,会出现ED微亮,这种情况是未触发状态。此时输出为高电平。
二、漫反射式传感器

1、线路连接
? 对于我使用的这个是NPN型常开漫反射传感器,每个传感器有三根线,棕色的线接正极,虽然产品介绍是6v到36v的输入电压,我接到单片机上的5v管脚上,测试传感器是可以正常工作的,蓝色的线接单片机的负极(GND),黑色的线是信号线,接单片机的I/O口
2、关于漫反射式传感器的简单介绍
? 光电开关是一种具有开关量输出的位移传感器,输出有NPN、PNP、常开、常闭及继电器等,可检测金属(如钢、铁、铜)、塑料、玻璃、木头、水、纸、磁铁等透明和不透明物体,可与PLC、伺服控制器、变频器、计算器、控制器相连接达到自动输入信号的目的,广泛应用于机械、纺织、轻工造纸、印刷、包装等行业。
? 光电开关属于无接触测量传感器,其检测距离范围比较宽,在计数、测距和行程控制等许多测控系统中得到广泛应用。反射式光电开关又分为漫反射和镜反射式光电开关

3、工作原理
? 漫反射光电开关是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的表面光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式。
?简单点说,就本文介绍的NPN型常开漫反射光电传感器,当检测到障碍物时,与黑线连接的单片机I/O口被置低电平0,也就是说通过读取该I/O口的电平高低,就可以知道传感器前方有没有障碍物

4、检测距离的调节

? 顺时针调节电位器检测距离变远,逆时针调节检测距离变近,当我用手充当障碍物时,在20cm处可正常工作,最终检测距离我调节在了17cm。
三、超声波模块

1、线路连接
? 我使用的这种HC-SR04型号的超声波传感器需要4根线,VCC接单片机的5v接口(该传感器工作电压为5v),Trig (控制端)接单片机的I/O口(跟程序定义的管脚相同就行),是超声波传感器的控制管脚,Echo (接收端)接单片机的I/O口(跟程序定义的管脚相同就行),是超声波传感器的接收管脚、GND接单片机的GND。
2、工作原理
? (1)采用(I/O口触发测距、给至少10us的高电平信号)
? (2)模块自动发送8个40khz的方波、自动检测是否有信号返回
? (3)有信号返回、通过I0输出一高电平、高电平持续的时间就是超声波从发射到返回的时间、测试距离=(高电平时间*声速(340M/s)/2)
?详细点说,它是怎么工作的呢,首先我们需要让超声波模块Trig 管脚所接的单片机I/O口置为高电平,而且需要持续10us以上,这时超声波模块就会自动发出8个40khz的方波、自动检测是否有信号返回,也就是检测前方有没有障碍物,若有障碍物则通过Echo所接的单片机I/O口将信号返回,该I/O被置为高电平1,通过测量高电平持续的时间,也可以通过公式:测试距离=(高电平时间*声速(340M/s)/2),计算出障碍物距传感器的距离,这个公式很容易理解吧,距离=时间X速度,除以2是因为,超声波测距测得是一个来回的距离,也就是真实距离的两倍,所以要除以2。
?跟前面两种传感器不同,前面两种传感器使用起来很简单,只需要检测传感器信号线电平的高低就可以知道有没有障碍物,传感器呢 只需要接到单片机上,在程序上只需要定义个I/O口就行了,所以他们的工作原理不理解,也可以正常的使用,但是超声波模块不同,如果上面的工作原理不理解,或超声波模块工作的的过程不理解,就很难去写或者修改超声波模块的程序。所以一定要理解上面的步骤,至于如何去写超声波测距的程序,我会在本系列下一篇博文:“详细介绍如何从零开始制作51单片机控制的智能小车(三)———用超声波模块和漫反射光电传感器实现小车的自动避障”中介绍,当然我会把超声波模块的一些参考例程,和相关资料放在本文附件里,需要者自取,大家可以先自己看一下。

3、检测距离的调节
? 与前两种传感器不同,超声波模块没有调节距离的电位器,不能通过硬件调节检测距离,需要通过程序调节,我将会在本系列下一篇文章中介绍如何写超声波测距程序时介绍如何调节检测距离,值得一说的是超声波模块的检测距离比前面两种传感器远得多,比如本文介绍的这种检测距离可达450cm,即4.5米,有些型号可达7m 、15m 而且检测精度很高误差在3mm 1mm 甚至更小,所以说超声波模块还是有很多优势的。
4、注意事项
?模块应先插好在电路板.上再通电、避免产生高电平的误动作,如果产生了、从新通电方可解决。
 本文到这里就结束了,超声波模块的资料我会放在附件里,需要者自取,我放的时候都是免费的,但是过段时间它会自己涨…需要的在评论区留言我可以直接发给你,欢迎大家继续阅读本系列的后续文章“详细介绍如何从零开始制作51单片机控制的智能小车(三)———用超声波模块和漫反射光电传感器实现小车的自动避障”
  欢迎大家积极交流,本文未经允许谢绝转载

下一篇: PLC、DCS、FCS三大控

上一篇: 电气控制线路图控制原