MLX90640 红外热成像仪测温模块开发笔记(一)概述及开发资料准备
现在自己在做红外成像仪的越来越多了,两年前有个井下机电设备运行状态的科研项目,当时使用了 AMG8833(8*8 像素),科研毕竟就是科研,后来也没有听说成果得到应用的消息, 我想也是, 8*8 能干什么,也就能做个红外测温枪吧。 前段时间因为公司生产电路板测试需要,打算买一台红外成像仪测量电路板发热是否正常,商用的价格还是有些小贵的,我们电路板都不大所以就找了一台便宜的先用着,无意中发现了 MLX90640 这个东西, 32*24像素, 768 个测温点,基本上可以成像用了。现在都智能手机、信息化、人工智能了,能不能用 MLX90640 做个能和手机连接成像的红外模块呢,那样的话测试、存储岂不是很方便。 说做就做,马上行动。。。。。
MLX90640 有两个型号, A 型和 B 型,各拍了一个,在等待物流的过程中索性先做些准备工作,也科普一下红外成像是怎么回事。
首先是上 MLX 的官网下载几个必备文件,有用的其实只有两个文件。
(1) MLX90640 数据手册
下载地址不好放上,大家可以私信。
(2) MLX90640 驱动库和说明文档
下载地址
关于官网下载的两个文件,手册写得很一般,说一点用处也没有也不至于,但看完后觉得大部分是没有意义和不知所以然要写的,但手册不看毕竟是不行的。同时也做了中文翻译, MLX90640 中文手册下载地址
另一个下载的文件 mlx90640-library-master.zip 问题比较严重(折腾了我大概一天多时间)。过程不多说了,直接说问题在哪。 这个压缩包里有 API 使用说明、 API 的 C 语言源代码以及一组用 Excel 文件计算完成的参数计算实例,实例的原数据和计算结果都是没有问题的,但我按照 API 使用说明里的指导调用函数库存里的函数,使用 Excel 里的原始数据无论如何也得到不正确的结果,后来发现问题出在下载的 API 函数。
MLX90640_API.h 文件里定义了一个结构体类型,里面较为明显的错误有:
uint16_t alpha[768];
int8_t kta[768];
int8_t kv[768];
上面三个变量被定义为整型,但是, Excel 计算表里面,这三个数组的值分别显示为0.0000000397885742132、 0.00634766、 0.43750000 的样子,这是整数?其它的不说, Excel和 API 不是同一个版本或者说不一致是 100%的。经过不断找别人用过的 API、测试,下面的文件是可用的,同时也做了一份 API 说明文件的中文翻译。
MLX90640 驱动库:
MLX90640API 中文说明