2. 核心传感器选型:MLX90640/MLX90641/AMG8833对比
做热成像测温系统,第一步就是选传感器。这步走错了,后面全白干。
我见过不少团队,上来就选最便宜的AMG8833,结果做到一半发现分辨率不够,又回头重新改方案。嗯,今天咱们就把这三款主流传感器掰开揉碎了讲清楚。
2.1 三款传感器核心参数对比
先看一张对比表,心里有个底:
| 参数 | AMG8833 | MLX90640 | MLX90641 |
|---|---|---|---|
| 分辨率 | 8×8 (64像素) | 32×24 (768像素) | 16×12 (192像素) |
| 视场角(FOV) | 60°×60° | 55°×35° / 110°×75° | 55°×35° / 110°×75° |
| 帧率 | 最高10fps | 最高64fps (1-64Hz可调) | 最高64fps (1-64Hz可调) |
| 测温范围 | 0°C ~ 80°C | -40°C ~ 300°C | -40°C ~ 300°C |
| 精度 | ±2.5°C (典型) | ±1.0°C (典型) | ±1.5°C (典型) |
| 接口 | I²C | I²C | I²C |
| 参考价格(批量) | ~$8 | ~$25 | ~$15 |
看到这个表,你可能已经有个大概判断了。但别急,参数只是表面,真正决定选型的是你的应用场景。
2.2 分辨率与帧率的权衡
分辨率这东西,说白了就是「你能看清多小的目标」。
我个人习惯,先算一个指标:每像素对应的空间角度。
举个例子:
- AMG8833,8×8像素,60°FOV → 每个像素覆盖 60°/8 = 7.5°
- MLX90640,32×24像素,55°FOV → 每个像素覆盖 55°/32 ≈ 1.7°
你想想看,7.5°是什么概念?在1米距离上,一个像素覆盖的面积大约是13cm×13cm。测人脸?只能看到一团热乎乎的东西,眉毛眼睛根本分不清。
我的经验法则:
- 检测人脸温度 → 至少需要MLX90640 (32×24)
- 检测大面积发热(如配电柜)→ AMG8833勉强可用
- 检测小目标(如电路板上的元件)→ 建议上MLX90640或更高
帧率呢?说实话,测温系统对帧率要求没那么苛刻。人体测温,1-4fps就够用了。为什么?因为人不会瞬间移动,温度变化也没那么快。
但我在做工业检测项目时遇到过一个问题:传送带上的产品以2m/s的速度通过,4fps根本抓不住。那时候我把MLX90640的帧率调到了32fps,配合触发信号才搞定。
帧率选择建议:
- 人体测温/安防 → 1-4fps,省电省带宽
- 工业过程监控 → 8-16fps,平衡性能
- 高速运动目标 → 32-64fps,但要注意I²C总线瓶颈
2.3 FOV视场角计算
FOV选错了,要么视野太窄看不到全貌,要么视野太宽看不清细节。
计算公式其实很简单:
// 已知FOV和距离,计算覆盖范围
// 水平覆盖宽度 = 2 × 距离 × tan(FOV水平/2)
// 垂直覆盖宽度 = 2 × 距离 × tan(FOV垂直/2)
// 示例:MLX90640 55°×35° FOV,距离1米
float distance = 1.0; // 米
float hFOV = 55.0 * M_PI / 180.0;
float vFOV = 35.0 * M_PI / 180.0;
float hWidth = 2 * distance * tan(hFOV / 2); // ≈1.04米
float vWidth = 2 * distance * tan(vFOV / 2); // ≈0.63米
算出来了吗?1米距离,55°FOV覆盖约1米宽的范围。这个数据很关键。
我曾经踩过的坑:
做人体测温门禁时,选了110°广角版本的MLX90640。结果呢?1米外一个人站过去,只占了画面中央十几个像素,边缘全是墙壁和背景。测温精度大打折扣。
后来我改成55°FOV,让人站在0.5-0.8米范围内,效果好了很多。
所以我的建议是:
- 近距离(0.3-1米)检测小目标 → 选窄FOV (55°×35°)
- 远距离(2-5米)监控大范围 → 选宽FOV (110°×75°)
- 不确定?先买55°版本,后期通过镜头适配
2.4 选型决策矩阵
好了,前面讲了这么多,到底怎么选?我整理了一个决策矩阵,你对着自己的需求打勾就行:
| 应用场景 | 推荐传感器 | 理由 |
|---|---|---|
| 人体测温/人脸检测 | MLX90640 | 32×24分辨率足够看清人脸轮廓,±1°C精度满足医疗级要求 |
| 低成本玩具/演示 | AMG8833 | 8×8分辨率只能看个大概,但价格便宜,适合原型验证 |
| 工业设备巡检 | MLX90641 | 16×12分辨率够用,价格适中,测温范围宽 |
| 电池供电/低功耗 | AMG8833 或 MLX90641 | 功耗低,帧率可调,适合IoT设备 |
| 科研/高精度测量 | MLX90640 | 768像素配合算法插值,效果接近入门级热像仪 |
我的最终建议:
如果你在做量产产品,直接上MLX90640。别纠结那十几块钱的差价。
为什么?因为AMG8833的分辨率限制会让你后期花更多钱在算法和结构上弥补。而MLX90641虽然性价比不错,但768像素和192像素的差距,在用户体验上是天壤之别。
当然,如果你只是做个demo或者玩玩,AMG8833完全够用。我第一个热成像项目就是用AMG8833起步的,虽然最后量产换成了MLX90640,但那个8×8的小矩阵帮我快速验证了整个系统架构。
2.5 知识体系总览
最后,我把本章的核心逻辑画成了一张图,方便你理解整个选型决策的脉络:
这张图把选型逻辑串起来了。从需求出发,经过三个维度的评估,最终落到具体的传感器型号和配置上。你照着这个流程走,基本不会出错。
一个小技巧:
如果你实在拿不准选哪个,我的做法是:先买MLX90640的评估板,花两周时间把原型跑起来。如果发现性能过剩,再降级到MLX90641。从高往低降容易,从低往高升可就难了——硬件、结构、算法都得改。
公众号:蓝海资料掘金营,微信deep3321