SoundMat (6) 电子系统设计

本文设计 SoundMat 的电子系统。电子系统是整个产品设计中的重点。如果说软件系统作为大脑,那电子系统就是身体,为软件系统提供平台,执行实现各种功能。

作为公共艺术装置,电子系统设计受以下约束:

  1. 美观考虑,所有电子元件需要藏在空腔内,引出的线缆越少越好
  2. 供电考虑,最好能在户外无插座的情况下也能使用
  3. 稳定性考虑,需要能长时间稳定运行,电子系统的结构要可靠
  4. 音质考虑,音频是整个装置的核心,需要有好的音质

第一条,电子元件需要藏在空腔内,所以需要注意的有尺寸和散热问题;对于引出的线缆,理想情况下只需要一根供电线和一根音频线。

第二条,作为艺术装置,在户外比如广场上使用时,最好能够直接解决供电问题而不用插座。PD 协议的 USB-C 供电可以解决这一点,既可以用充电器,也可以用快充充电宝供电。

第三条,在 Prototype 最初阶段使用的是面包板,非常不可靠,应使用洞洞板(Perfboard)或者 PCB。

第四条,后续采用 USB 转接外置 DAC 输出音频的方案。

系统架构

整体来看,SoundMat 的电子系统包含五个部分:

  1. 电源模块 POWER
  2. 传感器信号采集模块 SENSOR
  3. LED 模块 LED
  4. 计算模块 COMPUTE
  5. 音频输出模块 AUDIO


图 电子系统架构


图 电子系统架构设计

接下来阐述电子系统架构设计过程。

从 COMPUTE 模块说起。我们需要复杂音频合成,所以单片机是远远不够的,需要 Linux 计算机,例如树莓派,提供软件生态和 USB 接口用于音频输出。但是树莓派没有模拟输入 ADC,不能直接接受 SENSOR 的压力信号,于是需要一个外置 ADC。我们直接使用课程提供的 ESP32 作为 ADC 功能,同时 ESP32 为灯带提供控制信号。树莓派需要 5V 供电,ESP32 直接通过树莓派 USB 供电即可。

接下来是 LED 的设计,我们使用 WS2812B LED 灯带,需要 5V 供电,并且功率较高,不能直接用树莓派引脚供电。LED 灯带的控制引脚是 5V 的,COMPUTE 模块输出的控制信号要用 Logic Level Shifter 升压后接入。

SENSOR 模块接收 MCU 的扫描信号,返回传感器数据。

POWER 模块是重点。首先计算各模块的功率:

  1. LED:使用 WS2812B LED, 60LEDs/M 灯带,长度为 π * 22.7" = 71.3" = 181.1 cm,约 108 颗灯珠。WS2812B 每颗满亮度白光约 60mA,最大总电流约 6.5 A,功率为 32.5W。亮度为 30% 时,电流约 2A,功率约 10W。
  2. COMPUTE:使用树莓派 3B,典型电流约 2.5A,功率约 12.5W,包含 MCU 的功耗。

总最大功率约 45W,亮度为 30% 时,功率约 22.5W。5V 供电不够(电流 10A)。采用 PD 协议的 20V 电压,最大电流约 2.5A。输入经降压模块降压之后,分两路输入给 LED 和 COMPUTE。

接下来是各模块的详细设计

电源模块

方案对比:

方案LED 电源适配器 + 树莓派 Micro-USB 电源适配器单 5V 10A DC 电源适配器USB-C PD 20V + Buck 降压
兼容充电宝❌❌✅
电源线缆数量211
复杂度简单,即插即用简单,但需要自己分线较复杂,需要 PD Trigger + Buck
线损5V 长线传输损耗大5V 长线传输损耗大,压降明显20V 传输电流小,线损低,到终端再降压
适配器体积两个适配器,占空间一个但体积大(砖头)USB-C 充电器小巧
户外部署需要两个插座需要一个插座充电宝即可,无需插座
采用❌❌✅

最终采用当前方案:总最大功率约 45W。USB-C 接口通过 PD Trigger Board 请求 20V 输入,经 DC Buck Converter 降压至 5V,然后分成两路:一路给 LED 灯带供电,一路通过 Micro USB 给树莓派供电。

LED 切换时会产生瞬态电流尖峰,所有 GND 信号必须星型接地,避免电压波动。LED 支路入口处并联 1000μF 电解电容,吸收 WS2812B 的瞬态电流尖峰,防止拉低总线电压导致树莓派欠压。树莓派自身开发板上有输入滤波电容,不需要额外添加。

长 LED 上可能出现压降,可进行双端供电,在头尾处都接入电源。

计算模块

方案对比:

方案单 MCU (ESP32)SBC(树莓派)+ 外置 ADC 芯片树莓派 + ESP32
音频合成能力极弱强强
软件开发难度难简单简单
ADC内置外挂芯片ESP32 内置
复杂度简单中等简单
拓展性低中等强
采用❌❌✅

方案 2 和 3 复杂度类似并且都能满足我们的要求,并且方案二成本更低可以有更好的 ADC 精度,由于我们有现成的 ESP32 开发板,于是采用方案 3。

树莓派 3B 通过 Micro USB 接收 5V 供电。Pi 的一个 USB-A 口通过数据线连接 ESP32,为其供电的同时建立串口通信:接收传感器数据,发送 LED 控制信号。

Pi 的另一个 USB-A 口通过 AtoC 转接头连接 USB DAC 声卡,DAC 输出 3.5mm 模拟音频,经长 Aux 延长线连接外部音响。

LED 控制信号实际上通过 Pi 或 ESP32 控制都行,最终采用 ESP32 控制,所有 GPIO 都由 ESP32 管理。

传感器模块

传感器阵列的原理及设计详见 SoundMat (5) 传感器原理及设计,此处讨论传感器的电子模块设计。

ESP32 通过 8 个 GPIO 和同心圆环 Rings 连接。扇区 Slices 的 32 条信号线经过两个 MUX 级连,MUX 级联方式如下图所示。ESP32 通过两个 GPIO 控制两个 MUX 的使能引脚,此处需保证两个使能引脚不同时触发。输出的信号 SIGNAL 直接合并接入 ESP32 的 ADC 输入引脚。

根据 ESP32 Docs – ADC – Minimizing Noise,可以在 ADC 输入引脚上连接一个旁路电容以减少噪声。

16:1 Analog MUX 的选择:

型号导通电阻 Ron开关时间工作电压封装价格备注
CD74HC4067~70Ω~30ns2-6VDIP-24 / SOIC~$1maker 社区最常用,便宜,breakout 板到处有
CD4067B~125Ω~200ns3-18VDIP-24~$0.5老一代 CMOS,Ron 大、慢,但宽电压范围
ADG1606~4.5Ω~120ns±5V / 单 12VTSSOP-28~$5低 Ron,精度好,贴片封装不适合手焊
ADG706~2.5Ω~30ns±2.5V / 单 5VTSSOP-28~$7极低 Ron,最适合精密测量,贵
MAX306~100Ω~250ns±15VDIP-28~$8高压宽幅,工业场景

CD74HC4067 最优选择,不过课程提供了 CD4067B,可以直接使用。

关于 RrefR_{ref} 的选择:

TBD

LED 模块

WS2812B LED 有 3 个引脚,+5V 输入,GND 以及 5V DIN 控制信号输入。上文提到过双端供电以及去耦电容,这里不再讲解。

COMPUTE 模块的 GPIO 控制信号是 3.3V 的,需要经过逻辑电平转换器 (Logic Level Shifter) 转化为 5V。

选型:

型号输入高电平阈值 (VCC=5V)兼容 3.3V 输入传输延迟备注
SN74AHCT125N2.0V (TTL)✅约 10-15ns最佳选择
74HC1253.5V (70% VCC)❌为 5V 输入设计
74HCT1252.0V (TTL)✅约 3-5ns可以用
直连不转换3.5 V有时行有时不行,有风险不推荐

HC 系列的输入阈值是 CMOS 标准,约 70% VCC,5V 供电时需要 3.5V 才能可靠识别为高电平,3.3V 输入落在不确定区间,不能使用。最终选择 SN74AHCT125N。

接下来阐述 330Ω 的串联电阻设计:

WS2812B 的数据协议是单线高速脉冲,位周期只有 1.25μs。这意味着信号的上升沿和下降沿非常陡,边沿时间在几十纳秒级别。

当一个陡峭的电压边沿从驱动端沿导线传播到接收端(第一颗 LED 的 DIN 引脚)时,如果驱动端的输出阻抗和传输线的特性阻抗不匹配,信号会在接收端发生反射,反射波沿导线返回驱动端,再反射回来,形成振铃——也就是信号在高低电平之间来回震荡几次才稳定下来。LED 的数字输入电路可能把一个脉冲误读成两个,或者把 1 码误读成 0 码。这在第一颗灯珠上最明显,因为后续灯珠的数据是经过前一颗灯珠内部整形后再输出的,波形已经被清理过了。

330Ω 串联电阻的作用就是进行阻尼,它和传输线的特性阻抗、LED 输入端的寄生电容一起构成一个低通滤波器,滤掉高频振铃,让反射波的能量被电阻耗散掉。代价是上升沿变慢了一点,但 330Ω 配合几十 pF 的寄生电容,RC 时间常数大约十几纳秒,相比 WS2812B 几百纳秒的时序窗口完全不影响通信。

为什么是 330Ω 而不是别的值:太小(比如 33Ω)阻尼不够,振铃还在;太大(比如 3.3kΩ)和寄生电容构成的 RC 时间常数太长,上升沿被拉得太慢,脉冲宽度失真,通信直接挂掉。330Ω 是社区里经过大量实践验证的经验值。

放置位置必须靠近 LED 端而不是驱动端,因为要在反射发生的位置就地耗散能量。如果放在驱动端,反射波已经跑了一个来回才遇到电阻,阻尼效果大打折扣。

by Claude Opus 4.7

音频输出模块

音频输出是整个装置的最终呈现,音频质量直接决定了 SoundMat 作为艺术装置的体验上限。

方案对比:

方案树莓派板载 3.5mmI2S DAC 模块USB 外置 DAC
音质差,PWM 模拟输出,底噪明显好,硬件 DAC,低底噪好,硬件 DAC,低底噪
接线复杂度无需额外硬件需要接 GPIO,占用引脚USB 即插即用
与其他模块冲突无GPIO 可能与 ESP32 通信或其他功能冲突无,独立 USB 通道
软件配置默认输出需要配置 I2S 驱动和设备树系统自动识别为声卡,几乎零配置
可替换性—更换需要重新接线和配置随时换一个 USB DAC 即可
采用❌❌✅

树莓派 3B 的板载音频是通过 PWM 模拟生成的,不是真正的 DAC,信噪比很低,音质差。作为在安静的公共空间里的音乐艺术装置,这是不可接受的。I2S DAC 音质好,不过略微麻烦。USB DAC 是最简单可靠的方案。

信号链路(新):树莓派 USB-A → USB-A to C 转接头 → USB-C 延长线 → USB DAC → 3.5mm Aux 输出 → Aux 线 → 外部音响。

BOM

IDModuleComponentQtySpec / Model / Notes
P1POWERUSB-C PD Trigger Board1configured for PD-20V
P2POWERDC Buck Converter Module120V→5V, ≥5A
P3POWERMicro USB Breakout Board1Cut a Micro-USB cable Instead
C1COMPUTERaspberry Pi 3B1
C2COMPUTEESP32 Dev Board1
C2-2COMPUTEFemale Pin Headers22.54mm
C3COMPUTEUSB DAC1USB-C in, 3.5mm out
C4COMPUTEMicro USB Data Cable1
A1AUDIOUSB-A to USB-C Adapter1
A2AUDIO3.5mm Aux Cable1
S1SENSORMUX216:1, DIP-24
S1-2SENSORDIP IC sockets2DIP-24 IC Socket
S2SENSORResistor (Rref)11kΩ
S3SENSORInsulation Displacement Connector216P, 40cm, 2.54mm
S4SENSORCeramic capacitor10.1uF, ADC Input bypass
L1LEDWS2812B LED Strip160 LED/m, ≥2m
L2LEDSN74AHCT125N1DIP-14
L2-2LEDDIP-14 IC Socket1DIP-14 IC Socket
L3LEDElectrolytic Capacitor11000μF / ≥10V, LED DIN decoupling
L4LEDResistor (LED DIN)1330Ω
X1GeneralPerfBoardSuit2.54mm
X2GeneralWiresMisc
X3GeneralScrew terminal blockMany2.54mm, for sensor signal
X4GeneralUSB-C Extension Cable2for Power and Audio Output

(写于 2026 年 5 月 11 日)

下一篇: