了解如何使用Raspberry Pi 4B進(jìn)行超聲波測距項目。
硬件部件:
- Raspberry Pi 4 B型×1個
- 超聲波傳感器-HC-SR04(通用)×1個
- LED條形圖陣列,綠色×1個
- 高亮度LED,白色×1個
- 4位7段LED顯示屏×1個
- 電阻1k歐姆×1個
- 電阻2.21k歐姆×1個
- 電阻100歐姆×8
- 通孔電阻,150 ohm×10
- 電阻330歐姆×1個
- 無焊面包板全尺寸×1個
聲音由通過介質(zhì)(例如空氣)的振蕩波組成,其音高由這些波彼此之間的接近程度(頻率)確定。人耳只能聽到某些頻譜(聲波頻率范圍),這被定義為“聲學(xué)”范圍。低于聲音的極低頻聲音被定義為“次聲”,而高于聲音的高頻聲音被定義為“超聲”。
超聲波傳感器被設(shè)計為使用類似于雷達(dá)的超聲波反射來感測物體的接近或范圍,以計算反射傳感器與固體物體之間的超聲波所花費的時間。主要使用超聲波是因為它無法被人耳聽到,并且在短距離內(nèi)相對準(zhǔn)確。您當(dāng)然可以為此使用聲學(xué)聲音,但是您將擁有一個嘈雜的機(jī)器人,每隔幾秒鐘會發(fā)出嗶嗶聲……。
基本的超聲波傳感器由一個或多個超聲波發(fā)射器(基本上是揚聲器),接收器和控制電路組成。發(fā)射器發(fā)出高頻超聲波,該超聲波會從附近的任何固體物體上反彈。某些超聲波噪聲被傳感器上的接收器反射并檢測到。然后,該返回信號由控制電路處理,以計算正在發(fā)送和接收的信號之間的時間差。隨后可以將此時間與一些聰明的數(shù)學(xué)一起用于計算傳感器與反射對象之間的距離。
我們將在本教程中為Raspberry Pi使用的HC-SR04超聲波傳感器具有四個引腳:接地(GND),回波脈沖輸出(ECHO),觸發(fā)脈沖輸入(TRIG)和5V電源(Vcc)。我們使用Vcc為模塊供電,使用GND將其接地,然后使用Raspberry Pi將輸入信號發(fā)送到TRIG,這將觸發(fā)傳感器發(fā)送超聲波脈沖。脈沖波從附近的任何物體反彈,并且一些反射回傳感器。傳感器檢測到這些返回波,并測量觸發(fā)和返回脈沖之間的時間,然后在ECHO引腳上發(fā)送5V信號。
在收到回波脈沖后,傳感器被觸發(fā)之前,ECHO將為“低”(0V)。找到返回脈沖后,在該脈沖持續(xù)時間內(nèi),將ECHO設(shè)置為“高”(5V)。脈沖持續(xù)時間是指傳感器輸出超聲波脈沖與傳感器接收器檢測到返回脈沖之間的完整時間。因此,我們的Python腳本必須測量脈沖持續(xù)時間,然后從中計算出距離。
HC-SR04上的傳感器輸出信號(ECHO)的額定值為5V。但是,Raspberry Pi GPIO上的輸入引腳的額定電壓為3.3V。向該不受保護(hù)的3.3V輸入端口發(fā)送5V信號可能會損壞您的GPIO引腳,這是我們要避免的事情!我們需要使用一個由兩個電阻組成的小型分壓器電路,以將傳感器輸出電壓降低到我們的Raspberry Pi可以處理的水平。