
#第六届立创电赛#红外热成像仪
简介
简介:开源协议
:GPL 3.0
描述
1、项目功能介绍
红外热成像仪,用来显示电路板温度成像、设备温度成像等。
平时工作的时候会遇到如下场景:
1、新焊接好的板子,通电后发现电流异常,需要看下板子上哪里发热异常。
2、需要监控某个器件(比如三极管、MOS)的温度,以防过热烧掉。
3、测量温升。
因此需要一个红外热像仪,可是网上看了一下都要2000左右了,虽然分辨率很高,可是我并不需要那么好的性能,于是干脆自己做一个。AMG8833的红外像素点是8x8的,感觉太低了,于是选用了32x24像素点的MLX90640,淘宝价格172元,再加上单片机和液晶屏,这样300元以内就能搞定了。
完成后工作时的样子:
具有如下功能:
1、锂电池供电,USB口充电。
2、内置16M SPI flash,一张红外图片大小150K,因此可以保存109张图片。
3、SPI Flash做虚拟U盘。USB口接电脑就可以直接查看、复制保存的图片。
2、项目属性
首次公开,完全原创。
3、开源协议
GPL3.0开源协议。
4、硬件部分
总体原理图如下:
1、电源部分
当USB口没有连接,由锂电池供电。当USB口连接,由USB供电,同时通过TP4057给锂电池充电。
2、屏幕和SPI Flash
屏幕采用3.5英寸、320x240分辨率的。SPI Flash采用芯天下的XT25F128B,16MB。
3、MLX90640和AD按键。
MLX90640采用模拟IIC驱动,3个按键使用ADC读取,因为IO口用完了。
4、MCU
单片机使用GD32F103C8T6。
6、外壳选择
外壳使用淘宝现成的。
空间还是很宽裕的。
7、PCB
5、软件部分
1、软件处理框图
2、移植MLX90640官方API库
从github上获取官方提供的API库:https://github.com/melexis/mlx90640-library
把API库中的IIC驱动修改成自己的完成移植。
3、图像插值
调用API库中的函数就可以读取32x24个红外像素点,可是屏幕是320x240的,因此需要把原始图片插值放大后显示到屏幕上。
由于GD32的运算能力不是很强,因此选择了计算量比较小的双线性内插值算法。
在X方向上进行两次线性插值计算

然后在Y方向上进行一次插值计算:

经过插补后的图像效果:

4、温度值转颜色
现在把32x24像素点放大了10倍,得到了320x240像素点,但是这些像素点还都是-40度到300度的温度值,要怎么转换成彩色来显示呢?
其实都已经有转换规范了,而且还有很多种方案:
温度转颜色的方法:
首先假设温度范围的上下限并将实际的温度数据转换为 0~255 之间的数值
\
使用转换后的数值代入下面的伪彩编码计算函数,生成伪彩色
其他颜色转换方法在我的博客去看:[https://blog.csdn.net/qlexcel/article/details/119421679](https://blog.csdn.net/qlexcel/article/details/119421679)。
5、移植Fatfs文件系统和GD32的USB程序
把文件系统的驱动读写函数和USB的读写函数匹配上即可。
6、BOM清单
7、大赛LOGO验证
8、演示您的项目并录制成视频上传
设计图

BOM


评论