一款可以自己DIY的音樂盒,要什么曲子,就自己譜曲啦!為他(她)制作一首他喜歡的音樂,來代表您的心意,也可以讓他自己來制作他最愛的音樂哦!更可以帶孩子一起體驗譜寫歡快的音樂。
1.jpg (280.67 KB, 下載次數: 79)
下載附件
2017-7-19 11:12 上傳
最近發現一很好玩的中國式BBCmicrobit開發板--TurnipBit開發板,既可以拖拽,也可以用micropython來編寫,既有可視化編程頁面,也有代碼編寫頁面,屬于孩子家長的神器,只需這一個開發板外加隨便一個紙盒即可DIY一個簡易的音樂盒,還能隨便切換音樂哦!我們可以隨便用一個紙盒來當做音樂盒外形跟框架,然后我們用這個板子加一個耳機或者一個外放就能播放我們自己譜寫的音樂啦!下面我們開始DIY我們的音樂盒!
首先材料準備,我們所需材料很簡單只需要:
1.TurnipBit開發板(我這個是朋友送的,可以從某寶上購買),給大家爆個照
2.隨便找個匹配大小的紙盒就行
3.需要一個外放,耳機喇叭都行
4.一條電源線
2.png (249.14 KB, 下載次數: 68)
下載附件
2017-7-19 11:12 上傳
材料準備好了,就開始搞吧!
先上個成品圖(孩子還給畫了上一曲,下一曲以及顯示屏的圖標,雖然有點丑,但是不想打擊孩子的積極性,挺萌的哈),micropython代碼是我寫的,顯示屏的圖形是孩子拖拽的,一起動手把開發板在盒子里面固定,數據線連接到電腦上,寫好我們要編寫的程序,將程序寫進板子里,就直接可以播放啦,注意那個顯示屏是動態的哦,簡單吧,那就動手做起來吧!!!
3.jpg (89.82 KB, 下載次數: 60)
下載附件
2017-7-19 11:12 上傳
因為孩子比較喜歡兩只老虎,就特意給他編了兩只老虎,還有生日快樂的音樂,這個開發板類庫中帶很多孩子喜歡的圖形還有音樂,也可以自己編譯,如果要編譯的話,請參考:
en點wikipedia點org/wiki/Scientific_pitch_notation#Table_of_note_frequencies
可以DIY樂譜哦!
下面分享一下兩種源碼,可以在
turnipbit點tpyboard點com/PythonEditor/editor.html#
將我們的程序寫入,放入我們TurnipBit開發板里面就行。
1.簡單的音樂程序
- from microbit import *
- import music
- # DIY兩只老虎樂譜
- tiger= ["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"]
- while not False:
- display.show(Image.MUSIC_QUAVER)
- if button_a.is_pressed():
- music.play(tiger, wait=False, loop=True)
- elif button_b.is_pressed():
- music.play(music.BIRTHDAY, wait=False, loop=True)
復制代碼
2.稍微復雜一點程序,帶動態圖像的
- from microbit import *
- import music
- pix = [(5,0,0,0,5),(5,5,0,5,5),(0,9,0,9,0),(7,0,8,0,7),(0,9,9,9,0)]
- # diy兩只老虎樂譜
- tiger= ["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"]
- while not False:
- display.show(Image.MUSIC_QUAVER)
- if button_a.is_pressed():
- music.play(tiger, wait=False, loop=True)
-
- for down in range(0,5):
- for y in range(0,5):
- for x in range(0,5):
- if y-down<0:
- display.set_pixel(x,y,0)
- else:
- display.set_pixel(x,y,pix[y-down][x])
- sleep(300)
-
- for right in range(0,5):
- for y in range(0,5):
- for x in range(0,5):
- if x-right<0:
- display.set_pixel(x,y,0)
- else:
- display.set_pixel(x,y,pix[y][x-right])
- sleep(300)
-
- for up in range(0,5):
- for y in range(0,5):
- for x in range(0,5):
- if y+up>4:
- display.set_pixel(x,y,0)
- else:
- display.set_pixel(x,y,pix[y+up][x])
- sleep(300)
-
- for left in range(0,5):
- for y in range(0,5):
- for x in range(0,5):
- if x+left>4:
- display.set_pixel(x,y,0)
- else:
- display.set_pixel(x,y,pix[y][x+left])
- sleep(300)
-
- sleep(1000)
- elif button_b.is_pressed():
- music.play(music.BIRTHDAY, wait=False, loop=True)
復制代碼
|