文档章节

TurnipBit - DIY音乐盒

bodasisiter
 bodasisiter
发布于 2017/07/18 17:07
字数 875
阅读 104
收藏 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
粉丝 31
博文 209
码字总数 196976
作品 0
潍坊
私信 提问
加载中

评论(0)

TurnipBit:可视化拼插式编程,全面激发青少年的编程热情

  “全民编程”已成一股热潮,青少年编程很快就会成为“下一个基础学科”。而今年起,浙江省高考也把信息技术作为选项之一加入了高考,编程就是其中的重点内容,加上很多编程比赛有可能成为...

bodasisiter
2017/08/09
5
0
TurnipBit之DIY无线遥控智能小车

一、准备工作 TurnipBit 开发板 2块 TurnipBit 扩展板 1块 数据线 1条 智能小车器件 1套 电机驱动模块(L298N) 1个 在线可视化编程 点击进入 二、思路设计 2块TurnipBit开发板,1块模拟体感...

小小su
2017/12/07
0
0
让我们一起摇摆 Turnipbit体感遥控车

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

osc_fgugzqb8
2018/02/24
2
0
让我们一起摇摆 Turnipbit体感遥控车

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

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

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

bodasisiter
2018/09/08
215
0

没有更多内容

加载失败,请刷新页面

加载更多

软件测试人员如何提升自己?送给职场中迷茫的你【共勉】

很多人在进入软件测试行业几年之后,可能都会进入一个瓶颈期,不知道如何去提升自己,但自己能意识到这个问题就是好事。 我在前面的几年也曾遇到这个问题,走出舒适区确实很难,但如果可以走...

爱码小哥
32分钟前
23
0
mysql count(*) count(1) count(id) 讲解

环境 win10 8g内存 mysql5.7.27 mysql my.ini 配置 注意(innodb_flush_log_at_trx_commit=0)配置 [Client]#设置3306端口port = 3306[mysqld]#设置3306端口port = 3306# 设置mysql的安......

fashionbrot
今天
20
0
Windows 终端中的配色方案

摘自: https://docs.microsoft.com/zh-cn/windows/terminal/customize-settings/color-schemes 创建自己的配色方案 可以在 settings.json 文件的 schemes 数组中定义配色方案。 它们是使用以...

SummerGao
今天
26
0
安装升级最新版本postman时遇到“无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上.”的问题

软件版本迭代更新真快,最近升级最新Postman版本时出现以下问题 我就简单纪录下解决办法: 备注:我用的是最新的postman工具包:Postman-win64-7.25.0-Setup.exe,目前是最新 0. 前提是已经到...

董广明
今天
19
0
如何检查对象是否为数组? - How to check if an object is an array?

问题: I'm trying to write a function that either accepts a list of strings, or a single string. 我正在尝试编写一个接受字符串列表或单个字符串的函数。 If it's a string, then I w......

技术盛宴
今天
22
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部