描述
<h1>1、项目功能介绍</h1>
<p>红外热成像仪,用来显示电路板温度成像、设备温度成像等。</p>
<p>平时工作的时候会遇到如下场景:</p>
<p>1、新焊接好的板子,通电后发现电流异常,需要看下板子上哪里发热异常。</p>
<p>2、需要监控某个器件(比如三极管、MOS)的温度,以防过热烧掉。</p>
<p>3、测量温升。</p>
<p>因此需要一个红外热像仪,可是网上看了一下都要2000左右了,虽然分辨率很高,可是我并不需要那么好的性能,于是干脆自己做一个。AMG8833的红外像素点是8x8的,感觉太低了,于是选用了32x24像素点的MLX90640,淘宝价格172元,再加上单片机和液晶屏,这样300元以内就能搞定了。</p>
<p>完成后工作时的样子:</p>
<p><img src="//image.lceda.cn/pullimage/T7673DGlsiBwMoR2l9GXurPfus0ClsDAK9KTHOsY.png" alt="image.png"></p>
<p><br>
具有如下功能:</p>
<p>1、锂电池供电,USB口充电。</p>
<p>2、内置16M SPI flash,一张红外图片大小150K,因此可以保存109张图片。</p>
<p>3、SPI Flash做虚拟U盘。USB口接电脑就可以直接查看、复制保存的图片。</p>
<p><img src="//image.lceda.cn/pullimage/dfkVzfHM31KgVg5qQI16i1yFbdbdk5LMDRszUtaa.png" alt="image.png"></p>
<p><img src="//image.lceda.cn/pullimage/fTPnPnJGQRYmOTUuyD0Xi67tfw1DJsK9aJn6otTd.png" alt="image.png"></p>
<h1>2、项目属性</h1>
<p>首次公开,完全原创。</p>
<h1>3、开源协议</h1>
<p>GPL3.0开源协议。</p>
<p><br></p>
<h1>4、硬件部分</h1>
<p>总体原理图如下:</p>
<p><img src="//image.lceda.cn/pullimage/r4okieBwOjTRtINyzGnXFC4l8dAtQ4XRj3hFrjwn.png" alt="image.png"></p>
<p>1、电源部分</p>
<p><img src="//image.lceda.cn/pullimage/vrxImKmLFz22DPcZyvzDq5IcHXkUCVH3QYwrRluL.png" alt="image.png"></p>
<p>当USB口没有连接,由锂电池供电。当USB口连接,由USB供电,同时通过TP4057给锂电池充电。</p>
<p><br>
2、屏幕和SPI Flash</p>
<p><img src="//image.lceda.cn/pullimage/UDL026pwndATFfeZto2SqaJEP1eJAWhy79RyVh9k.png" alt="image.png"></p>
<p>屏幕采用3.5英寸、320x240分辨率的。SPI Flash采用芯天下的XT25F128B,16MB。</p>
<p><br>
3、MLX90640和AD按键。</p>
<p><img src="//image.lceda.cn/pullimage/P7qIsDo5f9IrdY5oGvl99Sr2baU940c0sL0pvvWf.png" alt="image.png"></p>
<p>MLX90640采用模拟IIC驱动,3个按键使用ADC读取,因为IO口用完了。</p>
<p><br>
4、MCU</p>
<p><img src="//image.lceda.cn/pullimage/Qbb2J0eDCwe2Ulbw8L79OkrNsl9zkpZpnzAlyaZA.png" alt="image.png"></p>
<p>单片机使用GD32F103C8T6。</p>
<p>6、外壳选择</p>
<p><img src="//image.lceda.cn/pullimage/55wylbbG4jQRVjncNIb0FvAkz1xlurWZVmeg32eh.png" alt="image.png"></p>
<p>外壳使用淘宝现成的。</p>
<p><img src="//image.lceda.cn/pullimage/kr4mwGCFK1i3MyxTwj8ouLYH4ILO9ABmtHBVCFYI.png" alt="image.png"></p>
<p>空间还是很宽裕的。</p>
<p><br>
7、PCB</p>
<p><img src="//image.lceda.cn/pullimage/gJCQYHLpiBhMz3QhFpZpqjzkj6GA1oVzmRnR8KQ2.png" alt="image.png"></p>
<p><img src="//image.lceda.cn/pullimage/vYtFuN1FZFIxomG4gjNmC0YqYDYOuVjCenzdMtrj.png" alt="image.png"></p>
<h1>5、软件部分</h1>
<p>1、软件处理框图</p>
<p><img src="//image.lceda.cn/pullimage/lhbKU9Px0vyELpSQWw11wYBJv2GA5uEDvcHOuZHd.png" alt="image.png"></p>
<p>2、移植MLX90640官方API库</p>
<p><span class="colour" style="color:rgba(0, 0, 0, 0.75)">从github上获取官方提供的API库:<a href="https://github.com/melexis/mlx90640-library" target="_blank">https://github.com/melexis/mlx90640-library</a></span><br>
<br>
<img src="//" alt="在这里插入图片描述"></p>
<p><img src="//" alt="在这里插入图片描述"></p>
<p>把API库中的IIC驱动修改成自己的完成移植。</p>
<p>3、图像插值</p>
<p>调用API库中的函数就可以读取32x24个红外像素点,可是屏幕是320x240的,因此需要把原始图片插值放大后显示到屏幕上。</p>
<p>由于GD32的运算能力不是很强,因此选择了计算量比较小的双线性内插值算法。</p>
<p><img src="//" alt="在这里插入图片描述"></p>
<p><br>
<span class="colour" style="color:rgb(77, 77, 77)">在X方向上进行两次线性插值计算</span><br>
<br>
<br>
<img src="//" alt="在这里插入图片描述"></p>
<p><br>
<span class="colour" style="color:rgb(77, 77, 77)">然后在Y方向上进行一次插值计算:</span><br>
<br>
<br>
<img src="//" alt="在这里插入图片描述"></p>
<p>经过插补后的图像效果:</p>
<p><br>
<img src="//" alt="在这里插入图片描述"></p>
<p>4、温度值转颜色</p>
<p><span class="colour" style="color:rgb(77, 77, 77)">现在把32x24像素点放大了10倍,得到了320x240像素点,但是这些像素点还都是-40度到300度的温度值,要怎么转换成彩色来显示呢?</span><br>
<br>
<span class="colour" style="color:rgb(77, 77, 77)">其实都已经有转换规范了,而且还有很多种方案:</span><br>
<br>
<img src="//" alt="在这里插入图片描述"></p>
<p><br>
<span class="colour" style="color:rgb(77, 77, 77)">温度转颜色的方法:</span><br>
<br>
<br>
<br>
<span class="colour" style="color:rgb(77, 77, 77)">首先假设温度范围的上下限并将实际的温度数据转换为 0~255 之间的数值</span><br>
<br>
\<br></p>
<p><span class="colour" style="color:rgb(77, 77, 77)">使用转换后的数值代入下面的伪彩编码计算函数,生成伪彩色</span><br>
<br>
<br>
<br>
<img src="//image.lceda.cn/pullimage/2fZCUgwHe2RAltFycUM36zqRiSrnfBhc8zJ1xdrM.png" alt="image.png"></p>
<p><br>
其他颜色转换方法在我的博客去看:<a href="https://blog.csdn.net/qlexcel/article/details/119421679" target="_blank">https://blog.csdn.net/qlexcel/article/details/119421679</a>。</p>
<p>5、移植Fatfs文件系统和GD32的USB程序</p>
<p>把文件系统的驱动读写函数和USB的读写函数匹配上即可。</p>
<p><img src="//image.lceda.cn/pullimage/oweUPlsZiGmFNoMca9QdYLkgLiuduZh4bG384EiF.png" alt="image.png"></p>
<h1>6、BOM清单</h1>
<p><img src="//image.lceda.cn/pullimage/jYmIYdu4l69cMs5k76GBOMHTqAIYKxlCUO2GYIP2.png" alt="image.png"></p>
<p><br>
<br></p>
<h1>7、大赛LOGO验证</h1>
<p><img src="//image.lceda.cn/pullimage/0vu0RPxvI6rxuReWXw2V7Q8y8n2Lu2ExPVdEtfU2.png" alt="image.png"></p>
<p><br></p>
<h1>8、演示您的项目并录制成视频上传</h1>
<p><img src="//image.lceda.cn/pullimage/ICcaxxcMaQ2DuDODLv8hvvPgIMZnn1vbg1v7NNUg.png" alt="image.png"></p>
<p><img src="//image.lceda.cn/pullimage/OVSOhi0107EbPZS9Ayc7p60Nt3WDBxUFChtDBQJr.png" alt="image.png"></p>
<p><img src="//image.lceda.cn/pullimage/2FZoeX1K12s0Y0FGYZLAODYL1jxpbQ8HHNloy1FA.png" alt="image.png"></p>
评论(56)