littlebot
Published on 2025-04-15 / 1 Visits
0

【源码】基于Python和C语言的蓝牙低功耗音频传输系统

项目简介

本项目是基于Python和C语言开发的蓝牙低功耗(BLE)音频传输系统,专为nRF5340 Audio开发套件设计。依据蓝牙LE音频规范,借助LC3编解码器实现音频的压缩与解压缩,并通过等时通道进行音频播放。系统可作为网关或耳机使用,网关接收外部音频数据并转发给耳机,耳机负责播放接收到的音频,还支持双向模式,允许一个网关同时与一到两个耳机进行音频的收发。

项目的主要特性和功能

  1. 多模式支持:支持连接等时流(CIS)和广播等时流(BIS)两种模式。CIS模式可实现立体声播放和同步;BIS模式可向多个未连接的接收器广播音频流。
  2. 音频处理:利用LC3软件编解码器对音频数据进行编码和解码,保障音频质量。
  3. 同步机制:通过同步模块实现音频同步播放,包含呈现补偿和漂移补偿,防止I2S溢出或欠载。
  4. 用户界面:基于开发套件的PCB元素实现简单用户界面,通过开关、按钮控制应用程序,LED显示设备状态。
  5. 配置灵活:可通过修改配置文件切换设备类型、应用模式、音频输入输出方式等。
  6. 固件更新:支持固件空中升级(FOTA),可对应用核心和网络核心进行单独或同时更新。

安装使用步骤

环境准备

确保已下载本项目的源码文件,并准备好至少两个nRF5340 Audio开发套件(一个网关固件,一个耳机固件)。

构建和编程

使用脚本构建和编程(推荐)

  1. 准备JSON文件:在nrf5340_audio_dk_devices.json文件中更新每个开发套件的信息,包括SEGGER序列号、设备类型和耳机通道。
  2. 运行脚本:在buildprog目录下运行buildprog.py脚本,按需提供参数,如核心类型、应用版本、设备类型、DFU类型等。
    • 示例1:构建调试版本的应用核心,适用于耳机和网关 console python buildprog.py -c app -b debug -d both
    • 示例2:构建调试版本的应用和网络核心,启用内部DFU布局,使用最小尺寸的网络核心引导加载程序 console python buildprog.py -c both -b debug -d both -m internal -M
  3. 编程:若要在构建后编程设备,可添加-p参数;若使用Windows子系统Linux(WSL)编程时遇到问题,可添加-s参数进行顺序编程。 console python buildprog.py -c both -b debug -d both -p

使用命令行构建和编程

  1. 构建应用程序:选择设备类型和应用版本的构建标志,使用标准的west build命令进行构建。
    • 示例:构建发布版本的耳机应用核心固件 console west build -b nrf5340_audio_dk_nrf5340_cpuapp --pristine -- -DCONFIG_AUDIO_DEV=1 -DCONF_FILE=prj_release.conf
  2. 编程应用程序:将设备插入USB端口,打开命令提示符,打印SEGGER序列号,分别对网络核心和应用核心进行编程。 console nrfjprog --program bin/*.hex --chiperase --coprocessor CP_NETWORK -r nrfjprog --program build/zephyr/zephyr.hex --coprocessor CP_APPLICATION --chiperase -r

测试

测试默认CIS模式

  1. 确保开发套件已插入USB端口并开启。
  2. 等待网关的LED1开始闪烁蓝色,表示已连接到至少一个耳机并准备发送数据。
  3. 在操作系统的声音设置中选择“nRF5340 USB Audio”作为输出设备。
  4. 将耳机连接到两个耳机设备的“HEADPHONE”音频插孔。
  5. 在PC上开始播放音频。
  6. 等待两个耳机的LED1闪烁蓝色,表示音频流已开始。
  7. 等待耳机的LED2亮起绿色,表示音频同步已实现。
  8. 测试音量控制、播放/暂停、重置等功能。

测试BIS模式

与测试默认CIS模式类似,但需要手动选择BIS模式,且在接收器上可独立控制音频设置。

测试对讲机演示

与测试默认CIS模式类似,但需要启用对讲机演示的Kconfig选项,通过PDM麦克风进行语音通信。

测试FOTA升级

  1. 配置应用程序以支持FOTA。
  2. 在Android或iOS设备上安装nRF Connect Device Manager应用程序。
  3. 连接外部闪存屏蔽到耳机。
  4. 确保耳机运行支持外部闪存DFU的固件。
  5. 使用buildprog.py脚本创建包含新固件的zip文件。
  6. 将生成的文件传输到移动设备。
  7. 进入DFU模式,使用nRF Connect Device Manager应用程序进行固件升级。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】