传感器基础:常见传感器类型与工作原理

做TinyML的朋友,传感器就是我们的眼睛和耳朵。我刚开始接触嵌入式AI时,总觉得传感器就是读个数据而已,后来才发现——不懂传感器的脾气,你做的模型再漂亮也是白搭

今天咱们聊聊四种最常见的传感器:加速度计、陀螺仪、磁力计、气压计。它们各自能测什么?怎么工作的?输出数据长什么样?

加速度计:感知运动的第一道门

加速度计,说白了就是测量物体受到的加速度。包括重力加速度和运动加速度。

工作原理:内部有个微小的质量块,用弹簧悬着。你一动,质量块就跟着晃,电容值就变了。芯片根据电容变化算出加速度。

我做过一个跌倒检测项目,用的就是加速度计。当时踩了个坑——静止时输出不是0,而是1g(约9.8m/s²)。因为地球引力一直在。很多新手会问:为什么平放时Z轴读数是16384?嗯,那是1g对应的ADC值。

静止水平放置 静止竖直放置
X 0g 0g
Y 0g 1g
Z 1g 0g
关键输出特性:三轴数据(X, Y, Z),单位通常是g或m/s²。采样率常见100Hz~1000Hz。分辨率看ADC位数,12位到16位都有。
我的经验:选加速度计量程时,日常活动用±2g或±4g就够了。做剧烈运动检测,比如拳击动作识别,建议用±8g或±16g。量程越大,分辨率越低,这个要权衡。

陀螺仪:告诉你转了多少

加速度计测直线运动,陀螺仪测旋转。你想想看,手机横竖屏切换靠的就是它。

工作原理:利用科里奥利效应。内部有个振动的质量块,你一转它,质量块就会偏。偏多少,就对应转多快。

我曾经在无人机姿态估计项目里,只用陀螺仪做积分算角度。结果呢?漂移得亲妈都不认识。因为陀螺仪输出的是角速度,要积分才能得到角度。积分嘛,误差会累积。

避坑指南:陀螺仪有零偏稳定性这个参数。我遇到过一批传感器,静止时输出不是0,而是0.5°/s。不校准直接用,10秒后角度就偏了5度。所以——每次上电必须做零偏校准

输出特性:三轴角速度(ωx, ωy, ωz),单位°/s。常见量程±250°/s到±2000°/s。我个人习惯做手势识别时用±500°/s,够用又不浪费分辨率。

磁力计:电子罗盘

磁力计测磁场强度。说白了就是电子指南针。

工作原理:利用霍尔效应或磁阻效应。磁场变化会引起材料电阻变化,测电阻就知道磁场大小和方向了。

这里有个大坑——硬铁干扰和软铁干扰。我做过一个室内定位项目,磁力计装在电路板上,旁边就是扬声器磁铁。结果方向偏差30度。后来做了椭圆拟合校准才搞定。

干扰类型 来源 表现 校准方法
硬铁干扰 永磁体、电流 数据整体偏移 减去偏移量
软铁干扰 铁磁材料 数据椭圆变形 椭圆拟合校正
输出特性:三轴磁场强度(μT),范围通常±50μT到±120μT。地球磁场约25~65μT,看你在哪个纬度。

气压计:高度感知利器

气压计测大气压力。你可能觉得它用处不大,但在室内楼层检测、无人机高度控制里,它是关键角色。

工作原理:内部有个薄膜,气压变化薄膜就变形,电容值跟着变。芯片根据电容算出气压。

我记得有个项目,用气压计做楼层识别。一开始直接读气压算高度,结果误差3米多。后来发现——气压受天气影响很大。同一个位置,晴天和雨天能差20米的高度值。所以必须做相对高度,不能做绝对高度。

实用技巧:气压每升高1米,大约下降12Pa。但这不是线性的,低空和高空不一样。做TinyML模型时,建议用气压变化率(dP/dt)作为特征,比直接用气压值稳定得多。

输出特性:气压值(hPa或Pa),典型范围300~1100hPa。分辨率可以做到0.01hPa,对应约10厘米的高度变化。采样率一般10Hz~200Hz。

四种传感器对比总结

传感器 测量物理量 典型输出 常见量程 主要痛点
加速度计 加速度 X, Y, Z (g) ±2g ~ ±16g 重力分量干扰
陀螺仪 角速度 ωx, ωy, ωz (°/s) ±250 ~ ±2000°/s 零偏漂移
磁力计 磁场强度 X, Y, Z (μT) ±50 ~ ±120μT 环境磁干扰
气压计 大气压力 气压 (hPa) 300 ~ 1100hPa 天气影响大

做传感器数据融合时,你得清楚每个传感器的脾气。加速度计高频响应好但低频有重力干扰,陀螺仪动态响应好但会漂移,磁力计稳定但怕干扰,气压计能测高度但受天气影响。

下一章咱们聊聊怎么把这些数据融合起来,取长补短。你想想看,如果把加速度计和陀螺仪的数据融合,是不是就能得到既稳定又灵敏的姿态估计?嗯,这就是卡尔曼滤波要做的事。