描述
<p>注:*为必填项。</p>
<p>【请在报名阶段填写 ↓】
使用 Teensy 配合 MLX90640 实现一个简单的热成像仪</p>
<p>【请在竞赛阶段填写 ↓】
<em> 一、作品详情;
使用 Teensy 3.2在 320</em>240 的液晶屏幕上显示 MLX90640取得的温度数据,从而实现一个简单的热成像仪。</p>
<p>* 二、描述作品所面临的挑战及所解决的问题;
主要问题有:</p>
<ol>
<li>传感器是 32x24 的数据,屏幕是 320X240的分辨率,如何来进行显示达到最好的效果。最终使用双线性插值算法,将 32x24的数据进行插值显示在屏幕上;</li>
<li>实现液晶屏上的快速显示。选择 UcgLib 实现屏幕的显示,通过DrawPixel 来绘制每一个点,这样的效率很低。最终,通过研究ILI9431的DataSheet掌握了最简单的发送点的方法,直接使用SPI将颜色传输到主控的 DRAM 中实现了快速显示。</li>
</ol>
<p>* 三、描述作品硬件、软件部分涉及到的关键点;
使用 Arduino 来进行编译。</p>
<p>因为主要模块是 Teensy 3.2 所以整体电路非常简单,外部只是有一个 5v转3.3v 模块,外加 i2c 接口的传感器。</p>
<p><img src="//image.lceda.cn/pullimage/Vob3HSC1qpXMavQO9FPHbaozT62P01JL0xUetOUF.jpeg" alt="c1.jpg"></p>
<p><img src="//image.lceda.cn/pullimage/70tAeLrXNb2aOcGfStPuEDmWudc7qMrXiAUwFIqL.png" alt="xx.png">
完整电路和pcb 文件可以在附件中看到,是 eagle 格式的。</p>
<p>* 四、作品材料清单;
Teensy 3.2 一块
MLX90640 一块
320X240 LCD ILI9341主控一块</p>
<p><em> 五、作品图片上传;(PCB上须有大赛logo标识并拍照上传,若无视为放弃参赛)
<img src="//image.lceda.cn/pullimage/FwygQjNGVB4XH8qrfz0fDleiJlMQWqCInZBDDK8y.png" alt="ircam.png">
</em> 六、演示您的作品并录制成视频上传;(视频内容须包含:作品介绍;功能演示;性能测试;PCB上大赛logo标识特写镜头,若无视为放弃参赛)</p>
<p>七、开源文档。</p>
<p>在我小时候,荧幕上还都是史泰龙施瓦辛格这样的硬汉,他们亮出肌肉敌人就会大片的倒下,看起来非常过瘾,一个偶然的机会,在父亲的朋友家看了电视上播出的《铁血战士》。这部影片给我留下很深的印象,一方面是神秘的丛林,另一方面是影片中掌握着高科技的外星人。譬如说,他有一个很酷的带在手腕上能显示当前心率的个人电脑。还有就是他可以切换到红外线模式,看到人类无法看到的红外线。这样的功能在夜战中占尽便宜。当年最后州长大人凭借主角光环发现了对手这一特性,用泥巴将自己包裹起来躲过搜查最终反杀之。最近发现市面上有一种红外阵列传感器:MLX90640 ,分辨率可以达到 32*24.于是尝试DIY一个简易的热成像仪。首先,主控选择 Teensy 3.2 ,原因是它性能远超 Arduino \,主频可以达到 120Mhz (Overclock状态),内存有 62KB。MLX90640对内存要求比较高,普通的 Arduino 无法胜任。之后,选择屏幕,从淘宝入手了 320*240 分辨率的SPI 接口的液晶屏。之后就可以动手制作了。 从整体上来说,完成制作需要三部分:第一步,获得传感器数据;第二步,处理数据(因为屏幕明显比传感器大,因此,需要将少量数据变换成大量数据,这里我使用的是双线性插值算法);第三步,将数据显示在屏幕上。下面就是每个步骤的做法。第一步:传感器数据的获得。MLX90640 有对应的 Arduino 库,这使得我们能够方便的获得红外数据。需要注意的是,取得的数据是从右上到左下排列的。<img src="//image.lceda.cn/pullimage/FemV5pDTaLt02MFrznCfJuYrVwGDD9lqbsUNFCtZ.jpeg" alt="image004.jpg">
代码很简单:
for (byte x = 0 ; x </p>
评论(15)