0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Arduino和超声波传感器避障小车制作方案

电子设计 来源:一板网 作者:风筝 2020-12-24 15:45 次阅读

避障小车是一种智能设备,可以自动感知前方的障碍物,并通过朝另一个方向转动来避开障碍物。该设计允许小车通过避免碰撞在未知环境中导航,这是任何自主移动小车的主要要求。避障小车的应用不受限制,现在大多数军事组织都使用它,这有助于执行许多士兵无法完成的危险工作。

在本篇文章中,我们将使用Arduino和超声波传感器制作一个避障小车。这里,超声波传感器用于通过计算机器人和障碍物之间的距离来感测路径中的障碍物。如果机器人发现任何障碍物,它会改变方向并继续移动。

超声波传感器如何用于避免障碍物

在制作之前,了解超声波传感器的工作原理非常重要,因为这种传感器在检测障碍物方面起着重要作用。超声波传感器工作的基本原理是记录传感器在撞击表面后传输超声波束和接收超声波束所需的时间。然后使用该公式计算距离。在本文中,使用了广泛使用的HC-SR04超声波传感器。

因此,HC-SR04的Trig引脚高至少10 us。声波束以8个40KHz的脉冲传输。

o4YBAF_kRkKAGuLxAABmemJvaWE848.png

然后信号撞击表面并返回并由HC-SR04的接收器Echo引脚捕获。 Echo引脚在发送高电平时为高电平。

光束返回所用的时间保存在变量中,并使用如下所示的适当计算转换为距离

距离=(时间x空气中声音的速度(343 m / s))/ 2

可轻松找到避免机器人的障碍物的组件。为了搭建底盘,可以使用任何玩具底盘或者可以定制。

需要的组件

● Arduino NANO或Uno开发板

● HC-SR04超声波传感器

● LM298N电机驱动器模块

● 5V直流电动机

● 电池

● 车轮

● 机壳

● 跳线

电路原理

避障小车的Arduino编程

在本文末尾处将给出了完整程序。该程序将包括设置HC-SR04模块并将信号输出到电机引脚以相应地移动电机方向。此项目中不会使用任何库。

首先在程序中定义HC-SR04的TRIG和ECHO引脚。在本文中,trig引脚连接到GPIO9,echo引脚连接到Arduino NANO的GPIO10。

int trigPin = 9; // trig pin of HC-SR04

int echoPin = 10; // Echo pin of HC-SR04

定义用于输入LM298N电机驱动器模块的引脚。 LM298N有4个数据输入引脚,用于控制连接到它的电机方向。

int revleft4 = 4; //REVerse motion of Left motor

int fwdleft5 = 5; //ForWarD motion of Left motor

int revright6 = 6; //REVerse motion of Right motor

int fwdright7 = 7; //ForWarD motion of Right motor

LM298N电机驱动器模块

在setup()函数中,定义使用的GPIO引脚的数据方向。四个电机引脚和Trig引脚设置为输出,Echo引脚设置为输入。

pinMode(revleft4, OUTPUT); // set Motor pins as output

pinMode(fwdleft5, OUTPUT);

pinMode(revright6, OUTPUT);

pinMode(fwdright7, OUTPUT);

pinMode(trigPin, OUTPUT); // set trig pin as output

pinMode(echoPin, INPUT); //set echo pin as input to capture reflected waves

在loop()函数中,从HC-SR04获取距离并根据距离移动电机方向。距离将显示机器人前方的物体距离。通过将超声波束发射至10 us并在10us后接收来获取距离。

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH); // send waves for 10 us

delayMicroseconds(10);

duration = pulseIn(echoPin, HIGH); // receive reflected waves

distance = duration / 58.2; // convert to distance

delay(10);

如果距离大于定义的距离意味着其路径中没有障碍物并且它将向前移动。

if (distance > 19)

{

digitalWrite(fwdright7, HIGH); // move forward

digitalWrite(revright6, LOW);

digitalWrite(fwdleft5, HIGH);

digitalWrite(revleft4, LOW);

}

如果距离小于规定的距离以避开障碍物意味着前方存在一些障碍物。因此,在这种情况下,机器人将停止一段时间并在此之后向后移动再次停止一段时间,然后转向另一个方向。

if (distance < 18)

{

digitalWrite(fwdright7, LOW);//Stop

digitalWrite(revright6, LOW);

digitalWrite(fwdleft5, LOW);

digitalWrite(revleft4, LOW);

delay(500);

digitalWrite(fwdright7, LOW); //movebackword

digitalWrite(revright6, HIGH);

digitalWrite(fwdleft5, LOW);

digitalWrite(revleft4, HIGH);

delay(500);

digitalWrite(fwdright7, LOW);//Stop

digitalWrite(revright6, LOW);

digitalWrite(fwdleft5, LOW);

digitalWrite(revleft4, LOW);

delay(100);

digitalWrite(fwdright7, HIGH);

digitalWrite(revright6, LOW);

digitalWrite(revleft4, LOW);

digitalWrite(fwdleft5, LOW);

delay(500);

}
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27015

    浏览量

    201360
  • 超声波传感器

    关注

    18

    文章

    551

    浏览量

    35598
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184809
收藏 人收藏

    评论

    相关推荐

    超声波传感器的工作原理 超声波传感器声波频率是多少

    超声波传感器是一种常用的非接触式测距传感器,以其精确测量距离、高可靠性和广泛应用而受到广泛青睐。超声波传感器工作原理基于
    的头像 发表于 02-21 15:30 549次阅读

    超声波传感器的工作模式有哪些

    超声波传感器是一种利用超声波的特性进行测量和检测的设备。它通过发射超声波,然后接收反射回来的超声波,通过计算发射和接收之间的时间差,来确定物
    的头像 发表于 02-16 10:21 318次阅读

    超声波液位传感器的工作原理 超声波液位传感器型号

    超声波液位传感器是一种常用于测量液体或固体物料高度的装置。其工作原理基于超声波传播和回波反射的原理,通过发送超声波脉冲并测量回波的时间来确定物体的距离。下面将详细介绍
    的头像 发表于 01-30 09:52 256次阅读

    超声波传感器形成超声波的原理

    超声波传感器发射头是利用压电效应来实现产生超声波的,就是在发射头不断给出一定频率的如40KHz的电压信号,就可以产生超声波
    的头像 发表于 01-29 10:23 558次阅读

    超声波传感器超声波测距原理分析

    声音是由振动产生的,能够产生超声波的装置就是超声波传感器,习惯上称为超声换能器,或者超声探头。
    发表于 01-29 09:20 255次阅读
    <b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>和<b class='flag-5'>超声波</b>测距原理分析

    超声波传感器的硬件组成及类型

    超声波传感器的硬件组成如图所示。超声波发送电路由晶体管,电阻,T/R40-16 压电陶瓷超声波传感器和变压器组成。
    发表于 01-22 17:31 475次阅读
    <b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>的硬件组成及类型

    一文详解:如何选择超声波传感器

    随着技术的不断发展,超声波传感技术已经广泛应用于许多领域。超声波传感器可以通过发射和接收超声波来测量距离、检测障碍物和监测液位。当您需要选择
    的头像 发表于 12-29 14:34 254次阅读

    什么是超声波传感器?光学与超声波传感器的对比

    传感器头发射超声波,并再次通过传感器头接收目标物反射回来的超声波超声波传感器可通过测量从发
    发表于 11-06 17:41 413次阅读
    什么是<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>?光学与<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>的对比

    智能小车超声波代码和电路图

    树莓派综合项目2:智能小车(四)超声波Python代码和电路图,Python3运行环境,配合我的其它相关文章,可以完美搭建出树莓派遥控小车
    发表于 09-21 08:27

    超声波传感器测量距离计算实例

    该项目将向您展示如何使用超声波传感器计算距离。它将分为三个部分: 编程超声波传感器 + 将其显示到串行监视器上 如何在 LCD 上显示距离 将中断与
    发表于 07-07 14:42 2次下载
    <b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>测量距离计算实例

    南京超声波传感器怎么调节

    南京超声波传感器是一种常用的测距传感器,可以通过发射超声波信号并接收回波来测量物体与传感器之间的距离。调节
    的头像 发表于 07-07 01:23 1287次阅读

    基于Arduino超声波传感器构建一个简单的油箱液位指示器电路

    在这篇文章中,我们将学习如何使用 Arduino超声波传感器构建一个简单的油箱液位指示器电路。
    的头像 发表于 06-27 18:14 799次阅读
    基于<b class='flag-5'>Arduino</b>和<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>构建一个简单的油箱液位指示器电路

    超声波传感器的种类、优点及具体应用

    超声波传感器是一种基于超声波原理来探测物体距离、位置、形状、速度等参数的传感器。它通过发送超声波束到被测物体上,再接收反弹回来的回波,确定被
    的头像 发表于 06-07 16:35 3012次阅读

    超声波式液位传感器的应用

    超声波技术是传感器技术中的一种重要应用,而超声波式液位传感器则是应用最为广泛的类型之一。超声波式液位传感
    发表于 05-05 15:19

    如何将超声波传感器的输出从一个Arduino发送到另一个?

    嗨,你能再澄清一下这个问题吗?你想说你需要将超声波传感器(如 HCSR-04)的输出从一个 Arduino 发送到另一个吗?您要使用 wifi 发送您的数据吗?
    发表于 05-04 08:41