#创作挑战赛#

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(1)

引:

可以使用上次的文章进行环境的搭建,文章的地址Python挺酷的 | PyCharm MicroPython ESP32 开发环境搭建 然后我们进行代码的编写,我们要实现的是蓝牙midi的效果,就要用到ESP32的蓝牙功能,当然别的蓝牙模块也可以实现midi的效果,毕竟midi只是传输协议层的问题,就很好理解了。

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(2)

一、代码部分

  1. 注册蓝牙服务

def register(self): # 注册MIDI蓝牙服务 MIDI_SERVER_UUID = ubluetooth.UUID('03B80E5A-EDE8-4B33-A751-6CE34EC4C700') MIDI_CHAR_UUID = (ubluetooth.UUID('7772E5DB-3868-4112-A1A9-F2669D106BF3'), ubluetooth.FLAG_READ | ubluetooth.FLAG_WRITE | ubluetooth.FLAG_NOTIFY,) BLE_MIDI_SERVER = (MIDI_SERVER_UUID, (MIDI_CHAR_UUID,),) SERVICES = (BLE_MIDI_SERVER,) ((self.midi,),) = self.ble.gatts_register_services(SERVICES)

2. 蓝牙被发现模式设置

def advertiser(self): # 设置广播及扫描响应数据 name = bytes(self.name, 'UTF-8') self.ble.gap_advertise(100, adv_data=b'\x02\x01\x05' bytearray((len(name) 1, 0x09)) name, resp_data=b'\x11\x07\x00\xC7\xC4\x4E\xE3\x6C\x51\xA7\x33\x4B\xE8\xEd\x5A\x0E\xB8\x03')

3. MIDI发送部分

def send(self, data): if self.isConnected: self.ble.gatts_notify(0, self.midi, data)

4. 中断部分

这部分根据自己的需求进行编写即可。

以上为主要的几部分代码,应用部分,可以自行添加。

二、测试软件列表

1. loopMIDI

这里我们使用的是loopMIDI软件进行电脑端的测试,我们需要用电脑连接到蓝牙模块,我们先把软件下载了。进入官网地址进行下载,这款软件是免费的软件,可以很容易上手的。

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(3)

点击进去之后,就是如下的界面,我们进行下载即可。

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(4)

下载完成之后,是如下的压缩包,解压缩、安装。

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(5)

解压之后,勾选我同意,按照步骤进行安装。

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(6)

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(7)

至此,安装成功。

2. Bluetooth LE Explorer

这个在微软商店进行下载,同样是免费的软件。

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(8)

后面进行说明使用方法;

3. MIDIberry

这个在微软商店进行下载,同样是免费的软件

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(9)

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(10)

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(11)

4. 下载宿主软件Cakewalk

官网下载,这个是免费软件,下载并安装即可。

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(12)

在这里,老刘不是做音乐的,对于这些软件不是很明白,只是随便上网找了一个软件,看似专业的样子,只是为了演示midi硬件的需要。

三、联动操作

将开发板上电,然后打开电脑的蓝牙,进行搜索。

1. 电脑蓝牙搜索操作

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(13)

寻找到ESP32的名称,进行连接

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(14)

2.打开Bluetooth LE Explorer

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(15)

搜索设备,找到ESP32,进行搜索,点击pair

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(16)

返回后点击下面的按钮。

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(17)

这个软件不要关闭,然后打开另外一个软件

3. 打开midiloop

新建一个port,SDJ midi

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(18)

4. 打开MIDIberry软件

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(19)

我们发现软件中ESP32后面的标识为(Bluetooth MIDI IN)

输入选择ESP32,输出选择SDJmidi

最后,

5.打开Cakewalk

我们打开DW软件,设置输入为SDJmidi即可。我们以Cakewalk为例

micropython开发板入门(Python挺酷的识别蓝牙MIDI)(20)

确定即可。

至此,设置完成。

结:

可以识别出蓝牙midi,后续的工作需要对协议栈充分了解,补充具体的工作。

,