MLX90640-Dxxx Thermal Camera是一款红外热像仪模块,32×24像素,I2C接口通信,兼容3.3V/5V电平,支持Raspberry Pi,ESP32,STM32等主控,MLX90640远红外热传感器阵列,可精确检测特定区域和温度范围内的目标物体,尺寸小巧,可方便集成到各种工业或智能控制应用中.
MLX9064x-Dxx Thermal Camera 有4个引脚需要连接至控制器,目前支持Raspberry Pi系列, STM32F405R, ESP32系列.具体连接查阅使用说明章节
上图中, MLX9064x-Dxx Thermal Camera板载电平转换电路
1. 控制器(MCU等)作为Master设备先后拉低SDA,SCL的引脚发起I2C总线的START condition 然后写入设备地址(7bits)和写命令(占1bit)共8bits数据, 如果引脚连接正确,MLX9064x作为Slave设备发出ACK响应
2. 控制器继续分别写入寄存器地址(RA)和寄存器值(DATA)并等待ACK响应 , 写入完毕后 , 控制器先后拉高SCL,SDA引脚发送STOP condition
3. 如果控制器读取寄存器(RA)的DATA , 当写入RA等待ACK响应后重新发起START condition,再写入设备地址(7bits)和读命令(占1bit)共8bits等待ACK响应后, MLX9064x返回DATA,控制器接收DATA完毕后,保持SDA高电平即可
4. 连续写寄存器寄存器值请参考上图中的burst Read/Write Sequence
上图为MLX90640的RAM区和控制寄存器分布图,其中RAM区的两种数据模式,EEPROM用于存储校准常数和设备的配置参数, 如下图所示:
MLX90640支持8种刷新率,最高可达64Hz,刷新率由控制寄存器1(0x800D)控制,如下图:
8种刷新率的设置是取决于控制寄存器1(0x800D)的位7, 位8, 位9, 其中有国际象棋模式(出厂默认设置), 电视交错模式,如下图所示:
两种模式在子页面的更新方式上不同, 这里需要注意的是传感器仅在国际象棋模式下进行过出厂校准, 因此在国际象棋模式下可以获得更好的固定图案噪声行为, 因此为了获得最佳效果建议使用国际象棋棋盘模式, 两种模式的设定取决于控制寄存器1(0x800D)的位12.
什么是红外测温?(引用自OPTRIS)
在测量领域,“温度”是仅次于“时间”的常用的物理参数之一。基于普朗克和玻尔兹曼辐射定律的原理,红外测温仪通过吸收被测物体发出的红外辐射来测定其温度。那么,非接触测温是如何实现的呢?
凡是温度高于绝对零度(0 K或-273.15℃)的物体,均会自表面向外发出电磁辐射,且该辐射与物体的固有温度成比例。在这种辐射中,包含用于实现测温的红外辐射。当该辐射贯穿大气后,借助专用镜头便能将其聚集在探测器上。随后,探测器会生成与该辐射成比例的电信号。该信号得到放大,并通过接受连续的数字信号处理而转化为与物体温度成比例的输出信号。如此一来,在显示器上便会显示出温度的测量值,或为信号形式输出。
在利用辐射实现测温时,辐射率ε(Epsilon)起到了至关重要的作用。它表明了实际物体与黑体的辐射值之间的关系。黑体的辐射率为1(最大值)。不过,能够满足黑体这一理想条件的物体并不多。在校准传感器时,一般会用到辐射体的接触面(包含所推荐的波长:0.99)。
就其波长而言,许多物体通常具有恒定的辐射率,但其辐射能力远不如黑体。它们被称作灰体。若物体的辐射率取决于其温度和波长(诸如金属类),则此类物体被称作选择性辐射体。在这两种情况下,所缺失的辐射部分通过辐射率的明确加以补充。当使用选择性辐射体时,需要牢记所测定的波长(针对金属,选择短波)。
除了自物体表面发出的辐射之外,红外传感器还能接受到周围环境的反射辐射,或许还有被测物体的贯穿红外辐射。
对于非接触式红外测温模块, 很重要的一个概念是"视场 (FOV)". 视场是由温差电堆接收到50%的辐射信号来确定的, 并且和传感器的主轴线相关. 测得的温度是视场内被测物体的温度加权平均值, 所以当被测物体完全覆盖FOV视场时的准确度是最高的.
关于测量距离和视场关系可参考Melexis提到的如下图所示的计算公式
请使用链接中的 2021-05-07-raspios-buster-armhf.zip系统进行系统烧录测试
国内用户使用树莓派官方源更新慢,需要更换国内软件源,打开sources.list文件,注释源文件内容后,复制粘贴中科大源,按Ctrl+X再按Y按Enter保存,参考下图
sudo nano /etc/apt/sources.list deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
在树莓派终端输入如下指令,第1条指令使能硬件I2C,使能后需要重新启动系统,继续打开终端执行后面指令,若已设置,可跳过此指令,相关设置如下图,:
sudo raspi-config sudo apt update cd ~ wget https://files.waveshare.net/wiki/w/upload/c/c9/Mlx90640_thermal_camera.zip unzip Mlx90640_thermal_camera.zip cd mlx90640_thermal_camera/RaspberryPi/cpp/ chmod +x install.sh sudo ./install.sh make sudo ./main
若是显示过于卡顿,在boot磁盘中config.txt文件最后更改I2C的速度,在树莓派终端输入如下指令并保存退出:
sudo nano /boot/config.txt dtparam=i2c1_baudrate=1000000