文档章节

TurnipBit - DIY音乐盒

bodasisiter
 bodasisiter
发布于 2017/07/18 17:07
字数 875
阅读 83
收藏 0
点赞 0
评论 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
粉丝 14
博文 140
码字总数 127462
作品 0
潍坊
让我们一起摇摆 Turnipbit体感遥控车

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

bodasisiter
02/24
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
利用TurniBit开发板DIY一套自动窗帘模拟系统

  一、准备工作   TurnipBit 开发板 一块   下载数据线 一条   微型步进电机(28BYJ-48) 一个   步进电机驱动板(ULN2003APG) 一块   光敏传感器 一个   TurnipBit 扩展板 ...

FreeBuf
07/01
0
0
Micropython TurnipBit的蓝牙使用

为了部落 什么是TurnipBit开发板 TurnipBit开发板由TurnipSmart公司制作的一款MicroPython开发板,基于nrf51822芯片为主控芯片,以MKL26Z128VFM4芯片作为边载辅助芯片,板载5*5LED灯,板载加...

bodasisiter
05/19
0
0
Micropython TurnipBit 青少年入门编程 交通灯实验

不知道大家小时候对红绿灯的原理有什么研究过,我是农村的孩子直到初中才见到真实的红绿灯,当时我记得很清楚,在那个路口站了五六分钟就盯着红绿灯变换,搞不清原理,只觉得神奇。现在想来实...

bodasisiter
03/16
0
0
Micropython 如何用Turnipbit做一个自动浇水装置

最近在研究Turnipbit这块板子,打算是连接一个摄像头模块,正在实验练习中,(祝自己早日弄好)上篇文章我们讲了用Turnipbit连接LCD5110显示英文词句,前几天给家里花浇水的时候发现花招了很...

bodasisiter
03/07
0
0
TurnipBit开发板旋转按钮控制直流电机转速

1.实验目的: ?学习在PC机系统中扩展简单I/O 接口的方法 ?学习TurnipBit拼插编程 ?了解直流电机的工作原理 ?学习L298N的工作原理 ?学习TurnipBit扩展板L298N和按键模块的接线方式 2.所需原器...

bodasisiter
07/10
0
0
Micropython Turnipbit自动窗帘模拟系统

今天我们继续来研究Turnipbit这块板子的功能,这个实验灵感并不是我想出来的,办公室是背阴的,早上中午都见不到太阳,坐在对面的同事每天下午四点,都要去拉窗帘,我都能感觉到太阳直晒他眼...

bodasisiter
03/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Tomcat中JAVA JVM内存介绍、内存溢出及合理配置

一、Java JVM内存介绍 JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创...

學無止境
9分钟前
0
0
centOS7.4+nginx 1.12.2负载均衡

centOS7.4+nginx 1.12.2负载均衡 2018年04月10日 09:24:51 阅读数:58 1:参数信息 三台 centOS7.4 A,B,C A作为主服务器,B C作为分流的服务器 都搭建 nginx 1.12.2 一:安装 nginx 1:下载...

linjin200
14分钟前
0
0
分布式之抉择分布式锁

前言: 目前网上大部分的基于zookpeer,和redis的分布式锁的文章都不够全面。要么就是特意避开集群的情况,要么就是考虑不全,读者看着还是一脸迷茫。坦白说,这种老题材,很难写出新创意,博...

Java大蜗牛
20分钟前
0
0
rm: cannot remove `xxx’: Operation not permitted

rm: cannot remove `xxx': Operation not permitted可以先用lsattr xxx查看文件的隐藏属性。如果看到-----a-------的情况,可以用chattr -a xxx去除a属性,然后再进行删除就可以了....

殘留回憶
20分钟前
0
0
oracle 如何查看当前用户的表空间名称

如何查询当前用户的表空间名称?因为oracle建立索引,需要知道当前用户的表空间,查找了一下资料 --查询语法-- select default_tablespace from dba_users where username='登录用户' 如,...

youfen
24分钟前
0
0
MicroPython-TPYBoard开发板DIY小型家庭气象站

对于喜欢登山的人来说,都会非常关心自己所处的高度跟温度,海拔高度的测量方法,海拔测量一般常用的有两种方式,一是通过GPS全球定位系统,二是通过测出大气压,根据气压值算出海拔高度。 ...

bodasisiter
24分钟前
0
0
抓取沪A股票资金流向数据

library(rvest)mydata<-list()day1<-Sys.Date()day2<-Sys.Date()-7stock<-c("600695","600734","603693","601990","603650","603045","603895","600735","601999","603970","600619"......

cuyi
24分钟前
0
0
Java中mqtt消息队列发送和订阅消息

1.首先本地建立mqtt协议的服务器 2.直接上代码 package io.powerx.test;import java.util.Date;import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;import org.eclipse.p......

江湖鱼大虾
26分钟前
0
0
数据结构-树的学习

1. 相关连接 维基-二叉搜索树 维基-红黑树 思否-红黑树1 思否-红黑树2

liuyan_lc
28分钟前
0
0
Dubbo 源码解读——自定义 Classloader 之 ExtensionLoader

众所周知,Dubbo 是阿里巴巴公司自主研发开源的一个高性能的服务框架(现已捐献给 Apache 基金会组织),应用之间可以通过 RPC 的方式来互相调用并返回结果。主要基于 Java 语言开发,它提供...

Ryan-瑞恩
37分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部