牟曉東
1.實驗目的
在樹莓派上搭載超聲波傳感器、顯示屏等外設,通過古德微“積木”編程實現對行車前方的障礙物進行距離實時測量與警示的“行車雷達”功能。超聲波傳感器將測量的距離值傳給樹莓派,樹莓派將數值顯示到屏上,如果該距離到達設定的“危險”值(比如6cm),則顯示“危險!危險!”的警示信息,同時LED燈也進行閃爍報警。
2.實驗器材及連接

器材清單:樹莓派3B+(帶電源線)一塊,古德微擴展板一塊,HC-SR04超聲波傳感器一個,OLED顯示屏一個,LED燈一支,聯網電腦一臺。
HC-SR04超聲波傳感器包括發射和接收兩個探頭,工作原理類似于蝙蝠的飛行覓食過程:發射出超聲波遇到前方障礙物后發生反射,反射波被接收端檢測到并根據發送與接收的時間差來計算出與障礙物間的距離。
首先將古德微擴展板帶卡槽的一側對準樹莓派40Pin引腳,注意從四周均勻用力下壓,以免對引腳和電路板造成損傷;HC-SR04超聲波傳感器有四個引腳,根據標注(VCC、Trig、Echo和GND)判斷方向,輕輕插入至擴展板20和21處的四個引腳;然后,將OLED顯示屏小心插入擴展板內側的I2C接口(標注有“Up”列),同樣也要注意OLED顯示屏的四個引腳(VCC、GND、SCL和SDA)必須與擴展板的四個引腳(VCC、GND、CLK和DATA)一一對應;接著,將LED燈插入5號引腳,長腿為正極、短腿為負極;最后,給樹莓派接通電源,啟動操作系統(如圖1)。
3.實驗步驟
(1)登錄古德微機器人平臺進行“連接設備”

在瀏覽器中訪問古德微機器人平臺(http://www.gdwrobot.cn/),輸入賬號和密碼進入“積木”編程區;接著點擊“連接設備”按鈕,如果樹莓派已經正常啟動的話,此時會彈出“服務器連接已經建立”等五個綠色對鉤提示,并且會顯示出內網連接IP地址(如圖2),說明樹莓派與古德微網站已經“對接”成功。
(2)超聲波傳感器部分代碼
將超聲波傳感器檢測到的距離值顯示在LOG編程調試區。

首先從“循環”區拖動建立一個“重復當‘真執行”的積木語句塊;接著建立一個名為“dis”的變量,賦值為“智能硬件→常用→超聲波測距”;然后使用“輸出調試信息”語句進行輸出,同時借助“數學→四舍五入”對dis變量進行保留一位小數的處理(單位是cm);最后,添加一條“等待0.3秒”的時間等待,點擊“運行”按鈕(如圖3)。此時,隨著超聲波傳感器前障礙物的靠近和遠離移動,LOG顯示區每隔0.3秒就顯示出一個數值:6.0、10.0、22.0、9.0……
(3)OLED顯示屏部分代碼
在OLED顯示屏上顯示超聲波傳感器的測距值或提示“危險”。

OLED顯示屏在進行顯示時需要調用相關的語句進行初始化,比如“初始化OLED顯示屏,設備型號為‘ssd1306”;接著,建立一個名為“圖片對象”的變量,設置好對應的圖片模式為RGB;然后,為圖片對象添加顯示內容為:“測距:”+“dis的四舍五入值”+“cm”,同時設置其大小為16號、顯示坐標為(10,20);最后,添加一個“如果dis小于等于6,則執行顯示‘危險!危險!信息”選擇分支語句。運行程序進行測試,隨著障礙物距離的不同,在OLED顯示屏上會有測距值或“危險”提示信息的出現(如圖4)。
(4)LED燈部分代碼
當檢測距離值小于等于6cm時,LED燈閃爍。
這一步非常簡單,而且到上一步已經基本實現了“行車雷達”的主要功能。在選擇分支結構中,添加一個“重復3次執行”的循環結構,依次使用“控制5號小燈亮”、“等待0.1秒”和“控制5號小燈滅”語句來實現LED燈的三次閃爍(如圖5)。
(5)程序的保存與運行
程序編寫完畢后,點擊“保存”按鈕并進行運行測試,結果與預期的完全一致。
4.實驗改進與設想
(1)LED燈的閃爍頻率是固定的,可嘗試通過建立閃爍等待時間變量與障礙物距離的關系公式,實現與障礙物的間距越近,LED燈的閃爍頻率越快(類似于真實倒車雷達的不同頻率的“嘀嘀”報警聲)。
(2)加入多支LED燈,組成微型“呼吸”式燈帶,動態顯示測距值的大小范圍。

(3)加入蜂鳴器,進行不同頻率鳴叫的報警;或者接入音箱,根據不同的測距值進行語音播報式報警。
(4)配合搭載有馬達和車輪的拓展包,當測距值接近于設置的最低危險值(比如4cm),控制馬達立刻停轉或是反向小幅度旋轉,杜絕“撞墻”事故。
(5)如果有兩套樹莓派+古德微擴展板+超聲波傳感器+攝像頭+馬達+車輪的套件,就可以實現按地面實線行走,前后兩個超聲波傳感器共同動態測距前提下,同時控制前后兩組馬達車輪,不管是前行還是倒車,均能實現OLED顯示屏實時顯示及LED燈光報警,且前后均不會產生碰撞。