Cleer Arc5耳机佩戴检测传感器工作逻辑解析

你有没有遇到过这种情况:摘下耳机几秒,音乐还在继续播放?或者戴着耳机运动时,系统误判为“已取下”,突然暂停了正在听的播客?这些问题背后,其实是TWS耳机中一个看似简单却极其复杂的模块在作祟—— 佩戴检测

而Cleer Arc5这款主打开放式设计的高端真无线耳机,在这方面玩出了新高度。它不靠单一传感器“赌运气”,而是用了一套融合光学、电容和运动数据的“多模态感知系统”。今天我们就来扒一扒,它是如何做到“戴上就播、摘下即停”的丝滑体验的 🎧✨


红外光学接近传感器:看得见的“贴耳感”

先说最直观的一环——红外(IR)传感器。Cleer Arc5在耳挂内侧悄悄藏了一对“小眼睛”:一个 红外LED + 光电二极管 组合,构成了主动式光学接近检测的核心。

它的原理其实挺像蝙蝠回声定位 👂💡:
- 定时发射一段调制过的940nm红外光脉冲;
- 当光线碰到耳朵组织后反射回来;
- 光电二极管接收这些微弱的反射信号,转换成电流;
- 经过跨阻放大器(TIA)和ADC处理后,MCU就能读到一个“接近值”(Proximity Value);
- 如果这个值持续高于某个阈值,系统就认为:“嘿,用户戴上了!”

听起来很简单?但现实可没那么理想。阳光、汗水、不同肤色……都会影响反射强度。所以 Cleer 并没有用固定阈值“一刀切”,而是搞了个聪明的动态机制:

动态基线跟踪 :环境变化时缓慢调整基准值,避免长期漂移;
温度补偿 :内置NTC热敏电阻,防止体温波动导致灵敏度失准;
抗污设计 :通过调制解调技术过滤掉环境光干扰,哪怕你刚跑完步满头大汗也不怕。

更关键的是,采样频率控制在50–100ms之间,既保证响应够快,又不至于耗电如飞⚡️。

下面这段代码,就是这类系统的典型实现逻辑(基于nRF52系列MCU):

#define PROX_THRESHOLD_AUTO    120
#define SAMPLE_INTERVAL_MS     80

static uint8_t proximity_raw;
static uint8_t prox_baseline = 60;
static bool is_worn = false;

void ir_sensor_poll(void) {
    proximity_raw = adc_read(IR_SENSOR_CHANNEL);

    // 动态更新基线
    if (proximity_raw < prox_baseline) {
        prox_baseline -= 1;
    } else if (proximity_raw > prox_baseline + 10) {
        prox_baseline += 1;
    }

    uint8_t dynamic_threshold = prox_baseline + PROX_THRESHOLD_AUTO;

    static uint8_t confirm_counter = 0;
    if (proximity_raw > dynamic_threshold) {
        confirm_counter++;
        if (confirm_counter >= 2 && !is_worn) {
            is_worn = true;
            event_system_dispatch(EVENT_HEADSET_WORN);
        }
    } else {
        confirm_counter = 0;
        if (is_worn) {
            is_worn = false;
            event_system_dispatch(EVENT_HEADSET_REMOVED);
        }
    }
}

瞧见没?这里用了好几个防抖技巧:
- 滞后比较(hysteresis)思想 :上升容易下降难,防止状态反复横跳;
- 双次确认机制 :必须连续两次达标才算“真正戴上”;
- 事件驱动通知 :一旦状态变更,立刻广播给音频子系统执行播放/暂停。

这种设计,已经不是单纯的硬件检测了,更像是一个微型AI决策流程🧠。


电容式接近传感器:感知“生命的导体”

如果说红外是“看”是否贴合,那电容传感器就是在“感觉”是否有生命体靠近。

Cleer Arc5在耳挂金属接触面埋入了 电容感应电极 ,利用人体作为导体改变局部电场的特性,来探测皮肤距离。

具体怎么工作的呢?
1. 感应电极表面建立高频电场;
2. 当人耳靠近时,由于人体介电常数远大于空气,等效电容会增加0.5~3pF;
3. 专用IC(比如MPR121或FDC1004)检测到这个变化,输出数字信号;
4. MCU据此判断是否进入“预佩戴”或“已佩戴”状态。

这招妙在哪?

🔥 它能实现“提前预测”!
比如你刚把手伸向耳机,还没完全戴上,电容就已经察觉到“有人来了”,于是提前唤醒红外传感器准备接管——这就是所谓的 分级唤醒机制 ,极大降低了整体功耗。

而且,左右耳各自独立监测,支持单边佩戴识别,还能跟触摸按键共用电极,节省宝贵的PCB空间👏。

当然,也有坑要避开:
- 汗水会让电容突增,容易误触发 → 得加滤波算法;
- PCB布局很敏感,走线不能挨着高速数字信号,最好用地屏蔽;
- 不同人皮肤阻抗差异大 → 出厂得做自动校准,甚至未来可以学习用户习惯。


多传感器融合:让机器学会“综合判断”

如果只用一种传感器,总会顾此失彼。红外怕遮挡,电容怕出汗,IMU单独用又分不清是走路还是晃动……

所以 Cleer Arc5 走的是 多模态融合路线 ,把光学、电容、加速度计全拉进同一个决策引擎里,像个经验丰富的裁判组,共同投票决定“到底戴没戴”。

整个系统分为三层:

层级 输入 处理方式 输出
L1: 原始信号层 IR ADC、电容原始值、加速度Z轴 滤波去噪、归一化 清洁数据流
L2: 特征提取层 反射趋势、电容变化率、静止标志 移动平均、差分计算 特征向量
L3: 决策引擎层 多维特征输入 加权投票 / 状态机 / 轻量ML模型 最终佩戴状态

举个真实场景🌰:

用户开始戴上耳机

→ 加速度计先觉察轻微移动(触发L3启动)
→ 电容传感器快速扫描,发现电容上升(~20ms响应)
→ 主动点亮红外LED进行高精度验证
→ 红外反射稳定超过100ms
→ 决策引擎综合判定:“WORN=True”
→ 自动恢复播放 + 播放提示音🎵

再看另一个反向操作:

用户短暂取下耳机

→ 红外值骤降 + 电容归零 + IMU显示静止 >3s
→ 连续三次确认无误
→ 触发“WORN=False”事件
→ 发送暂停指令给手机
→ 进入低频监听模式(每500ms轻唤醒一次)

这套机制的关键优势在于:
- 可靠性高 :任一传感器失效不影响整体判断;
- 延迟低 :<150ms完成全流程,几乎无感;
- 功耗优 :平时只开低功耗电容+IMU轮询,红外按需激活;
- 适应性强 :跑步、低头、半摘状态都能正确识别。


实际应用中的巧思与妥协

别以为这只是传感器堆料那么简单。真正的难点,在于如何把这些技术揉进产品的每一个细节里。

结构设计必须精准对位

传感器位置必须正对耳甲艇区域(也就是耳朵那个凹陷处),否则反射光打不到皮肤,或者电容感应不到有效信号。一旦结构件偏差0.5mm,可能就要重做模具🔧。

材料也得讲究

外壳上用于透红外光的窗口,不能随便用普通塑料。通常选用高透光率树脂,比如PC+SiO₂涂层,确保940nm波长损耗最小。有些厂商偷懒用ABS,结果隔着壳都测不准 😩。

生产环节还得校准

每台设备出厂前都要跑一遍自动基线标定程序,消除元器件之间的离散性。不然你买回家发现隔壁老王的耳机比你灵敏两倍,那不得投诉爆了?

软件层面更要“懂人性”

比如加入了“软摘下”模式:短时间中断(<3秒)不暂停音乐,防止你在调整发型或扶眼镜时被打断听感。这其实是牺牲一点节能效率,换来用户体验的连贯性——典型的工程权衡。


总结:这不是功能,是体验的底层基建

Cleer Arc5 的佩戴检测系统,早已超越了“摘下暂停”的基础功能,进化成一套 高鲁棒性的情境感知平台

它的核心亮点可以用四个词概括:

🔹 双模冗余 :红外+电容互为备份,不怕单一失效;
🔹 动态自适应 :阈值随环境、个体自动调节,越用越准;
🔹 分级唤醒 :低功耗待机 + 按需激活,续航不妥协;
🔹 事件驱动 :状态变化即刻通知,系统响应一致可靠。

而这套架构的意义,远不止于现在的自动播放。它可以为未来的智能功能打下基础:
- 检测佩戴时长 → 提醒休息防疲劳;
- 分析头部姿态 → 实现点头/摇头控制;
- 结合心率趋势(若未来加入PPG)→ 判断情绪状态。

对于开发者来说,Cleer Arc5 的这套方案提供了一个极佳的参考模板: 不要迷信单一技术,要用系统思维构建感知能力

毕竟,真正的智能,从来都不是某个传感器多厉害,而是它们能不能像一群默契的队友,一起做出最合理的判断🤖🤝。

“戴上就播”看似小事,却是TWS耳机通往真正智能化的第一道门槛。
跨过去了,才是开始 🚀

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐