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

一、代码部分
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软件进行电脑端的测试,我们需要用电脑连接到蓝牙模块,我们先把软件下载了。进入官网地址进行下载,这款软件是免费的软件,可以很容易上手的。        MIDIloop是一个用于录制和播放MIDI信息的应用程序。与普通的 MIDI 音序器不同,MIDIloop 旨在实时记录自动化数据的短循环,并将它们发送到与音乐或外部 MIDI 时钟同步的主机应用程序。它专为 VJ 而设计,他们越来越需要控制多个屏幕和比一双手可以处理的更多参数。它也可能对实时音乐表演有用。

MIDIloop目前仅适用于Windows。


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

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

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


        至此,安装成功。
2. Bluetooth LE Explorer
        这个在微软商店进行下载,同样是免费的软件。这款软件是专为BLE蓝牙设计的,电脑可以通过蓝牙连接BLE设备。

        后面进行说明使用方法;
3. MIDIberry
        这个在微软商店进行下载,同样是免费的软件。这款软件给我的理解就是类似于虚拟串口的形式,将输入输出重新进行划分和定义,重新指向某一个设备。



4. 下载宿主软件Cakewalk
        官网下载,这个是免费软件,下载并安装即可。这类软件一般用于音乐的后期编辑及制作使用,而对于专业的音乐制作人而言是必不可少的。

        在这里,老刘不是做音乐的,对于这些软件不是很明白,只是随便上网找了一个软件,看似专业的样子,只是为了演示midi硬件的需要。
三、联动操作
        将开发板上电,然后打开电脑的蓝牙,进行搜索。
1. 电脑蓝牙搜索操作

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

2.打开Bluetooth LE  Explorer

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

        返回后点击下面的按钮。

        这个软件不要关闭,然后打开另外一个软件
3. 打开midiloop
        新建一个port,SDJ midi

4. 打开MIDIberry软件

        我们发现软件中ESP32后面的标识为(Bluetooth MIDI IN)
        输入选择ESP32,输出选择SDJmidi
        最后,
5.打开Cakewalk
        我们打开DW软件,设置输入为SDJmidi即可。我们以Cakewalk为例

        确定即可。
        至此,设置完成。
结:
        可以识别出蓝牙midi,后续的工作需要对协议栈充分了解,补充具体的工作。
---------------------
作者:单片小菜
链接:https://bbs.21ic.com/icview-3263098-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

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

  1. 基于uFUN开发板的心率计(三)Qt上位机的实现

    前言 上两周利用周末的时间,分别写了基于uFUN开发板的心率计(一)DMA方式获取传感器数据和基于uFUN开发板的心率计(二)动态阈值算法获取心率值,介绍了AD采集传感器数据和数据的滤波处理获取心率值 ...

  2. 基于uFUN开发板和扩展板的联网校准时钟

    项目概述 上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种 ...

  3. ESP32开发板 V1.0.0 Rev1 wifi 蓝牙4MB FLASH MicroPython

    简 介: 本文给出了对于ESP32开发板下载相关的MicroPython,使用Thony编程环境完成对于ESP32开发板的一些基础实验.详细的实验命令解释可以结合MicroPython的官方网站. 关 ...

  4. 基于uFUN开发板的RGB调色板

    前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...

  5. request[limit]取不到前台的值_基于uFUN开发板的心率计(二)动态阈值算法获取心率值...

    前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...

  6. 基于uFUN开发板的心率计(二)动态阈值算法获取心率值

    文章目录 前言 IBI和BPM 核心操作 -- 识别一个脉搏信号 问题一:阈值的选取 问题二:特征点识别 算法整体框架与代码实现 总结 基于uFUN开发板的Keil源码下载 uFUN评测系列文章 前言 ...

  7. 基于STM32开发板I²C总线通信协议浅析

    基于STM32开发板I²C总线通信协议浅析 一.前言 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980 ...

  8. 基于STM32开发板CAN总线通信协议浅析

    基于STM32开发板CAN总线通信协议浅析 一.前言 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一 ...

  9. 移植根文件系统到linux内核 s3c2440,u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统...

    三.根文件系统的制作 我们利用busybox来制作根文件系统 1.在下列网站下载busybox-1.15.0.tar.bz2 在当前目录下解压busybox tar -jxvf busybox-1.1 ...

最新文章

  1. SpringBoot自定义异常源码分析
  2. RAID损坏后 对数据的完整备份
  3. decode函数_decode函数的妙用网友的两个问题解答
  4. 实践自定义UI—View
  5. 排序算法(1)—直接插入排序
  6. LeetCode-链表-19. 删除链表的倒数第 N 个结点
  7. java json太长_修复Long类型太长,而Java序列化JSON丢失精度问题的方法
  8. 2019暑假第三周总结
  9. 指针A - 签到题(顺序三元组)
  10. 好用的前端组件收集(ing)
  11. 计算机科学工程哲学学位,2020年剑桥大学硕士读多久
  12. HENXU-SOA的业务规划和建模方法之八——组件化业务模型(CBM)介绍
  13. [深度学习] Python人脸识别库face_recognition使用教程
  14. U3D连接Steamworks SDK制作成就系统
  15. 宏观经济学——GDP
  16. 压缩包里面是html文件怎么打开方式,解决电脑rar压缩包文件怎么打开?教你正确打开方式...
  17. ToDesk企业版赋能零售行业,打造智慧门店
  18. JavaScript做浏览器检测
  19. PHP递归算法的简单实例
  20. Pluecker coordinates普吕克坐标系介绍

热门文章

  1. 可解释性研究(二)- XGNN
  2. SSH连接linux(ubuntu)教程及常见问题
  3. android手机ssh连接linux好用工具 JuiceSSH
  4. 水月雨发布Sparks火花TWS蓝牙耳机:二次元包装,半透明充电盒
  5. 【IDEA】基于Springboot+Netty实现Web聊天室
  6. English trip V1 - B 2. May I Help You? 它是多少钱? Teacher:Lamb Key:
  7. 阿里easyExcel表格样式添加
  8. 常用Linux命令的基本使用(六)
  9. 十大管理技巧帮你统筹时间
  10. 秒懂边缘云 | CDN基础入门:CDN缓存配置及优化