找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2551|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

TurnipBit:DIY音樂盒教程實例

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:130183 發(fā)表于 2017-7-19 11:13 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
  一款可以自己DIY的音樂盒,要什么曲子,就自己譜曲啦!為他(她)制作一首他喜歡的音樂,來代表您的心意,也可以讓他自己來制作他最愛的音樂哦!更可以帶孩子一起體驗譜寫歡快的音樂。



  最近發(fā)現(xiàn)一很好玩的中國式BBCmicrobit開發(fā)板--TurnipBit開發(fā)板,既可以拖拽,也可以用micropython來編寫,既有可視化編程頁面,也有代碼編寫頁面,屬于孩子家長的神器,只需這一個開發(fā)板外加隨便一個紙盒即可DIY一個簡易的音樂盒,還能隨便切換音樂哦!我們可以隨便用一個紙盒來當做音樂盒外形跟框架,然后我們用這個板子加一個耳機或者一個外放就能播放我們自己譜寫的音樂啦!下面我們開始DIY我們的音樂盒!

  首先材料準備,我們所需材料很簡單只需要:

  1.TurnipBit開發(fā)板(我這個是朋友送的,可以從某寶上購買),給大家爆個照

  2.隨便找個匹配大小的紙盒就行

  3.需要一個外放,耳機喇叭都行

  4.一條電源線



  材料準備好了,就開始搞吧!

  先上個成品圖(孩子還給畫了上一曲,下一曲以及顯示屏的圖標,雖然有點丑,但是不想打擊孩子的積極性,挺萌的哈),micropython代碼是我寫的,顯示屏的圖形是孩子拖拽的,一起動手把開發(fā)板在盒子里面固定,數(shù)據(jù)線連接到電腦上,寫好我們要編寫的程序,將程序?qū)戇M板子里,就直接可以播放啦,注意那個顯示屏是動態(tài)的哦,簡單吧,那就動手做起來吧。!



  因為孩子比較喜歡兩只老虎,就特意給他編了兩只老虎,還有生日快樂的音樂,這個開發(fā)板類庫中帶很多孩子喜歡的圖形還有音樂,也可以自己編譯,如果要編譯的話,請參考:

  en點wikipedia點org/wiki/Scientific_pitch_notation#Table_of_note_frequencies

  可以DIY樂譜哦!

  下面分享一下兩種源碼,可以在

  turnipbit點tpyboard點com/PythonEditor/editor.html#

  將我們的程序?qū)懭,放入我們TurnipBit開發(fā)板里面就行。

  1.簡單的音樂程序

  1. from microbit import *
  2. import music

  3. # DIY兩只老虎樂譜
  4. tiger= ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4",
  5.         "E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"]

  6. while not False:
  7.     display.show(Image.MUSIC_QUAVER)
  8.     if button_a.is_pressed():
  9.         music.play(tiger, wait=False, loop=True)
  10.     elif button_b.is_pressed():
  11.         music.play(music.BIRTHDAY, wait=False, loop=True)
復(fù)制代碼


  2.稍微復(fù)雜一點程序,帶動態(tài)圖像的
  1. from microbit import *
  2. import music
  3. 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)]

  4. #   diy兩只老虎樂譜
  5. tiger= ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4",
  6.         "E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"]

  7. while not False:
  8.     display.show(Image.MUSIC_QUAVER)
  9.     if button_a.is_pressed():
  10.         music.play(tiger, wait=False, loop=True)
  11.         
  12.         for down in range(0,5):
  13.             for y in range(0,5):
  14.                 for x in range(0,5):
  15.                     if y-down<0:
  16.                         display.set_pixel(x,y,0)
  17.                     else:
  18.                         display.set_pixel(x,y,pix[y-down][x])
  19.             sleep(300)
  20.             
  21.         for right in range(0,5):
  22.             for y in range(0,5):
  23.                 for x in range(0,5):
  24.                     if x-right<0:
  25.                         display.set_pixel(x,y,0)
  26.                     else:
  27.                         display.set_pixel(x,y,pix[y][x-right])
  28.             sleep(300)
  29.             
  30.         for up in range(0,5):
  31.             for y in range(0,5):
  32.                 for x in range(0,5):
  33.                     if y+up>4:
  34.                         display.set_pixel(x,y,0)
  35.                     else:
  36.                         display.set_pixel(x,y,pix[y+up][x])
  37.             sleep(300)
  38.             
  39.         for left in range(0,5):
  40.             for y in range(0,5):
  41.                 for x in range(0,5):
  42.                     if x+left>4:
  43.                         display.set_pixel(x,y,0)
  44.                     else:
  45.                         display.set_pixel(x,y,pix[y][x+left])
  46.             sleep(300)
  47.             
  48.         sleep(1000)
  49.     elif button_b.is_pressed():
  50.         music.play(music.BIRTHDAY, wait=False, loop=True)
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表