SoundMat (5) 传感器原理及设计

1.1 传感原理

SoundMat 的传感基础是压阻效应。我们选用的传感材料是 Velostat,一种碳粒子填充的聚乙烯薄膜,外表就是一张黑色的纸。原理是:没有压力时,碳粒子之间间距大,导电通路少,电阻很高;施加压力后,薄膜被压缩,碳粒子间距缩小,导电通路增加,电阻显著下降。压力越大,电阻越低。

所以检测压力的原理就是检测 Velostat 的电阻。通过读取电阻值,就能知道哪里有东西、有多重。


(图1)

典型的检测电路如下图所示(by Nano Banana):

其中

Vout=VCC×Rsensor(Rref+Rsensor)V_{out} = VCC × \frac{R_{sensor}}{(R_{ref} + R_{sensor})}


通过 ADC 模块读取 VoutV_{out} 的电压值,即可检测 RsensorR_{sensor},从而推导出压力大小。

对于二维的压力阵列,三明治结构是一个经典的方案,可以极大节省接线数量:


(2)

上层导电织物,裁成平行条状,作为行电极;中间一整片 Velostat;下层导电织物,裁成平行条状,方向与上层垂直,作为列电极。每一个行列交叉点,上下两条导电织物之间夹着 Velostat,就构成了一个独立的压力感应单元。如果有 M 行 N 列,就有 M×N 个感应点,但只需要 M+N 根引线。

有了阵列和分压电路,怎么逐个读取每个交叉点?方法是逐行扫描:同一时刻只给一行供电(设为 HIGH),其余行设为 LOW(很重要,防止 Ghost Path),然后依次读取每一列的电压值。读完一行,切换到下一行,循环扫描。

电路示意图如下:

图(a) 就是三明治结构的电路,有行列电极,中间黄色代表 Velostat 的电阻,如果有压力,表示为红色,电阻减小。

图(b) 表示当我们选择一个坐标进行检测时,对应列上可检测到电压,而其他列电压接近 0. 如果只有一个点被按下,两种隔离方式(FLOAT 或 GND)都能正确读出。

图(c) 表示当多个点被按下时,非激活行设为 FLOAT 时产生的假阳性问题,即误以为蓝色的检测点被按下了。

图(d) 表示非激活行设为 GND 时,假阳性问题被解决。

图(e) 表示非激活行设为 GND 时,出现的串扰电压问题,即当同一列上多个点被按下时,相当于多路并联电阻接地,检测到的电压相比单点按压时会降低。

1.2 阵列拓扑设计

上面讲了标准的直角网格行列扫描。但 SoundMat 是圆形的,于是有一种很自然的排列方式是极坐标:同心圆环作为一个方向的电极,径向放射线作为另一个方向的电极。原理完全一样,只是几何形状从矩形网格变成了极坐标网格。

以下是直角网格阵列和极坐标阵列在 SoundMat 上应用的对比:

直角网格极坐标
与圆形外观的匹配边角浪费,边缘感应点被截断,需要额外处理无效区域天然贴合圆形轮廓,每个感应点都有效
交互语义的直觉性位置只有 x/y 坐标,映射到音乐参数需要额外转换离圆心距离→一个参数,角度→另一个参数,路人一看就懂
加工难度直线裁切,简单,容错高圆弧和放射线裁切精度要求高,对齐更难,圆环需穿孔走线
串扰特性各交叉点间距均匀,串扰模式一致,补偿算法简单内圈点密、外圈点疏,串扰不均匀,补偿需要分区处理

最终我们决定采用极坐标网络设计。我觉得关键原因是极坐标能够用较少的阵列数量达到一种高精度的效果,也就是我们只需要探测是圆形的哪块区域,如果使用直角网格,需要很密集的网络达到同样的精度。

接下来是决定规格参数。

先由 SoundMat (4) 结构设计 中的碗状花盆底座决定传感器大小。24" 的碗状花盆,实测内径约为 22.7",于是我们将传感器大圆直径定在 22"(55.88cm)(因为还要留给 LED 一些间隙)。传感器大圆半径也就是铺制传感器的硬质板的直径。

再决定同心圆环和扇区的数量。圆环的每一层其实代表了音乐的不同层次,比如不同乐器组,这决定了音乐的变化,如果是 4 就太少了,超过 10 的话制造难度会上升,最终设置为 8;扇区数量在节奏模式里代表节拍,一圈是一个 Loop,那一个 Loop 有多少个“小节”(可变化的单元),是由扇区数量决定的,所以扇区数量需要是 2 或 6 的倍数,比较好的选择有 32, 16, 24, …,我们最终设置为 32,对于将近 60cm 的大圆来说,8 个圆环和 32 个扇区还是很合适的。

从图中可以看出,最终采用的并不是严格的 32 个扇区,因为越往中心,扇区的面积会越小,导致扇区拥挤、无效区域增大、检测冗余与干扰。在从内往外的前两个圆环检测区域中,把扇区数量降到了 16,并与外侧的圆环对齐,保证了有效的检测区域。

坐标映射规则见SoundMat (12) 软件设计与开发

圆环以及扇区的间距自然是越小越好,因为我们希望检测面积尽可能大,最终分别采用了 0.3mm 以及 0.357mm,实验表明这个间距不会导致严重的串扰。同时,实际圆环外径为 54.2cm,扇区外径略大一点,为 55cm。此时详细的规格参数如下:

Ring有效分区数中心直径 cm圆环宽度cm相邻圆环间距cm扇区中心处间距 cm扇区中心处有效宽度 cm扇区min间距 cm扇区min有效宽度 cm扇区max间距 cm扇区max有效宽度 cm
1168.0002.753.111.5711.2211.0310.6812.1111.761
21614.2142.753.112.7912.4412.2511.9013.3312.981
33220.4292.753.112.0061.6561.7361.3862.2761.926
43226.6432.753.112.6162.2662.3461.9962.8862.536
53232.8572.753.113.2262.8762.9562.6063.4963.146
63239.0712.753.113.8363.4863.5663.2164.1063.756
73245.2862.753.114.4464.0964.1763.8264.7164.366
83251.5002.753.115.0564.7064.7864.4365.3264.976

一个检测单位的大小约为 2.75 * 1cm ~ 2.75 * 5cm。基本符合设想的鹅卵石的接触场景。

最终规格参数:

规格参数取值
花盆标称尺寸24 in
硬质板直径55.88 cm
圆环数量8
扇区数量32
扇区外径55.0 cm
圆环实际外径54.2 cm
扇区间隙3.5 mm
圆环间隙3.57 mm

这是最终设计:

由于传感器表面必须保证平整,所以电路系统需要在传感器/木板的下方。对于同心圆环来说,我们采用钻孔下穿设计,即在木板同心圆环的对应位置钻孔,从下方使用导电材料与导电圆环连接。对于扇区无需穿孔,因为在扇区引导向边缘,从边缘用导电材料连接即可。

实际我们在切割时在每个同心圆环上都加上“尾巴”,引出一根导电 fabric,穿过木板对应的孔洞,连接空腔里的电路;而在扇区中,我们使用铜箔胶带,从边缘弯折到木板下方,同时起到连接电路和固定上层传感器的作用。

1.3 传感器自动化设计工具

我们使用 Cursor Vibe Coding 了一个自动化工具,输入对应规格参数,即可自动生成用于 Laser Cutting 的工程文件(svg/pdf)。

Pipeline:参数 → 几何计算 → 画布预览 / SVG, PDF 导出

GitHub – mukimasta/sensor_design_tool

(写于 2026 年 5 月)



  1. Sumana, Marius & Treciokaite, Vaiva & Čerškus, A. & Dzedzickis, Andrius & Bučinskas, Vytautas & Morkvėnaitė, Inga. (2022). Sitting Posture Monitoring Using Velostat Based Pressure Sensors Matrix. 10.1007/978-3-031-03502-9_20. ↩︎

  2. L. Yuan, H. Qu and J. Li, “Velostat Sensor Array for Object Recognition,” in IEEE Sensors Journal, vol. 22, no. 2, pp. 1692-1704, 15 Jan.15, 2022, doi: 10.1109/JSEN.2021.3132793. ↩︎