S3i第8課蜂鳴器
蜂鳴器:可以產生聲音的裝置(註)。
聲音的三要素
1.音量(響度) :聲音的大小(強弱),聲波的振幅(即振動的能量),振幅愈大,響度愈大,單位為分貝(dB)。
2.音調(音頻) :聲音的高低,聲波的頻率,振動愈快,頻率愈大,音調愈高,單位為赫茲(Hz)(次/秒)。
3.音色(音品) :聲音的特色,聲波的波形,不同的發聲體會有不同的波形。
壹、音量
LED顏色隨音量大小而改變
使用Jump直接將D9和LEDB、D10和LEDG、D11和LEDR兩兩連接。
需要使用電腦麥克風,如果電腦沒有麥克風,這一單元先跳過。
運用聲音音量控制RGB LED顏色,RGB LED顏色隨音量大小而改變。
使用[聲音響度]積木來測量聲音大小,數值僅供參考,不代表[分貝]。
RGB LED 依據聲音大小顯示不同的顏色。
使用[同時輸出:腳位(…)輸出(…)腳位(…)輸出(…)腳位(…)輸出(…)腳位(…)輸出(…)]可以同時控制4個腳位的輸出值,方便調色。
程式下載:音量(亮燈).sb2
貳、音調
使用Jump直接將D6和BEEP連接。
聲音的高低就是聲波的頻率得快慢,聲音振動愈快,頻率愈大,發出的音調愈高,單位為赫茲(Hz)(次/秒)。
一、聽力測試
請同學設計程式讓蜂鳴器產生不同頻率的聲音。
提示:
用數位腳位D6高電位(通電),低電位(不通電),製造蜂鳴器震動。
如果高電位(通電)0.5秒,低電位(不通電)0.5秒,蜂鳴器應該就是每秒震動一次,聽到的就是1赫茲(Hz)。
改變高電位(通電)、低電位(不通電)的時間,仔細聽看看,聲音有甚麼變化?
會不會出現不同音調?
因為scratch程式的限制,利用這種方式,雖然頻率改變了,但是並不能產生不同音調的聲音。
因此設計一個特別的積木,直接可以改變頻率產生不同音調的聲音。
人類能聽到的音調頻率大約在20Hz到20000Hz之間,事實上每個人能聽到的範圍都不一樣。
利用蜂鳴器來測試您能夠聽到的音調(頻率)範圍。
建立一個變數[頻率]來儲存輸入的頻率。
程式執行時輸入您要聽的頻率,蜂鳴器就會發出一秒鐘的該頻率。
程式下載:聽力測驗.sb2
延伸:
1.可以不要建立變數嗎?讓程式變得更簡潔。
2.實際上因為蜂鳴器的規格限制,及scratch+arduino的規格限制,很多頻率是無法產生聲音的,或是聽到的其實不是本來設定的頻率。
二、播放一聲Do
使用 [腳位(6)播放音調,頻率為:(C2,523)Hz,時間為:(500)ms] ,就可以播出0.5秒的Do
程式下載:Do.sb2
三、播放一首歌
將數個 [腳位(6)播放音調,頻率為:(…)Hz,時間為:(…)ms] 積木疊加,改變頻率和時間就可以讓蜂鳴器演奏出一首歌。
音階–頻率對照表(單位:Hz)
低音 | Do | Re | Mi | Fa | So | La | Si |
頻率 | 262 | 294 | 330 | 349 | 392 | 440 | 494 |
中音 | Do | Re | Mi | Fa | So | La | Si |
頻率 | 523 | 587 | 659 | 698 | 784 | 880 | 988 |
高音 | Do | Re | Mi | Fa | So | La | Si |
頻率 | 1046 | 1175 | 1318 | 1397 | 1568 | 1760 | 1976 |
參考資料:http://210.70.70.242/eegc/epaper/10008/10008P-2.html
A.直接編曲
請學生直接編曲或上網搜尋 [ 兒歌 簡譜 ] 編曲。(註2)
小星星
一閃一閃亮晶晶 滿天都是小星星
1155665 4433221
掛在天上放光明 好像許多小眼睛
5544332 5544332
一閃一閃亮晶晶 滿天都是小星星
1155665 4433221
直接在 [腳位(6)播放音調,頻率為:(C1,262)Hz,時間為:(500)ms] 積木上,選擇要發出的音階頻率,或是參考上面的音階-頻率對照表,設定不同音階對應的頻率。
依照歌曲需求拉一些音調播放積木就可以組合成一首歌了。
記得每個音之後都要接等待幾秒,讓音階唱完。
程式下載:小星星.sb2
延伸:
請學生創作發出模擬救護車、消防車、警車的聲音。
B.使用[添加函式積木]
一般歌曲都會有一些重複的曲段,因此將歌曲分成數段,使用[添加函式積木],將重複部分自訂成函式積木,可以縮短程式。
先點[更多積木],再點[添加函式積木],就會增加一個[積木],填上積木名稱。
以小星星為例,主要分成3段,各用了2次。
主程式變得很簡短。
註:如果使用[添加函式積木]來寫程式的好處就是程式比較有規律,修改、除錯都比較容易。
程式下載:小星星(積木).sb2
延伸:
使用[製作一個清單],參考上面的音階-頻率對照表,將音階頻率製成清單,在音調播放積木裡,將頻率換為對應的清單音階。
四、電子琴
使用電腦鍵盤來彈奏音樂
注意:
記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。
按下鍵盤上的1、2、3、4、5、6、7分別代表Do、Re、Mi、Fa、Sol、La、Si
程式執行時只要按下不同的數字鍵,就可以彈奏出音樂了。
程式下載:電子琴.sb2
延伸:
利用其他按鍵,做成更多音階的電子琴。
五、計時器
按下[綠旗]後,輸入倒數時間,然後開始計時,時間到,蜂鳴器發出聲響。
程式開始先問要計時多久,輸入時間。
設定變數[倒數計時]為[答案]
重複等待1秒,並將倒數計時變數 -1
時間到了,將造型換成[時間到],並發出聲音。
程式下載:計時器.sb2
延伸:
1.設計可以有不同時間的計時器。例如:
按[1]開始計時1分鐘,按[2]開始計時2分鐘,按[3]開始計時3分鐘……………..
2.再加上LED,就聲、光效果都有了。
3.將時間到的do聲改成音樂。
六、鬧鐘
設定時間到,蜂鳴器要發出聲音。
建立變數[時]、[分] 來儲存鬧鐘時間。
程式開始先設定鬧鐘的 時、分。( 使用[詢問(….)並等待],來輸入時間。)
[重複無限次],檢查目前的時間是否符合鬧鐘設定時間。
如果符合就發出聲音。
檔案下載:鬧鐘.sb2
延伸:
1.時間到了,將螢幕上的造型換成[時間到],並發出聲音。
2.鬧鐘增加[秒]的設定。
3.鬧鐘增加[日期]的設定。
主要程式同上,將時間到的Do生改成音樂(使用函式積木)。
檔案下載:鬧鐘2.sb2
複雜版請參考http://blog.ilc.edu.tw/blog/blog/868/post/104089/695595
——————————–
註:
iL學習板搭配的是無源蜂鳴器。
蜂鳴器品質相差很多,學生實驗用的比較便宜,性能差別很大,可能發出來的聲音品質會差距很大,甚至造成當機。
A.蜂鳴器可分為電磁式及壓電式兩種
1.電磁式:由電流驅動,聲音較大但較為耗電。
2.壓電式:半導體電壓轉換陶磁片振動,由電壓驅動(陶磁片),較省電但聲音較小。
B.無論電磁式或壓電式依其驅動方式又分為兩種:自激式與他激式
1.自激式(有源):內藏驅動電路,只需直流電即可動作。
2.他激式(無源):內無驅動電路,需加入交流電源及動作訊號才可動作。
注意,這裡的“源”不是指電源。而是指震盪源。
(一)無源蜂鳴器的特點是:
(1)無源內部不帶震盪源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅動它
(2)聲音頻率可控,可以做出“多來米發索拉西”的效果。
(3)在一些特例中,可以和LED複用一個控制口
(二)有源蜂鳴器的特點是:
(1)有源蜂鳴器內部帶震盪源,所以只要一通電就會叫
(2)程式控制方便,單片機一個高低電平就可以讓其發出聲音,而無源蜂鳴器卻做不到。
參考資料:http://www.cpu.com.tw/kh/elec/buzz/buzz-s.html
http://goods.ruten.com.tw/item/show?21537607828784
註2:兒歌簡譜
小蜜蜂
嗡嗡嗡 嗡嗡嗡 大家一起勤作工
533 422 1234555
來匆匆 去匆匆 做工興味濃
533 422 13553
月花好來不做工 將來哪裡好過冬
2222234 3333345
嗡嗡嗡 嗡嗡嗡 別做懶惰蟲
533 422 13551
小星星
一閃一閃亮晶晶 滿天都是小星星
1155665 4433221
掛在天上放光明 好像許多小眼睛
5544332 5544332
一閃一閃亮晶晶 滿天都是小星星
1155665 4433221
兩隻老虎
兩隻老虎 兩隻老虎
1231 1231
跑得快 跑得快
345 345
一隻沒有耳朵一隻沒有尾巴
565631 565431
真奇怪 真奇怪
[1]5[1] [1]5[1]
蝴蝶蝴蝶生的真美麗
蝴蝶蝴蝶生得真美麗
1123321231
頭戴著金絲 身穿花花衣
33455 43453
你愛花兒 花也愛你
(1)7653 (1)765
你會跳舞 花有甜蜜
67(1)53 5421
捉泥鰍
池塘的水滿了雨也停了 田邊的稀泥裡到處是泥鰍
66565353323-22122553323-
天天我等著妳等著你捉泥鰍 大哥哥好不好咱們去捉泥鰍
665653444323- 555557666656-
小牛的哥哥帶著他捉泥鰍 大哥哥好不好咱們去捉泥鰍 1117566665653555557666656-
–—————————–
相關連結:
S32E(Scratch3 to Esp8266)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113127/750388
S3i(Scratch3 to arduino iL學習板)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113128/750428
S3A(Scratch3 to Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113129/750447
arduino iL學習板課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/111175/727272
WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433
新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192