间隔是描绘建筑物平面结构的重要内容,建筑物尺度的传统丈量手法都需求人员凭借东西现地进行,但面临比较风险的建筑物时,传统的丈量手法必然添加人员的伤亡几率。跟着科学技能的开展,测距技能和无线传输技能日趋老练,无人间隔丈量在特别范畴中将得到广泛使用。使用超声波测距本钱低、精度高、速度快等技能特色,结合单片机、无线通讯技能可对建筑物内部平面尺度进行丈量,并将数据无线传至终端设备实时显现。
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机实时接纳显现并制作曲线等功用,可搭载不同的移动渠道,完结建筑物测距使命,具有必定的实用价值。