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

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

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

如何在樹莓派Pico上使用HC-SR04超聲波測距模塊呢?

jf_zGNBEhbi ? 來源:趣無盡 ? 2023-11-14 15:08 ? 次閱讀

超聲波傳感器使用聲音脈沖和簡單的計(jì)算來確定其自身與前方物體之間的距離。它們通常用于機(jī)器人中,以確保機(jī)器人不會(huì)行走或滾入障礙物。樹莓派 Pico 基于 RP2040 芯片的多功能微控制器板,當(dāng)與超聲波傳感器(例如 HC-SR04)等傳感器結(jié)合使用時(shí),Pico 成為測量距離、檢測物體和創(chuàng)建智能自動(dòng)化應(yīng)用的理想平臺(tái)。下面我們將了解如何在樹莓派 Pico 上使用超聲波傳感器。

材料清單

– 樹莓派 Pico
– HC-SR04 超聲波傳感器
– 跳線若干
– 面包板或 Pico 擴(kuò)展板

超聲波傳感器的引腳排列如下:

– VCC 引腳用于為傳感器供電。它通常需要 5V 直流電源。
– Trig 引腳用于向傳感器發(fā)送觸發(fā)信號(hào)。當(dāng)高電平信號(hào)(通常為 5V)施加到該引腳時(shí),傳感器開始發(fā)射超聲波。
– Echo 引腳用于接收來自傳感器的回波信號(hào)。當(dāng)傳感器發(fā)出的超聲波擊中物體并反彈回來時(shí),傳感器會(huì)在該引腳上產(chǎn)生脈沖。
– VCC 引腳是傳感器的接地連接,應(yīng)連接到電路的接地 (0V)。

60e44aa6-82bb-11ee-939d-92fbcf53809c.png

HC-SR04 的測距過程

610c5dfc-82bb-11ee-939d-92fbcf53809c.png

1. 樹莓派向 Trig 腳發(fā)送一個(gè)持續(xù) 10us 的脈沖信號(hào)。
2. HC-SR04 接收到樹莓派發(fā)送的脈沖信號(hào),開始發(fā)送超聲波 (start sending ultrasoun),并把 Echo置為高電平。然后準(zhǔn)備接收返回的超聲波。
3. 當(dāng) HC-SR04 接收到返回的超聲波 (receive returned ultrasound) 時(shí),把 Echo 置為低電平。

611efa48-82bb-11ee-939d-92fbcf53809c.png

從上述過程可以看出,Echo 高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回所經(jīng)過的時(shí)間間隔~

請對照下圖接線。

612c8370-82bb-11ee-939d-92fbcf53809c.png

Pico 的 3V3 引腳連接到超聲傳感器的 VCC 引腳。
Pico 的 GND 引腳連接到超聲傳感器的 GND 引腳。
Pico 的 GPIO 引腳 3 連接到超聲傳感器的 Trig 引腳。
Pico 的 GPIO 引腳 2 連接到超聲傳感器的 Echo 引腳。

編程

電路連接好之后,將樹莓派 Pico 連上 PC 并打開 Thonny。

1、從計(jì)算機(jī)庫導(dǎo)入 Pin 類,然后導(dǎo)入 utime 庫。前者用于控制 GPIO 引腳,后者是基于時(shí)間的函數(shù)庫。

from machine import Pin
import utime

2、創(chuàng)建兩個(gè)新對象,觸發(fā)器和回聲。這些對象配置要與超聲傳感器一起使用的 Pico 的 GPIO 引腳。例如,我們的觸發(fā)引腳用于發(fā)送電流脈沖,因此它是輸出引腳?;夭ㄒ_接收反射的脈沖,因此回波是輸入。

trigger = Pin(3, Pin.OUT)
echo = Pin(2, Pin.IN)

3、創(chuàng)建一個(gè)函數(shù) ultra(),其中將包含讀取所需的代碼。

def ultra():

4、將觸發(fā)引腳拉低,以確保其未激活,然后暫停兩微秒。

   trigger.low()
   utime.sleep_us(2)

5、在將觸發(fā)器引腳拉低之前,將觸發(fā)器引腳拉高五秒鐘。這將從超聲波傳感器發(fā)送一個(gè)短脈沖,然后關(guān)閉該脈沖。

   trigger.high()
   utime.sleep_us(5)
   trigger.low()

6、創(chuàng)建一個(gè) while 循環(huán)以檢查回波引腳。如果沒有收到回波脈沖,則更新變量 signaloff,使其包含以微秒為單位的時(shí)間戳。

   while echo.value() == 0:
       signaloff = utime.ticks_us()

7、創(chuàng)建另一個(gè) while 循環(huán),這次檢查是否已收到回聲。這會(huì)將當(dāng)前時(shí)間戳(以微秒為單位)存儲(chǔ)到 signalon 變量中。

   while echo.value() == 1:
       signalon = utime.ticks_us()

8、創(chuàng)建一個(gè)新的 timepass 變量,該變量將存儲(chǔ)脈沖離開傳感器,撞擊物體并作為回波返回傳感器所花費(fèi)的總時(shí)間值。

   timepassed = signalon - signaloff

9、創(chuàng)建一個(gè)新變量,距離。此變量將存儲(chǔ)方程式的答案。我們將行進(jìn)時(shí)間(經(jīng)過的時(shí)間)乘以聲速(343.2m/s,即每微秒 0.0343cm),該方程的乘積除以 2,因?yàn)槲覀儾恍枰傂羞M(jìn)距離,而只需從反對傳感器。

distance = (timepassed * 0.0343) / 2

10、打印一條消息到 Python Shell,顯示距離。

print("The distance from object is ",distance,"cm")

11.現(xiàn)在,我們移出該函數(shù),創(chuàng)建一個(gè)循環(huán),該循環(huán)將每秒運(yùn)行一次該函數(shù)。

while True:
   ultra()
   utime.sleep(1)

下面是完整的代碼:

from machine import Pin
import utime
trigger = Pin(3, Pin.OUT)
echo = Pin(2, Pin.IN)
def ultra():
   trigger.low()
   utime.sleep_us(2)
   trigger.high()
   utime.sleep_us(5)
   trigger.low()
   while echo.value() == 0:
       signaloff = utime.ticks_us()
   while echo.value() == 1:
       signalon = utime.ticks_us()
   timepassed = signalon - signaloff
   distance = (timepassed * 0.0343) / 2
   print("The distance from object is ",distance,"cm")
while True:
   ultra()
   utime.sleep(1)

將代碼作為 code.py 保存到樹莓派 Pico 上,然后單擊 Run 按鈕以運(yùn)行代碼。在 Python Shell 中,您將看到每秒打印的距離。

6157bb30-82bb-11ee-939d-92fbcf53809c.png







審核編輯:劉清

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

    關(guān)注

    8

    文章

    1283

    瀏覽量

    52297
  • 回波信號(hào)
    +關(guān)注

    關(guān)注

    1

    文章

    14

    瀏覽量

    8640
  • 超聲波傳感器
    +關(guān)注

    關(guān)注

    18

    文章

    574

    瀏覽量

    35874
  • 樹莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1696

    瀏覽量

    105456

原文標(biāo)題:在樹莓派 Pico 上使用 HC-SR04 超聲波測距模塊

文章出處:【微信號(hào):趣無盡,微信公眾號(hào):趣無盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于HC-SR04超聲波測距模塊

    參考:某寶HC-SR04 超聲波測距模塊商品詳情頁1.關(guān)于HC-SR04 超聲波
    發(fā)表于 08-10 06:24

    如何利用HC-SR04超聲波測距模塊去實(shí)現(xiàn)精確的直線測距

    超聲波測距原理是什么?利用STM32驅(qū)動(dòng)HC-SR04需要做好哪幾個(gè)關(guān)鍵點(diǎn)?如何利用HC-SR04超聲波
    發(fā)表于 10-20 07:28

    基于stm32的HC-SR04超聲波測距模塊怎么使用?

    基于stm32的HC-SR04超聲波測距模塊怎么使用?
    發(fā)表于 11-25 09:15

    如何利用現(xiàn)成的SysTick去實(shí)現(xiàn)HC-sr04超聲波測距

    什么是HC-sr04超聲波測距模塊HC-sr04超聲波
    發(fā)表于 12-02 08:10

    HC-SR04超聲波測距模塊原理

    文章目錄前言一、HC-SR04超聲波測距模塊原理1.模塊簡介2.模塊電氣參數(shù)3.
    發(fā)表于 12-06 07:14

    如何通過HC-SR04超聲波模塊去實(shí)現(xiàn)測距功能

    HC-SR04超聲波模塊是什么?如何通過HC-SR04超聲波模塊去實(shí)現(xiàn)測距功能?
    發(fā)表于 12-13 06:00

    如何去編寫HC-SR04超聲波測距模塊的驅(qū)動(dòng)程序

    HC-SR04超聲波測距模塊的基本工作原理是什么?如何去編寫HC-SR04超聲波
    發(fā)表于 12-15 07:45

    HC-SR04超聲波測距模塊及程序

    HC-SR04超聲波測距模塊及程序HC-SR04超聲波測距
    發(fā)表于 12-08 16:50 ?83次下載

    超聲波測距資料(HC-SR04)

    超聲波測距資料(HC-SR04),感興趣可以看看。
    發(fā)表于 07-25 18:52 ?104次下載

    超聲波測距模塊HC-SR04)用戶手冊

    超聲波資料,超聲波測距模塊HC-SR04)用戶手冊。
    發(fā)表于 12-19 14:01 ?87次下載

    簡單的超聲波測距模塊制作_HC-SR04超聲波測距模塊及制作圖詳解

    本文主要介紹的是HC-SR04超聲波測距模塊及制作圖詳解,首先介紹了超聲波測距原理及特點(diǎn),其次闡
    發(fā)表于 05-18 09:40 ?5.3w次閱讀
    簡單的<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b><b class='flag-5'>模塊</b>制作_<b class='flag-5'>HC-SR04</b><b class='flag-5'>超聲波</b><b class='flag-5'>測距</b><b class='flag-5'>模塊</b>及制作圖詳解

    使用單片機(jī)和HC-SR04設(shè)計(jì)超聲波測距系統(tǒng)的設(shè)計(jì)資料合集

    HC-SR04超聲波測距模塊配套資料合集免費(fèi)下載包括了:STC89C52RC系列手冊,PCB截圖,基于單片機(jī)的超聲波
    發(fā)表于 11-06 08:00 ?135次下載
    使用單片機(jī)和<b class='flag-5'>HC-SR04</b>設(shè)計(jì)<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>系統(tǒng)的設(shè)計(jì)資料合集

    HC-SR04超聲波測距模塊原理及電路圖

    HC-SR04超聲波測距模塊原理及電路圖
    發(fā)表于 03-10 10:13 ?61次下載
    <b class='flag-5'>HC-SR04</b><b class='flag-5'>超聲波</b><b class='flag-5'>測距</b><b class='flag-5'>模塊</b>原理及電路圖

    利用HC-SR04和51單片機(jī)制造超聲波測距模塊

    利用HC-SR04和51單片機(jī)制造超聲波測距模塊~
    發(fā)表于 11-22 16:51 ?37次下載
    利用<b class='flag-5'>HC-SR04</b>和51單片機(jī)制造<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b><b class='flag-5'>模塊</b>

    HC-SR04超聲波測距塊講解(附32單片機(jī)源碼)

    文章目錄前言一、HC-SR04超聲波測距模塊原理1.模塊簡介2.模塊電氣參數(shù)3.
    發(fā)表于 11-23 18:21 ?132次下載
    <b class='flag-5'>HC-SR04</b><b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>塊講解(附32單片機(jī)源碼)