资讯详情

测量 XW-HLR26-24G 微波雷达模块的性能测试

简 介: 利用ESP32 MicroPython 模块中的UART1对于 雷达模块性能进行测试。验证了它的基本通信格式,能够读取对应的数据,它的数据更新速率为每秒钟4个测量数据。

微波雷达
目 录 Contents
1.1 接口定义..................................... 1.2 测试电路板................................. 1.3 连接ESP32与XW-HLR26-24G 1.4 通信测试.....................................
更多测试
2.1 测试手臂前后移动
测试总结

 

§01 波雷达


  传感器模块移动侦测传感器可调距离TTL输出 中的微波雷达进行功能测试。

1.1 接口定义

  SW-HLR26的接口如下图所示。这是对应的2mm间距的PIN4接口。

▲ 图1.1 XW-HLR26-24G微波雷达模块

1.2 测试电路板

  利用 中的ESP32UARTUART1XW-HLR26-24G进行测试。

▲ 图1.2.1 ESP32-S 转接板的接口定义

1.2.1 ESP32串口测试

from machine                import UART,Pin
import utime

led  = Pin(5, Pin.OUT)
uart = UART(1, 115200)

while True:
    led.on()
    utime.sleep_ms(100)
    led.off()
    utime.sleep_ms(100)
    uart.write(b'\x55')

  下面是测TXD1输出信号。验证了:

  • 这个管脚是ESP32TXD1 输出信号;
  • 初始化的115200的波特率是正确的的;

▲ 图1.2.2 ESP32 TXD1管脚信号

1.3 连接ESP32与XW-HLR26-24G

1.3.1 信号连接

  将XW-HLR26ESP32连接。由于ESP32工作电压为3.3V。所以需要另外增加+5V的工作电源。

▲ 图1.3.1 测试XW-HLR26模块的ESP32测试电路板

  XW-HLR26 的串口具有 3.3V/5V兼容的信号。

▲ 图1.3.2 XWS-HLR26 接口定义

1.3.2 初步测试

  该模块施加+5V工作电源。模块工作流大约:84mA

(1)模块上电信息

  根据XW-HLR26的使用手册可以知道模块上电后主动上报模块的版本号。使用示波器检测模块的TX管脚,在上电后并没有看到任何发送的数据信号。同样在RX管教也没有发送数据信号信息。

(2)读数信息

uart.write(b'\x55\x5a\x02\xD3\x84')
utime.sleep_ms(50)

readb = uart.read(uart.any())
print(readb)
Test XW-HLR26.
5
b'U\xa5\n\xd3\xff\xff\x00\x00\x00\x00\x00\x00\xd5'

1.4 通信测试

1.4.1 读取测试信息

def readXW():
    uart.write(b'\x55\x5a\x02\xD3\x84')
    utime.sleep_ms(10)

    readb = uart.read(uart.any())
    distance = 0
    speed = 0
    gesture = 0
    intensity = 0

    if readb[0:3] != b'\x55\xa5\n':
        return distance,speed,gesture,intensity

    print(readb)
    distance = int.from_bytes(readb[4:6], 0)
    speed = int.from_bytes(readb[6:8], 0)
    intensity = int.from_bytes(readb[8:10], 0)
    gesture = readb[10]

    return distance,speed,intensity,gesture

d,s,i,g = readXW()
print(d,s,i,g)

1.4.2 测量范围

(1)查询雷达测量范围

def readRange():
    uart.write(b'\x55\x5a\x02\xD5\x86')
    utime.sleep_ms(10)
    readb = uart.read(uart.any())

    print(readb)

readRange()
b'U\xa5\x0c\xd5\x00\x01\x00\xc8\x00\xb4\x00d\x00\xa0\\'
  • 在上面的返回中,数据为12个,但在使用说明中,返回的数据应该是6个。

 

§02 多测试


2.1 测试手臂前后移动

2.1.1 测量代码

from machine                import UART,Pin
import utime

led  = Pin(5, Pin.OUT)
uart = UART(1, 115200)

def readXW():
    uart.write(b'\x55\x5a\x02\xD3\x84')
    utime.sleep_ms(10)

    readb = uart.read(uart.any())
    distance = 0
    speed = 0
    gesture = 0
    intensity = 0

    if readb[0:3] != b'\x55\xa5\n':
        return distance,speed,gesture,intensity

    distance = int.from_bytes(readb[4:6], 0)
    speed = int.from_bytes(readb[6:8], 0)
    intensity = int.from_bytes(readb[8:10], 0)
    gesture = readb[10]

    return distance,speed,intensity,gesture

def readRange():
    readb = uart.read(uart.any())
    uart.write(b'\x55\x5a\x02\xD5\x86')
    utime.sleep_ms(2)
    readb = uart.read(uart.any())

def setMaxRange():
    uart.write(b'\x55\x5a\x04\xD6\x01\x00\x8a')
    utime.sleep_ms(10)
    readb = uart.read(uart.any())

NUMBER = 256
dist = [0]*NUMBER

for ii in range(NUMBER):
    d,s,i,g=readXW()
    dist[ii] = d

print(dist)

while True:
    led.on()
    utime.sleep_ms(500)
    led.off()
    utime.sleep_ms(500)

2.1.2 测量结果

from headm import *
from tsmodule.tsstm32       import *

stm32cmd('COPY')
time.sleep(.1)
strall = [s for s in clipboard.paste().split('\r\n') if len(s) > 0]
strnum = array([int(s) for s in strall[-1].replace('[','').replace(']','').split(',')])
strnum[where(strnum == 65535)] = 100

printf(strnum)

plt.plot(strnum)
plt.xlabel("n")
plt.ylabel("Distance")
plt.grid(True)
plt.tight_layout()
plt.show()

▲ 图2.1.1 测量结果

  从测量结果来看,可以看到XW-HLR26反馈测量值的更新具有一定的周期。在连续读取数值的时候,大约2个数据之后才有更新。这对应的大约022秒。

▲ 图2.1.2 另外一次测量结果

  测量 512个数据,消耗 5.515秒,对应每个数据大约时间10.77ms。对应22数据,大约消耗:237ms。由此可以估计出雷达模块大约每秒钟更新 4个数据。

 

试总结 ※


  用ESP32 MicroPython 模块中的UART1对于 雷达模块性能进行测试。验证了它的基本通信格式,能够读取对应的数据,它的数据更新速率为每秒钟4个测量数据。


  • XW-HLR26-24G毫米波测距测速雷达传感器模块移动侦测传感器可调距离TTL输出
  • ESP32-S模块转接板设计与实现

  • 图1.1 XW-HLR26-24G微波雷达模块
  • 图1.2.1 ESP32-S 转接板的接口定义
  • 图1.2.2 ESP32 TXD1管脚信号
  • 图1.3.1 测试XW-HLR26模块的ESP32测试电路板
  • 图1.3.2 XWS-HLR26 接口定义
  • 图2.1.1 测量结果
  • 图2.1.2 另外一次测量结果
from machine                import UART,Pin
import utime

led  = Pin(5, Pin.OUT)
uart = UART(1, 115200)

def readXW():
    uart.write(b'\x55\x5a\x02\xD3\x84')
    utime.sleep_ms(10)

    readb = uart.read(uart.any())
    distance = 0
    speed = 0
    gesture = 0
    intensity = 0

    if readb[0:3] != b'\x55\xa5\n':
        return distance,speed,gesture,intensity

    distance = int.from_bytes(readb[4:6], 0)
    speed = int.from_bytes(readb[6:8], 0)
    intensity = int.from_bytes(readb[8:10], 0)
    gesture = readb[10]

    return distance,speed,intensity,gesture

def readRange():
    readb = uart.read(uart.any())
    uart.write(b'\x55\x5a\x02\xD5\x86')
    utime.sleep_ms(2)
    readb = uart.read(uart.any())

def setMaxRange():
    uart.write(b'\x55\x5a\x04\xD6\x01\x00\x8a')
    utime.sleep_ms(10)
    readb = uart.read(uart.any())

NUMBER = 512
dist = [0]*NUMBER

starttime = utime.ticks_ms()
for ii in range(NUMBER):
    for j in range(100):
        d,s,i,g=readXW()
        if d != 65535: break
    dist[ii] = d

print(utime.ticks_ms() - starttime)

print(dist)

while True:
    led.on()
    utime.sleep_ms(500)
    led.off()
    utime.sleep_ms(500)

标签: j643g射频连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台