No Code AI(肉寇)AI自動化兩日精通|實體6小時+線上6小時
|

【自造專案】用micro:bit來自製樂器吧

   

作者/圖片:Ted Lee

想像一下,莫札特是小彼特(micro:bit)的摯友,小彼特要親自演奏一曲送給他作為堅固友誼的見證。所以,來試試用小彼特(micro:bit)設計出自己喜歡的樂器外形並譜寫演奏的曲子吧。

材料需求

1.小彼特主板
2.電池盒(四號,二入,含蓋)
3.WS2812B燈條組(十顆)
4. 杜邦線組(五條,公公,30 cm)
5. 魔鬼氈組(10 cm)
6. 電池組(三號/四號,四顆)
7. 鱷魚夾組(五條)
8. 透明膠帶
9. 導電膠帶
10. 瓦楞紙板/PP板/木板

• 其他工具組:剪刀、油性筆、熱熔膠…若干。
• 技術咨詢(手機加Line:https://line.me/R/ti/g/U7UpPtBc0j)。

造形設計

我們打算在樂器外型上用導電膠帶作為迴路的接觸端點,手指輕碰即依序演奏曲子的單個音階,並搭配燈條作燈光變化。

在稿紙上先畫出自己喜歡的樂器外形(上網Google一下,https://reurl.cc/nVlv11),再利用板形材料裁切好。

功能設計=硬(電路設計)+軟(程式設計)

根據小彼特急急棒(https://reurl.cc/oDKylq)或小彼特鋼琴王(https://reurl.cc/oDKVmq)的導電原理,我們希望能做出像人體樂器(https://reurl.cc/EKb6E0)的效果。

電路設計如圖所示:


另一方面,程式設計参考樣版之步驟為:

1. 設計曲子:

挑選一首自己喜歡的曲子(https://reurl.cc/lLayZA)再利用Make Code相關的音階積木把它譜出來。例如:小星星。

其中,我們把一整首歌的音階以song這個陣列(array)(https://reurl.cc/mdkR9V)來存放。


2. 設計導電觸發事件處理:

當兩極導電時一次播一個音階。為了讓音階能重覆播放,我們使用數學的餘數(remainder)概念來計算要循環取出的音階索引(index)i。


3. 設計燈條顯示樣式:

燈條的控制很簡單,只有初始化(initialize,init)宣告及設定點亮樣式(patterns)。前者需設定小彼特以何接腳連接燈條(例如:P2)及燈條上LED的顆數(例如:6)。請留意這個數字一定要設的和實際個數完全相同,否則會有誤動作產生。

後者可設定諸如流水燈(https://reurl.cc/24l6D9)等特效(在此例中我們僅以閃爍藍色燈示意之)


參考程式碼:https://reurl.cc/EKb1jk

MicroPyhon版(https://reurl.cc/GkaMlv)參考程式為:

from microbit import *

import music

tune = ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4",
"E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"] #Ex13
i=0

while True:
if pin1.is_touched():
music.play(tune[i])
i=(i+1)%14

教學活動設計

1. 來電一下:和大街上的陌生朋友一起「同奏」,先演奏完整首曲子者獲勝。
2. 廣播點歌:結合廣播(https://reurl.cc/ObR5r7)功能,將本作品擴充為無線廣播點唱機。
3. 請你跟我這樣玩:1(https://reurl.cc/0zRmmb)、2(https://reurl.cc/zyOlZ6)。

延伸學習

1. 參考這個日本在2011出的商品(https://reurl.cc/alMZGY),想想我們設計的小彼特版要如何擴充,使得它可以播一首以上的曲子。

2. 如何讓小彼特也有好音色呢?試試這款外掛的MP3播放模組(https://reurl.cc/72b47d)。
3. 把鄭老師的3D模型(https://reurl.cc/5gX4Gv)修改成小彼特版印出來也很好玩喔!(https://reurl.cc/D1Y4dE
4. 小彼特還可以做出哪些好玩的樂器呢?官網上有個專案範例(https://reurl.cc/Vam07R)可以玩玩看。或者也可以看看以下這兩個作品 。

(本文經作者同意轉載自泰布布部落格原文連結;責任編輯:王姵文)

Ted Lee

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: Ted Lee

從工程師轉任中學教師,又為了捍衛教育理念,投身成為 STEAM 教育工作者,自稱「無可救藥的人文教育理想主義者」的李俊德(Ted Lee)。

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *