《基于GD32F103RET6单片机的热成像检测器的设计》15000字(论文)_第1页
《基于GD32F103RET6单片机的热成像检测器的设计》15000字(论文)_第2页
《基于GD32F103RET6单片机的热成像检测器的设计》15000字(论文)_第3页
《基于GD32F103RET6单片机的热成像检测器的设计》15000字(论文)_第4页
《基于GD32F103RET6单片机的热成像检测器的设计》15000字(论文)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-PAGEIV-基于GD32F103RET6单片机的热成像检测器的设计摘要以往的体温检测技术是以接触人体的水银和额温枪为主要方式,针对当前的疫情这些方式不仅需要大量的人员和物质,且加大了因人员接触带来的感染风险。使用红外热成像检测器去进行非接触方式检测体温,可以帮助人们安全快速的初次筛查出人群中体温不正常人员,然后对体温异常人员再进行人工二次检测,可以提高人员密集场所的检测效率。此设计是基于GD32F103RET6单片机的热成像检测器。此检测器具有高精准度和高分辨率的优点。在此设计过程中使用了电路设计、原理图绘制、PCB板制作。编写了检测转换周围温度信息、切换颜色等程序。利用热成像检测器MLX90640设备收集人体某一位置向外发出的红外辐射,转化为数字信号传输到单片机中,并经过颜色代码将其转化为彩色的热力图像,通过屏幕显示图像。通过观察屏幕中显示的图像温度信息判断人体体温是否正常,也可以用按键来切换热力图显示的颜色。通过立创EDA中3D预览功能,完成整体设计,使其更美观。经实验结果显示,此热成像检测器可成功实现周围温度信息转换为热力图显示、按键切换热力图等功能。这种设计解决了传统测温的局限性,可不接触被测人员对其快速进行温度检测。关键词:GD32F103RET6,红外检测;热成像目录1绪论 11.1课题背景和研究意义 11.2国内外现状及应用邻域 21.2.1国外现状 21.2.2国内现状 31.2.3应用领域 41.2.4发展趋势 51.3研究的主要内容 62总体方案 72.1设计要求 72.2总体设计方案 72.3器件的选择 72.3常用的三种插值算法 102.3.1最近邻插值法 102.3.2双线性插值法 112.3.3双三次插值 132.4选择的算法 133硬件部分设计 143.1总体设计 143.2红外传感器模块的组成 143.3单片机系统 153.4USB模块 153.5LCD屏幕模块 163.6按键电路 173.7总体电路图 184软件部分设计 194.1使用的软件 194.2开发环境搭配 194.3主程序框图 214.4代码分析 224.4.1MLX90640的相关内容 224.4.2插值算法代码 224.4.3显示温度代码 224.4.4颜色代码 225实物测试 245.1PCB的制作 245.2实物图 245.3调试过程 26结论 28参考文献 29附录程序代码 30·1··PAGE12·PAGE11绪论1.1课题背景和研究意义随着时代的不断进步,在日常生活中,很多领域中都可以看到红外热成像,提高了人们的生活质量,例如在医疗领域、工程领域等等。热成像技术通过使用光学成像物镜和红外检测设备,去收集被检测测目标的红外辐射的能量分布,并将获得的图像反映到这个红外检测设备的光敏元件上[1],就是物体发出的这些红外辐射能量是不可见的,经过此技术转变后变成人眼可以观察到的热力图像,被测目标的不同温度就在图像上表现为不同的颜色。用红色和粉色来表示被测物体上温度较高的地方,温度较低的地方用蓝色和绿色表示。目前,疫情还在全球范围内流行,各个国家地区的疫情持续不断,国内目前疫情控制向好的局势发展,但部分地区仍会不时发生疫情。面对疫情的不稳定、不确定的局势,一定要认真的研究科学和合理的方法,细致周密地制定好各个地区的疫情防控措施,确保人们的复工复学万无一失。新冠肺炎前期的临床症状首要体现为:发热、干咳、乏力。因此,在人员出入密集场所的地方,一定需要设置检测点进行人员体温测量[2]。当前,大部分的场所使用的都是手持式红外体温测温仪。这种方式增加了疫情工作人员们之间交叉感染的风险几率,并且当人流量大的时候,检测的效率低。工业生产活动中,大量的设备机器经常处于长期高速运行状态,这就导致机器温度会上升,使用一些热成像检测器对这些易高温的机器进行定时的检测和监控[3]。不仅保证了机器的安全运行,还使在出现异常情况时,能够及时发现,清除安全隐患。一旦确定某一温度超过设定值,可以设置报警和消防灭火功能。而且,利用热成像检测器还可以对工厂生产的产品进行质量的控制及管理[4]。电力行业里,在发电机、高压输电线路和配电线路等,都可以使用热成像检测器对沿线线路检查,找出温度较高的故障地方,及时排查故障,便于减少事故隐患[5]。使用红外热成像检测器对设备机器进行电力检测,能让工作人员远离设备,这种方式安全性比较高。并且这种不与机器进行接触的测温方式不会影响到该机器的运行,此检测方式扫描温度速度快、精确度高、测温范围宽、监测准确定位,及时发现问题,节省了工作人员大量时间。经科学验证,部分传染性的疾病在病症发作时,通常人的身体体温要比正常时高上一些。红外热成像技术在人体疾病防范地方的使用,主要是通过收集人身体自然发出的红外辐射的数值,经检测器去测量人体的体温,经过对体温的检测,去及时发现体温不正常的人群,再对这些体温不正常的人员进行深度筛查,及时的避免了疾病的大范围传播,将疾病控制在小范围中[6]。也可以对部分人群进行体温监控。而且,红外热成像检测器还可以同步检测到目标范围内多人的体温情况,因此这种检测器对于人体体温检测的效率要比平常使用的体温检测的设备效率高很多。红外热成像检测器的非接触式人体测温功能是通过测温型成像和相关算法技术相结合,被检测的人员可以在距离检测设备5~8米的地方进行人体体温检测,这种检测方式不易引起被检测人员的反感和恐慌行为,检测工作人员可以在远处迅速进行被检测人员的体温筛查,确定温度不正常的人员,从而实现潜在疫情人员的隔离。可以在传染病暴发早期快速发现、较早隔离,减少大量人员被传染问题的出现。这种检测方式弥补了过去传统的体温检测方式仅针对单体测量,耗时长、还使检测人员易交叉感染等缺陷之处。这样可以有效的控制住疫情的扩散,减少人员的大量感染,很适合在航站楼、车站、医务所、超市及学校等人数多的公共场所快速进行人体体温检测[7]。热成像检测技术的出现,提升了这次疫情检测的效率,降低了人员交叉感染的风险。此次设计就是根据目前有些地方人体体温检测的时候,检测人员与被检测人员相距过近而做出的人体红外热成像温度检测器。是以GD32F103RET6作为微处理器,配置一种红外非接触式的传感器MLX90640,可以迅速处理检测到的相关信息,通过被测人员的身体红外辐射能量去判定此人的体温,并以热力图的方式显示,并使用按键控制热力图像的显示颜色和使其显示的图像不再变化。1.2国内外现状及应用邻域1.2.1国外现状红外热成像检测器于第二次世界大战的时候,就已经被应用在军事邻域中,这种技术是靠红外辐射来进行工作的,它可以士兵们在黑夜的战场上清晰地观察到敌军的行踪。该系统采用的是无缘接收方式,它可以比无线电雷达等可见光装置更安全、隐蔽。近年来由于此产品技术不断成熟和疫情的不断爆发,红外热成像检测器开始在民用邻域被广泛应用。在全球的市场中,无论是军事邻域还是民用方面,美国企业在全球的市场中占据了主导的地位,法国、英国、德国、日本、以色列等国的相关企业在各自特定的邻域都有着相对的优势。与国际热成像检测器市场比较,国内的军事邻域由于起步较晚,基础还不扎实,仍在努力向他国追赶阶段。这几年红外热成像检测器在国内军事和民用方面的使用处于讯速前进的阶段[8]。由于美国在红外热像方面比其他国家起步较早,所以在生产实力和产品质量方面都是远超其他国家的。美国的德克萨斯仪器公司是最早研究的这方面的,它首次研究出第一代的军事领域中的红外热成像检测器。近几年,欧洲和亚洲的红外热成像产业大步发展,但从总体上看,规模与美国进行对比,仍然有着较大的差距。因为各国都限制或者禁止此相关器件向国外出口,所以大部分的市场都集中在欧美的地区。预计在很长的一段时间,美国的红外热成像市场仍会占据主导地位。在民用邻域的市场中,全球的红外民用产品企业有美国雷神、美国FLIR、美国DRS、英国BAE等。1.2.2国内现状中国的热成像检测技术是在20世纪70年代中期后才逐渐发展起来的,经过科学家们多年来坚持不懈的奋斗,用自己的技术方法,中国的科研工作人员已经研究开发出了用于多种地区和场景的热成像检测器和热成检测系统。多种具有良好性能的红外热成像检测器被大量地应用在中国的国防邻域民众的经济基础建设上。中国的红外热成像检测技术与他国相比起步很晚,热成像检测器是当前一个新兴的高科技产品,成功研发出来的难度大,需要的周期较长,较难具体到产业化生产。对于新进入此邻域的公司,想成功研究出在消防邻域中使用的红外热成像检测器最少需要2年的时间[9]。在产品研发出来之后,如何去将其推向市场,还需要营销渠道。国内在红外成像检测器生产方面的主要有科研院和公司企业这两个部分。国内的科研院有中科院上海技物所、兵器工业凌云集团、兵装集团湖北华中光电等。虽然国内的一些科研场所有红外热成像检测器的部分技术,且已经成功研发出相关产品,但不能够快速转化为市场上的商品,就缺乏了进一步改进和发展的机会,所以技术上未能赶上国际上的先进水平。真正进入了大众视野范围内是由于近两年疫情的爆发,使得红外体温计被大面积应用。以往,国内的大部分企业从事产品研发能力弱,没有较大的国际品牌影响力,性能无法与国际产品形成竞争,许多的相关企业都是国外产品的经销商[10]。目前,国内红外热成像检测器的产业竞争猛烈,头部效应开始渐渐形成起来,在全球十强企业里,中国此行业的厂家已占据了四席,这四家企业是高德红外公司、海康威视公司、睿创微纳公司以及大立科技公司。预期中国在红外热成像检测器的市场规模在2025年将会达到123.4亿美元,国内2022-2025年红外热成像市场预测如图1.1所示。图1.1中国2022-2025红外热成像市场预测1.2.3应用领域在军用邻域方面,如表1.1表1.1军用邻域应用邻域主要特征应用实例陆地武器应用装甲车、坦克等军事邻域车辆的夜晚侦察[11]功能特点提高在夜晚环境下战场上的识别能力个人携带式武器装备应用反装甲车式个人便携式兵器,单兵夜视武器功能特点反坦克个人携带式武器可以武器在发射后能够自己选择目标.具有自己选择选择目标、选择瞄准点等强大的能力。飞行武器应用飞机和导弹武器功能特点用来探查、监视等,并且有夜晚作战的能力和在攻击选择敌对目标之后可以自动追踪海军舰艇应用军舰上的红外成像可以划分为晚上识别目标和射击时的指挥,用在辨别和跟踪敌对的低空导弹方面功能特点自动去探查和追踪目标。还能向总控台中心提供目标的方位,可识别海里和岛上打过来的导弹在民用邻域,如表1.2所示:表1.2民用邻域应用领域应用实例预防维护用于检查机器设备运行时的工作状态,若机器故障,可将其表现为温度图像的形式。根据测得的温度与历史数据或标准数据进行对比,可以在机器因高温毁坏前找到危险地方,提前进行维修保养,从而提高机器生产能力,减少了维修成本和时间制程控制在生产的前期过程中对生产的产品是否合格进行检测可以有效保证产品的质量,可用在工业生产中几乎所有的制造过程,特别是用于可视性差环境下的生产过程建筑检测用于检测建筑设施中电线的不良绝缘、楼层墙壁渗水等研发通过观查产品的热力图分布状况图像去处理其可能会发生的自热问题,已在手机零件和家用电器等的研发中均有采用医疗检疫通过检查人体病变部分的热力图分布以及其温度与正常相比的差异,对人体的病变部位进行检查,更加精确的定位。医学使用的热成像技术在1957年用于探测乳腺癌到现在用于多种疾病的检查,已经开始作为人体表面的肿瘤和一些易发的皮肤病等方面有效的检查方式。在2003年的SARS疫情和之后发生的甲型H1N1流感以及当前的C0VID-19新冠疫情检测治疗中,通过使用红外热成像检测器,对发现人群中的病体、减少疫情的传播起到了非常重要的作用安防监控大量被使用在超市、工厂等有大量人群聚集的公共场所,特别是在夜晚重要场所的防范。2008年在汶川大地震里,红外热成像检测器就被使用在唐家山堰塞湖的日夜安全监控方面。警用执法通过车载和手持式的红外热成像检测器等,执法人员可以在夜晚和天气恶劣的情况下对罪犯进行搜索、追踪和定位。搜索救援在发生地震、火灾和交通事故等各种危险情况中用在消防等救援单位,快速实现对事故中的人员进行救援边防和海防巡护在边防、海防巡护中用于制止部分的人去进行走私、偷渡行为。导航可安装于汽车以及船只等出行工具上,通过扫描显示出前方热力图,辅助驾驶员对道路判断,也能够帮助海洋中船只导航,提前发现冰山和暗礁等不易发现的危险地区。以此来导航前方路况在未来将会拥有非常庞大的市场新市场食品的配送、兽医、汽车的保养方面、飞机的检测、船舶检测等1.2.4发展趋势近年来国内的基础产业和信息产业不断发展,红外热成像行业取得了很大的进步。当前,在红外检测器方面,由于受到基础科研能力以及工艺水平的局限,与国外的产业仍有一定的差距;但在光学系统、算法和图像处理等方面,我国已经有了较大的进步,使得产品的整体能够接近甚至达到国际先进水平,在一定程度上能够弥补在探测器检测方面的差距。伴随着国内此技术的重要环节的不断进步,在未来的时间中,国内的红外热成像相关产业完全能够实现自主发展,且在社会中拥有巨大的市场[12]。此次疫情的爆发,红外测温的应用得到了大量的创新,在生活中发挥了极大的检测预防作用,固定式的红外热成像检测器的测温范围非常广,特别是对人脸部位的温度检测成像和在安检门上放置一种红外测温检测器,可以实现测量体温和进行安检的双重作用。在无人机上填加红外线测温机器,在智能的头盔上使用这种热成像技术等等,红外热成像测温检测器在快速的向着机器智能化发展,其开始不仅仅作为一个独立的产品,而是现代各种先进的技术相结合,如物联网和人工智能等,相信红外热成像检测器的运用在将来会更加便携,更加广泛的使用,种类丰富。这种技术还可以帮助科学家们去探索宇宙星空中的种种奥秘。可以设想此技术的使用范围将会得到更广阔的研究,推广以及普及。1.3研究的主要内容本次热成像检测器的设计是用GD32F103RET6单片机作为主控单元,结合了红外传感器模块、USB控制模块、LCD屏幕模块与按键电路。来进行对周围的环境温度检测,并将其转换为热力图显示的功能。总体工作内容主要包括此课题的总体方案的设计,使用的硬件部分的设计,运用的软件部分的设计以及实物测试。本文在第三章介绍了系统总体方案的设计部分,在第四章介绍了关于硬件部分的设计;第五章是研究了软件方面的设计;在第六章是关于实物测试方面的内容。首先,在总体方案的设计上,根据此设计所需的热成像检测的功能,确定所需要的各个模块,用红外传感器来接收周围环境的红外信号,用USB模块来供电,用GD32F103RET6单片机来做主控单元,将接收到的红外数据转化成热力图,再用LCD屏幕来显示,用按键来控制热力图的颜色转换。接着将硬件电路完成设计,用立创EDA软件去进行电路的原理图与PCB板的绘制。在使用USB时,需要注意的是需要搭配了一个降压电路,来将输入的5V信号转变为3.3V电压来给其他器件供电。然后,在硬件电路完成后,便需要程序的使用。用Keil软件编写相关的功能控制程序,其中主要包括算法代码、颜色代码、按键控制颜色切换的代码等等。最后,在将电路板上的器件通过焊接后,通过STM32烧录器将已经编写好的程序下载到电路板上进行调试。根据测试的结果对电路和程序进行一定的改进。

2总体方案2.1设计要求设计需具有如下特点:该设计以GD32F103RET6为控制核心,加上各种外围电路,如:红外传感器模块电路、USB模块电路,LCD屏幕显示模块电路和按键电路。该方案需要具备较低的成本价格,设计简单的特点。2.2总体设计方案该课题是通过使用红外传感器去获得周围温度信息,将获得的信息送进单片机,通过单片机代码的处理将接收到的被测物的温度辐射量转变为相应的电信号,进行信号的放大、滤波等处理,然后输入单片机内部的16位A/D转换器中获得相应的数字信号,再将经过处理获得的数字信号输入屏幕显示电路中进行显示,通过按键来切换显示的热力图颜色。并可以通过按键能够使屏幕显示的热成像保持不变。总体框图如图2.1所示:被测环境被测环境红外传感器单片机Lcd屏幕显示按键图2.1系统程序总体框图2.3器件的选择芯片选用GD32F103RET6,它是32位的单片机,可以快速处理数据量大的信息。因热成像检测的数据量较大,选择8位单片机或16位单片机会使热力图在屏幕显示时较慢反应,会出现一定的延迟,所以选择32位的单片机。使用的GD32F103RET6单片机是基于ARM的32位通用微控制器,cortexm-M3RISC内核,在处理能力,外设设置和降低功耗方面具有最佳的比率。它工作运行在108兆赫的频率下,进行访问闪存位置时零等待状态,可以获得最高的效率。它提供了3MB的片内闪存,以及96KB的静态随机存取存储器。大量的加强型I\O和外设引脚连接到2条APB总线,提供了多达三个12位ADC,两个12位DAC,10个通用16位定时器,2个基本定时器和2个脉宽调制高级控制定时器。拥有多达3个SPI、2个IPC、3个USARTS、2个UARTS、2个I\S、一个USB2.0FS、1个CAN和1个SDIO的标准和高级通信接口。使用2.6V到3.6V电源供电,测温范围为-40℃到85℃。自然界任何物体的温度若比绝对零度(热力学零度)高,其就会向外界环境发出一种热辐射[13]。当被测的物体自身温度不变化时,它的温度辐射值就会保持相对稳定的状态。这个时候我们就需要一个红外传感器去收集这个热辐射。红外传感器选用MLX90640。单片机通过模拟IIC通信协议去对其工作模式进行设置,并可以读取它相应寄存器内的温度数据。这种传感器的教程和参数都可以在网上轻松找到,便于后期的编程学习。这种传感器是工业标准的,并经过完全校准的热红外阵列传感器,分辨率为32*24像素,使用的是4脚T039封装和能与I2C兼容的数字端口。其包含768个热红外像素点。包含自身环境温度传感器和VDD电压检测ADC。其经过I2C接口,能够直接访问存储于内部RAM中的环境温度数据和红外阵列情况,以及实时的VDD数据。MLX90640有两个型号,为A型和B型。A型和B型的主要区别为:1:A型的视场角为110*75°,为广角镜头,要比B型的矮一点,对远方物体的捕捉能力低,但视野会比较宽阔。B型的视场角为55*35°,与A型比较而言,拍摄稍远的物体效果更好。2:A型的噪声比较大,而噪声会影像到绝对温度和灵敏度,所以在这种情况下B型要好一点。经过比较,所以选择B型的MLX90640作为此设计的红外传感器。MLX90640共有4个引脚,其中有两个电源,需要3.3V供电,另外两个引脚是通讯I2C接口,如表2.1所示。I2C支持的最高通讯速率为1MHz,I2C是经典的时序,具有很宽的通讯速率范围,通讯正常在几十赫兹到兆赫兹的范围内,功耗大约是25mA。对此器件供电必须使用3.3V的电压,但I2C的两个引脚可以使用2.5~5V的电压。表2.1管脚定义管脚名称功能说明SDAfc串行接口数据线(输入/输出)VDI)电源正GND电源负(GND)SCLfc串行接口时钟线(输入)此传感器的最高测量速率为64Hz,同时越快的速率就会带来越大的噪声,灵敏度就会被影响导致反应变慢,官方的指标是每差距1Hz的测量速率时就会影响到0.1℃的测量温度。测温范围是-40~300℃。测温的精确度会受到成像的区域的影响,靠近中间位置的区域会相差0.5~1.0℃,成像的4个角会相差2.0℃,其他区域约是±1.0℃。当传感器连接上电源后,需要5分钟左右的时间去达到平衡状态,这个时间被称为热平衡时间,若未达到平衡状态时,测量的温度会和正确的温度有一定的差距。每一个MLX90640传感器都可能存在着无法使用或准确未达到要求的像素点,其中最多有四个点。这可能是和传感器的生产过程有关,毕竟没有完美的东西。在出厂时,这些达不到要求的像素点都会被记录到传感器的EEPROM里,在使用的时候,需要读取这里面的数据,在成像时专门修改一下这些有可能存在的达不到要求的点的数据就可以。在这个传感器的官方API库里,无法使用的点和准确度达不到要求的点是不区分开来的,都是使用这些点相邻的好的点,然后把这些好的点的平均值去替代坏点的值。MLX90640的外形及管脚如图2.2所示。图2.2MLX90640外形及管脚数据阵列由768个红外传感器测构成(每个传感器也称作“像素”)。每个像素用它所处的行和列来表示PIX(i,j),i表示行(1~24),j表示列(1~32)。如图2.3所示.图2.3像素点在视域中的位置2.3常用的三种插值算法在对图像进行数字化处理的时候,时常会碰到坐标取值为小数的像素点的问题。在遇到这一情况的时候,使用临近该像素的值,去对此坐标进行相关插值处理。图像插值算法就是在对目标图像进行缩放的过程中,根据已有的像素值,经过算法生成图像各个部位的像素值的过程。图像的相关插值方法有:最近邻插值算法,双线性插值算法,双三次插值算法以及其他方法。2.3.1最近邻插值法这种算法与其他算法比较是最简单的,不用大量的计算,只需要四个与待求像素点的临近像素,使用其中距离最近的像素灰度值来取代所求像素[14]。设置待求像素的坐标为(x+u,y+v),【注:整数数值x,y表示,在0.1上的小数值用u,v表示】。这时候待求像素的灰度值是f(x+u,y+v),选择离插入的像素点(x+u,y+v)最近的一个像素点,插入的像素点的数值就用它的灰度值代替[15]。

特点:尽管这种方法的计算量不大,但是会产生插值产生的影像灰度不连续的问题在灰度变化的地方则会产生显著的锯齿形。2.3.2双线性插值法在像素的点矩阵中,在x方向和y方向使用线性插值。那么先看看一维界面的线性插值,如图2.4所示。

图2.4一维线性插值计算方法如下公式(2.1)(2.1)对于二维图像,如图2.5所示。图2.5双线性插值图像假如我们想求出某一个函数f在一点P=(x,y)的数值,首先假定已知道了该函数f在Q11=(x1,y1)、Q12=(x1,y2),Q21=(x2,y1)以及Q22=(x2,y2)这四个点的数值。最普遍的情形,f就是某一个像素点的像素值。首先在x这一方向进行线性插值,可以得到f(x,y1)和f(x,y2)像素值,如公式(2.2)[16](2.2)接着对y轴方向上的数进行线性插值,得到P点的像素值,如公式(2.3)(2.3)假定一个源图像是3*3的图像,这样它的中心点坐标就是(1,1),需要得到9*9的目标图像,目标图像的中心点坐标为(4,4)在进行插值算法的时候,为了使源图像的像素信息更加平均,最简洁明了的方法就是将(4,4)这个中心点映射到(1,1)的这个中心点,然后直接使用公式计算srcX=4*(3/9)=1.3333!=1,即在进行插值算法的时候,使用的像素点都位于图像的右下,而非在图像种均匀分布。目前,需要将其的中心点处进行对齐,就需要用srcX=(4+0.5)*3/9-0.5=1,这种结果正好将其中心点对其起来。在图像处理的时候,我们先根据srcX=dstX*(srcWidth/dstWidth),srcY=dstY*(srcHeight/dstHeight)通过对目标像素在源图像中的位置进行计算,在此计算的srcX和srcY通常表示为浮点数的,例如f(1.2,3.2)这个像素点在实际上并不存在,作为虚拟而存在,首先需要确定四个与其接近的实际存在的像素位置:(1,4)(2,4)(1,3)(2,3)写成f(i+u,j+v)的形式,则u=0.2,v=0.2,i=1,j=3

假设他们的值为:100200300400根据上面公式,求得下面的数据:x1=1x=1.2x2=2y1=3y=3.2y2=4f(Q12)=100f(Q22)=200f(Q11)=300f(Q21)=400f(R1)=((2-1.2)/(2-1))*300+((1.2-1)/(2-1))*400=0.8*300+0.2*400=320f(R2)=((2-1.2)/(2-1))*100+((1.2-1)/(2-1))*200=0.8*100+0.2*200=120f(P)=((4-3.2)/(4-3))*f(R1)+((3.2-3)/(4-3))*f(R2)=0.8*320+0.2*120=2802.3.3双三次插值在数值的分析中,使用双三次插值也是目前运用于二维空间中最常见的一种算法。在此方法里,函数f在点(x,y)的值可用一个标准网格中的最邻近的十六个取样点去进行加权平均方法求得,在此,采用两个多项式插值三次函数,并将其运用于每个方向。2.4选择的算法本次设计采用双线性插值算法对已有的温度数据进行合理地扩充,从而提高图像分辨率,高低温分布更加明显,成像效果更接近真实。双线性插值方法就是一种很好的图像放大方法,通过使用了源图区域里虚拟位置处周围的四个实际存在的像素值,它们经过算法处理一起去确定在目标图中的某一个位置像素值,所以在放大方面要比最邻近插值算法要好一些。

3硬件部分设计3.1总体设计本设计的主体是采用GD32F103RET6单片机作为核心,选用红外传感器MLX90640模块、USB模块、lcd屏幕显示模块和串口搭建完整的热成像检测系统。该方案使用的是用USB外接5V的电压,经过降压变成3.3V。MLX90640红外传感器首先接受外界信号再传输到单片机中,单片机中经过代码处理输送到lcd屏幕进行展示。并通过STM32烧录器将编写好的程序下载到已组装好的电路板中进行调试。分析实际的测试结果对电路以及程序等方面进行一定的改进。该设计方案包括红外传感器模块、单片机控制模块、USB供电模块和屏幕显示模块以及按键电路模块。3.2红外传感器模块的组成在此设计中,由一个并联电容,两个上拉电阻和传感器MLX90640构成了红外传感器模块,如图3.1所示。R1和R2是作为上拉电阻,一端接到电源正极(3.3V),一端接到输出端,可以稳定输出端的电位,避免悬空,还能够加强输出端的驱动能力。单片机通过模拟IIC通信协议对其工作模式进行配置,读取它相应寄存器内的温度数据。其中SCL引脚与单片机的PC10相连;SDA引脚与PC11端口相连。此传感器的数据手册中要求VCC引脚需要接3.3V的直流电,其GND引脚要接地,这样才能正常工作。SCL串口作为时钟线(输入),SDA作为I2C串行接口数据线,进行数据的输入或输出,都是双向的I/O线。接口的电路为开源输出,就需要加上拉电阻接VCC。在总线处于空闲状态,不进行数据传输时,这两条线都处于高电平的状态。外界红外辐射信号经此传感器接受,将其转变为电信号后经传感器内部电路进行放大滤波处理后,经数据传输线SDA传输到单片机中进行后续处理。图3.1红外传感器MLX90640模块电路图3.3单片机系统图3.2单片机模块电路图如图3.2为单片机部分电路图。左上角用一个LED灯,有电时亮起,用来判断是否正常工作,作运行指示。C9组成滤波电路,用来滤波,去高频,使系统运行更稳定。NTC用于负温度系数检测,增加温度信号检测的效果。并联一个电容防止不稳定。R3和C8组成复位电路,使用上电复位方式,高电平开始工作。通电后R3对C8进行充电,复位时间约为电容充电时间。部分引脚系统默认设置为VCC和GND,所以在电路图中将相关引脚接到VCC和GND上。时间计算:T=1.1RC=1.1*10000*0.0000001=0.0011s=1.1ms。3.4USB模块图3.3USB模块电路图此系统采用的是外接5V电源供电方式,而单片机和红外传感器的最大工作电压无法承受5V的输入电压,从MLX90640传感器的数据手册和中看到其中的芯片特性参数要求,支持用I2C通信协议去读取相关数据,但是需要给它3.3V的电压,以及单片机的工作电压范围为2.6V到3.3V正常工作,所以通过在USB模块中填加降压电路来将外接的5V电压降到3.3V。如图3.3为USB模块电路图,由一个USB接口,一个NCP稳压片和并联几个电容构成。用USB来外接5v的电源电压,用U1作稳压片,通过C1、C2、U1、C3和C4组成的电路来使5V电压降压变成3.3V的电压。USBD+、USBD-连接到单片机的PA12、PA11。PA12、PA11的第二功能分别为USBDM/USBDP,可以开启USB从设备功能,如虚拟串口,实际在使用中并未用到。3.5LCD屏幕模块如图3.4所示为LCD屏幕模块电路,由一个三极管和一个屏幕构成。屏幕用来显示GD32F103RET6单片机发送的图像数据,温度信息。LCD引脚连接在单片机的LCD总线上面,这种连接方式可以明显加大LCD的刷屏速度。图中的LCD_RS、LCD_CS、LCD_RD、LCD_WR连接在单片机的PA2、PA3、PC14_OSC32_IN、PC14_OSC32_OUT上,单片机通过这些引脚传输信号用来实现对液晶屏的控制。WR用于写入数据,RD用作读取数据。连接一个NPN三极管,此三极管用作屏幕中的背光灯的控制,屏幕中的背光灯不点亮,屏幕就看不到显示的数据,此三极管连接一个R13电阻,用作限流作用,防止电流输送过大烧毁屏幕中的背光灯。图3.4LCD屏幕模块3.6按键电路图3.5按键K1和K2图3.6按键K3和K4通过按键电路实现需求功能的实现与控制,切换热力图的颜色,按住按键使热力图界面保持静止不动,按下按键直接关机。K1,K2按键电路如图3.5。单片机相关引脚(PA1)在按键1未按下时处于高电平,按下K1使其直接连接到地,开始运行,K1按键通过输入一个信号给单片机,来控制单片机运行相关代码输出相关颜色来使屏幕中热力图的颜色切换。K2按键暂未赋予其功能。K3,K4按键电路如图3.6所示。K3按键按下后,此时单片机相关接口PA1直接接地,经系统设置此接口为低电平时屏幕息屏,使整个器件直接关机。K4按键按下时,在电路中串联了两个相同的电阻,使此时的接口为按键未按下时电压的一半,经程序设置使屏幕能够保持当前状态不变。C10、C11和C12是去耦电容,可以防毛疵波动,C13作为滤波电容,用来防电压抖动,使系统运行更稳定。3.7总体电路图图3.7为此课题设计的全部电路图,在立创EDA中绘制完成了此电路图。图3.7总体电路设计原理图在此总体设计中,U1是供电模块,为单片机和电路板上其他器件供电,红外扫描信号通过U4传输到单片机内部,同时按键电路发出信号传输到单片机内部。单片机内部接收到红外扫描的数据并将其进行插值放大处理,以及按键电路输入的信号后,选择符合的条件将处理过的数据输出到U2,U2为显示屏显示测得的周围温度信息的热力图像。

4软件部分设计4.1使用的软件本次设计使用的是一个名为Keil的软件。当开发需要使用的单片机的时候,采用的是C语言或使用汇编语言,两者都无法直接烧写入单片机中,并且编写的代码所占用的体积就使单片机无法满足。因此,必须要有软件,能够将C语言或汇编语言,通过编译后生成单片机可以识别运行的二进制代码[17]。这样它所占的体积就会变得非常小,就能够存放在单片机的存储器中。Keil公司的软件就能够实现这种功能。它还有很多的优点,例如:便于管理建立的工程,能够自动加载代码,将代码编写,代码编译和仿真一体化,在调试时功能强大等优点。UVision软件包括工程的建立,代码编写,代码编译设置,进行代码下载调试和进行仿真等功能,uVision这个软件目前已经有uVision2、uVision3、uVision4和uVision5版本,uVision5是最新的一个版本。它是提供一个操作环境,并不能提供相关单片机具体的编写编译和下载能力,开发者需要自己添加相关单片机的库和烧录器。本次课题选择的是最新版本的Keil5。4.2开发环境搭配在所选用的芯片官方网址上寻找本次课题的芯片GD32F103RET6的PACK包,直接下载下来并解压安装即可,如图4.1所示。图4.1安装GD32F103RET6的PACK包以管理员身份打开Keil5。打开LicenseManagement界面选项(左上角菜单栏中-File-LicenseManagement),如下图4.2所示。图4.2打开LicenseManagement复制CID后,从相关资料中下载Keil最新注册机,打开注册机,将CID粘贴进去,选择Target为ARM,生成licence。将生成的licence经过复制后,在Keil里打开的LicenseManagement中进行复制添加。最后如图4.3所示。图4.3添加licence4.3主程序框图程序开始程序开始程序初始化初始化MLX90640读取传感器全部点温度数据不成功返回按键检测(改变色彩配置变量)图像放大色彩配置变量LCD显示伪彩0LCD显示伪彩1读取成功图4.4主程序流程图主程序流程图如图4.4所示。在程序开始运行时,首先需要初始化GPIO、LCD以及传感器MLX90640的引脚等等。接着传感器开始读取到检测到的温度数据,若读取成功,程序向下一步运行,若未读取成功,则返回重新读取温度数据。温度数据读取成功后,经过代码进行图像放大处理,然后设置图像中温度不同点的颜色数据,有两种颜色,经过按键处理可以变换颜色。4.4代码分析4.4.1MLX90640的相关内容MLX90640_SetRefreshRate(MLX90640_ADDR,RefreshRate);MLX90640设置MLX90640的测量速率(即:每秒测量几帧数据),参数值可以是0~7代表0.5、1、2、4、8、16、32和64Hz。返回0表示设置成功,-1表示设备未应答,-2表示重新读取后发现不是预期的值。MLX90640_GetFrameData(MLX90640_ADDR,data.mlx90640_Zoom10);此代码用于读取完整的一帧实时测量数据,计算所需要的完整的一帧数据为834个字(包括832个RAM数据和控制寄存器和状态寄存器)。如果返回-1表示MLX90640未应答,-8表示读取异常,若返回0或者1表示读取到了刚刚测量完成的子页0或者子页1(读取成功),此时参数framdata数组即是834个字的实时数据。4.4.2插值算法代码在对获得的图像进行目标放大处理时,会用到双线性插值算法,其相关代码如下:dst=(data2.mlx90640To[color]*cbufx[0]*cbufy[0]+ data2.mlx90640To[color+32]*cbufx[0]*cbufy[1]+ data2.mlx90640To[color-1]*cbufx[1]*cbufy[0]+ data2.mlx90640To[color+31]*cbufx[1]*cbufy[1])>>20;4.4.3显示温度代码在屏幕中需要显示屏幕中的最小温度、最高温度、辐射系数、中心点的温度以及外壳温度,用到了如下代码:Buf_ShowString(4,2,"Min:",BUF_BLACK,0);//显示屏幕中最小温度Buf_ShowString(230,2,"Max:",BUF_BLACK,0);//显示屏幕中的最高温度Buf_ShowString(4,0,"e=0.",BUF_BLACK,1);//显示辐射系数Buf_SmallFloatNum(140,0,data2.mlx90640To[368]-400,BUF_BLACK,1);//显示中心温度Buf_ShowString(240,0,"Ta:",BUF_BLACK,1);//显示外壳温度4.4.4颜色代码在设置热力图的时需要用到颜色的代码来将我们获得的温度信息转化为颜色在屏幕中显示,这样能够将温度不同处以颜色的差别清晰表现出来,一种颜色代码如下:constuint16_tcamColors1[]={ 0x400F,0x400F,0x400F,0x4010,0x3810,0x3810,0x3810, 0x3810,0x3010,0x3010,0x3010,0x2810,0x2810,0x2810,0x2810, 0x2010,0x2010,0x2010,0x1810,0x1810,0x1811,0x1811,0x1011, 0x1011,0x1011,0x0811,0x0811,0x0811,0x0011,0x0011,0x0011, 0x0011,0x0011,0x0031,0x0031,0x0051,0x0072,0x0072,0x0092, 0x00B2,0x00B2,0x00D2,0x00F2,0x00F2,0x0112,0x0132,0x0152, 0x0152,0x0172,0x0192,0x0192,0x01B2,0x01D2,0x01F3,0x01F3, 0x0213,0x0233,0x0253,0x0253,0x0273,0x0293,0x02B3,0x02D3, 0x02D3,0x02F3,0x0313,0x0333,0x0333,0x0353,0x0373,0x0394, 0x03B4,0x03D4,0x03D4,0x03F4,0x0414,0x0434,0x0454,0x0474, 0x0474,0x0494,0x04B4,0x04D4,0x04F4,0x0514,0x0534,0x0534, 0x0554,0x0554,0x0574,0x0574,0x0573,0x0573,0x0573,0x0572, 0x0572,0x0572,0x0571,0x0591,0x0591,0x0590,0x0590,0x058F, 0x058F,0x058F,0x058E,0x05AE,0x05AE,0x05AD,0x05AD,0x05AD, 0x05AC,0x05AC,0x05AB,0x05CB,0x05CB,0x05CA,0x05CA,0x05CA, 0x05C9,0x05C9,0x05C8,0x05E8,0x05E8,0x05E7,0x05E7,0x05E6, 0x05E6,0x05E6,0x05E5,0x05E5,0x0604,0x0604,0x0604,0x0603, 0x0603,0x0602,0x0602,0x0601,0x0621,0x0621,0x0620,0x0620, 0x0620,0x0620,0x0E20,0x0E20,0x0E40,0x1640,0x1640,0x1E40, 0x1E40,0x2640,0x2640,0x2E40,0x2E60,0x3660,0x3660,0x3E60, 0x3E60,0x3E60,0x4660,0x4660,0x4E60,0x4E80,0x5680,0x5680, 0x5E80,0x5E80,0x6680,0x6680,0x6E80,0x6EA0,0x76A0,0x76A0, 0x7EA0,0x7EA0,0x86A0,0x86A0,0x8EA0,0x8EC0,0x96C0,0x96C0, 0x9EC0,0x9EC0,0xA6C0,0xAEC0,0xAEC0,0xB6E0,0xB6E0,0xBEE0, 0xBEE0,0xC6E0,0xC6E0,0xCEE0,0xCEE0,0xD6E0,0xD700,0xDF00, 0xDEE0,0xDEC0,0xDEA0,0xDE80,0xDE80,0xE660,0xE640,0xE620, 0xE600,0xE5E0,0xE5C0,0xE5A0,0xE580,0xE560,0xE540,0xE520, 0xE500,0xE4E0,0xE4C0,0xE4A0,0xE480,0xE460,0xEC40,0xEC20, 0xEC00,0xEBE0,0xEBC0,0xEBA0,0xEB80,0xEB60,0xEB40,0xEB20, 0xEB00,0xEAE0,0xEAC0,0xEAA0,0xEA80,0xEA60,0xEA40,0xF220, 0xF200,0xF1E0,0xF1C0,0xF1A0,0xF180,0xF160,0xF140,0xF100, 0xF0E0,0xF0C0,0xF0A0,0xF080,0xF060,0xF040,0xF020, 0x0000,0xffff};

5实物测试5.1PCB的制作首先需要根据设计好的电路图,按照元器件与芯片之间的关系进行合理的布局,尽可能的方便走线,再按照各个器件之间的电气属性确定铺铜位置,去避免死铜的产生。在设计PCB板时还需要注意走线必须要钝角,不然会造成酸角,导致内部线路腐蚀,另外MCU输出信号线尽量使线宽线长保持一致,这样确保信号传输的时间准确性。通过在立创EDA中生成3D预览图,如下图5.1。图5.13D预览图5.2实物图根据绘制的原理图,购买了所需要的元器件、芯片和屏幕,之后对各个元器件进行了焊接在电路板上,构成了总体实物,实物正面图如下图5.2所示,USB接口放置在左侧,用于连接5V电压,经降压为3.3V为电路板上其他器件供电;左上角为串口,用来烧录程序,中间为单片机作为主控单元,处理收集到的温度信息,并将其转化为热力图在屏幕上显示。1按键用于切换颜色的功能,2按键暂未定义功能,按键3按下可以直接关机,按键4按下可以使屏幕中的热力图静止。图5.2实物正面图反面放置了一个MLX90640红外传感器,放置在方面便于收集被测者的信息,方便采集者在正面观察屏幕中的信息。如图5.3所示。图5.3实物反面图5.3调试过程在调试过程中,通过Keil软件,将STM32烧录器通过USB接口与电脑连接起来,在Keil中设置相关参数后,把相关代码经过烧录进实物中,调试和下载界面如图5.4所示;1是下载按钮,2是单步调试按钮。图5.4调试和下载驱动线上有四色的杜邦线,即白色、黑色、棕色、红色,这四个颜色的杜邦线先连接到STM32烧录器的相对应接口后,再连接到实物板子与之相对应上的四个排针上。实物中有六个排针,其中两个是预留的串口,是为了方便在调试过程中打印一些数据看看系统的运行状况。实际连接时将白色线接到单片机的PA14,黑色线接到单片机的PA13口,棕色线接到GND,红色线接到3.3V的VCC,具体如下图5.5所示。图5.5串口接线将串口线连接完成之后就能够进行相关程序的下载,在下载完成后便可进行实物的测试。完成后,用一个充电宝5V的输出电压给其供电,再经实物中的降压降到3.3V给其他器件供电。经测试后,屏幕能够正常展现出图像,如下图5.6所示,是测试人体手温度的热力图。人的手温度在正常状况下是35-37度左右,但会受到外界环境的影响,且影响较大。在夏天时,天气较热,温度就会高一些;在冬天气温比较低,手的温度就会比较低。同样,若用将手放在热水或是凉水中时,这时候测得手温就会和正常时有着很大的差距。也会因人而异,有些人因为阳气不足时手就会比较凉。此次测试发现在热力图中手心温度会比手指温度高,呈现出明显的红色,表示此处的温度与其他地方相比差距较大,有着明显的温度梯度。且在屏幕中可以很清晰的观察到手的轮廓,与周围环境的温度形成对比。图5.6实物图如上图5.6所示,屏幕界面左上角为整个屏幕中所测的最小温度,右上角是整个屏幕中所测的最小温度,左下角是此设计的发射率,右下角是它的外壳温度,下面中间位置的温度表示的是这个屏幕界面中温度。对于大多数的红外热成像检测器,需要设置被测物体的额定发射率,这个发射率能够补偿一些材料的表面的红外辐射能量不充足的情况,此值通常被设置为0.95。此设计设置了两种颜色,可以通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论