基于MLX90640探头的热成像图划分区域的研究

2021-06-17 07:12:22陈诚何锦清孙华
电子制作 2021年5期
关键词:树莓测温串口

陈诚,何锦清,孙华

(西华大学机械工程学院,四川成都,610039)

0 引言

温度这一参数无论是在工业生产还是日常起居方面都被广泛测量和使用,在农业、军事、电力、科学研究等多领域都被视为一个重要的参数。目前日常使用的测温方式分为接触式和非接触式两种,MLX90640探头的热成像测温方式属于非接触式测温。其又属于红外温度传感器,具有测量速度快、测温范围宽、不用直接接触物体测温的特点。对基于MLX90640探头的热成像图进行区域划分可实现一个探头对多个设备的测温监控,提高设备利用率,减少温度监控成本。

1 系统总体方案设计

系统主要由MLX90640红外传感器探头、树莓派等主要部分构成。MLX90640探头将测得的数据通过串口通信传给树莓派,通过对帧头帧尾的检测,获取中间的有效数据,并判断数据的完整性和可用性,无误后,树莓派依照探头模块的数据温度转换公式进行处理后,将温度数据存入一个列表进行画图,再将数据按照预划分区域数据的大小,存入相应大小的多个数组中,对每一个区域内采用寻找最大值及最大温度值位置的措施,在图像上显示三个区域温度最大值的位置,以此完成区域划分,便于对被测视场内所有物体温度进行监测,寻找发热点位置。

图1 系统总体结构框图

2 硬件设计

■2.1 MLX90640模块

MLX90640模块是一个24×32像素红外阵列传感器,共有768个测量像素点,尺寸小,功耗低。温度测量范围广,在0℃~50℃的工作温度范围内可监测-40℃~300℃的被测物温度,在0℃~100℃范围内测量精度达到±2摄氏度。能直接显示中心点以及最高最低温度。本实验使用的MLX90640探头序列号为0AB1435207,其表示的含义为该MLX90640探头无热梯度补偿,其场视角为35°x55°,后续编号表示生产批号及批号补充码。探头每个基本像元采集的数据经过相应公式转换后得到的温度值是其视场内物体温度的平均值。本实验使用MLX90640BAB,接入转换芯片后采用串口输出格式,每帧包含1544个字节(16进制),其中包含帧头、帧尾各4位数据。使用时用Micro USB线,5V/1A电源供电,可以很方便地接在树莓派上。MLX90640是一种由传感器、模拟信号部分、数字部分和 I/O 电路组成的混合信号器件,为了保持低噪声,需要对电源开关噪声进行退耦。外部电路的高噪声也会影响器件的噪声性能。通常用一个 100nF+1μF 陶瓷电容器就近与 VDD 和 Vss 连接,而与 VDD 管脚和Vss 管脚的距离需要尽量短。MLX90640在启动后需要一定的时间达到热平衡,热平衡后才具有相对稳定和高精度性能。除此之外,红外传感器天生易受热梯度引起的误差影响,所以使用时尽量避免使传感器受热以及瞬态温度环境的影响。

主控芯片为:STM32F301。STM32F301x6/8系列是基于高性能ARM Cortex -M4 32-bit RISC核心操作的,频率可达72 MHz,具有一个嵌入浮点单元(FPU)。该系列集成了高速嵌入式存储器(高达64k字节的闪存,16k字节的SRAM),以及广泛的增强I/O和连接到两个APB总线的外设。设备提供了一个快速的12位ADC(5 Msps),三个比较器、一个运算放大器,多达18个电容感测通道,一个DAC通道,低功耗RTC,一个通用的32位定时器,三个通用的16位定时器,定时器驱动DAC。此外还具有标准和先进的通信接口:3个I2C,多达3个USARTs,多达2个具有多路全双工I2S的spi和一个红外发射机。STM32F301x6/8系列分别工作在-40 ~ +85°C和-40 ~ +105°C的温度范围,在2.0 ~ 3.6 V电源下使用。

340E910 USB转TTL芯片:电脑端USB是USB电平,单片机的信号是TTL电平,两者的电平不同是无法进行通讯的,需要通过转换才能实现互相通讯。此芯片实现了USB电平与TTL电平的相互转换。从而实现将输出用micro USB-USB线与树莓派相连接。

除此之外,该模块上还有一个标称中心频率为8.00MHz的晶振。

■2.2 微处理器

本设计使用树莓派3B作为CPU系统,Linux系统版本为Linux raspberrypi 5.4.51-v7,可以在树莓派官网https://www.raspberrypi.org/software/operatingsystems/ 下载树莓派OS,如带有树莓派操作系统与桌面和推荐的软件的最新系统版本下载链接为:https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2021-01-12/2021-01-11-raspios-buster-armhf-full.zip ,本链接所下载系统兼容所有树莓派型号。树莓派是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一个10/100 以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一块很小的主板上,具备所有PC的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。树莓派以其低能耗、移动便携性、GPIO等特性,可以用来控制硬件、电机,加载传感器实现环境监控,还能涉足物联网。树莓派上自带有Thonny软件,它是基于python内置图形库tkinter开发出来的支持多平台(windows,Mac,Linux)的python IDE,支持语法着色、代码自动补全、debug等功能,是一种“轻量级”的python IDE。实验的代码编写和调试在此软件内进行。

本实验需要额外添加的类库及其安装命令如下:

(1)serial是关于串口通信的类库,pyserial模块封装了对串口的访问,用户调用就能实现对串口的访问和数据的读取。python里面使用serial库来操作串口,serial的使用流程跟平常的类似,具有打开、关闭串口,设置端口和波特率等串行口状态,读、写数据等功能。在树莓派中,其安装命令为:

sudo apt-get install python3-serial

(2)matplotlib是关于python绘图工具的类库,在树莓派中使用以下两行命令完成对numpy和scipy库的安装:

sudo apt-get install python-numpy

sudo apt-get install python-scipy

在安装好前两个库的前提下再安装matplotlib类库,安装命令为:

import matplotlib: sudo apt-get python-matplotlib

本实验使用代码:draw_data = np.array(list_768).reshape(24,32),即可对热成像探头采集并经过转换后的768个温度数据,绘制生成24×32分辨率的整张热成像图。使用代码imax,jmax = np.unravel_index(draw_data.argmax(), draw_data.shape)可以在整幅图像中寻找温度最大值的位置。

3 功能实现

本文将对一瓶热水、正在加热的电烙铁、正在运行的树莓派三个物体进行测温,并绘制划分区域后的热成像图,以此为例,对各功能模块运行结果情况进行展示。测温场景如图2所示。

图2 对三个物体的温度监测

■3.1 完整的数据接收实现

正常情况下,MLX90640模块每一次测量被测物温度信息后将发送给树莓派一帧共有1544位的数据,其中有效的包含完整温度信息的数据个数是1536个,本实验中使用list_1536装有效数据。MLX90640模块将测得的数据通过串口通信传给树莓派,树莓派先获取系统当前时间,为了保证无论数据从当前帧的哪一位开始传输,树莓派都能接收到至少一帧完整数据,待一切就绪后一次接收3200个来自传感器的数据。

本实验的帧头为[90,90,2,6],判断树莓派是否完整接收到一帧数据的方法如下所述:在接受到的3200个数据中开始帧头检测,从第一个帧头到第二个帧头之间包含了一帧想要获取的数据信息,将这一段数据减去首位各两位的两帧数据的帧头后,再减去剩余数据最末的四位帧尾,由此可以从这3200个数据中获取来自探头模块发送的与温度信息相关的完整数据。而串口数据的发送不可能保证不存在数据的丢失问题,因此可以自己设置一个帧的数据用于检测数据是否完整,其具体思路如下所述:本实验检验数据完整性的思路是判断接收到的数据个数是否符合要求,即实际接受到的数据个数是否等于理论接收数据1544个,由此判断数据的完整性。例如自己设置一帧数据list_2=[自设帧头1,自设帧头2,理论接收数据个数,有效数据开始的位数,有效位数截止的位数,自设帧尾1~3],共计八位数据,list_1装入接收到的一帧数据中不包含帧头帧尾的数据,用list_2+list_1作为返回值装到list_1536。

在温度转换处理时,先判断list_1536中第三个数据是否为1544,即判断数据接收是否完整,满足条件则视为树莓派接受的数据完整性好,可以用于热成像图的绘制。然后再忽略list_1536的前八个数据,即忽略用于校验数据完整性的list_2里面的数据,只对list_1中的数据进行温度转换。在这1536个有效温度数据中,每两个数据可以转换成一个温度值,根据温度转换公式将数据转化为768个温度数据存入list_768中,再将这768个温度数据分别存入到三个不同的数组中去,以便于在绘制的整张热成像图中求得每个区域最高温度的大小以及整张图片最大温度值的位置。

■3.2 温度数据的获取与转换

3.2.1 温度的获取

例如一帧数据

<5A5A-0206-6EOE-690E-5AOE-XXXX-050E-8DOE-D540>

Byte0~Byte 1---0x5A0x5A表示帧头;

Byte2~Byte3---0x0206 表示数据量 =0x06*256+0x02=1538个温度数据(包括目标数据和MLX90640自身温度数据);

Byte4~ Byte1539---表示图中768个点的温度数据,输出顺序一次为:

(Col 1,Row 1) →(Col 32,Row 1) →(Col 1,Row 2) →(Col 32,Row 2)

→ (C o l 1,R o w XX)→(Col 32,Row XX)→(Col 1,Row 24) →(Col 32,Row 24)

注:(Col 1,Row 1)为上图中右上角开始,转换后所得温度均为放大100倍后输出。

图3 数据采集示意图

3.2.2 温度的转化

从数据到温度的转换通过以下公式进行:

其中Tnum转化后的768个温度数据,列表list_1536表示接收到探头发送的完整的1536个数据,开始时num=0,num0=0,每次转换后num=num+1,num0=num0+2。

Byte1540~ Byte1541表示MLX90640自身温度数据,也由转换公式计算得到。

Byte1542~ Byte1543表示前771个字的累加和,每个字为16bit。

Word1=0x5A5A,Word2=0x0602( 即 数 据 量 ),Word3=0x0E6E(即点1的温度数据),……,Word770=0x0E05(即点768的温度数据),Word771=0x0E8D(即MLX 90640的温度数据),校验和=Word1+Word2+Word3+…+Word700+Word771= Byte 1543*256+Byte1542。

■3.3 区域划分功能的实现

本实验由于原本设定输出图像尺寸为24×32,由于图片在水平方向长度更长,固采用纵向区域划分,纵向区域划分适用于对左右排列的物体或设备的温度监控,其具体步骤如下:将一帧去掉帧头帧尾的有效数据进行温度转化后的768个温度数据,先进行整体绘图,得到一个24×32分辨率的图像。然后将其分别装入大小为24×11、24×11、24×10的A、B、C三个数组中, 从而实现每十一列(最后一个区域是十列)划分一个区域得到三个有效监控区。将每个区域的数组A、B、C分别使用函数统计出最大值max1、max2、max3,找出最大值点的位置并显示在图片上,即可对三个区域的最大值进行监控。最后将最大温度值位置标注在图片上,以便对整体进行监控管理。

若希望对图像区域进行横向划分,例如,将32×24的图像从上至下划分三个区域,设计思路为将温度转换后的数据分别装入大小为32×8的三个数组D、E、F中,后续步骤类似,通过对D、E、F三个区域的独立最大值监测以实现叠放式设备或物体的温度监测工作。

从图4可以看到,图片被纵向分割为左、中、右三个区域。左边装有热水的瓶子最高温度为60.0℃,正在加热的电烙铁最高温度为77.09℃,正在运行的树莓派图像边缘被掩盖,最高温度为19.89℃。并标记出整张热成像图最大温度点的位置在正在加热的电烙铁头部。

图4 纵向划分区域后的热成像图

4 总结

本文基于MLX90640探头的热成像图划分区域的研究过程进行阐述。红外温度探头MLX90640将测得数据用串口通信方式发送给树莓派,树莓派首先将接收到的数据进行完整性判断后,再对接收到的完整数据进行数据到温度值的转换,然后将所得的768个温度数据进行图像绘制,再将其分为三个数组,针对每个数组求取其最大温度点的位置和大小,标记整幅图像中的最大温度点位置。相比于传统测温系统一对一的监控模式,本设计在此方面有所提升,以一个探头同时监控多个设备,提高了资源利用率,也为用户节省成本,便于用户进行整体监控和管理。除此之外,还可以在生成的热成像图中直接明了地发现探头检测到最大温度点的位置,便于人工复查寻找到发热点。

猜你喜欢
树莓测温串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于树莓派的骑行智能头盔设计
电子制作(2019年11期)2019-07-04 00:34:32
基于WiFi无线通信测温系统的设计
电子测试(2018年22期)2018-12-19 05:12:06
基于树莓派的远程家居控制系统的设计
电子制作(2017年17期)2017-12-18 06:40:43
变压器光纤测温探头的安装固定
电子制作(2017年8期)2017-06-05 09:36:15
基于DS18B20的单片机测温系统
电子制作(2016年21期)2016-05-17 03:52:50
USB接口的多串口数据并行接收方法探索
响应面法优化红树莓酒发酵工艺
中国酿造(2016年12期)2016-03-01 03:08:19
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
地矿测绘(2015年3期)2015-12-22 06:27:26
基于并行控制的FPGA多串口拓展实现