当前位置:首页 > 测试测量 > 测试测量
[导读]针对人员无法进入危险建筑进行测距的缺点,实现了以Arduino开发板为控制核心,利用超声波模块HC—SR04进行距离信号的采集,结合无线传输模块nRF24L01+对数据进行无线传输的测距系统。在实用性、可靠性和扩展性方面能很好的满足实际要求。

 距离是描述建筑物平面结构的重要内容,建筑物尺寸的传统测量手段都需要人员借助工具现地进行,但面对比较危险的建筑物时,传统的测量手段势必增加人员的伤亡几率。随着科学技术的发展,测距技术和无线传输技术日趋成熟,无人距离测量在特殊领域中将得到广泛应用。利用超声波测距成本低、精度高、速度快等技术特点,结合单片机、无线通信技术可对建筑物内部平面尺寸进行测量,并将数据无线传至终端设备实时显示。

1 系统结构

超声波测距系统由发射端和接收端两部分组成。发射端由Arduino开发板、无线射频发射模块、天线、超声波模块及电源模块组成。接收端由Arduino开发板、无线射频接收模块、天线和终端设备等组成。

在系统发射端,超声波模块HC—SR04对距离信号进行实时采集,在Arduino的控制下通过无线射频发射模块将距离数字信号发送至接收端;在系统接收端,在Arduino开发板的作用下,通过无线射频接收模块接收发射端发送过来的距离数字信号,通过串口通信模块与PC机进行通信,在PC机中利用软件读取数据并绘制曲线。

2 系统硬件电路设计

2.1 Arduino控制板

本系统中所采用的Arduino UNO是一块采用USB接口的核心电路板,处理器核心是ATmega328,包括14个数字输入输出IO(其中6个可提供PWM输出),6个模拟输入IO,一个16 MHz晶体振荡器,一个USB口(便于在线进行程序调试),一个电源插座和一个复位按键。

2.2 测距传感器

HC—SR04超声波测距模块可提供2~400 cm的非接触式距离感测功能,测距精度可达到3 mm,模块包括超声波发射器、接收器和控制电路。模块采用IO口TRIG触发测距,给至少10μs的高电平信号,之后模块自动发送8个40 kHz的方波,自动检测是否有信号返回,如有信号返回.通过IO口ECH0输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。

2.3 nRF24L01+无线传输模块

nRF24L01是一款新型单片射频收发一体器件,工作于2.4~2.5 GHz ISM频段。其内置频率合成器、功率放大器、晶体振荡器、调制器、低噪声放大器等功能模块,并融合了增强型ShocKBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01具有极低的电流消耗,当工作在发射模式下发射功率为0 dBm时电流消耗为11.3 mA,接收模式时为13.5 mA,掉电模式和待机模式下电流消耗更低。本文采用nRF24L01+模块,在原模块的基础上增加了PA和LNA。在发射端通过PA电路将nRF24L01的输出功率放大,同时在接收端通过LNA电路增加接收信号的强度。

2.4 SPI连接

Arduino与nRF24L01+无线收发模块之间利用同步串口SPI进行通信。nRF24L01+的SPI总线有GND(接地)、VCC(1.9~3.6 V电源)、CE(使能发射或接收)、CSN(片选信号)、SCK(时钟信号)、MOSI(数据输入)、MISO(数据输出)、IRQ(中断标志位)。Arduino与nRF24L01+的连接图如图1所示。

 


 

2.5 实验电路连接图

发射端(HC—SR04、nRF24L01+和Arduino连接)和接收端(nRF24L01+和Arduino连接)实验电路连接如图2所示。

 


 

3 系统的软件设计

3.1 无线发送模式流程

对nRF24L01+的相关寄存器进行配置,设置为增强型ShockBurstTM发送模式,通信速率为1 Mbit/s,晶振16 MHz,发射功率设置为0 dBm,MCU通过MOSI写入数据,通过MISO读出数据,设置通过nRF24L01+的数据输入,保存到TX FIFO寄存器中,开始发送数据。在数据发送之后,读取状态寄存器的值并做出判断,确定是否接收到应答信号,判断自动重发次数是否达到最大值(10次)。如果在设定的应答时间内接收到应答信号,则认为数据成功发送到了接收端。如果在设定的时间范围内没有接收到应答信号,则重新发送数据,并且自动重发计数器自动加1。若自动重发次数达到最大值,则表明数据没有发送成功,需要清除MAX_RT位让数据继续重发。发送程序流程图如3所示。

 


 

发射程序中的主要函数如下:

void TX_Mode (void) //初始化nRF24L01+设备进入发送模式

void Send_Data(int a) //发射数据“a”

unsigned char SPI_Read_Buf(unsigned char reg,unsigned

char*pBuf,unsigned char bytes) //从寄存器“reg”读无符号字符型变量

3.2 无线接收模式流程

设置nRF24L01+为接收模式,与发射端相同的CRC配置、地址宽度、频道和传输速率,拉高CE启动接收,通过读取状态寄存器的值判断是否有数据接收,若有数据,接收端通过自身通道地址与接收到的数据包中的地址进行匹配,若相同就接收该数据,若不同就放弃该数据,继续等待接收。接收程序流程图如图4所示。

 


 

接收程序中的主要函数如下:

void RX_Mode (void) //初始化nRF24L01+设备进入接收模式

void Recive Data() //接收数据

unsigned char SPI_Write_Buf(unsigned char reg,unsigned

char*pBuf,unsigned char bytes) //将nRF24L01+的内容写入缓冲区“*PBUF”

4 实验结果

按照本方案设计的超声波测距系统(实物如图5所示)经过建筑物现地测试,测量最大宽度8 m,最大高度4 m,超声波模块工作稳定,无线传输模块传输距离符合要求,完全可以达到实际应用的目的。由于该系统目前还是初具功能的试验品,测距平台上功能模块不够丰富,应搭配更多的传感器模块,提升系统功能。

 


 

5 结束语

本文着重介绍了基于nRF24L01+与Arduino的超声波测距系统的设计,通过较低的成本实现了超声波测距、数据无线传输、PC机实时接收显示并绘制曲线等功能,可搭载不同的移动平台,完成建筑物测距任务,具有一定的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

新款Arduino UNO R4支持两个版本,为创客社区和专业设计人士提供前所未有的性能和新的可能性

关键字: 开发板 Arduino

摘要:提出了一种基于Arduino集成开发程序的智能刮痧仪设计方案,包括对设计原理、软硬件部分设计及实验结果的介绍。利用压力传感器及姿态传感器监测并记录刮痧仪的速度、压力和姿态等参数,实现对刮痧治疗的数据化。该设计方案切...

关键字: 中医 Arduino 刮痧仪

摘要:针对地方高校开放性实验室的建设与发展,设计了一套用于实验室的智能门禁管理系统,该系统以Arduino开源平台作为核心控制组件,具备光学指纹解锁功能、多位按键密码解锁功能以及门禁卡识别解锁功能,通过结合3种不同的解锁...

关键字: Arduino 门禁 指纹解锁

社区成员将有机会赢得限量版Arduino UNO Mini

关键字: e络盟 开发板 Arduino

摘 要 :随着信息时代的发展和人民日益增长的美好生活的需要,智能家居系统的设计越来越受到广泛关注。文中设计基于 Arduino 与 OneNET 云平台的简易智能家居系统,以 Arduino Sensor Sheild...

关键字: Arduino 传感器 智能家居 ESP8266 OneNET 远程操控

摘 要 :随着生活节奏的加快,现代人的睡眠普遍不足,而传统闹钟唤醒方式单一且粗暴,实际效果欠佳,因此,设计一款个性化且符合人体苏醒习惯的卧室智能唤醒系统。该系统基于 Arduino 集成开发环境,利用 PWM 基本原理实...

关键字: 智能唤醒 传感器 远程控制 Arduino 智能家居 物联网

准备好与Arduino尝试不同的东西了吗?您不必局限于用C编程。将这些替代语言用于测试驱动器。

关键字: Arduino 编程语言

Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE)。它适用于爱好者、艺术家、设计师和对于“互动”有兴趣的朋友们。

关键字: Arduino 单片机

要了解Arduino就先要了解什么是单片机,Arduino平台的基础其实就是AVR指令集的单片机。

关键字: Arduino 单片机

摘 要 :文中设计了一款智能家居系统,主要介绍了语音识别技术的相关基础原理以及流程。详细分析了一段语音信号从采集到预处理,提取特征值后与语音库中的声学模型比对得出识别结果的过程及隐马尔科夫的建模过程、算法流程,最后利用...

关键字: 智能家居 语音识别 Arduino 隐马尔科夫模型 特征提取
关闭
关闭