现在自己在做红外成像仪的越来越多了,两年前有个井下机电设备运行状态的科研项目,当时使用了AMG8833(8*8像素)。前段时间因为公司生产电路板测试需要,打算买一台红外成像仪测量电路板发热是否正常,商用的价格还是有些小贵的,无意中发现了MLX90640这个东西,32*24像素,768个测温点,基本上可以成像用了,于是决定自己做一个成像仪。经过半个月的时间,开发基本完成,本文是开发过程的笔记和注意事项,分享出来共同进步。

现在都智能手机、信息化、人工智能了,能不能用MLX90640做个能和手机连接成像的红外模块呢,那样的话测试、存储岂不是很方便。说做就做,马上行动。

MLX90640有两个型号,A型和B型,各拍了一个,在等待物流的过程中索性先做些准备工作,也科普一下红外成像是怎么回事。

首先是上MLX的官网下载几个必备文件,有用的其实只有两个文件。

(1)MLX90640数据手册,下载地址是

https://www.melexis.com/-/media/files/documents/datasheets/mlx90640-datasheet-melexis.pdf

(2)MLX90640驱动库和说明文档,下载地址是

https://github.com/melexis/mlx90640-library/archive/master.zip

关于官网下载的两个文件,手册嘛写得很一般,说一点用处也没有也不至于,但看完后觉得大部分是没有意义和不知所以然要写的,但手册不看毕竟是不行的。同时也做了中文翻译,

MLX90640中文手册下载地址为:https://download.csdn.net/download/xulikai/11839464

另一个下载的文件mlx90640-library-master.zip问题比较严重(折腾了我大概一天多时间)。过程不多说了,直接说问题在哪。这个压缩包里有API使用说明、API的C语言源代码以及一组用Excel文件计算完成的参数计算实例,实例的原数据和计算结果都是没有问题的,但我按照API使用说明里的指导调用函数库存里的函数,使用Excel里的原始数据无论如何也得到不正确的结果,后来发现问题出在下载的API函数。

MLX90640_API.h文件里定义了一个结构体类型,里面较为明显的错误有:

uint16_t alpha[768];

int8_t kta[768];

int8_t kv[768];

上面三个变量被定义为整型,但是,Excel计算表里面,这三个数组的值分别显示为0.0000000397885742132、0.00634766、0.43750000的样子,这是整数?其它的不说,Excel和API不是同一个版本或者说不一致是100%的。经过不断找别人用过的API、测试,下面的文件是可用的,同时也做了一份API说明文件的中文翻译。

MLX90640驱动库: https://download.csdn.net/download/xulikai/11839596

MLX90640API中文说明:https://download.csdn.net/download/xulikai/11839272

MLX90640简要介绍说明

(1)A型和B型的区别

区别主要有以下几点

视场角不同:A型为110*75°,B型为55*35°,通俗一点讲就是A型是广角,所以镜头矮一些,视野更宽,但对远处物体的捕捉能力更低,B型更适于拍摄稍远的物体。

精度不同:A型的噪声比B型大,所以B型的绝对温度和灵敏度都好一些。

(2)供电电压和数字接口

MLX90640共有4个引脚,两个电源3.3V供电,两个通讯I2C接口,I2C支持最高1MHz的通讯速率(实际测试发现1.2MHz也是可以的,只是偶尔会出错,还是老老实实1MHz吧)。

I2C完全是经典的时序,而且通讯速率范围特别宽,从几十赫兹到兆赫兹都通讯正常,所以它的I2C接口程序还是很好写的。

功耗大约是25mA,实测没有问题。

供电必须是3.3V,但I2C的两根引脚可以2.5~5V兼容。

(3)灵敏度、测温范围和精度

MLX90640的测量速率最高可以达到64Hz,但越快的速率时的噪声会越大,导致灵敏度下降,手册上给出的指标是1Hz时可以区分出0.1℃。

测温范围是-40~300℃。

测温精度和成像的区域有关,靠近中间位置是±0.5~1.0℃,最外侧4个角是±2.0℃,其它区域约是±1.0℃。

还有就是传感器上电后有个热平衡时间,大约是5分钟,未达到热平衡时精度会差一些。

(4)坏点

手册里特别提到了每个MLX90640传感器可能存在最多4个不能使用或者精度达不到要求的像素,这也许和传感器的生产工艺有关吧,坏点都会在出厂时记录到传感器的EEPROM里,实际使用时记得要读取一下并且在成像时特殊处理这种可能存在的像素点数据。

在后面的实际测试过程中,并没有发现坏点的存在,可能运气比较好。

在官方的API库里,坏点和未达到精度要求的点是不做区分的,都是同样的处理方法(用相邻的好的点做平均值做为坏点的值)。

MLX90640开发笔记(一)概述及开发资料准备
MLX90640开发笔记(二)API移植-I2C和关键接口函数
MLX90640开发笔记(三)工作流程和操作MLX90640的一般步骤
MLX90640开发笔记(四)损坏和不良像素的处理
MLX90640开发笔记(五)阵列插值处理-多项式插值由32*24像素到512*384像素
MLX90640开发笔记(六)红外图像伪彩色编码
MLX90640开发笔记(七)小结-注意事项
MLX90640开发笔记(八)扩展知识-辐射率、灵敏度、精度、探测距离
MLX90640开发笔记(九)EEPROM、RAM、寄存器说明
MLX90640开发笔记(十)成果展示-红眼睛相机

MLX90640开发笔记(一)概述及开发资料准备相关推荐

  1. [推荐]OpenERP开发笔记(5) -- 自定义模块开发之一

    http://www.jeffzhang.cn/OpenERP-DEV-Notes-Custom-Module-Development1/ OpenERP开发笔记(5) -- 自定义模块开发之一 发表 ...

  2. NRF51822开发笔记-1.搭建NRF51822开发环境

    NRF51822开发笔记-1.搭建NRF51822开发环境 一.准备软件包 二.安装keil MDK并破解 三.安装NRF SDK 四.安装nRFgo studio 五.安装Jlink驱动 一.准备软 ...

  3. windows内核开发笔记七:内核开发OVERLAPPED结构体详解

    windows内核开发笔记七:内核开发OVERLAPPED结构体详解 typedef struct _OVERLAPPED {   DWORD Internal;   DWORD InternalHi ...

  4. php微信 开发笔记,PHP微信公众开发笔记(一)

    笔记是先写在印象笔记上的,晚上没事的时候整理整理. PHP微信公众开发笔记系列 日期:2014.9.1 今天开始正式开始做班上的微信公众平台的开发者服务了.因为是第一次做这个,对PHP也不了解,所以一 ...

  5. RT-ThreadBearPi 开发笔记 -- 为小熊派开发板制作 RT-Thread BSP 包

    为小熊派开发板制作 RT-Thread BSP 包 前段时间,微联智控工作室向南京厚德物联网有限公司申请了一款物联网开发平台---小熊派物联网开发套件(BearPi-IoT).关于小熊派IoT开发平台 ...

  6. nrf52840开发笔记(一)------开发环境搭建

    0 目录 暂无 前言 目标是搭建nrf52840单片机的运行环境,硬件用的是官方提供的DEMO,所以不涉及硬件问题,主要是IDE的建立.使用的是KEIL5.其中会涉及nrf52840常用的开发工具以及 ...

  7. HTML5开发笔记(1)开发常见的7个框架

    文章目录 HTML5框架介绍 1. Siimpler 2.lonic 3.Foundation 4.Enyo 5.LimeJS 6.Bootstrap 7.juery UI 其他相关的笔记 HTML5 ...

  8. WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单

    现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了这样的业务要求,需要在.net开发的客户端系统中访问java开发的web系统,这样的业务需求自然需要通过WebService ...

  9. 小程序mpvue图片绘制水印_开发笔记:使用 mpvue 开发斗图小程序

    之前用过 wepy 框架写了个小程序 GitHub - yshkk/shanbay-mina: 基于 wepy 框架的 "扇贝阅读" 微信小程序 ,感觉写法上类似 vue,但不那么 ...

  10. (SenchaTouch+PhoneGap)开发笔记(2)开发环境搭建二

    一.Java环境和Android SDK  1.安装JDK和JRE JRE会在JDK安装完成后自动出现安装界面. 安装完成后,设置环境变量 JAVA_HOME    D:\Program Files\ ...

最新文章

  1. IDEA打包出现Unable to find main class
  2. 标准库 - 输入输出处理(input and output facilities) lua
  3. 《javascript高级程序设计》第五章知识点总结
  4. mysql如何做计划任务_简单的mysql 过程计划任务
  5. boosting算法_集成学习:boosting、BDT、GBDT的概括理解
  6. 对于Neural ODE的小研究
  7. 客户机无法上网,ping 127.0.0.1提示unable to contact IP driver ,error code2
  8. git学习笔记(2)
  9. win10使用import pcap 建议放弃,还是使用linux系统吧
  10. 【Ubuntu】USB 摄像头测试工具
  11. jxls遍历list时使用模板的批注语法
  12. 备案的是域名还是服务器?
  13. Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme阅读总结
  14. 像追女神一样学好java~
  15. 京东EB级全域大数据平台的演进与治理历程
  16. 显示计算机名在桌面壁纸,Windows桌面壁纸自动显示计算机详细信息小工具–BgInfo...
  17. 必备:产品经理工作文档大全
  18. TEB算法1-teb原理详解
  19. 李克用置酒三垂冈赋——刘翰(清)
  20. 美学心得(第二百三十一集) 罗国正

热门文章

  1. 概率论常见的分布函数
  2. 基于SPSS的经典统计学分析与偏度峰度等常用统计学指标计算
  3. plc和pc串口通讯接线_三菱FX系列PLC与电脑之间串口RS232通讯协议简易解析
  4. BST内部方法的实现
  5. 26种数据挖掘软件比较及介绍
  6. 电线电缆、电线、网线等的表示方法(规格、型号)电线规格电线网 yjv 电线电缆规格型号表(四)...
  7. Bash bug漏洞目前最新最全的修复方式
  8. linux uwsgi 非root,linux 安装uwsgi
  9. 以太坊合并 你需知道的10个问题
  10. 基于android实现模拟爱奇艺本地视频播放器app项目演示【附项目源码+论文说明】分享