基于Arduino+LabVIEW的高精度超声波测距系统设计*

2016-11-10 06:54:38朱志强张潇宇王林童虞楠
单片机与嵌入式系统应用 2016年9期
关键词:下位测距上位

朱志强,张潇宇,王林童,虞楠

基于Arduino+LabVIEW的高精度超声波测距系统设计*

朱志强,张潇宇,王林童,虞楠

(江阴职业技术学院,江阴214400)

针对现场远程高精度测距的要求,提出了采用开源硬件Arduino和虚拟仪器Lab VIEW通过无线通信测距的方法。下位机通过Arduino控制器对温度及距离进行测量并发送数据,上位机对无线接收的数据进行温度补偿算法处理以提高测量精度。测试结果表明,本系统在不同环境温度下测量时能准确修正数据,提高了测量精度,有一定实用推广价值。

虚拟仪器;Arduino;超声波测距;温度补偿

引 言

在工业控制、工矿测量、车辆定位方面,测距有着深入应用,当测量距离较短时,超声波测距与微波、红外线、激光测距相比更具有优势,其对外界电磁场、光线及色彩敏感度低,更适于电磁干扰强、有毒、黑暗、烟雾或灰尘的恶劣环境[1]。由于超声波传播速度受温度影响最大[2],要提高测量精度,必须对温度引起的测量误差进行修正处理。采用数字手段进行测量,可以在算法中对测量值进行修正,从而提高测量精度,传统的超声波测距依赖于单片机对超声波传感信号处理,应用较为单一,可扩展性不强,本文介绍一种以Arduino为下位机控制并通过无线串口连接至Lab VIEW上位机的低成本、高精度测距系统设计。

1 超声波测距系统的原理

超声波是频率大于20 k Hz的声波,声能集中,传播的方向性好,可用于测距。超声波测距方法有多种,如时间*基金项目:江阴职业技术学院大学实践创新训练项目(201513137002);

无锡市职业教育创新发展专项研究课题(WXZJCX2015 02)。渡越法、相位检测法和声波幅值检测法[3]。声波幅值检测法易受反射波的影响,造成的误差较大,相位检测法虽然检测检测精度高,但实现相对复杂[4]。与上述两种方法相比,时间渡越法工作方式最为简单,软硬件都易于实现,本设计采用时间渡越法。

时间渡越法的原理是超声波模块得到触发信号后立即发射超声波,只要障碍物尺寸大于超声波波长,遇到障碍物后超声波返回,探头收到反射信号后只要测出时间差即可根据公式(1)计算出障碍物距离。

式中,S是超声波发射头与障碍物间的距离,v是超声波在空气中传播的速度,t为测得的超声波发生到反射接收的时间差。

由于超声波是属于机械波,其传播速度v依赖于传播介质,受环境温度影响。胡延苏[5]等对超声波的温度特性研究后得出环境温度与实际超声波传播速度的关系为:

式(2)表明,温度每升高1℃,传播速度约提高0.6 m/s。表1给出了几种温度下的声速,当环境温度在0~40℃变化时,声速误差达6.8%,因此要提高测量精度,必须采用温度补偿措施对实际测得数据进行修正。

表1 声速与温度关系表

采用开源硬件Arduino作为下位控制,可以非常方便地采集到环境温度和超声波返回时间差,通过无线串口模块将数据发送至上位机Lab VIEW,并在虚拟仪器后台进行温度补偿,将补偿后的测量值实时显示、存储。本测距系统设计总体框图如图1所示。

图1 超声波测距系统框图

2 下位机硬件设计

2.1核心控制模块

当前,“创客”一词深入人心,而Arduino平台则是电子创客们的首选。本设计的下位机控制模块采用Arduino中性价比最高的UNO控制板,该控制器核心是Atmega328单片机。Arduino UNO虽然源自于AVR单片机,但其开发过程又与传统单片机不同,Arduino平台有着更为易用的IDE环境,通过全球线上稳定可靠的多个外围模块函数库及简单易懂的语言,极大地简化了单片机的软硬件设计,可以提高系统设计开发效率[6]。UNO控制器硬件接口上主要包括14路数字I/O接口、6路模拟输入接口,1路串行通信接口,这为本设计中外围模块的采集及与上位机通信提供了有利条件。

2.2外围传感模块

本设计超声波传感采用HC-SR04超声波测距模块,其可提供2~500 cm的非接触式距离感测功能,测距精度可达到3 mm,模块包括超声波发射器、接收器和控制电路。模块TRIG触发引脚给至少10μs的高电平信号之后,模块自动发送8个40 k Hz的方波,自动检测是否有信号返回,如有信号返回,通过ECHO引脚输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间[7]。

控制电路根据测得的返回时间差即可计算出测量距离,由前文分析可知,为提高测量精度必须引入温度补偿,本设计温度检测传感器采用了Dallas公司的数字温度传感器DS18B20。DS18B20是one-wire总线串行数字传感器,测量范围跨度大,测量精度可达0.0675℃,且抗干扰,易扩展。本设计采用DS18B20传感器的优势还在于Arduino平台对其的友好支持,在Arduino的外围模块函数封装库中,oneWire.h及DallasTemperature.h为传感器提供了初始化、温度数字信号传输等处理的关键函数。

超声波测距外围传感检测硬件设计结构简单,易于扩展,且与NI官方提供信号采集模块(如USB- 6008)相比,大大降低了成本。

2.3无线串口模块

下位机数据采集后如何发送至上位机Lab VIEW处理是本系统设计的关键,虽然NI公司针对Arduino开发了官方的LIAT工具包,但由于不涉及Arduino程序设计,只能使用有限的官方函数库,局限性较大。通过测试,通信模块采用APC220-43无线串口模块效果较好。

APC220-43模块是多通道嵌入式无线数传模块,发射功率达20m W。在通信方式上,该模块采用高效的循环交织纠检错编码,纠错能力和编码效率远高于一般的前向纠错编码,能自动滤除错误及虚假信息,真正实现了透明连接[8]。本设计下位机硬件接线如图2所示。

图2 超声波测距外围硬件连接图

3 数据采集与处理

在本测距系统中,下位机Arduino控制器从Lab-VIEW接收并判断指令,为了区分两种操作指令,设计时上位机Lab VIEW将不同事件改变而发送的指令封装成包含三个字节的一个数据帧,下位机Arduino接收到串口数据确认无误后,去掉两个字节的命令帧头,根据第三个字节测温和测距不同的指令向Lab VIEW发送温度值与超声波往返时间。下位机软件流程如图3所示。

4 上位机管理设计

LabVIEW是NI公司的一种通用程序开发系统,分为前面板和程序框图两个部分,前面板用于输入输出显示,程序框图完成相应程序连接,有效简化了程序开发,增加了程序的直观性,极大地缩短了开发周期。[9]LabVIEW上位机部分主要完成向下位机Arduino发送采集命令,根据回传的温度值经式(2)计算后对距离进行修正,并在界面显示实测的温度值和实测距离值。LabVIEW软件设计是通过内嵌事件结构来响应“温度测量”、“距离测量”和“超时”指令,每条指令通过FT232RL电平转换和APC220无线模块分别向下位机发送不同数据帧,下位机Arduino再通过APC220模块的读写,判断指令后执行相应操作。Lab-VIEW上位机面板设计如图4所示。

图3 Arduino控制器数据处理流程

图4 Lab VIEW上位机面板设计

上位机软件设计采用循环结构,内嵌事件采用了事件结构进行选择。事件结构包括一个或多个子程序框图或事件分支,结构执行时,仅有一个子程序框图或分支在执行,事件结构可等待直至事件发生,并执行相应条件分支,处理该事件。以“测量距离”值改变事件为例,Lab VIEW上位机程序设计如图5所示,该流程包含了上位机向串口VISA功能模块[10]写缓冲、接收来自下位机串口数据读缓冲、距离数据的转换及温度修正,最后送界面显示等一系列操作。

5 测量误差分析

系统搭建完成后通过实际测量来分析系统测量误差。测试时用激光测距仪设定好距离值,测量时分别记录室内室外不同温度环境下的实测值,为进一步分析误差,测量时还分成了短距离和长距离两组测试,分别记录了21组数据,数据如图6所示。

图5 “距离测量”值改变事件Lab VIEW程序设计

图6 测距系统实测数据记录

图6表明:①测距时误差主要集中在短距离测量区域,其主要原因是受被测障碍物表面平整度对超声波及环境噪声反射产生偏差而引起;②在较大温差环境下两组测量数据基本吻合,这说明本系统Lab VIEW程序中温度补偿算法提高了测量精度;③本测距系统有效测量距离范围为0.02~5 m。

结 语

本设计提出了将Arduino与虚拟仪器Lab VIEW联机进行测距的方法,并在Lab VIEW上位机处理数据时加入了温度补偿算法,大大提高了测量精度,实验表明,该测距系统在近距离测量时精度可达0.1 cm。下位机采集硬件用Arduino控制器替代了NI公司昂贵的采集卡,

High-precision Ultrasonic Ranging System Based on Arduino+LabVlEW

Zhu Zhiqiang,Zhang Xiaoyu,Wang Lintong,Yu Nan
(Jiangyin Polytechnic College,Jiangyin 214400,China)

According to the requirements of high-precision ranging remote site,the ranging method of wireless communication is proposed which is based on the open-source hardware Arduino and Lab VIEW.The lower computer transmits the temperature and distance data by the Arduino controller,the upper computer processes the received data using the temperature compensation algorithm to improve the measurement accuracy.The experiment results show that the measurement data can be accurately corrected at different temperatures,it improves the accuracy and has apply value.

virtual instrument;Arduino;ultrasonic ranging;temperature compensation

TP23

A

猜你喜欢
下位测距上位
类星体的精准测距
科学(2020年3期)2020-01-06 04:02:51
发射机房监控系统之下位机
科技与创新(2018年1期)2018-12-23 06:46:14
特斯拉 风云之老阿姨上位
车迷(2018年12期)2018-07-26 00:42:22
浅谈超声波测距
电子制作(2017年7期)2017-06-05 09:36:13
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
北京纪事(2016年5期)2016-05-07 13:17:02
以新思路促推现代农业上位
学习月刊(2015年3期)2015-07-09 03:51:04
CAN总线并发通信时下位机应用软件设计