在嵌入式硬件的实践过程中,焊接好的电路板有时会得不到我们想要的输出/显示结果,这时就需要进行排查、检修。实验室成员排查故障时,经常需要用手感知各个元件的温度来定位问题。这样的方法效率不高且有一定危险性,因此,我们决定设计一款热成像仪,专门用于寻找故障电路的高温部分,进而方便我们检修电路。
对于一个热成像仪,基本功能有测温加实时显示,对应的模块就是红外测温点阵传感器和一块显示屏。考虑到此产品是面向检修电路的,温度范围应该更广,要求能够测量几百度的高温,且在图像上应突出显示高温部分。另外,因为短路部分相较于其他部分温度差别非常大,所以此产品对于温度的区分不需要特别精确,计算和显示时保留整数即可。
最终,红外测温点阵模块笔者选用了MLX90640-B型,使用I2C通信。主控选用ESP-32-S3模组,它拥有240MHZ的主频双核,对于数据计算及实时图像显示非常有帮助。显示屏选用了2.8寸、320*240像素、驱动IC为ST7789的电容触摸屏,SPI+I2C通信,选用触摸屏的理由是对于不同的电路、是否正在焊接,我们可能要切换不同的显示模式,触摸+显示反馈相较于按钮可读性更高且操作更方便。供电部分,笔者使用IP5306电源管理IC,它支持电池充放电,5V稳压输出,电量显示。有了初步想法之后,笔者又增加了一颗OV2640摄像头,用于显示实拍图像,为之后升级成双目热成像提前做准备。
关于IP6306芯片的外围设计,建议在VOUT处添加拨动开关,作为整个设备的总开关。另外KEY引脚处可以选加轻触开关,参考数据手册KEY可以控制电量显示及VOUT输出,由于笔者购买的IP5306芯片的型号不支持KEY引脚按键控制VOUT输出,所以就悬空了KEY引脚。
关于布板,笔者使板框大小与显示屏相同,显示屏及大部分电路元件布于正面,两颗摄像头、esp32-s3模组和电池盒布于反面,尽量压缩了面积。
软件部分,笔者使用Arduino IDE开发,库文件中TFT_eSPI(显示屏使用)、TJpg_Decoder(ov2640图像处理)可以在Arduino IDE内下载,此外还使用到MLX90640、tft屏商家提供的库文件。软件实现了多个温度范围、不同插值效果和两种颜色组成方案,通过触屏可直接切换,下面给出一些演示。
至此,这个热成像仪基本开发完成。由于近期时间不充裕,外壳尚未开始设计,等到全部完工后,笔者会开源该项目,具体时间和链接确定下来后会在下方评论区告知。
题外话:关于实际投入使用的效果,此项目并不如市面上基于手机屏幕显示的热成像仪,主要原因还是图像处理、屏幕刷新受MCU的限制,导致实际帧率并不算高,且图像效果也有待提升。
云FAE请选择您要咨询的方向,专业工程师为您服务!咨询客服