小專案參考Scratch範例中的SoundGraph作品(在Simulations資料夾)。
先來看一看「跳動的聲波」小專案的實作情形
【使用軟體】
S4A (Scratch for Arduino)
「跳動的聲波」的範例檔可於此下載
【硬體介紹】
Arduino UNO r3、S4A感應板(可參考motoduino 網站)
S4A感應板裝在Arduino上,並將Arduino載入S4A1.5韌體
這次使用到S4A感應板的感測器元件有麥克風
位置與針腳號碼如下圖
【S4A核心積木】
使用下圖積木(要選Analog2),可在程式中使用聲音的感測值
【程式教學順序】
觀察S4A的麥克風輸入值變化
麥克風接在類比輸入2,所以可從S4A 的感應面板中看到輸入的值,請看下圖的Analog2 (沒有聲音時,值為0)
請學生觀察在有聲音時,Analog2的變化情形
在本例中需要使用Scratch的XY座標,由Scratch附的座標圖來解說
X軸:-240 ~ 240 , Y軸 -180 ~ 180
將Arduino角色用繪圖方式加上新造型,畫一個小綠圓球
以下圖中的程式先讓小球從左到右動起來
再來畫加入小球畫線的功能(用下筆、停筆積木)
將聲音積木加入,使小綠球會依聲音變化Y軸的高低位置
原本的程式只能畫一次,加入2層迴圈(第二層迴圈要改要[重複執行直到]並加入X>230的停止條件)
這樣就可以有連續不斷畫出的聲波
接下來新增另一個角色小貓讓小貓隨聲音做特效,如下圖
(註:新增角色依原來Scratch方式,不使用第二個 Arduino角色。這是因為好幾次二個Arduino角色使用同一個連線,都會有不預期的錯誤發生,如:角色下次開啟時,會自動多2倍一樣的角色。所以與Arduino板子連線的角色只用一個會讓程式較穩定)
因為普通小貓角色無法直接使用聲音輸入值積木,所以建立一個聲音值的變數來存放Arduino的聲音感測值,如下圖
下圖中是小綠球的Arduino角色將Analog2的值放到[聲音值]變數的程式
下圖是普通小貓角色直接用變數[聲音值]來改變特效的程式
到此程式完成
【後記】
「跳動的聲波」小專案對國小學生有點辛苦,裡面使用到的XY平面直角座標、負數(-240)、與變數觀念,因為國小數學課都沒有正式介紹,所以如果在程式中使用,就要花點時間建立觀念並練習。相對地,如果是國中學生的話,程式中的大部份,就應可由國中生獨立完成了。
沒有留言:
張貼留言