使用超聲波傳感器和RGB LED建立視覺接近警報(bào)
臨近警報(bào)非常有用,無論你是倒車到停車位(沒有后視攝像頭),想警告別人你在一個(gè)死角,或者想避免太靠近東西。我想看看我是否可以用一些非常標(biāo)準(zhǔn)的硬件組件和樹莓派自己構(gòu)建一個(gè)!
你將創(chuàng)造什么
視覺接近警報(bào)。當(dāng)物體在“危險(xiǎn)”距離閾值內(nèi)時(shí),燈光將根據(jù)超聲波傳感器變?yōu)榧t色(當(dāng)物體在“安全”距離閾值內(nèi)時(shí))或綠色(當(dāng)物體在“安全”距離閾值內(nèi))。
第一步:設(shè)置樹莓派
樹莓派從microSD卡啟動(dòng)。您需要將Raspberry Pi OS安裝在與Pi一起使用的microSD卡上。有關(guān)安裝Raspberry Pi的其他方法的更多詳細(xì)信息,請(qǐng)參閱Viam文檔。
安裝樹莓派操作系統(tǒng)
1. 將microSD卡連接到計(jì)算機(jī)上。
2. 啟動(dòng)Raspberry Pi Imager。
3. 單擊“選擇設(shè)備”。選擇您的Pi型號(hào),即Raspberry Pi 4。
4. 單擊“選擇操作系統(tǒng)”。在菜單中選擇“Raspberry Pi OS(64位)”。
5. 單擊CHOOSE STORAGE。從設(shè)備列表中,選擇您打算在Raspberry Pi中使用的microSD卡。
6. 配置您的樹莓派遠(yuǎn)程訪問。單擊Next。當(dāng)提示應(yīng)用操作系統(tǒng)自定義設(shè)置時(shí),選擇EDIT settings。
7. 選中Set hostname,并在該字段中輸入您想要訪問Pi的名稱,例如echo
8. 選中“設(shè)置用戶名和密碼”復(fù)選框,并設(shè)置用于登錄Pi的用戶名(例如,您的名字)。如果跳過此步驟,默認(rèn)用戶名將是pi(出于安全原因不建議使用)。并指定密碼。
9. 選中“配置無線局域網(wǎng)”并輸入無線網(wǎng)絡(luò)憑據(jù)。“SSID”為Wi-Fi網(wǎng)絡(luò)名稱,“password”為網(wǎng)絡(luò)密碼。另外,將“無線局域網(wǎng)國(guó)家”部分更改為您的路由器當(dāng)前正在運(yùn)行的地方。這將允許你的Pi連接到你的Wi-Fi,這樣你就可以無線運(yùn)行viam-server。
10. 勾選“設(shè)置區(qū)域設(shè)置”,設(shè)置時(shí)區(qū)和鍵盤布局。
請(qǐng)確保記住所設(shè)置的主機(jī)名、用戶名和密碼,因?yàn)樵赟SH到Pi時(shí)將需要這些。
11. 選擇“SERVICES”頁簽,勾選“Enable SSH”,并勾選“Use password authentication”。
12. 保存您的更新,并確認(rèn)YES以應(yīng)用操作系統(tǒng)自定義設(shè)置。確認(rèn)“是”,擦除microSD卡上的數(shù)據(jù)。操作系統(tǒng)也可能提示您輸入管理員密碼。
在授予Imager權(quán)限之后,它將開始向microSD卡寫入并驗(yàn)證Linux安裝。安裝完成后,從計(jì)算機(jī)上取下microSD卡。
第二步:SSH連接
1. 將microSD卡插入樹莓派,并將其插入插座來啟動(dòng)樹莓派。一個(gè)紅色LED會(huì)亮起,表示Pi已經(jīng)接通電源。
確保使用5V 3A USB-C電源為樹莓派4供電。使用電流不足的電源可能導(dǎo)致不穩(wěn)定、節(jié)流或意外行為。此外,雖然在較新的樹莓派4型號(hào)上默認(rèn)啟用USB引導(dǎo),但舊版本可能需要固件更新才能啟用它。有關(guān)詳細(xì)的安裝說明和兼容性,請(qǐng)參閱Raspberry Pi文檔。
2. 啟動(dòng)Pi后,使用SSH連接到它。從命令行終端窗口輸入以下命令。<>中的文本(包括<和>符號(hào)本身)應(yīng)該替換為您在設(shè)置Pi時(shí)配置的用戶名和主機(jī)名。
3. 如果系統(tǒng)提示“您確定要繼續(xù)連接嗎?”,請(qǐng)輸入“yes”并按回車鍵。然后,輸入用戶名的密碼。您應(yīng)該看到一條登錄消息和一個(gè)命令提示符。
4. 更新您的樹莓派以確保安裝了所有最新的軟件包
完整布線預(yù)覽
現(xiàn)在是時(shí)候?qū)⒂布M件連接在一起了!這是你將連接在一起的東西:
下面的部分將每次只關(guān)注一個(gè)組件,并顯示本地化的接線圖。但是,在需要的時(shí)候可以隨意引用這個(gè)完整的圖表。
好了,首先是超聲波傳感器!
第三步:連接超聲波傳感器
首先,我們要設(shè)置超聲波傳感器。你需要你的:
?覆盆子π
?超聲波傳感器
?電路試驗(yàn)板
?8 -跳線
?1 - 1000歐姆電阻
?1 - 2000歐姆電阻
超聲波傳感器連接到樹莓派的接線圖如下,使用面包板和電阻控制電流:
超聲波傳感器將使用樹莓派上的4個(gè)GPIO引腳
?VCC到GPIO 5V(物理引腳2)
?GND到GPIO GND(物理引腳6)
?觸發(fā)到GPIO 23(物理引腳16)
?ECHO到GPIO 24(物理引腳18)
剛接觸布線?如果需要,下面的說明將帶您一步一步地正確連接超聲波傳感器。如果您對(duì)接線圖感到滿意,并且能夠在沒有額外指導(dǎo)的情況下連接硬件,請(qǐng)隨意跳過下一節(jié)(設(shè)置RGB LED) !
一步一步的超聲波接線說明
1. 將四根跳線插入HC-SR04的引腳。
2. 將VCC線插入面包板的正軌,將GND線插入負(fù)軌。從這一點(diǎn)開始,我們將使用面包板來簡(jiǎn)化布線過程,并提供一個(gè)安全的平臺(tái)來連接組件而無需焊接。
3. 將跳線插入Pi上的GPIO 5V(物理引腳2),并將該線連接到面包板的正軌,將其連接到VCC。
4. 將跳線插入Pi上的GPIO GND(物理引腳6),并將該線連接到面包板的負(fù)軌,該負(fù)軌將其連接到GND。
5. 將超聲波傳感器的TRIG線插入面包板上的空白導(dǎo)軌,然后使用另一條跳線將該導(dǎo)軌連接到Pi的GPIO 23(物理引腳16)引腳。(從技術(shù)上講,你可以跳過面包板上的連接,直接將TRIG線連接到Pi;這是個(gè)人喜好的問題!)
6. 將超聲波傳感器的ECHO線插入另一個(gè)空白軌道,然后使用1000歐姆電阻(R1)將其連接到另一個(gè)空白軌道。
7. 使用2000歐姆(R2)電阻將R1軌道連接到GND軌道。兩個(gè)電阻器之間一定要留出空間。
8. 在電阻之間留出空間的地方插入一根跳線,并將該線連接到Pi的GPIO 24(物理引腳18)引腳。
甜蜜的!你已經(jīng)設(shè)置好了超聲波傳感器。
這將使您能夠捕獲距離讀數(shù)。接下來讓我們添加RGB LED !
第四步:連接RGB LED
接下來,我們將設(shè)置RGB LED。你需要你的
?RGB LED
?4 -跳線
?2 - 10歐姆電阻
?1 - 100歐姆電阻
查看接線圖:參考以下接線圖(為清晰起見省略了超聲波接線),了解如何將RGB LED連接到樹莓派上,使用面包板和電阻來控制電流:
RGB LED將在樹莓派上使用4個(gè)GPIO引腳
?公共陰極(GND)到GND(物理引腳34)
?紅色到GPIO 13(物理引腳33)
?綠轉(zhuǎn)GPIO 12(物理引腳32)
?藍(lán)色到GPIO 18(物理引腳12)
剛接觸布線?如果需要,以下說明將帶您逐步了解如何正確連接RGB LED。網(wǎng)站輸出。xyz也是一個(gè)有用的資源,您可以在其中與樹莓派的每個(gè)引腳的確切布局和角色進(jìn)行交互。當(dāng)使用Viam時(shí),請(qǐng)確保引用物理引腳編號(hào),而不是pinout.xyz上列出的GPIO編號(hào)。
如果您對(duì)接線圖感到滿意,并且能夠在沒有額外指導(dǎo)的情況下連接硬件,請(qǐng)隨意跳到下一節(jié)(在Viam中配置您的機(jī)器)!
一步一步RGBLEDwiring說明
1. 檢查L(zhǎng)ED的方向:一個(gè)普通的陰極RGB LED有四個(gè)腳:
GND (Common陰極):最長(zhǎng)的端腳,應(yīng)接地。
紅色(R):通常是靠近公共陰極的腿(如下圖左側(cè))。
綠色(G):陰極另一側(cè)的腿(如下圖右)。
藍(lán)色(B):離陰極最遠(yuǎn)的一條腿。
2. 將RGB LED插入面包板上的空白導(dǎo)軌。從這里,你將使用跳線和電阻將它連接到你的Pi。
3. 在LED最長(zhǎng)的腿旁邊插入一根跳線,然后將該線連接到Pi的GND引腳(物理引腳34)。這將是你們的土地。
4. 將100歐姆電阻連接到LED的紅色支腳上。
5。在LED的綠色支腿上連接一個(gè)10歐姆的電阻,在藍(lán)色支腿上連接另一個(gè)10歐姆的電阻。
6. 將電阻連接到Pi上。
從紅腳(100歐姆電阻)連接一根跳線到Pi的GPIO 13引腳(物理引腳33)
從綠色腳線(10歐姆電阻)連接一根跳線到Pi的GPIO 12引腳(物理引腳32)
從藍(lán)腳(10歐姆電阻)連接一根跳線到Pi的GPIO 18引腳(物理引腳12)
7. 仔細(xì)檢查連接,確保極性正確,避免接線錯(cuò)誤。
您的LED可能帶有推薦電阻的電阻。如果歐姆電平太高,那么沒有電源將得到LED。你可以用這個(gè)方便的工具找出你正在使用的是哪一個(gè)。
硬件都連接好之后,就可以在Viam應(yīng)用程序中配置它們了,我們將在下一節(jié)中進(jìn)行配置。
第五步:在Viam中配置您的機(jī)器
1. 在Viam應(yīng)用程序的LOCATIONS選項(xiàng)卡下,通過輸入名稱并單擊Add machine來創(chuàng)建一臺(tái)機(jī)器。
2. 單擊查看設(shè)置說明。
3. 要在樹莓派上安裝viam-server(這樣您就可以與傳感器和RGB LED通信并控制它們),請(qǐng)為樹莓派選擇Linux / Aarch64平臺(tái),并將安裝方法保留為viam-agent。
4. 使用viam-agent下載并在Raspberry Pi上安裝viam-server。按照說明從您的Raspberry Pi的SSH提示符運(yùn)行安裝說明中提供的命令。
5. 當(dāng)機(jī)器成功連接時(shí),設(shè)置頁面將顯示。
配置并連接好機(jī)器之后,就可以添加外圍設(shè)備了。首先,板(也就是你的樹莓派)。
第六步:在Viam中配置樹莓派板
要訪問樹莓派的GPIO引腳,請(qǐng)?jiān)赩iam應(yīng)用程序中將該板添加到您的機(jī)器中。
1. 在Viam應(yīng)用中,找到CONFIGURE選項(xiàng)卡。
2. 單擊左側(cè)菜單中的+圖標(biāo)并選擇Component。
3. 選擇board,找到raspberry-pi:rpi4模塊。單擊“添加模塊”?,F(xiàn)在保留默認(rèn)名稱board-1,然后單擊Create。這增加了與樹莓派4的GPIO引腳一起工作的模塊。
4. 注意,添加此模塊將添加稱為board-1的單板硬件組件。您將在右側(cè)看到一個(gè)可折疊的卡片,您可以在其中配置board組件,并在左側(cè)欄中列出相應(yīng)的board-1部件。
5. 單擊右上方的Save保存并應(yīng)用配置更改。
6. 展開面板的TEST部分,嘗試寫入物理引腳。例如,由于我們的RGB LED的紅色腿連接到物理引腳33,在引腳字段中輸入33并將其信號(hào)設(shè)置為高。這將打開RGB LED并發(fā)出紅光。
7. 將信號(hào)設(shè)置為低電平(每個(gè)引腳先前設(shè)置為高電平)以關(guān)閉LED。
故障排除:仔細(xì)檢查L(zhǎng)ED組件的接線。還要在LOGS選項(xiàng)卡下檢查可能出現(xiàn)的問題。
現(xiàn)在您的板配置,您可以配置您的超聲波傳感器下一步。
第七步:在Viam中配置超聲波傳感器
要訪問超聲波傳感器的測(cè)量值,請(qǐng)將傳感器添加到您的機(jī)器上。
1. 在Viam應(yīng)用中,找到CONFIGURE選項(xiàng)卡。
2. 單擊左側(cè)菜單中的+圖標(biāo)并選擇Component。
3. 選擇傳感器,找到超聲波傳感器模塊。單擊“添加模塊”?,F(xiàn)在保留默認(rèn)名稱sensor-1,然后單擊Create。這增加了模塊,使您可以訪問超聲波傳感器的讀數(shù)。
4. 注意,添加此模塊會(huì)添加稱為sensor-1的傳感器硬件組件。您將在右側(cè)看到一個(gè)可折疊的卡片,您可以在其中配置傳感器組件,并在左側(cè)欄中列出相應(yīng)的傳感器-1部件。
5. 在JSON配置字段中(在CONFIGURE面板中),添加以下屬性。這告訴您的傳感器使用哪個(gè)引腳用于其回聲脈沖輸出(Echo)和觸發(fā)脈沖輸入(TRIG)以及它連接到哪個(gè)板。在你的例子中,那是board-1,也就是你之前添加的樹莓派。您可以在JSON配置旁邊的Documentation面板中閱讀有關(guān)每個(gè)屬性的更多信息
6. 單擊右上方的Save保存并應(yīng)用配置更改。
7. 展開面板的TEST部分,對(duì)傳感器進(jìn)行實(shí)驗(yàn)。您應(yīng)該看到一個(gè)獲取讀數(shù)標(biāo)簽和一個(gè)不斷更新的測(cè)量值。試著把你的手放在傳感器前面,并把它移到更遠(yuǎn)的地方。讀數(shù)應(yīng)該反映這些變化,當(dāng)您將對(duì)象靠近傳感器時(shí)返回較小的值,當(dāng)您將對(duì)象遠(yuǎn)離傳感器時(shí)返回較大的值。
關(guān)于Get讀數(shù)值的說明:這里返回的讀數(shù)實(shí)際上是傳感器發(fā)射脈沖并接收脈沖所需的時(shí)間,通常以微秒為單位。為了得到一個(gè)有意義的距離,還需要進(jìn)行一些進(jìn)一步的計(jì)算。目前,我們?nèi)匀豢梢约僭O(shè)讀數(shù)大表示“更遠(yuǎn)”,讀數(shù)小表示“更近”。
為什么這么緊張?讀數(shù)可能看起來“跳躍”,這意味著它們會(huì)返回異常高或低的數(shù)字,然后才會(huì)恢復(fù)正常并保持在較小的讀數(shù)范圍內(nèi)。由于超聲波傳感器發(fā)出的聲音可以被附近的任何固體物體反射,因此接收器可能會(huì)反射并檢測(cè)到房間內(nèi)其他物體發(fā)出的噪音,這可能會(huì)導(dǎo)致不尋常的讀數(shù)。請(qǐng)確保將傳感器對(duì)準(zhǔn)要測(cè)量距離的物體。
仔細(xì)檢查電線是否連接正確,傳感器配置是否正確。board屬性必須與Viam應(yīng)用程序中的board組件名稱匹配(如果您一直遵循,則為board-1),并設(shè)置echo_interrupt_pin和trigger_pin屬性。
太棒了!你現(xiàn)在有一個(gè)工作傳感器和訪問您的板。讓我們添加一些邏輯來根據(jù)測(cè)量的讀數(shù)將RGB LED變?yōu)榧t色或綠色。
第八步:在Viam中添加接近警報(bào)模塊
我們可以通過改變RGB LED的顏色來指示物體太近或在安全距離內(nèi)(相對(duì)于傳感器)。為此,您可以編寫一些代碼來處理超聲波傳感器的讀數(shù)并將RGB LED設(shè)置為紅色或綠色(分別為不安全距離和安全距離)。或者您可以使用Viam注冊(cè)表中的預(yù)構(gòu)建模塊,該模塊已經(jīng)為您完成了此操作!本步驟將介紹如何使用接近警報(bào)模塊。
1. 在Viam應(yīng)用中,找到CONFIGURE選項(xiàng)卡。
2. 單擊左側(cè)菜單中的+圖標(biāo)并選擇Service。
3. 選擇generic,并找到proximity-alert:hc-sr04_rgb-led模塊。單擊“添加模塊”。請(qǐng)確保將默認(rèn)名稱更改為更具描述性的名稱,如proximity-alert-service,然后單擊Create。這增加了一項(xiàng)服務(wù),根據(jù)超聲波傳感器的讀數(shù)和您將很快指定的距離閾值自動(dòng)將RGB LED變?yōu)榧t色或綠色。
4. 注意,添加此模塊將添加所選名稱的通用服務(wù)。您將在右側(cè)看到一個(gè)可折疊的卡片,您可以在其中配置接近警報(bào)模塊,并在左側(cè)欄中列出相應(yīng)的部分。
5. 在CONFIGURE面板中,添加以下屬性(減去注釋)。這告訴服務(wù)使用哪個(gè)板和傳感器(應(yīng)該是您剛剛配置的),使用哪個(gè)GPIO引腳來控制RGB LED,以及確定何時(shí)變紅或變綠的安全距離閾值。
6. 單擊Save以應(yīng)用您的配置更改。這可能需要一些時(shí)間。
7. 過了一會(huì)兒,你的RGB LED應(yīng)該會(huì)閃爍并發(fā)光。測(cè)試一下吧!立即將您的手放在超聲波傳感器前。它應(yīng)該會(huì)迅速發(fā)出紅燈,只要你把手放在那里,它就會(huì)一直保持紅色。當(dāng)你把手移開時(shí)(假設(shè)傳感器路徑前沒有其他物體在不安全距離內(nèi)),LED應(yīng)該會(huì)發(fā)出綠色的光。為了繼續(xù)測(cè)試該服務(wù)并確保更高的準(zhǔn)確性,請(qǐng)將超聲波傳感器放置在一些開放空間,以便您能夠在可變范圍內(nèi)移動(dòng)其路徑內(nèi)的物體。
服務(wù)啟動(dòng)可能需要一段時(shí)間,您可能需要一段時(shí)間才能看到LED的變化。如果LED仍然不亮,請(qǐng)仔細(xì)檢查您的服務(wù)配置,并且在接近警報(bào)模塊的錯(cuò)誤日志面板或頂級(jí)日志中沒有出現(xiàn)錯(cuò)誤。如果沒有發(fā)現(xiàn)錯(cuò)誤(太好了!),嘗試重新啟動(dòng)鄰近警報(bào)服務(wù):在左側(cè)欄中,找到鄰近警報(bào)組件(它與您命名的組件不同)并單擊它旁邊出現(xiàn)的“…”。然后,單擊Restart,等待您的服務(wù)重新啟動(dòng)。
第九步:慶祝!你剛剛建立了一個(gè)視覺接近警報(bào)!
恭喜你!你剛剛建立了一個(gè)帶有視覺指示器的自動(dòng)接近警報(bào)!使用一些非常常見的硬件組件和來自Viam的一個(gè)方便的模塊,您創(chuàng)建了一個(gè)有用的設(shè)備。
本文編譯自hackster.io