樹莓派“識色”圖形化程式設計案例二則

文/山東省招遠第一中學 牟曉東

常規的顏色感測器內建有紅、綠、藍三基色感測元器件,在濾色器的作用下從可視光的區域中進行顏色資料的獲取,輸出RGB數值。如果將顏色感測器接入樹莓派進行“識色”,然後在古德微機器人網站進行“積木”式圖形化程式設計,可以非常方便地開發出一些比較有趣、實用的創客作品模組,比如看卡識色的“變色龍”燈帶和視覺障礙者的“紅綠燈語音提醒器”。

一、看卡識色的“變色龍”燈帶

1。功能實現

根據顏色感測器獲取到不同卡片(或其它物體)的顏色資訊,分解出對應的RGB數值,作為燈帶60顆燈珠的發光三基色,相當於“複製”卡片的顏色再“貼上”到每一顆燈珠上,實現“變色龍”燈帶的顯示效果。

2。實驗器材及連線

實驗器材包括樹莓派3B+和古德微擴充套件板各一塊,GY-33 TCS34725顏色感測器(帶遮光筒)一個,可程式設計ws281x燈帶一條,公對母異色杜邦線四根,各種顏色卡片若干。

首先將燈帶插入擴充套件板的18號引腳,注意三根線的標註要與擴充套件板一一對應;接著,將四根杜邦線一端連線顏色感測器(VCC、GND、SCL和SDA端),另一端連線至擴充套件板IIC介面(VCC、GND、CLK和DATA端);最後,給樹莓派通電,啟動作業系統(如圖1)。

樹莓派“識色”圖形化程式設計案例二則

3。進行圖形化程式設計

訪問古德微機器人網站(http://www。gdwrobot。cn),登入進入自己賬號後點擊“裝置控制”進入“積木”介面,開始圖形化程式設計:

首先,透過模組語句“設定GPIO‘18’可控制燈帶‘60’個燈並設定亮度為‘50’”對燈帶進行初始化;接著,建立一個“重複當‘真’執行”的迴圈結構,透過模組語句“輸出除錯資訊‘獲取顏色檢測感測器的資料’”,將顏色感測器獲取的RGB資料以陣列的形式在LOG除錯資訊區輸出,比如:“[172,144,240]”;然後建立三個變數:“紅色分量”、“綠色分量”和“藍色分量”,分別賦值為從RGB資料列表中的“第一”、“第二”和“最後”序列值,即分別獲取對應的顏色分量數值;再建立一個內部迴圈結構,設定60個燈珠的發光顏色為對應的三個變數值;最後,新增“燈帶重新整理顯示”模組語句,控制燈帶按照設定的顏色效果發光,再新增“等待0。2秒”,防止程式執行佔用過多的系統資源而“宕機”(如圖2)。

樹莓派“識色”圖形化程式設計案例二則

4。測試“變色龍”燈帶

將程式儲存後點擊“連線裝置”,再點選“執行”按鈕進行測試。此時,會在除錯資訊區不斷顯示有顏色感測器實時獲取的各組RGB顏色資料;嘗試將紅色、綠色、藍色和黃色卡片分別放置於顏色感測器的遮光筒附近,燈帶立刻會隨之變色,發出對應顏色的光(如圖3),實現了“變色龍”燈帶的顯示效果。

樹莓派“識色”圖形化程式設計案例二則

二、視覺障礙者的“紅綠燈語音提醒器”

1。功能實現

顏色感測器“負責”實時檢測十字路口的紅綠燈變換情況,根據不同顏色的燈光訊號資訊,樹莓派控制音箱發出對應的語音提醒資訊,比如“綠燈,行!”、“紅燈,停!”。

2。實驗器材及連線

實驗器材包括樹莓派3B+和古德微擴充套件板各一塊,顏色感測器一個,杜邦線四根,紅色、黃色和綠色LED燈各一支,音箱一個。

保持顏色感測器與案例1相同的連線方式,然後,將紅色、黃色和綠色LED燈分別連線至擴充套件板的5號、6號和12號引腳(注意長腿為正極、短腿為負極),用來模擬路口紅綠燈;接著,將音箱的連線線插入樹莓派的圓形音訊輸出孔,通電,啟動作業系統(如圖4)。

樹莓派“識色”圖形化程式設計案例二則

3。進行圖形化程式設計

首先,建立一個名為“紅綠燈”的函式,作用是模擬路口“紅綠燈”實現的功能:綠燈(12號)亮10秒,閃爍三次,熄滅;黃燈(6號)亮3秒,熄滅;紅燈(5號)亮10秒,熄滅(如圖5)。

樹莓派“識色”圖形化程式設計案例二則

接著,建立對應的子執行緒(注意名稱要與函式完全一致),對函式進行呼叫;然後,再建立一個“重複當‘真’執行”的迴圈結構,將顏色感測器獲取的顏色資料在LOG除錯資訊區進行實時顯示輸出;建立兩個變數“紅色分量”和“綠色分量”,分別為其賦值為顏色感測器輸出資料的RGB列表中的第一個和第二個資料;建立第三個變數,名為“最大值分量”,為其賦值為RGB列表中數值最大的資料,表示RGB分量中最“佔優勢”的顏色對應資料;接著,建立一個“如果…執行…否則如果…執行…否則…”三分支選擇結構,判斷條件為“最大值分量”與“綠色分量”或“紅色分量”是否相等,相等則說明對應顏色的LED燈亮起,執行的動作分別是輸出文字除錯資訊和音箱播放對應的語音資訊:“綠燈,行!”和“紅燈,停!”,注意要分別新增“等待3秒”模組語句,作用是等待音箱播放完語音提醒;如果兩個條件均不符合,說明是黃色LED燈亮起,則執行“黃燈,等!”的文字資訊輸出和提醒語音的播放(如圖6)。

樹莓派“識色”圖形化程式設計案例二則

4。測試“紅綠燈語音提醒器”

將程式儲存後點擊“執行”按鈕進行測試,“紅綠燈”LED開始迴圈閃亮工作,同時顏色感測器在不斷檢測燈光的顏色,並且音箱中也會響起對應的“綠燈,行!”、“黃燈,等!”和“紅燈,停!”提醒語音,實現了預設的視覺障礙者“紅綠燈語音提醒器”的功能(如圖7)。

樹莓派“識色”圖形化程式設計案例二則