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

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

3天内不再提示

使用Arduino Uno和超声波传感器制作智能盲杆

科技观察员 来源:circuitdigest 作者:Ashish 2022-08-02 16:52 次阅读

障碍物检测是盲人最关心的问题之一。这里展示的是使用 Arduino Uno 和超声波传感器智能盲杆。该项目的主要目标是帮助盲人轻松行走,并在他们的行走路径被其他物体或人阻碍时提醒他们。作为警告信号,电路中连接了一个语音模块,它根据物体的方向发出语音警告,例如,如果物体在左侧,那么它会说“小心物体在左侧”。

这款智能摇杆将在左侧、右侧和中心连接三个超声波传感器,以感知与任何障碍物的距离,一个 JQ6500 语音声音模块用于发出警告信号,以及一个 9V 电池为设置供电

智能盲杆所需组件

Arduino纳米

3×超声波传感器

JQ6500 语音发声模块

8Ω扬声器

1 KΩ 电阻器

JQ6500 语音发声模块

JQ6500 语音模块非常适合在扬声器上播放消息,如火警、火车和公共汽车警报系统、营业厅提示、设备故障警报等。它可以将 MP3、硬编码 MP3 或 WMV 格式文件解码为可听语音格式。它配备 24 位数模转换器,动态范围为 90dB,支持 8 / 11.025 / 12/16 / 22.05 / 24/32 / 44.1 / 48 kHz 采样率。MP3 文件可以通过按钮或通过串行通信协议进行控制。

pYYBAGLo5UGALawdAARYQHjC9iQ398.png

将 MP3 文件上传到板载内存:

可以使用 Windows 计算机将 MP3 文件上传到 JQ6500 的板载内存中(Mac 或 Linux 用户需要使用 JQ6500-28p 和 SD 卡)。下面给出了相同的步骤:

通过 Mini USB 连接器将开发板连接到您的计算机。

一个新的“CD-ROM驱动器将出现在您的计算机上,双击它并打开名为“ MusicDownload.exe ”的应用程序。

pYYBAGLo5T6AbK8jAABFV1O5b4Q149.png

部分JQ6500-16P设备没有安装MusicDownload.exe,如果找不到MusicDownload.exe程序;您可以下载包含它的 zip 文件。

该应用程序是中文的,因此要上传文件,请打开 .exe 文件,然后单击左侧的第二个选项卡。

pYYBAGLo5TiAVjGQAAA2OXJMllE616.png

然后单击右上角的文件选择器选项卡。

pYYBAGLo5TWAL4ERAAA4hqP94C0783.png

文件选择器将打开,选择您要上传的所有 mp3 文件单击文件选择器上的打开按钮

poYBAGLo5TGAUs-DAABqDF20UX0118.png

单击返回第一个选项卡,然后单击按钮上传文件

poYBAGLo5S-AYn7YAABEe490870806.png

智能盲杆电路图

智能盲杆的完整电路图如下所示。非常简单,我们只需要连接三个超声波传感器和一个JQ6500语音模块。

pYYBAGLo5SuAJM2kAAGjHIojlUs220.png

整个电路板由 9V 电池供电。电路的大脑是 Arduino Nano。三个超声波传感器用于检测摇杆左、右、前的障碍物。这三个传感器的四个引脚中的两个,即 VCC 和 GND,连接到 Arduino 的 5V 和 GND。其余两个引脚——TRIG 和 ECHO 连接到 Arduino,如下所示。

pYYBAGLo5i6AXveIAAAciWG71N8867.png

JQ5600 MP3模块是一个3.3V的逻辑模块,所以不能直接连接到Arduino的IO管脚,但是用Arduino的5V电源线供电就可以了。MP3 模块的 RX 和 TX 引脚连接到 Arduino Nano 的数字引脚 9 和 8。在 Arduino 数字引脚 9 和 MP3 模块 RX 之间放置一个 1kΩ 电阻,以降低 Arduino 的 5V 电压。

pYYBAGLo5SeAXwVqAAVnuKnNkyI761.png

用于智能盲杆的 Arduino 程序

一旦我们准备好硬件,我们就可以将 Arduino 连接到我们的计算机并开始编程。该项目的完整代码在本页底部给出;您可以将其直接上传到您的 Arduino 板。但是,如果您想知道代码是如何工作的,请进一步阅读。

该代码使用JQ6500_Serial.h和SoftwareSerial.h库。SoftwareSerial 库与 Arduino IDE 一起预安装,而JQ6500 串行库可以从给定的链接安装。

像往常一样,通过包含所有必需的库并定义此项目中使用的所有引脚来启动代码。

#include 
#include 
#include 
JQ6500_Serial mp3(8,9);
int left_trigPin = 6;
int left_echoPin = 7;
int right_trigPin = 2;
int right_echoPin = 3;
int center_trigPin = 4;
int center_echoPin = 5;

然后在setup()函数中,初始化输入输出引脚。在我们的程序中,所有三个传感器的触发引脚都是输出设备,回声引脚是输入设备。我们还初始化了串口监视器和 JQ6500 语音模块。

  pinMode(left_trigPin,输出);
  pinMode(left_echoPin,INPUT);
  pinMode(right_trigPin,输出);
  pinMode(right_echoPin,输入);
  pinMode(center_trigPin,输出);
  pinMode(center_echoPin,输入);
  序列号.开始(115200);
  mp3.开始(9600);
  mp3.reset();

在主循环中,我们正在读取所有三个传感器的数据,即左、右和中心。我们首先读取超声波传感器的传感器数据以了解距离,然后使用触发和接收到 ECHO 之间的时间计算距离。距离计算公式如下:

数字写入(left_trigPin,HIGH);
延迟微秒(10);
 数字写入(left_trigPin,低);
 持续时间=脉冲输入(left_echoPin,HIGH);
 距离 = (持续时间/2) / 29.1;

如果测量距离超过 50 厘米,则不会发出警告。但是,如果小于 50cm,就会触发语音模块播放语音警告。

如果(距离 < 50){
    Serial.print("左距离");
    Serial.print(距离);
     mp3.playFileByIndexNumber(2);
    }

所有三个传感器都使用相同的逻辑。通过更改我们用来比较的值,该程序可以很容易地适应您的应用程序。如果触发了错误警报,您可以使用串行监视器进行调试。

测试智能 Arduino 盲杆

最后,是时候测试我们的盲杆 Arduino 项目了。确保按照电路图完成连接并成功上传程序。现在,使用 9V 电池为设置供电,您应该开始看到结果。将盲人手杖移近物体,您会注意到根据物体方向的语音警告。例如,如果对象在左侧,那么它会说“小心左侧对象”。

poYBAGLo5R-ACJcJAAJ8rKH6UHs105.png

#include

#include

#include

JQ6500_Serial mp3(8,9);

int left_trigPin = 7;

int left_echoPin = 6;

int right_trigPin = 2;

int right_echoPin = 3;

int center_trigPin = 4;

int center_echoPin = 5;

无效设置(){

pinMode(left_trigPin,OUTPUT);

pinMode(left_echoPin,INPUT);

pinMode(right_trigPin,输出);

pinMode(right_echoPin,输入);

pinMode(center_trigPin,输出);

pinMode(center_echoPin,输入);

序列号.开始(115200);

mp3.开始(9600);

mp3.reset();

mp3.setVolume(50);

mp3.setLoopMode(MP3_LOOP_NONE);

}

无效循环(){

左();

正确的();

中央();

}

void left(){

delay(500);// 读取将在 ....miliseconds 之后进行

Serial.println("\n");

int 持续时间,距离;

数字写入(left_trigPin,HIGH);

延迟微秒(10);

数字写入(left_trigPin,低);

持续时间=脉冲输入(left_echoPin,HIGH);

距离 = (持续时间/2) / 29.1;

//距离=持续时间*0.034/2;

if (distance < 30) { // 更改长距离或短距离的数字。

Serial.print("左距离");

Serial.print(距离);

mp3.playFileByIndexNumber(2);

}

}

void right(){

delay(500);// 读取将在 ....miliseconds 之后进行

Serial.println("\n");

int 持续时间,距离;

数字写入(right_trigPin,HIGH);

延迟微秒(10);

数字写入(right_trigPin,低);

持续时间=脉冲输入(right_echoPin,HIGH);

距离 = (持续时间/2) / 29.1;

if (distance <30) { // 更改长距离或短距离的数字。

Serial.print("正确的距离");

Serial.print(距离);

mp3.playFileByIndexNumber(3);

}

}

void center(){

delay(500);// 读取将在 ....毫秒后进行

序列号.println("\n");

int 持续时间,距离;

数字写入(center_trigPin,HIGH);

延迟微秒(10);

数字写入(center_trigPin,低);

持续时间=脉冲输入(center_echoPin,HIGH);

距离 = (持续时间/2) / 29.1;

if (distance <30) { // 更改长距离或短距离的数字。

Serial.print("中心距");

Serial.print(距离);

mp3.playFileByIndexNumber(1);

}

}

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

    关注

    18

    文章

    583

    浏览量

    35929
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    186960
  • 障碍物检测
    +关注

    关注

    0

    文章

    3

    浏览量

    2597
收藏 人收藏

    评论

    相关推荐

    基于arduino超声波红外【走迷宫】小车设计

    最近到手基于arduino uno Rev3 智能小车。闲暇时间制作了这个走迷宫的小车。这个小车通过4个红外模块循迹迷宫地面的黑线。通过超声波
    发表于 05-06 23:31

    基于Arduino Nano和HC-SR04超声波传感器制作社交距离项目

    描述基于 Arduino Nano、超声波传感器和 LED 模块的针对 Covid-19 冠状病毒的社会隔离项目在本教程中,您将学习如何基于 Arduino Nano 和 HC-SR0
    发表于 08-09 06:30

    带有超声波传感器和LCD显示屏的Arduino uno shield

    描述带有超声波传感器和 LCD 显示屏的 Arduino uno shieldPCB
    发表于 08-10 07:01

    超声波传感器,超声波传感器是什么意思

    超声波传感器,超声波传感器是什么意思 超声波传感器的定义
    发表于 03-03 15:30 3753次阅读

    Arduino超声波传感器DIY一个智能垃圾桶

    智能垃圾桶采用基于MCU的Arduino Uno开发板,通过伺服马达和超声波传感器实现对传统垃圾箱的智能
    发表于 01-12 10:30 6200次阅读
    用<b class='flag-5'>Arduino</b>和<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>DIY一个<b class='flag-5'>智能</b>垃圾桶

    带有超声波传感器和LCD显示屏的Arduino uno shield

    电子发烧友网站提供《带有超声波传感器和LCD显示屏的Arduino uno shield.zip》资料免费下载
    发表于 07-26 09:37 0次下载
    带有<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>和LCD显示屏的<b class='flag-5'>Arduino</b> <b class='flag-5'>uno</b> shield

    由LCD、超声波接近传感器Arduino Uno板组成的跟踪系统

    电子发烧友网站提供《由LCD、超声波接近传感器Arduino Uno板组成的跟踪系统.zip》资料免费下载
    发表于 10-20 09:58 1次下载
    由LCD、<b class='flag-5'>超声波</b>接近<b class='flag-5'>传感器</b>和<b class='flag-5'>Arduino</b> <b class='flag-5'>Uno</b>板组成的跟踪系统

    如何使用Arduino超声波传感器为盲人制作第三只眼睛

    电子发烧友网站提供《如何使用Arduino超声波传感器为盲人制作第三只眼睛.zip》资料免费下载
    发表于 10-27 16:34 1次下载
    如何使用<b class='flag-5'>Arduino</b>和<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>为盲人<b class='flag-5'>制作</b>第三只眼睛

    使用超声波传感器HC SR04和Arduino Uno制作超声波距离传感器

    电子发烧友网站提供《使用超声波传感器HC SR04和Arduino Uno制作超声波距离
    发表于 10-31 09:35 1次下载
    使用<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>HC SR04和<b class='flag-5'>Arduino</b> <b class='flag-5'>Uno</b><b class='flag-5'>制作</b><b class='flag-5'>超声波</b>距离<b class='flag-5'>传感器</b>

    使用Arduino UNO进行超声波悬浮

    电子发烧友网站提供《使用Arduino UNO进行超声波悬浮.zip》资料免费下载
    发表于 11-14 10:12 3次下载
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b>进行<b class='flag-5'>超声波</b>悬浮

    带有arduino uno超声波传感器

    电子发烧友网站提供《带有arduino uno超声波传感器.zip》资料免费下载
    发表于 11-29 11:39 0次下载
    带有<b class='flag-5'>arduino</b> <b class='flag-5'>uno</b>的<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>

    Arduino Uno接口超声波传感器开源

    电子发烧友网站提供《与Arduino Uno接口超声波传感器开源.zip》资料免费下载
    发表于 11-30 09:28 1次下载
    与<b class='flag-5'>Arduino</b> <b class='flag-5'>Uno</b>接口<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>开源

    基于Arduino UNO超声波测距系统

    利用超声波传感器来确定传感器与所放置物体之间的距离。 这是一个非常简单的项目,找到之间的距离。通过互联网,我有了一个想法,用超声波传感器
    发表于 12-02 16:12 4次下载

    基于Arduino UNO超声波测距系统

    利用超声波传感器来确定传感器与所放置物体之间的距离。 这是一个非常简单的项目,找到之间的距离。通过互联网,我有了一个想法,用超声波传感器
    发表于 12-06 10:16 3次下载

    如何将超声波传感器Arduino Uno连接

    电子发烧友网站提供《如何将超声波传感器Arduino Uno连接.zip》资料免费下载
    发表于 02-03 14:14 0次下载
    如何将<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>与<b class='flag-5'>Arduino</b> <b class='flag-5'>Uno</b>连接