【S4A Sensor Board】非接觸感測器應用練習

Description

Description
作者:徐爸の慧手自造工廠

創意發想

 S4A Sensor Board 是一塊嵌入多樣感測器的多功能擴充板,今天徐爸我要來介紹 S4A Sensor Board 上的兩種非接觸式感測器,分別為光感測器與聲音感測器,利用光感測器可透過光線強弱來控制物件,而聲音感測器則是可以透過拍手、彈指等聲音,來控制開關燈等,看似很科幻、艱深,但其實原理相當簡單,現在就跟著徐爸的腳步,一起來認識這兩種神奇的感測器吧!

S4A擴充板與感測器

如上圖所示,光感測器與聲音感測器均被配置在 Sensor Board 的右手邊方向。光感測器顧名思義就是利用光敏電阻的特性來量測現場環境光源的大小,再將這些亮度的感測數值傳送給 Arduino,由這邊就可以知道光感測器是屬於 Arduino 的「類比輸入」裝置,也因此它在 Sensor Board 上的線路是被連接至Arduino的類比腳位A1處(標示在光感測器的左上方)。

而聲音感測器則是可以協助 Arduino 測量環境聲音的音量大小(但不能拿來判斷聲音的內容),所以聲音感測器也是同屬於Arduino「類比輸入」裝置的一種,在 Sensor Board 上的線路則是被連接至 Arduino 的類比腳位A2(標示在聲音感測器的左上方)。

而這兩個感測器,如果以比較白話的方式來解釋就是:當我們把Arduino 當成是我們的大腦,那麼光感測器(A1)就比較像是我們可以感受光亮的眼睛,而聲音感測器(A2)則是可以感應聲音的耳朵,兩者感應到的結果終究會傳回到我們的大腦(Arduino)。

Scratch監控數值

光感應器(A1)與聲音感應器(A2)在 Transformer S4A 可以使用 Scratch 讀取數值。如下圖所示,支援這兩顆感應器的除了有「value of sensor <類比腳位>」,勾選後也可分別在舞台展示區即時顯示 Sensor Board上光感應器(A1)與聲音感應器(A2)感應數值的“Analog1”“Analog2”

在勾選了“Analog1”“Analog2”這兩個程式積木之後,各位可以先嘗試著用手慢慢去遮住Sensor Board上的光感應器(A1)看看,應該可以發現當光感應器感測到的光源越暗,舞台展示區上”Analog1″顯示的數值就越小;反之若感測光源越亮,則”Analog1″顯示的數值就越大。

而聲音感應器這邊各位應該也可以經由測試後發現:當靠近麥克風(A2)的聲音越大聲,舞台展示區上”Analog2″顯示的數值就越大;反之若聲音越小,則”Analog2″顯示的數值也會跟著一起變小。

光感測與聲音感測器

光感應器與聲音感應器也是我們第一個介紹的「非接觸式」感應元件,而所謂的「非接觸式」感應元件,即是我們不需直接去碰觸,只要透過光線跟聲音,就可以遠距把它們當作是某一些動作的開關來使用。接下來我們馬上就利用這兩個感測器,來做一些小小的練習讓各位感受一下。首先是根據天色來自動開關電燈的範例,不知各位有沒有看過一種天黑會自動開燈,而天亮了就自動關燈的路燈呢?

練習一

我們第一個練習,就利用Sensor Board上的光感測器(A1)搭配RGB LED的綠燈(D5)來模擬這種路燈的動作~
1. 先將光感應器(A1)測量到的現場光源數值記錄下來。(因為光感應器比較靈敏,所以測量到的數值可能會不停跳動,取一個大概的數值即可)。
2. 以步驟1所測量的數值再減100作為基準值(徐爸自己在寫作當下取得的環境光源基準值為400,請各位依自己所在環境測量到的數值為準)。
3. 當光感應器(A1)測量到的環境光源高於基準值時(光線足夠),關閉RGB LED綠燈(D5)。
4. 當光感應器(A1)測量到的環境光源低於基準值時(光線不足),開啟RGB LED綠燈(D5)(本例將D5亮度設定為100)。
5. 重複步驟3~4。
其實大自然天色的變化不會突然由亮變暗,通常都是漸進式的慢慢產生變化,因此在「循環無限次」程式積木裡的「如果…否則…」程式積木後面,其實可以再加上一塊「等待<60>秒」的程式積木,以每分鐘檢查一次的周期便已足夠。不過由於我們是用手遮光感應器(A1)來模擬天色的變化,為了可以即時的看到RGB LED綠燈的變化,因此在上面的範例程式中就沒有加上「等待<60>秒」的程式積木了。
我利用 Sensor Board 的光感應器+按鈕+滑桿可變電阻,搭配 S4A 做出的一個阿里巴巴與40大盜的小遊戲,大家可以參考:
                     

練習二

接下來我們一樣使用 Transformer 的 S4A 來做一個使用者可以透過拍手的方式來開關電燈的模擬練習,這個練習雖然感覺非常有科技感,但說穿了其實只是聲音感應器+ RGB LED 的一個小應用罷了

1. 記錄用聲音感應器(A2)測量的拍手音量大小。(每次測量到的音量值可能會有所不同,取一個大概的數值即可)
2. 以步驟1所測量的數值再減50或100作為基準值(筆者計算出的音量基準值為450,請各位依自己測量到的數值為準)。
3. 當聲音感測器(A2)第一次偵測音量高於基準值時(第一次拍手),開啟RGB LED綠燈(D5)(本例將D5亮度設定為100)。
4. 當聲音感測器(A2)第二次偵測音量高於基準值時(第二次拍手),關閉RGB LED綠燈(D5)。
5. 重複步驟3~4。完成後請試著對Sensor Board上的聲音感應器(A2)拍手看看,就可看到RGB LED的綠燈(D5)會對您的掌聲會做出對應的燈光開關動作了。
我利用Sensor Board上聲音感應器(A2)來玩的小遊戲 – 「不要停,八分音符醬
                 

練習三

在 motoBlockly 中,Sensor Board 上光感應器(A1)、聲音感應器(A2)和滑桿可變電阻(A0)使用的都是同一個程式積木。如下圖所示,該程式積木為位在「腳位輸入/輸出」積木群組的「類比」選項裡面的「類比讀出腳位 <腳位>」積木,除了須設定的類比腳位不同外,其餘使用的時機和方式都和滑桿可變電阻差不多。

了解了 motoBlockly 所提供的光感應器(A1)及聲音感應器(A2)相關的程式積木後,接下來我們便使用 motoBlockly 來完成前面「根據天色來自動開關電燈」的程式練習範例:

接下來是 motoBlockly 版本的「透過拍手的方式來開關電燈」程式練習範例:

後記

了解光感測器與聲音感測器的原理與程式的操作後,大家可以自己動手做出各種不同的多元應用,相信成品一定會讓你周遭的朋友驚豔!

Resource

徐爸的慧手自造工廠


◎加入我們的Line,獲得更多及時文章更新&活動資訊→

加入好友

Contact

Contact
  • Category
    開發板
  • Tags
    S4A Sensor Board

Project簡述

Project簡述
  • 簡述
    今天介紹S4A Sensor Board上的兩種非接觸式感測器,分別為光感測器與聲音感測器,一起來認識這兩種神奇的感測器吧!
  • 作者
    徐爸の慧手自造工廠
  • FB Comments
    278647719284061

您的姓名 〈需填寫〉

您的電子郵件信箱 〈需填寫〉

主旨

您的信件內容