新手怎样学单片机(别人学单片机已经做小车了)
新手怎样学单片机(别人学单片机已经做小车了)基于视觉图像的障碍物检测和避障方法是通过搭载摄像头的方法感知环境图像,使用图像处理技术对其进行分析处理,以此提供环境信息,完成障碍物检测。随着计算机技术的开展,特别是计算机视觉领域深度进修技术的开展,视觉避障方法应用将越来越广泛,其主要方法包括基于宗旨特征的方法、基于光流法障碍物检测方法、基于立体视觉障碍检测方法等。基于微波雷达或者激光雷达的机器人小车避障方法也正在得到逐步应用,其优点是探测范围广,能提供大量环境扫描点距离信息,有利于为机器人小车避障控制决策提供精准信息,但一般造价比较高,技术比较复杂,编程实现相对较难。目前,无人车或者机器人小车避障技术主要包括五大类:一是利用声波(主要是超声波)传感器检测障碍物并避障;二是利用红外线(红外测距仪)检测障碍物并避障;三是利用微波(主要是微波雷达测距系统)检测障碍物并避障;四是利用激光传感器(包括3D激光雷达)检测障碍物并避障;五是利用可见光
别人学单片机已经做小车了,你还在点灯么 ?
大家好,我是一哥。本篇文章我们讲解机器人小车室内避障漫游。
利用树莓派做智能小车是个很常见的玩法,整个过程涉及手工制作、GPIO控制、网络通信等内容,知乎上有的大神还加入图像识别甚至人工智能元素,我自己在制作过程中真的感觉非常有意思,也很有成就感。为了做这个小车,我不惜破费买了各种小车零件和电子元器件(其实花不了多少钱),参考书上的内容和网络上的信息也搞出了自己的小车,虽然功能真的很简单,这次记录的是简单的避障功能实现。
1、避障主要方法简介
目前,无人车或者机器人小车避障技术主要包括五大类:一是利用声波(主要是超声波)传感器检测障碍物并避障;二是利用红外线(红外测距仪)检测障碍物并避障;三是利用微波(主要是微波雷达测距系统)检测障碍物并避障;四是利用激光传感器(包括3D激光雷达)检测障碍物并避障;五是利用可见光摄像头基于视觉图像检测障碍物并避障。
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像白色字体加我也能领取哦,记得回复一哥///
机器人小车避障使用较多的是基于超声波或红外测距传感器的方法,其优点是技术成熟,传感器体积和重量小,造价便宜,但存在探测范围有限(一般仅为3-5米,如HC-SR04 超声波距离传感器模块的探测范围为 2cm - 400cm),且对反射面的光整程度要求较高,没法检测到没反射才能或者弱反射才能的障碍物,会在一定程度上影响机器人小车避障控制的精确度。
基于微波雷达或者激光雷达的机器人小车避障方法也正在得到逐步应用,其优点是探测范围广,能提供大量环境扫描点距离信息,有利于为机器人小车避障控制决策提供精准信息,但一般造价比较高,技术比较复杂,编程实现相对较难。
基于视觉图像的障碍物检测和避障方法是通过搭载摄像头的方法感知环境图像,使用图像处理技术对其进行分析处理,以此提供环境信息,完成障碍物检测。随着计算机技术的开展,特别是计算机视觉领域深度进修技术的开展,视觉避障方法应用将越来越广泛,其主要方法包括基于宗旨特征的方法、基于光流法障碍物检测方法、基于立体视觉障碍检测方法等。
2、超声波距离传感器的工作原理及其安装
(1)HC-SR04传感器简介
本实战中采用方法相比照较简略、技术成熟的超声波距离传感器进行障碍物检测和避障,详细来说,就是采用HC-SR04 超声波距离传感器模块(图5-1)。
图5-1 HC-SR04 超声波距离传感器模块实物照片
HC-SR04超声波距离传感器是一款便宜的设备,对于机器人项目非常有用,这个微小的传感器能够测量自身和最近的固体物体之间的距离,对于避免机器人小车撞上墙壁等障碍物很有用。
HC-SR04能够测量2cm到4m之间的距离(约1英寸到13英尺之间),精确度能够到达3mm。HC-SR04的工作电压为5伏,工作电流为15mA,能够直接连接到Arduino或其它微控制器。也能够将它连接到树莓派,但由于须要5V电压,因此须要加一个分压电路即须要用一对电阻来连接树莓派的3.3V GPIO端口,这样会显得比较麻烦。因此,本实战中直接将它与微控制器Arduino Uno R3相连接,用Arduino来控制它。
图5-2 HC-SR04的尺寸及其有效探测角度示意图
HC-SR04的尺寸如图5-2左图所示,长43mm,高20mm,厚15mm;其有效探测角度或者测量角度为15°,待检测物体或者障碍物直接位于其前面时,传感器最准确,虽然可以在45°“视角”范围内得到物体的响应(反射信号),但只有在左右两边15°范围内才能获得准确的读数(图5-2右图)。
HC-SR04模块由超声波发射器、超声波接收器和控制电路等部分组成,有4个引脚可以与控制设备相连接,其中2个为电源引脚(VCC和GND,前者接5V电源接口,后者接GND地线接口),2个为控制引脚(Trig和Echo,前者为触发器引脚,通过向触发器引脚施加脉冲,可以触发超声波发射器发射超声波;后者为响应器引脚,在接收到反射信号时会产生脉冲,脉冲宽度与发送信号被检测到的时间成正比)。
(2)工作原理
图5-3 超声波测距原理示意图
超声波测距的原理很简略,如图5-3所示,超声波发射装置发射超声波,遇到障碍物后会将局部超声波反射回来,超声波接管装置会接管到返回的超声波,通过测定发射超声波和接管到超声波的时长间隔,再乘以声波速度,就能够精确计算出超声波装置与障碍物之间的距离。
HC-SR04模块就是利用超声波测距原理进行障碍物距离测定工作的,其工作原理为:该模块的控制设备向Trig引脚施加5V脉冲,触发超声波发射器向外发射40KHz的超声波脉冲;超声波接管器接管到障碍物反射回来的超声波脉冲,并产生输出脉冲,通过Echo引脚向控制设备输出相应脉冲信号。
HC-SR04模块的详细工作流如下:
1)一个持续时长至少10微秒(μS)的5伏脉冲施加到Trigger(触发器)引脚。
2)HC-SR04通过以40KHz发送8个脉冲来响应,这个8脉冲模式使得模块的“超声波签名”是独一没二的,使接管机能够区分发射模式和超声背景噪声。
3)8个超声波脉冲通过远离发射器的空气传播,同时Echo引脚变为高电平,初始构成回波信号的初始。
4)假如脉冲信号不反射回来,则回声信号将在38毫秒(mS)后超时并返回低电平,这会产生一个38毫秒的脉冲,表明传感器范围内没有任何障碍物(图5-4上图)。
5)假如脉冲被反射回来,当收到信号时,Echo引脚变为低电平,这产生了一个脉冲,其宽度在150微秒到25毫秒之间变化,这取决于信号接管所花费的时长(图5-4下图)。
6)接管到的脉冲宽度用于计算反射物体(障碍物)的距离。
图5-4 有无障碍物情况下的超声波传播与返回脉冲示意图
须要注意的是,HC-SR04模块在以下4种情况中将没法测定障碍物的距离:一是距离太远或者太近的障碍物,即距离大于4m或者13英尺的障碍物,或者距离小于2-3cm的障碍物;二是障碍物的反射面呈浅角度(小于45°)时,由于超声波被反射至远离HC-SR04模块的方向,接管器没法接管到超声波脉冲,因而没法测定距离(如图5-5所示);三是障碍物太小,没法将足够的超声波反射回接管器,因而也没法测定障碍物的距离;四是外表柔软、不规则的物体(如毛绒玩具、毛衣等)会吸收而不是反射超声波,因此HC-SR04传感器也可能难以检测到这些障碍物,没法测定与这些障碍物的距离。
图5-5 障碍物的反射面呈浅角度时无法测定距离
(3)传感器的安装与连接
为检测出小车前进方向上的障碍物及其与小车的距离,并判定障碍物与小车的相对位置(位于正前方,还是位于右前方、左前方),须要将3个HC-SR04超声波距离传感器安装在小车前方,其中:中间的传感器朝向小车前进的正前方,左侧和右侧的传感器与正前方有相同的偏角(约15°),分别偏向左侧和右侧。
由于Junior Runt Rover robot chassis kit小车并没有提供固定和安装传感器的固件,因此须要用到额外的物料,包括铁件(或者铝合金片)或者塑料片,泡沫双面胶带和束线带等,其中铁件或者铝合金片或者塑料片有形状要求,即应有3段,中间平直,两侧的2段应该分别向内折15°角,且各段长度应稍微长于传感器的长度,宽度应该与传感器高度根本一致。
HC-SR04超声波距离传感器的安装固定包括以下两个步骤:第一步,用泡沫双面胶带和束线带将传感器固定在铁件(或者铝合金片)或者塑料片上,双面胶带除了粘牢传感器外,还能够起到与铁件或者铝合金片绝缘的作用,而束线带能够确保双面胶带粘性变弱后依然能够固定传感器;第二步,利用车架上固定板前侧的2个螺丝孔,用螺栓、螺帽将铁件(或者铝合金条)或者塑料片固定在小车上。
将3个HC-SR04超声波距离传感器的安装固定在小车前方后,下一步就须要将这3个传感器与微控制器Arduino Uno R3进行连接或者接线,详细接线过程如下:
首先,用母至公跳线将HC-SR04模块的VCC引脚与Arduino Uno R3的5V电源输出接口连接起来,跳线的母头接VCC引脚,公头接Arduino板上的5V电源输出接口。但由于Arduino板上独有1个5V电源输出接口,而这里有3个传感器(实际上后面还要用到5个红外寻迹传感器)均须要5V电源,因此须要将这3个跳线中的2个公头剪掉,将一定长度的绝缘层销掉,并在另外一个跳线的公头后销掉一定长度的绝缘层,将它们缠在一起后用电工胶布缠上,将跳线公头插入Arduino板上的5V电源输出接口,这样就能够用Arduino板上的1个5V电源向3个传感器同时供电。
其次,由于板上仅有2个GND地线接口,因此须要用VCC引脚连接至5V电源接口相同的方法,将3个传感器的GND引脚用母至公跳线连接到Arduino板上的一个GND接口。
第三,用母至公跳线将3个传感器的Trig引脚和Echo引脚连接至Arduino板上的6个数字信号接口,之所以用数字信号接口而非模拟信号接口,是由于超声波距离传感器仅须要用到高电平和低电平两种状态,因此合适用数字信号接口。同时,由于Arduino与树莓派之间采用Serial方式进行通讯,要用到Arduino板上0和1两个数字信号引脚,这两个引脚不能被传感器占用。为此,本实战将使用2-7这6个数字信号接口,即中间传感器的Trig和Echo引脚接2、3数字接口,左侧传感器的Trig和Echo引脚接4、5数字接口,右侧传感器的Trig和Echo引脚接6、7数字接口。
完成安装固定和接线后的HC-SR04超声波距离传感器见图5-6。
图5-6 安装固定和接线后的HC-SR04超声波距离传感器
想要学习单片机的朋友 ,做毕业设计的同学,关注我们,回复一哥,与导师一起学习成长,共同进步,还有更多资料领取。
说了这么多,大家记得留意下方评论第一条(或者私信我)有干货~
-END-
*本文系网络转载,版权归原作者所有,如有侵权请联系删除