- · 《微型电脑应用》刊物宗[08/03]
- · 《微型电脑应用》征稿要[08/03]
- · 《微型电脑应用》投稿方[08/03]
- · 《微型电脑应用》数据库[08/03]
- · 《微型电脑应用》栏目设[08/03]
让micro:bit和音乐互动起来
作者:网站采编关键词:
摘要:涉及学科:音乐,数学,信息技术 当下火遍整个创客教育圈的莫过于micro:bit了。如图1所示,micro:bit是一个很小的可编程的微型电脑,能够使用makecode、Mixly、Python等编程语言设计智能作
涉及学科:音乐,数学,信息技术
当下火遍整个创客教育圈的莫过于micro:bit了。如图1所示,micro:bit是一个很小的可编程的微型电脑,能够使用makecode、Mixly、Python等编程语言设计智能作品。一直期望能够用micro:bit来识别音乐节奏,可惜micro:bit的功能太弱没办法实现,只能转而希望借助于电脑的帮忙,即让电脑识别音乐节奏,再将识别结果告诉micro:bit。这种做法其实就是在设计一款互动媒体作品。
互动媒体方面,最有名的编程软件当属Processing,Processing的Minim库中有个范例程序——窗口的矩形会随着音乐的节拍而跳动,效果图如2所示。我们准备借助这个库来识别音乐,然后实现micro:bit和音乐进行互动。比如,按下micro:bit的B键,音乐播放,按下micro:bit的A键,暂停播放,当音乐中有节拍时,则发送信息给micro:bit让LED点阵屏快速闪烁心型图像。
● 互动作品的原理分析
窗口的矩形随着音乐的节拍而跳动的效果是由Processing的Minim库中的“Frequency EnergyBearDetection”范例程序实现的,此程序是用频率能量模式对音乐中的节拍进行监测,使用快速傅立叶变换(FFT)算法来获得频谱,然后将频谱划分为平均频带,并且独立地监测在频谱的不同部分发出的声音(如底鼓、军鼓和小擦)。简单来说,此范例程序是对音乐的频率进行监测,而Processing窗口中矩形的出现以及位置便是由实时监测到的频率决定的。
那么,只要在这个范例程序中增加功能,当特定频率出现的时候,向micro:bit发送信息,就可以达到音乐互动的目的。可见,完成这个互动作品的关键在于让micro:bit和Processing之间相互通信。
Processing支持网络通信,通过WIFI进行互动本来是很好的方式,只是micro:bit自身不带WIFI功能,外加无线设备又比较麻烦。幸好Processing和micro:bit都支持串口通信,二者的互动只能通过串口来实现。如果需要无线互动,则可以用一块micro:bit作为中转设备,多块micro:bit作为终端同时显示效果。
为了让互动更加有意思一些,我们在micro:bit中加上了音乐控制功能。这个互动媒体作品的运行流程如图3所示。
图1 micro:bit
图2 范例程序效果图
图3 系统运行流程
图4 设备管理器查看端口号
图5 安装Minim库界面
图6 Minim库范例程序
图7 范例FrequencyEnergyBeatDetection
● 开发环境准备
1.安装串口驱动
micro:bit在windows中需要另外安装Mbed串口驱动。而在Linux和Mac OS上无需安装驱动。下面以Win7为例介绍Mbed串口驱动的安装。首先连接micro:bit到计算机,然后双击Mbed串口驱动进行安装,安装完成后,便可通过设备管理器查看micro:bit的端口号了,如图4所示的COM1是笔者使用的计算机中micro:bit的端口号。端口号与计算机连接过的设备有关,不同的设备端口号不同。
2.安装Minim库
本案例中,Processing要用到Minim堪姹疽涯谥昧薓inim库,我们可以从库管理器中安装它。通过“速写本”—“引用库文件”—“添加库文件”打开管理器的Libraries选项卡,在Filter框中键入Minim,从列表中选择库,然后单击Install(如图5)。
安装完成后,便可通过“文件”—“范例程序”看到添加的Minim库(如图6)。
● 代码编写
1.修改Processign范例程序
范例中用M i n i m库中的BeatDetect实时读取Buffer中的数据并采集音频频率识别Kick(底鼓)、Snare(军鼓)和Hi-Hat(小擦)三种鼓点。本案例的音乐互动作品便是在此范例程序的基础上完成的。将代码另存后开始修改范例程序,主要增加了定义串口语句、接收信息语句以及发送信息语句(加下画线部分),以下是修改过的Processing代码(限于篇幅,仅仅提供部分代码,如果有需要请发邮件索取)。
Processing代码说明:运行程序,开始播放音乐,并且Processing窗口中的矩形会随着节拍的变化而变化,窗口上的文字KICK、SNARE、HAT也会随着各自的鼓点大小发生变化。当检测到Kick时,则向micro:bit发送信息K;当接收到信息为48(即数字0)时,则停止播放音乐;当接收到信息为49(即数字1)时,则继续播放音乐(如下页表1)。
2.编写micro:bit代码
当micro:bit接收到信息K时,则LED显示图像;当按下A键时,则向Processing发送信息0;当按下B键时,则向Processing发送信息1。下页表2为micro:bit代码。
文章来源:《微型电脑应用》 网址: http://www.wxdnyyzz.cn/qikandaodu/2020/0808/363.html
上一篇:《微型电脑应用》投稿须知
下一篇:“公路列车”令旅途更轻松