0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Arduino Uno和超聲波傳感器制作智能盲桿

科技觀察員 ? 來源:circuitdigest ? 作者:Ashish ? 2022-08-02 16:52 ? 次閱讀

障礙物檢測(cè)是盲人最關(guān)心的問題之一。這里展示的是使用 Arduino Uno 和超聲波傳感器智能盲桿。該項(xiàng)目的主要目標(biāo)是幫助盲人輕松行走,并在他們的行走路徑被其他物體或人阻礙時(shí)提醒他們。作為警告信號(hào),電路中連接了一個(gè)語音模塊,它根據(jù)物體的方向發(fā)出語音警告,例如,如果物體在左側(cè),那么它會(huì)說“小心物體在左側(cè)”。

這款智能搖桿將在左側(cè)、右側(cè)和中心連接三個(gè)超聲波傳感器,以感知與任何障礙物的距離,一個(gè) JQ6500 語音聲音模塊用于發(fā)出警告信號(hào),以及一個(gè) 9V 電池為設(shè)置供電

智能盲桿所需組件

Arduino納米

3×超聲波傳感器

JQ6500 語音發(fā)聲模塊

8Ω揚(yáng)聲器

1 KΩ 電阻器

JQ6500 語音發(fā)聲模塊

JQ6500 語音模塊非常適合在揚(yáng)聲器上播放消息,如火警、火車和公共汽車警報(bào)系統(tǒng)、營業(yè)廳提示、設(shè)備故障警報(bào)等。它可以將 MP3、硬編碼 MP3 或 WMV 格式文件解碼為可聽語音格式。它配備 24 位數(shù)模轉(zhuǎn)換器,動(dòng)態(tài)范圍為 90dB,支持 8 / 11.025 / 12/16 / 22.05 / 24/32 / 44.1 / 48 kHz 采樣率。MP3 文件可以通過按鈕或通過串行通信協(xié)議進(jìn)行控制。

pYYBAGLo5UGALawdAARYQHjC9iQ398.png

將 MP3 文件上傳到板載內(nèi)存:

可以使用 Windows 計(jì)算機(jī)將 MP3 文件上傳到 JQ6500 的板載內(nèi)存中(Mac 或 Linux 用戶需要使用 JQ6500-28p 和 SD 卡)。下面給出了相同的步驟:

通過 Mini USB 連接器將開發(fā)板連接到您的計(jì)算機(jī)。

一個(gè)新的“CD-ROM驅(qū)動(dòng)器將出現(xiàn)在您的計(jì)算機(jī)上,雙擊它并打開名為“ MusicDownload.exe ”的應(yīng)用程序。

pYYBAGLo5T6AbK8jAABFV1O5b4Q149.png

部分JQ6500-16P設(shè)備沒有安裝MusicDownload.exe,如果找不到MusicDownload.exe程序;您可以下載包含它的 zip 文件。

該應(yīng)用程序是中文的,因此要上傳文件,請(qǐng)打開 .exe 文件,然后單擊左側(cè)的第二個(gè)選項(xiàng)卡。

pYYBAGLo5TiAVjGQAAA2OXJMllE616.png

然后單擊右上角的文件選擇器選項(xiàng)卡。

pYYBAGLo5TWAL4ERAAA4hqP94C0783.png

文件選擇器將打開,選擇您要上傳的所有 mp3 文件單擊文件選擇器上的打開按鈕

poYBAGLo5TGAUs-DAABqDF20UX0118.png

單擊返回第一個(gè)選項(xiàng)卡,然后單擊按鈕上傳文件

poYBAGLo5S-AYn7YAABEe490870806.png

智能盲桿電路圖

智能盲桿的完整電路圖如下所示。非常簡(jiǎn)單,我們只需要連接三個(gè)超聲波傳感器和一個(gè)JQ6500語音模塊。

pYYBAGLo5SuAJM2kAAGjHIojlUs220.png

整個(gè)電路板由 9V 電池供電。電路的大腦是 Arduino Nano。三個(gè)超聲波傳感器用于檢測(cè)搖桿左、右、前的障礙物。這三個(gè)傳感器的四個(gè)引腳中的兩個(gè),即 VCC 和 GND,連接到 Arduino 的 5V 和 GND。其余兩個(gè)引腳——TRIG 和 ECHO 連接到 Arduino,如下所示。

pYYBAGLo5i6AXveIAAAciWG71N8867.png

JQ5600 MP3模塊是一個(gè)3.3V的邏輯模塊,所以不能直接連接到Arduino的IO管腳,但是用Arduino的5V電源線供電就可以了。MP3 模塊的 RX 和 TX 引腳連接到 Arduino Nano 的數(shù)字引腳 9 和 8。在 Arduino 數(shù)字引腳 9 和 MP3 模塊 RX 之間放置一個(gè) 1kΩ 電阻,以降低 Arduino 的 5V 電壓。

pYYBAGLo5SeAXwVqAAVnuKnNkyI761.png

用于智能盲桿的 Arduino 程序

一旦我們準(zhǔn)備好硬件,我們就可以將 Arduino 連接到我們的計(jì)算機(jī)并開始編程。該項(xiàng)目的完整代碼在本頁底部給出;您可以將其直接上傳到您的 Arduino 板。但是,如果您想知道代碼是如何工作的,請(qǐng)進(jìn)一步閱讀。

該代碼使用JQ6500_Serial.h和SoftwareSerial.h庫。SoftwareSerial 庫與 Arduino IDE 一起預(yù)安裝,而JQ6500 串行庫可以從給定的鏈接安裝。

像往常一樣,通過包含所有必需的庫并定義此項(xiàng)目中使用的所有引腳來啟動(dòng)代碼。

#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()函數(shù)中,初始化輸入輸出引腳。在我們的程序中,所有三個(gè)傳感器的觸發(fā)引腳都是輸出設(shè)備,回聲引腳是輸入設(shè)備。我們還初始化了串口監(jiān)視器和 JQ6500 語音模塊。

  pinMode(left_trigPin,輸出);
  pinMode(left_echoPin,INPUT);
  pinMode(right_trigPin,輸出);
  pinMode(right_echoPin,輸入);
  pinMode(center_trigPin,輸出);
  pinMode(center_echoPin,輸入);
  序列號(hào).開始(115200);
  mp3.開始(9600);
  mp3.reset();

在主循環(huán)中,我們正在讀取所有三個(gè)傳感器的數(shù)據(jù),即左、右和中心。我們首先讀取超聲波傳感器的傳感器數(shù)據(jù)以了解距離,然后使用觸發(fā)和接收到 ECHO 之間的時(shí)間計(jì)算距離。距離計(jì)算公式如下:

數(shù)字寫入(left_trigPin,HIGH);
延遲微秒(10);
 數(shù)字寫入(left_trigPin,低);
 持續(xù)時(shí)間=脈沖輸入(left_echoPin,HIGH);
 距離 = (持續(xù)時(shí)間/2) / 29.1;

如果測(cè)量距離超過 50 厘米,則不會(huì)發(fā)出警告。但是,如果小于 50cm,就會(huì)觸發(fā)語音模塊播放語音警告。

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

所有三個(gè)傳感器都使用相同的邏輯。通過更改我們用來比較的值,該程序可以很容易地適應(yīng)您的應(yīng)用程序。如果觸發(fā)了錯(cuò)誤警報(bào),您可以使用串行監(jiān)視器進(jìn)行調(diào)試。

測(cè)試智能 Arduino 盲桿

最后,是時(shí)候測(cè)試我們的盲桿 Arduino 項(xiàng)目了。確保按照電路圖完成連接并成功上傳程序?,F(xiàn)在,使用 9V 電池為設(shè)置供電,您應(yīng)該開始看到結(jié)果。將盲人手杖移近物體,您會(huì)注意到根據(jù)物體方向的語音警告。例如,如果對(duì)象在左側(cè),那么它會(huì)說“小心左側(cè)對(duì)象”。

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;

無效設(shè)置(){

pinMode(left_trigPin,OUTPUT);

pinMode(left_echoPin,INPUT);

pinMode(right_trigPin,輸出);

pinMode(right_echoPin,輸入);

pinMode(center_trigPin,輸出);

pinMode(center_echoPin,輸入);

序列號(hào).開始(115200);

mp3.開始(9600);

mp3.reset();

mp3.setVolume(50);

mp3.setLoopMode(MP3_LOOP_NONE);

}

無效循環(huán)(){

左();

正確的();

中央();

}

void left(){

delay(500);// 讀取將在 ....miliseconds 之后進(jìn)行

Serial.println("\n");

int 持續(xù)時(shí)間,距離;

數(shù)字寫入(left_trigPin,HIGH);

延遲微秒(10);

數(shù)字寫入(left_trigPin,低);

持續(xù)時(shí)間=脈沖輸入(left_echoPin,HIGH);

距離 = (持續(xù)時(shí)間/2) / 29.1;

//距離=持續(xù)時(shí)間*0.034/2;

if (distance < 30) { // 更改長距離或短距離的數(shù)字。

Serial.print("左距離");

Serial.print(距離);

mp3.playFileByIndexNumber(2);

}

}

void right(){

delay(500);// 讀取將在 ....miliseconds 之后進(jìn)行

Serial.println("\n");

int 持續(xù)時(shí)間,距離;

數(shù)字寫入(right_trigPin,HIGH);

延遲微秒(10);

數(shù)字寫入(right_trigPin,低);

持續(xù)時(shí)間=脈沖輸入(right_echoPin,HIGH);

距離 = (持續(xù)時(shí)間/2) / 29.1;

if (distance <30) { // 更改長距離或短距離的數(shù)字。

Serial.print("正確的距離");

Serial.print(距離);

mp3.playFileByIndexNumber(3);

}

}

void center(){

delay(500);// 讀取將在 ....毫秒后進(jìn)行

序列號(hào).println("\n");

int 持續(xù)時(shí)間,距離;

數(shù)字寫入(center_trigPin,HIGH);

延遲微秒(10);

數(shù)字寫入(center_trigPin,低);

持續(xù)時(shí)間=脈沖輸入(center_echoPin,HIGH);

距離 = (持續(xù)時(shí)間/2) / 29.1;

if (distance <30) { // 更改長距離或短距離的數(shù)字。

Serial.print("中心距");

Serial.print(距離);

mp3.playFileByIndexNumber(1);

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 超聲波傳感器
    +關(guān)注

    關(guān)注

    18

    文章

    574

    瀏覽量

    35854
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6455

    瀏覽量

    186372
  • 障礙物檢測(cè)
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    2592
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于arduino超聲波紅外【走迷宮】小車設(shè)計(jì)

    最近到手基于arduino uno Rev3 智能小車。閑暇時(shí)間制作了這個(gè)走迷宮的小車。這個(gè)小車通過4個(gè)紅外模塊循跡迷宮地面的黑線。通過超聲波
    發(fā)表于 05-06 23:31

    基于Arduino Nano和HC-SR04超聲波傳感器制作社交距離項(xiàng)目

    描述基于 Arduino Nano、超聲波傳感器和 LED 模塊的針對(duì) Covid-19 冠狀病毒的社會(huì)隔離項(xiàng)目在本教程中,您將學(xué)習(xí)如何基于 Arduino Nano 和 HC-SR0
    發(fā)表于 08-09 06:30

    帶有超聲波傳感器和LCD顯示屏的Arduino uno shield

    描述帶有超聲波傳感器和 LCD 顯示屏的 Arduino uno shieldPCB
    發(fā)表于 08-10 07:01

    超聲波傳感器,超聲波傳感器是什么意思

    超聲波傳感器,超聲波傳感器是什么意思 超聲波傳感器的定義
    發(fā)表于 03-03 15:30 ?3720次閱讀

    Arduino超聲波傳感器DIY一個(gè)智能垃圾桶

    智能垃圾桶采用基于MCU的Arduino Uno開發(fā)板,通過伺服馬達(dá)和超聲波傳感器實(shí)現(xiàn)對(duì)傳統(tǒng)垃圾箱的智能
    發(fā)表于 01-12 10:30 ?5909次閱讀
    用<b class='flag-5'>Arduino</b>和<b class='flag-5'>超聲波</b><b class='flag-5'>傳感器</b>DIY一個(gè)<b class='flag-5'>智能</b>垃圾桶

    帶有超聲波傳感器和LCD顯示屏的Arduino uno shield

    電子發(fā)燒友網(wǎng)站提供《帶有超聲波傳感器和LCD顯示屏的Arduino uno shield.zip》資料免費(fèi)下載
    發(fā)表于 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板組成的跟蹤系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《由LCD、超聲波接近傳感器Arduino Uno板組成的跟蹤系統(tǒng).zip》資料免費(fèi)下載
    發(fā)表于 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>板組成的跟蹤系統(tǒng)

    使用超聲波傳感器HC SR04和Arduino Uno制作超聲波距離傳感器

    電子發(fā)燒友網(wǎng)站提供《使用超聲波傳感器HC SR04和Arduino Uno制作超聲波距離
    發(fā)表于 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進(jìn)行超聲波懸浮

    電子發(fā)燒友網(wǎng)站提供《使用Arduino UNO進(jìn)行超聲波懸浮.zip》資料免費(fèi)下載
    發(fā)表于 11-14 10:12 ?3次下載
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b>進(jìn)行<b class='flag-5'>超聲波</b>懸浮

    帶有arduino uno超聲波傳感器

    電子發(fā)燒友網(wǎng)站提供《帶有arduino uno超聲波傳感器.zip》資料免費(fèi)下載
    發(fā)表于 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接口超聲波傳感器開源

    電子發(fā)燒友網(wǎng)站提供《與Arduino Uno接口超聲波傳感器開源.zip》資料免費(fèi)下載
    發(fā)表于 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>開源

    使用Labview、Arduino超聲波傳感器制作距離/測(cè)距程序

    電子發(fā)燒友網(wǎng)站提供《使用Labview、Arduino超聲波傳感器制作距離/測(cè)距程序.zip》資料免費(fèi)下載
    發(fā)表于 11-30 11:19 ?6次下載
    使用Labview、<b class='flag-5'>Arduino</b>和<b class='flag-5'>超聲波</b><b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>距離/測(cè)距程序

    基于Arduino UNO超聲波測(cè)距系統(tǒng)

    利用超聲波傳感器來確定傳感器與所放置物體之間的距離。 這是一個(gè)非常簡(jiǎn)單的項(xiàng)目,找到之間的距離。通過互聯(lián)網(wǎng),我有了一個(gè)想法,用超聲波傳感器
    發(fā)表于 12-02 16:12 ?4次下載

    基于Arduino UNO超聲波測(cè)距系統(tǒng)

    利用超聲波傳感器來確定傳感器與所放置物體之間的距離。 這是一個(gè)非常簡(jiǎn)單的項(xiàng)目,找到之間的距離。通過互聯(lián)網(wǎng),我有了一個(gè)想法,用超聲波傳感器
    發(fā)表于 12-06 10:16 ?3次下載

    如何將超聲波傳感器Arduino Uno連接

    電子發(fā)燒友網(wǎng)站提供《如何將超聲波傳感器Arduino Uno連接.zip》資料免費(fèi)下載
    發(fā)表于 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>連接