查看“MIDI(电子琴)”的源代码
←
MIDI(电子琴)
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于这些用户组的用户使用:
用户
,labplus
您可以查看与复制此页面的源代码。
[[文件:黑色传感器最终版12.20-05.png|350px|缩略图|右]] == 概述 == 用于播放乐符,可模拟电子琴等各种乐器演奏效果 == 技术参数 == * 工作电压:VCC 3.3-5V * 通讯方式:UART * 集成功放、双声道喇叭 * 模块尺寸:24x46x7.5mm == 引脚定义 == {| class="wikitable" |- | <small>VCC</small> || <small>电源</small> |- | <small>RXD</small> || <small>串口接收</small> |- | <small>TXD</small> || <small>串口发送</small> |- | <small>GND</small> || <small>地</small> |} == 使用教程 == {|style="background-color:#FCF8E3;color:#8A6D3B;" |style="padding: 2px;"| 1.RXD连接至microbit串口的TX,在定义串口引脚时需要注意下!<br/> 2.串口波特率:31250bps <br/> 3.程序烧下载完成后须断电重启 <br/> 4.MIDI音符音色代码资料: * [http://wiki.labplus.cn/images/1/16/MIDI%E9%9F%B3%E7%AC%A6%E4%BB%A3%E7%A0%81%E8%A1%A8.zip MIDI音符代码表] * [http://wiki.labplus.cn/images/4/40/MIDI_%E6%A0%87%E5%87%86%E9%9F%B3%E4%B9%90%E7%A0%81.zip MIDI标准音乐码] |} === <small>Arduino示例</small> === * [http://wiki.labplus.cn/images/c/cf/MidiPlayPrj.zip Arduino midi库下载] <pre style="color:blue"> #include <SoftwareSerial.h> #include "vs1103b.h" #define NOTE_C3 60 #define NOTE_D3 62 #define NOTE_E3 64 #define NOTE_F3 65 #define NOTE_G3 67 #define NOTE_A3 69 #define NOTE_B3 71 #define NOTE_C4 72 #define NOTE_D4 74 #define NOTE_E4 76 #define NOTE_F4 77 #define NOTE_G4 79 #define NOTE_A4 81 #define NOTE_B4 83 #define VELOCITY1 0x7F #define VELOCITY2 0x00 uint8_t noteArr[14] = { 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 79, 81, 83 }; Vs1103bClass vs1103b(A5, A4); //RX TX ; void midiVolume(uint8_t vol); void setup() { vs1103b.begin(); vs1103b.usartSendChannelMsg(CHANNEL0, MSG_CONTROL_CHANGE, DAT1_RESET, 0); //复位 vs1103b.usartSendChannelMsg(CHANNEL0, MSG_CONTROL_CHANGE, DAT1_NOTE_OFF, 0); //关闭所有音 midiVolume(180); //音量设置 } void loop() { /*音调测试*/ for (int i = 0; i < 14; i++) { vs1103b.usartSendChannelMsg(CHANNEL0, MSG_NOTE_OPEN, noteArr[i], 0x7F); delay(500); vs1103b.usartSendChannelMsg(CHANNEL0, MSG_NOTE_OPEN, noteArr[i], 0x00); delay(500); } } void midiVolume(uint8_t vol) { vs1103b.usartSendChannelMsg(CHANNEL0, MSG_CONTROL_CHANGE, 0x07, vol); delay(2); } </pre> === <small>python示例</small> === ::: {| |- |[[文件:MIDI 连接图.png|600px|无框]] |- |style="text-align:center"|'''连接示意图''' |} <pre style="color:blue"> from microbit import * def midi_init(pin): uart.init(baudrate=31250,tx=pin) sleep(30) uart.write(bytearray([0xb0,0x78,0x00])) sleep(5) uart.write(bytearray([0xb0,0x79,0x7f])) sleep(15) def midi_set_volume(vol): uart.write(bytearray([0xb0,0x07,vol])) sleep(10) def midi_set_instrument(ins): uart.write(bytearray([0xc0,ins])) sleep(10) def midi_note(note, on_off): if on_off == 1: uart.write(bytearray([0x90,note,0x7f])) elif on_off == 0: uart.write(bytearray([0x80,note,0x00])) sleep(5) #test code music=bytearray([60,62,64,60,60,62,64,60,64,65,67,64,65,67]) #两只老虎 duration=bytearray([1,1,1,1,1,1,1,1,1,1,2,1,1,2]) #节拍 music_len=len(music) midi_init(pin1) #设置串口tx引脚 midi_set_instrument(58) #设置音色 midi_set_volume(100) #设置音量,范围 0-127 while True: for i in range(music_len): midi_note(music[i],1) sleep(200*duration[i]) midi_note(music[i],0) sleep(200) </pre> === <small>图形化示例</small> === {|- |程序功能:播放钢琴的部分音符声音 |- | [[文件:电子琴.png|900px|无框|左]] |-} == 版本历史记录 == {| border="1" cellspacing="0" align="left" cellpadding="0" width="60%" style="text-align:center;" |- style="text-align:center;background-color:#6fa8dc;color:#fffff;" !width="10%"|Version !!width="15%"| Date !! Note <small>[+]新增[-]删除[^]修复</small> |- | V2.0 || || style="text-align:left"| |}
返回至
MIDI(电子琴)
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
软件
Labplus软件
mPython软件
Mixly集成盛思版
mpython_conn
教学套件
创客初级实验箱
创客初级实验箱进阶版
创客中级实验箱
创客中级实验箱Ⅱ
人工智能交互实验箱
桌面机器人
乐动魔盒
可穿戴作品电子套件
创意触摸板套装
乐动魔块中级套装
乐动魔块高级套装
bot:bit
编程造物套装
逻辑造物套装
人工智能套装
物联网套装
高中信息技术套装
掌控板初级套装
初中信息技术材料包
开源硬件教学套装
冲锋舟
造物
Arduino
乐动魔块(旧版)
Blue:bit电子积木
MicroBit系列
掌控板系列
AI摄像头V1.0
AI摄像头V2.0
1956
掌控魔盒
乐动掌控
乐动魔块
互动作品
森林奇遇记
创客森林
创客乐园
物联网演示系统
博物馆防盗演示实验系统
梦想舞台演示实验系统
智能家居演示实验系统
智能教室演示实验系统
智能停车场演示实验系统
DIY-木板系列
嘘寒问暖
硬币存款机
吼一声试试
斜不胜正灯
时光葫芦
旋转转盘
越光宝盒
治愈系萌犬
光明使者
避障机械车
DIY-亚克力系列
情绪机器人
创意七彩灯
温湿度机器人
留言机
游龙戏灯
三色时钟
光影精灵
光影时钟
智能应用系列
LED眼镜
32x16 RGB LED点阵屏
DIY环境温湿度显示系统
DIY创客空间访客记录仪
其他
金属结构件套装
耗材存取管理柜
更多
课程资源
常见问题解答
Arduino语法参考手册
链接
Labplus官网
STEAM创客教育平台
工具
链入页面
相关更改
特殊页面
页面信息