文档章节

TurnipBit - DIY音乐盒

bodasisiter
 bodasisiter
发布于 2017/07/18 17:07
字数 875
阅读 88
收藏 0

  一款可以自己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)

 

© 著作权归作者所有

共有 人打赏支持
bodasisiter
粉丝 19
博文 172
码字总数 154246
作品 0
潍坊
私信 提问
让我们一起摇摆 Turnipbit体感遥控车

相信大家对Microbit是非常熟悉的,而今天我们做的这个小玩具所用的核心板是Turnipbit,是基于 Microbit开发的一块适合儿童适用的板卡。基本使用原理是一样的,这里就不多介绍了,代码这方面我...

bodasisiter
02/24
0
0
[详细实例]MicroPython拼插编程实战:DIY一台会思考的壁障车

(转载请注明文章来源,更多教程可自助参考www.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇) 在日常生活中,大家会经常见到各种各样的遥控车,它需要我们人为的操作...

bodasisiter
09/08
0
0
MicroPython实战之TurnipBit开发板DIY电子时钟

一、 实验目的: ?学习在PC机系统中扩展简单I/O 接口的方法 ?学习TurnipBit拼插编程 ?学习TurnipBit扩展板与DS3231时钟模块连接接线方式 ?学习时钟模块的使用 二、所需原器件: ?TurnipBit一...

bodasisiter
06/26
0
0
MicroPython实例:TurnipBit开发板DIY自动浇水系统

1.实验目的: ?学习在PC机系统中扩展简单I/O 接口的方法 ?学习TurnipBit拼插编程 ?学习土壤传感器的工作原理以及使用方法 2.所需原器件: TurnipBit一块 TurnipBit扩展板一块 usb 数据线一条...

bodasisiter
07/03
0
0
MicroPython实战:DIY一台会思考的避障车

  * 本文作者:bodasister,本文属FreeBuf原创奖励计划,未经许可禁止转载   1、什么是会思考的避障车?   在日常生活中,大家会经常见到各种各样的遥控车,它需要我们人为的操作,控制...

FreeBuf
07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 源代码和 C 源代码的运行区别

与其他程序的执行方式和编译方式不同。 Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性。 请参考下图。 https://www.cwiki.us/pages...

honeymose
47分钟前
3
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
5
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部