TurnipBit:DIY音乐盒教程实例
一款可以自己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 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)
TurnipBit:DIY音乐盒教程实例的更多相关文章
- MicroPython可视化编程开发板—TurnipBit自制MP3教程实例
转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇) 当前我们都生活在一个有声有色的社会当中,欣赏美丽的景色,享受动人的音乐, ...
- android 教程实例系列
用户界面部分学起来还真是无处下手哇,总不能一个控件发一篇文吧,略有点费时间啊...这个难道不是边用边学才给力吗..所以我打算从最实用的Button开始下手. 先贴几个链接,好东西: android用户 ...
- android用户界面详尽教程实例
android用户界面详尽教程实例 1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.andr ...
- Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考
Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考 //System.setProperty("webdriver.firefox.bin" ...
- Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)
1. 框架代码 用 PyCharm 新建一个名为 SimplePaintApp 的项目,然后新建一个名为 simple_paint_app.py 的 Python 源文件, 在代码编辑器中,输入以下框 ...
- freemarker语法介绍及其入门教程实例
# freemarker语法介绍及其入门教程实例 # ## FreeMarker标签使用 #####一.FreeMarker模板文件主要有4个部分组成</br>#### 1.文本,直接输 ...
- Kivy crash 中文教程 实例入门 1. 第1个应用 Kivy App (Making a simple App)
1. 空白窗口 在 PyCharm 中创建一个名为 TutorialApp 的项目,然后在该项目中新建了个名为 tutorial_app.py 的 Python 源文件,在 PyCharm 的代码编 ...
- Kivy 中文教程 实例入门 简易画板 (Simple Paint App):3. 随机颜色及清除按钮
1. 随机颜色 通过前面的教程,咪博士已经带大家实现了画板的绘图功能.但是,现在画板只能画出黄色的图案,还十分单调,接下来咪博士就教大家,如何使用随机颜色,让画板变得五彩斑斓. 改进后的代码如下: f ...
- Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs
ylbtech-Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs 1.返回顶部 1. Java 实例 - 重载(ove ...
随机推荐
- 【本地资源路径&&网络资源路径&&正反斜杠在Java中的用法】
一.概念和用法 左正右反 先来看看转义字符的概念:通过 \ ,?来转变后面字母或符号的含义.意思就是改变字母本身的含义. 以"\"符号为例,JAVA中有很多操作,例如文件操作等,需 ...
- String 经常用法最优算法实现总结 (二)
1. String getOrderedString(boolean isDuplicated, String - str) 说明: Orders all characters in the inpu ...
- 指尖上的电商---(4).net开发solr
这一节我们看下如何把查询数据放到server端存储,这里我们须要使用client工具来操作与服务端数据打交道,网上有好多基于.NET开发的SOLRclient,我们这里选择easynet.solr,非 ...
- 游戏AI-行为树理论及实现
从上古卷轴中形形色色的人物,到NBA2K中挥洒汗水的球员,从使命召唤中诡计多端的敌人,到刺客信条中栩栩如生的人群.游戏AI几乎存在于游戏中的每个角落,默默构建出一个令人神往的庞大游戏世界. 那么这些复 ...
- jmeter的使用---web测试
jmeter的使用---web测试 url:http://127.0.0.1:1080/WebTours/ 1.通过badboy录制脚本 1.1输入url点击右侧的跳转按钮,随后右侧显示url界面 1 ...
- Bandit Wargame Level12 Writeup
Level Goal The password for the next level is stored in the file data.txt, which is a hexdump of a f ...
- springMVC上传错误StandardMultipartHttpServletRequest
异常信息 java.lang.ClassCastException: org.springframework.security.web.servletapi.HttpServlet3RequestFa ...
- CentOS openssh升级至7.4版本
1.原环境: cat /etc/issue CentOS release 6.5 (Final) ssh -V OpenSSH_7.3p1, OpenSSL 1.0.1e-fips 11 Feb 20 ...
- 开始连载啦~每周2更共11堂iKcamp课|基于Koa2搭建Node.js实战项目教学(含视频)| 课程大纲介绍
- 【CSS3】边框
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...