Webduino 學習手冊網站即將改版,提供您更好的閱讀體驗!

搶先試用

聲音偵測

聲音偵測傳感器類似一個微型的麥克風,不過它的功能並不如麥克風一般的強大,主要作用為偵測是否有聲音,在聲音偵測傳感器上頭有一個小型的十字旋鈕,可以用螺絲起子旋轉調整零敏度,靈敏度如果太高,可能連同一些風吹草動的聲音都會偵測到,靈敏度過低可能拍手拍得再大聲都偵測不到,而且由於聲音傳感器本身有傳輸的時間差,因此在接收到聲音後也會有些微的延遲現象。

範例影片展示

接線與實作

聲音傳感器有三隻針腳,第一隻針腳為 GND ( 接 GND ),第二隻為 OUT ( 接 10 ),第三隻為 5V,接在 5V 或 VCC。

由於 Webduino 支援開發板種類只會越來越多,接線圖先使用馬克一號與 Fly 示範,對於其他開發板來說,只要把聲音傳感器的 OUT 接數位腳,仍會有一樣的效果

馬克一號接線示意圖:

馬克一號接線聲音偵測傳感器

Fly 接線示意圖:

Fly 接線聲音偵測

基本操作

打開 Webduino Blockly 編輯工具 ( https://blockly.webduino.io ),因為這個範例會用聲音震動傳感器偵測聲音,有變化的話就把網頁燈泡圖片點亮,沒有偵測到聲音變化就把燈泡圖片切換成熄滅的樣子,所以會用到「點擊燈泡」的功能。打開 Webduino Blockly 的網頁互動測試區,下拉選單選擇「點擊燈泡」,此時畫面中會出現一張熄滅的燈泡圖案,右下角也會出現對應的積木功能可以選擇。

網頁互動區

把開發板放到編輯畫面裡,填入對應的 Webduino 開發板名稱,開發板內放入聲音偵測積木,名稱設定為 sound,腳位設定為 10。

聲音偵測相關的積木在「環境偵測 > 聲音偵測」目錄下。

聲音偵測傳感器積木

一開始可以單純使用「有」或「沒有」偵測到聲音變化的積木,這樣執行之後只要有偵測到聲音,燈炮圖片就會亮起。

偵測聲音控制網頁燈泡

但如果只是這樣做,會發現燈泡亮起的時間很短暫,例如拍手,只有在拍手發出聲音的當下才有聲音變化,甚至可能會因為連續拍手造成燈泡忽明忽暗,所以這邊必須針對程式碼做點改良。在使用偵測聲音變化的積木之前,放入一個「變數」的積木,重新命名為 a 並讓 a 的值等於 0,接著在每次偵測到聲音變化的時候,都讓 a 加 1。

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

設定聲音偵測數值

使用「邏輯」積木,如果 a 等於 1 的時候,就讓燈泡圖片亮起來。

因為 a 會不斷的累加上去,所以可以避免像連續拍手這種重複偵測的狀況。

設定控制燈泡狀態

最後加上等待 1 秒的積木,等待 1 秒之後把燈泡圖片熄滅,並且把 a 再度設為 0,這樣就可以在 1 秒之後度進行偵測的動作。

等待的積木在「進階功能 > 等待」目錄下。

設定聲音偵測控制燈泡狀態

填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,對著聲音偵測傳感器發出聲音,就可以看到燈泡圖片被點亮,一秒之後就會熄滅。

範例解答 ( 雲端平台 ):https://blocklypro.webduino.io/?demo=demo-area-02#RpJPVpxbe3

範例解答 ( 體驗版 ):https://goo.gl/wdz5tF

相關參考