所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
多功能双人无线乐器
qyj133 qyj133 2021-04-19 11:26:56
3
4
简单

孩子要参加学校的艺术月活动,说要把家里的架子鼓带到学校去,当初架子鼓买回来我对着说明书折腾半天才组装好,要待学校这可怎么办。头都大了。不行做个简单便携的拿在手里就可以演奏的乐器去参加活动,我想应该也不错。

创客做乐器的案例很多,自己不懂乐器,但还是想尝试一下。由于好好搭搭的MIDI模块使得这个想法很快变成了现实。

注:MIDI(Musical Instrument Digital Interface)乐器数字接口,解决电声乐器的通信问题,MIDI传输的不是声音信号,而是音符、控制参数等指令,它指示MIDI设备要做什么,怎么做,如演奏哪个音符、多大音量等。它们被统一表示成MIDI消息(MIDI Message)。haodaMIDI采用入门级硬音源芯片,5颗高品质钽电容保证音质。可以接入各种控制器控制如microbit、掌控、好搭酷、Arduino、徽章板等。haodaMIDI硬音源带耳放,可以接耳机播放。硬音源带127种乐器音色,60余打击乐器,可以图形化编程,控制简单,完全可以制作各种电声乐器,或自动演奏乐器(相当于一支乐队)。

这个项目呢是掌控版结合好搭的MIDI模块,制作可选乐器类型的一款多功能双人无线乐器。为什么是双人无线呢呢?这个项目使用三块掌控版,两块时演奏端,一块与好搭的MIDI模块连接实现播放,三块板子使用无线通信。

好搭的MIDI模块在很多图形化中都有相应的图形化模块,在我使用mpythonX时,没有找到图形化模块,所以也只能研究研究好搭的MIDI模块具体的原理。

步骤1 步骤1
好搭的MIDI模块控制代码

haodaMIDI通信息协议为异步串口协议,波特率为312500,只要向通过信号线S发送MIDI控制指令,就能驱动haodaMIDI发出各种乐器的声音。

haodaMIDI有16个通道,其中第10通道是打击乐节奏通道,标准MIDI协议就可以通道,部分控制指令(三字节)案例

切换通道音色

第一字节:C+通道4b,第二字节:通道音色(0-127),第三字节同第二字节

示例:0xC0  0x02  0x02,表示把第一通道的音色切换为电钢琴

演奏音符

第一字节:9+通道4b(除10通道),第二字节:音符(0-127),第三字节力度(音量0-127)

示例:0x90  0x48  0x32,表示向第一通道发送4音阶的音符C,力度是50。

演奏打击乐

第一字节:99(第10通道),第二字节:打击乐器名,第三字节力度(单量0-127)

示例:0x99  0x35  0x64,表示大鼓发音力度为100

 

以上内容来自好搭的官网介绍,明白了以上内容后,在实际制作过程中就相对容易一些了,每次乐器切换、音符变换等都与串口写入内容息息相关。

步骤2 步骤2
材料清单
材料清单 材料清单
3x
掌控版
2x
百灵鸽扩展板
1x
掌控宝扩展板
1x
好搭MIDI模块

除了以上器材,还需要细软线、螺丝、螺杆、垫片、纸盒子、导电胶带等。

projectImage

从单位找了线,找了螺丝垫片等。

步骤3 步骤3
程序编写

接收端程序截图

projectImage
projectImage
projectImage

发送端程序截图:

两个发送端程序类似,执法一个,全部程序见附件。

projectImage
projectImage
步骤4 步骤4
项目制作
projectImage
projectImage

因为使用的扩展板都有自带电源,板子间无线通信,所以连接比较容易。

步骤5 步骤5
最终效果
projectImage
projectImage

现在由乐盲来演奏一曲!

步骤6 步骤6
附件源程序
Makelog作者原创文章,未经授权禁止转载。
3
4
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]