博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TurnipBit:DIY音乐盒教程实例
阅读量:6375 次
发布时间:2019-06-23

本文共 3038 字,大约阅读时间需要 10 分钟。

  一款可以自己DIY的音乐盒,要什么曲子,就自己谱曲啦!为他(她)制作一首他喜欢的音乐,来代表您的心意,也可以让他自己来制作他最爱的音乐哦!更可以带孩子一起体验谱写欢快的音乐。

 

  最近发现一很好玩的中国式BBCmicrobit开发板--TurnipBit开发板,既可以拖拽,也可以用micropython来编写,既有可视化编程页面,也有代码编写页面,属于孩子家长的神器,只需这一个开发板外加随便一个纸盒即可DIY一个简易的音乐盒,还能随便切换音乐哦!我们可以随便用一个纸盒来当做音乐盒外形跟框架,然后我们用这个板子加一个耳机或者一个外放就能播放我们自己谱写的音乐啦!下面我们开始DIY我们的音乐盒!

  首先材料准备,我们所需材料很简单只需要:

  1.TurnipBit开发板(我这个是朋友送的,可以从某宝上购买),给大家爆个照

  2.随便找个匹配大小的纸盒就行

  3.需要一个外放,耳机喇叭都行

  4.一条电源线

 

  材料准备好了,就开始搞吧!

  先上个成品图(孩子还给画了上一曲,下一曲以及显示屏的图标,虽然有点丑,但是不想打击孩子的积极性,挺萌的哈),micropython代码是我写的,显示屏的图形是孩子拖拽的,一起动手把开发板在盒子里面固定,数据线连接到电脑上,写好我们要编写的程序,将程序写进板子里,就直接可以播放啦,注意那个显示屏是动态的哦,简单吧,那就动手做起来吧!!!

 

  因为孩子比较喜欢两只老虎,就特意给他编了两只老虎,还有生日快乐的音乐,这个开发板类库中带很多孩子喜欢的图形还有音乐,也可以自己编译,如果要编译的话,请参考:

  https://en.wikipedia.org/wiki/Scientific_pitch_notation#Table_of_note_frequencies

  可以DIY乐谱哦!

  下面分享一下两种源码,可以在

  http://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 musicpix = [(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)

  

转载于:https://www.cnblogs.com/xxosu/p/7204758.html

你可能感兴趣的文章
被《时代周刊》选为年度最佳发明,PS VR靠的竟然是价格
查看>>
通用唯一标识码UUID的介绍及使用。
查看>>
spring笔记--依赖注入之针对不同类型变量的几种注入方式
查看>>
Java爬虫——网易云热评爬取
查看>>
Ajax的简单学习
查看>>
无华为,不智慧:智慧城市建设为何少不了华为?
查看>>
高性能网络通信框架Netty-基础概念篇
查看>>
为npm配置taobao源
查看>>
orm框架(SQLAlchemy) 连接数据库和创建表
查看>>
OSPF多区域虚电路配置
查看>>
zookeeper初探三 java客户端连接
查看>>
管理邮件用户
查看>>
Python中的运算符、数据类型、字符串及列表操作举例
查看>>
Tab页界面之二,jQuery技术实现
查看>>
如何查看linux版本
查看>>
导出DC数据以便以介质方式安装另一台域控制器
查看>>
2、Gerrit配置--用户配置
查看>>
Centos7 Nginx 服务器的安装配置
查看>>
Hibernate学习(八):检索方式
查看>>
RIPv1 PK RIPv2
查看>>