littlebot
Published on 2025-04-08 / 7 Visits
0

【源码】基于Teensy 4.1和PlatformIO的分布式音频系统

项目简介

本项目是一个基于Teensy 4.1和PlatformIO的分布式音频系统,支持通过网络进行音频数据的传输和处理,具有多种音频处理环境和调试优化选项,可适配相关硬件扩展模块。

项目的主要特性和功能

  1. 网络音频传输:支持通过UDP多播组进行音频数据的接收和发送。
  2. 音频处理:提供基本音频客户端、同步测试和波场合成(WFS)算法等多种音频处理环境。
  3. 硬件兼容性:支持Teensy 4.1及其相关音频和以太网扩展模块。
  4. 调试和优化:提供音频缓冲区调试、传输调试和时钟调整等多种调试模式和优化选项。

安装使用步骤

1. 环境准备

确保已安装以下工具和库: - PlatformIO(测试版本:v6.1.15) - TyTools(用于脚本上传)

2. 硬件准备

  • Teensy 4.1开发板
  • Teensy 4.x音频扩展板
  • Teensy 4.1以太网扩展板或SparkFun RJ45 MagJack Breakout
  • 以太网交换机和CAT5E/CAT6以太网线
  • 最多16个扬声器(取决于服务器配置)

3. 构建和上传

使用PlatformIO构建并上传代码到Teensy: shell pio run -t upload -e [environment] 或者使用tytools上传到所有连接的Teensy: shell ./scripts/upload.sh [environment] environment默认为basic

4. 配置网络

5. 运行和调试

  • 上传后,Teensy将自动重启并尝试连接到UDP多播组。
  • 使用./scripts/reboot.sh重启所有连接的Teensy。
  • 通过串行输出进行调试,查看音频内存和处理器使用情况。

6. 高级配置

通过修改platformio.ini中的build_flags来调整客户端设置,如音频块大小、UDP端口和调试模式。 ini build_flags = -DAUDIO_BLOCK_SAMPLES=32 -DWAIT_FOR_SERIAL 通过NetJUCEClient类的构造函数和ClientSettings结构体进行更详细的配置。 c++ ClientSettings settings{ {192, 168, 10, 10}, // 适配器IP地址 {224, 4, 224, 4} // 多播组IP地址 }; NetJUCEClient client{settings}; 通过begin()loop()方法启动和运行客户端。 c++ if (!client.begin()) { Serial.println("Failed to initialise ethernet."); } client.loop();

下载地址

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