Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

发布一下 0 0

#头条创作挑战赛#

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

引:

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

一、代码部分

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

至此,安装成功。

2. Bluetooth LE Explorer

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

后面进行说明使用方法;

3. MIDIberry

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

4. 下载宿主软件Cakewalk

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

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

三、联动操作

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

1. 电脑蓝牙搜索操作

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

2.打开Bluetooth LE Explorer

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

返回后点击下面的按钮。

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

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

3. 打开midiloop

新建一个port,SDJ midi

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

4. 打开MIDIberry软件

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

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

输入选择ESP32,输出选择SDJmidi

最后,

5.打开Cakewalk

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

Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)

确定即可。

至此,设置完成。

结:

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

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/189399.html