好好搭搭haodaMIDI模块掌控板Python编程
2019-10-011.2万
AI 快速预览详细
本教程介绍了如何使用掌控板和haodaMIDI模块进行Python编程,实现MIDI音乐的播放。首先介绍了所需的硬件,包括掌控板、扩展板和haodaMIDI模块。接着详细说明了程序的编写步骤,包括初始化MIDI接口、读取MIDI数据文件、显示曲名以及播放MIDI音乐。此外,还提供了MIDI文件转换工具和上传程序的方法。通过简单的接线和程序编写,用户可以轻松实现MIDI音乐的播放,适合STEM教育和编程启蒙。
|
一、硬件 本教程使用了掌控板+扩展板+haodaMIDI模块 大家要问:“什么是MIDI模块?” 我就用现成的,请看下图 ![]() 接线很简单,MIDI模块接口分别是G\V\控制信号,2.54插座 可以用杜邦线接掌控扩展板的G\V\P13 2、程序 [mw_shl_code=python,true]from mpython import * from machine import UART import time,json #初始化MIDI接口,MIDI模块接P13,设置为tx发送端,rx用不到,随便指定一个 uart1 = UART(1, baudrate=31250, tx=Pin.P13, rx=Pin.P8) file_name="midi1.json"#MIDI数据文件名 i = 0 t = 0 midifile = open(file_name,'rb')#打开文件 midi_data = json.load(midifile)#读JSON数据 midifile.close#关闭文件 song = eval(midi_data["song"])#song[]存放MIDI命令 sudu = eval(midi_data["sudu"])#sudu存放速度 title = midi_data["title"]#title存放曲目名称 l = len(title)*12 #显示曲名 oled.fill(0) oled.DispChar(title, int((128-l)/2), 22, 1) oled.show() while True: #播放开始 while i < len(song)-4: uart1.write(bytes([song[i+1],song[i+2],song[i+3]])) t=song[i+4]*sudu; if t!=0: time.sleep_us(t) i = i + 4 #播放结束 i = 0 t = 0 time.sleep(2)#停2秒,重复播放 [/mw_shl_code]说明: 1、MIDI控制命令传输时采用异步串行通信, 标准通信波特率为31250,我们可以直接使用掌控板的软件串口2、MIDI控制命令的数据是通过转换MIDI乐曲文件得到的,转换工具是 midiconv.rar转换方法是解压midiconv.exe,把要转换的MIDI文件拖到midiconv.exe图标上,转换完成后会在MIDI文件同目录下生成midi.c文件。 这是用于Arduino\microbit\徽章板\掌控板的c语言程序,我们要按JSON的格式把相应的数据编写进midi1.json文件,文件格式如下[mw_shl_code=python,true]{ "title":"\u8ba9\u6211\u4eec\u8361\u8d77\u53cc\u6868", "sudu":"0x005088", "song":"[ 0x00,0xC0,0x00,0x00, 0x00,0xB0,0x07,0x7D, 0x00,0xB0,0x0A,0x32, 0x00,0xC1,0x00,0x00, 0x00,0xB1,0x07,0x78, ...... 略 ...... 0x04,0xB1,0x0A,0x54, 0x0D,0xB1,0x0A,0x55, 0x43,0x90,0x58,0x00, ]" } [/mw_shl_code]title是中文曲名,在json文件中要使用中文转Unicode工具转码,如\u8ba9\u6211\u4eec\u8361\u8d77\u53cc\u6868,可以使用以下网址转码,http://tool.chinaz.com/tools/unicode.aspx sudu就是midi.c中的uint32_t sudu=后的值。 song对应的就是song[]值,一定要按JSON的格式制作,所有的值都是加引号的字符串 3、上传程序 我使用的是mPython X 0.3.5版 连接上掌控板,使用文件系统上传midi1.json文件到掌控板 使用Python代码模式编写程序,刷入运行。 以后要换曲目,直接重新上传json文件就可以了 稍加修改,就可以选择播放多个曲目,就像一个midi播放器 4、视频 程序和数据文件下载: midi程序和数据.rar |




