聲音偵測 ( 吹點矩陣蠟燭 )

聲音偵測傳感器是透過一個類似微型麥克風的裝置進行聲音偵測,如果對著感測器吹氣,就會發生偵測到聲音的狀況,透過這個方式,搭配 LED 點矩陣,就可以簡單實作出一個「吹蠟燭」的效果。

蠟燭的部分使用 LED 點矩陣來繪製火焰的動畫,在偵測到聲音的當下,播放火焰熄滅的動畫。

相關教學參考:聲音偵測LED 點矩陣

範例動畫展示

吹蠟燭

接線與實作

聲音偵測傳感器與 LED 點矩陣都必須使用 5V,所以這邊使用麵包板來接線,如此一來也剛好把聲音偵測傳感器和 LED 點矩陣放在一起,比較有實際吹蠟燭的感覺。這裡把聲音傳感器的訊號腳接在 10 號腳位,LED 點矩陣的 din 接 7、cs 接 8、clk 接 9。

由於 Webduino 支援開發板種類只會越來越多,接線圖先使用馬克一號與 Fly 示範,對於其他開發板來說,只要按照接線圖接線,仍會一樣的效果

馬克一號接線示意圖:

馬克一號接線聲音感測器、點矩陣

Fly 接線示意圖:

Fly 接線聲音感測器、點矩陣

操作解析

打開 Webduino Blockly 編輯工具 ( https://blockly.webduino.io ),放入開發板積木,在開發板內放入聲音傳感器,名稱設定 sound 腳位 10,放入 LED 點矩陣,名稱設定為 matrix,腳位 din 7、cs 8、clk 9。

聲音偵測傳感器積木在「環境偵測 > 聲音偵測」目錄下,LED 點矩陣的積木在「發光元件 > LED 點矩陣」目錄下。

聲音感測器、點矩陣積木

一開始先透過 LED 點矩陣的「顯示動畫」積木表現火焰動畫,火焰晃動的動畫是透過三個 8x8 圖案的陣列表現。

點矩陣顯示動畫

接著設定一個變數 a 為 0,然後放入聲音偵測的積木,再偵測到有聲音的時候,將 a 的數值加 1,因為聲音偵測可能會在短時間內偵測到好幾次「有聲音」與「無聲音」,所以透過一個簡單變數數值疊加,就可以讓第一次偵測到聲音的時候發生動作。

變數的積木在「變數」目錄下,加減計算的積木在「基本功能 > 數學式」目錄下。

設定聲音偵測積木

再來放入邏輯判斷,如果 a 等於 1 的時候,就把剛剛 LED 點矩陣的動畫停下來,同時透過「等待」的積木,播放一個火焰熄滅的動畫,當最後火焰熄滅,就把點矩陣關閉。

設定偵測聲音、火焰動畫消失

填入裝置 Device ID,確認開發板上線,點選紅色的執行按鈕,就可以看到 LED 點矩陣播放火焰動畫,這時候用嘴對著聲音偵測傳感器吹氣,就可以看到蠟燭被吹熄了。

解答:https://goo.gl/XDFUpU

相關參考