那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

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

材料清單

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

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

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

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

HC-SR04 的測距過程

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

1. 樹莓派向 Trig 腳發送一個持續 10us 的脈沖信號。
2. HC-SR04 接收到樹莓派發送的脈沖信號,開始發送超聲波 (start sending ultrasoun),并把 Echo置為高電平。然后準備接收返回的超聲波。
3. 當 HC-SR04 接收到返回的超聲波 (receive returned ultrasound) 時,把 Echo 置為低電平。

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

從上述過程可以看出,Echo 高電平持續的時間就是超聲波從發射到返回所經過的時間間隔~

請對照下圖接線。

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

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

編程

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

1、從計算機庫導入 Pin 類,然后導入 utime 庫。前者用于控制 GPIO 引腳,后者是基于時間的函數庫。

from machine import Pin
import utime

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

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

3、創建一個函數 ultra(),其中將包含讀取所需的代碼。

def ultra():

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

   trigger.low()
   utime.sleep_us(2)

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

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

6、創建一個 while 循環以檢查回波引腳。如果沒有收到回波脈沖,則更新變量 signaloff,使其包含以微秒為單位的時間戳。

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

7、創建另一個 while 循環,這次檢查是否已收到回聲。這會將當前時間戳(以微秒為單位)存儲到 signalon 變量中。

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

8、創建一個新的 timepass 變量,該變量將存儲脈沖離開傳感器,撞擊物體并作為回波返回傳感器所花費的總時間值。

   timepassed = signalon - signaloff

9、創建一個新變量,距離。此變量將存儲方程式的答案。我們將行進時間(經過的時間)乘以聲速(343.2m/s,即每微秒 0.0343cm),該方程的乘積除以 2,因為我們不需要總行進距離,而只需從反對傳感器。

distance = (timepassed * 0.0343) / 2

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

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

11.現在,我們移出該函數,創建一個循環,該循環將每秒運行一次該函數。

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 按鈕以運行代碼。在 Python Shell 中,您將看到每秒打印的距離。

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







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 直流電源
    +關注

    關注

    8

    文章

    1322

    瀏覽量

    52621
  • 回波信號
    +關注

    關注

    1

    文章

    14

    瀏覽量

    8665
  • 超聲波傳感器

    關注

    18

    文章

    587

    瀏覽量

    36018
  • 樹莓派
    +關注

    關注

    117

    文章

    1710

    瀏覽量

    105882

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

文章出處:【微信號:趣無盡,微信公眾號:趣無盡】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于HC-SR04超聲波測距模塊

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

    如何利用HC-SR04超聲波測距模塊去實現精確的直線測距

    超聲波測距原理是什么?利用STM32驅動HC-SR04需要做好哪幾個關鍵點?如何利用HC-SR04超聲波
    發表于 10-20 07:28

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

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

    如何利用現成的SysTick去實現HC-sr04超聲波測距

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

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

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

    如何通過HC-SR04超聲波模塊去實現測距功能

    HC-SR04超聲波模塊是什么?如何通過HC-SR04超聲波模塊去實現測距功能
    發表于 12-13 06:00

    如何去編寫HC-SR04超聲波測距模塊的驅動程序

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

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

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

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

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

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

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

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

    本文主要介紹的是HC-SR04超聲波測距模塊及制作圖詳解,首先介紹了超聲波測距原理及特點,其次闡
    發表于 05-18 09:40 ?5.4w次閱讀
    簡單的<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>及制作圖詳解

    使用單片機和HC-SR04設計超聲波測距系統的設計資料合集

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

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

    HC-SR04超聲波測距模塊原理及電路圖
    發表于 03-10 10:13 ?62次下載
    <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單片機制造超聲波測距模塊

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

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

    文章目錄前言一、HC-SR04超聲波測距模塊原理1.模塊簡介2.模塊電氣參數3.
    發表于 11-23 18:21 ?133次下載
    <b class='flag-5'>HC-SR04</b><b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>塊講解(附32單片機源碼)
    百家乐官网真人百家乐官网皇冠| 88娱乐城天上人间| 香港六合彩85期开奖结果| 豪门娱乐网| 大名县| 百家乐官网10个人| 信誉百家乐官网博彩网| 真人百家乐官网的玩法技巧和规则| 24山向水法吉凶断| 贵族百家乐官网的玩法技巧和规则 | 百家乐象棋玩法| 全讯网新2网站112| 博e百| 网上百家乐官网如何打水| 金域百家乐官网的玩法技巧和规则 | 澳门百家乐赌钱| 大发888古怪猴子| 保单百家乐官网技巧| 新濠百家乐官网的玩法技巧和规则| 百家乐透视牌靴| 亿酷棋牌世界下载手机版| 百家乐官网视频台球游戏| 百家乐官网筹码14克| 威尼斯人娱乐城游戏| 百家乐官网固定打法| 百家乐官网九| 百家乐机械图片| bet365合法吗| 迪威百家乐官网娱乐场| 波音百家乐官网网上娱乐| 游戏机百家乐作弊| 大发888王博| 百家乐官网赌博详解| 百家乐高科技出千工具| 旅游赌博景点lydb| 足球百家乐官网系统| 利博百家乐的玩法技巧和规则| 广河县| 百家乐注码方法| 六合彩生肖表| 百家乐官网网开服表|