A121 Range Sensor
来自Waveshare Wiki
|
| |||||||||||||||||||||
| |||||||||||||||||||||
说明
产品简介
A121 Range Sensor 距离传感器基于 60 GHz 脉冲相干雷达(PCR) 技术,可实现人体存在与运动检测,并支持高精度距离测量。通过可配置的检测区域和灵敏度参数,具备良好的抗干扰能力。 模块集成 Arm® Cortex®-M4 MCU(STM32L431CBT6),既可作为独立运行单元,在 Acconeer RSS 之上直接部署用户应用,也可通过寄存器命令协议与外部主控通信。其体积小、功耗低、易集成,适用于人体存在检测、接近感应、非接触触发及生命体征监测等应用。
应用场景
- 消费电子
- 人体存在与运动检测
- 材料分类与目标检测
- 生命体征检测(如呼吸、心率)
- 手势控制与非接触式按键
- 物联网与智慧城市
- 智慧停车解决方案
- 液位/高度监测
- 液体表面流速测量
- 结构完整性监测
- 人流统计
- 工业与农业
- 接近与距离感知
- 振动测量
- 汽车电子
- 车内监测(乘员/状态检测)
- 门禁控制与人机交互
工作原理
Acconeer A121 采用脉冲相干雷达(PCR)技术,通过发射超短射频脉冲并对回波进行相干接收,利用皮秒级时间分辨率精确测量信号往返时间,从而实现亚毫米级距离精度;同时通过相位信息可感知微小位移与运动。脉冲式工作方式使其平均功耗极低,芯片高度集成无需天线孔径即可实现最远约 23 米测距,并且由于使用的是射频电磁波,不受光照、灰尘、噪声等环境干扰,适合小体积、低功耗的电池供电设备。原理
产品参数
| 产品 | A121 Range Sensor |
|---|---|
| 工作频段 | 60GHz |
| 调制方式 | PCR |
| 供电电压 | 5V |
| IO电平 | 3.3V |
| 输出接口 | USB/UART/I2C |
| 通信波特率 | UART :921.6Kbps |
| I2C :100K/400K | |
| 探测距离分辨率 | 0.03m@25°Profile1 |
| 探测角度 | 水平 :53° |
| 垂直 :65° | |
| 探测精度 | 0.03m@Profile1 |
| 最大工作电流 | 5V 80mA |
| 环境温度 | -40~85℃ |
| 产品尺寸 | 39×39mm |
探索工具
- 帮助您快速开始测试和评估我们的传感器,满足您的使用场景需求。还将指导您找到最佳传感器设置,并帮助您微调最终产品实现的数据处理。以下是在windows电脑中运行,liunx可以参考这个 :点击跳转
- 点击下载上位机
- 下载固件,默认是探索工具的固件。
开始使用
- 在合适的位置提取 portable_exploration_tool.zip 文件
- 双击 update.bat 脚本,这个更新时间比较漫长,请耐心等待,如果出现失败,需要检查一下网络问题,并重新运行update.bat。
- 更新完成后,双击 run_app.bat 脚本即可启动探索工具应用,在弹出的 Acconeer Exptool Launcher 窗口,点击A121
- 用type-c的数据线连接电脑,在设备管理器找到端口。在端口 (COM 和 LPT) 中列出为 USB-Enhanced -SERIAL-A CH342 和 USB-Enhanced -SERIAL-B CH342,如果没有,需要重新安装一下驱动
- 连接探索工具应用模块时,使用 USB-Enhanced -SERIAL-A CH342 端口,再点击连接即可,连接成功后就可以进入测试了,每一个测试旁边都有一个文档说明,不清楚点击查看即可
刷固件
- 在探索工具中点击 Flash
- 选择XM125
- 勾选 Show all devices
- 选择 USB-Enhanced -SERIAL-A CH342 端口,可以使用在线下载,也可以使用本地文件
- 点击下一个界面的 Flash ,根据提示进入boot模式,就可以开始刷入固件
- 显示 Done ,表示刷入成功
固件说明
- A121 Range Sensor 提供全方面的固件,包括上位机、UART和I2C,下面对这些固件进行一个说明 :
- UART固件都是通过 USB-Enhanced -SERIAL-B CH342 端口输出或者板子上的串口引脚输出信息
- I2C固件是通过I2C引脚输出信息,搭配检忙脚一起使用,从机地址默认为0x52,可以通过板子上的电阻进行调整为0x51或0x53
| 示例程序 | 基础例程说明 |
|---|---|
| 探测工具 | |
| acc_exploration_server_a121 | 刷此固件可以与探索工具进行连接 |
| UART | |
| Getting started | |
| example_bring_up | 基础 bring up 示例,用于快速上手与应用开发 |
| example_control_helper | 控制辅助示例,演示控制接口的基本用法 |
| example_detector_distance | 距离探测器基础示例 |
| example_detector_presence | 存在探测器基础示例 |
| example_service | Service 基础接口示例 |
| Advanced control | |
| example_detector_distance_calibration_caching | 距离探测 + 校准结果缓存 |
| example_detector_distance_low_power_hibernate | 距离探测低功耗休眠模式 |
| example_detector_distance_low_power_off | 距离探测低功耗关断模式 |
| example_detector_distance_with_iq_data_print | 距离探测并打印 IQ 原始数据 |
| example_detector_presence_low_power_hibernate | 存在探测低功耗休眠模式 |
| example_detector_presence_low_power_off | 存在探测低功耗关断模式 |
| example_detector_presence_multiple_configurations | 存在探测多配置切换示例 |
| example_detector_presence_with_iq_data_print | 存在探测并打印 IQ 原始数据 |
| example_service_calibration_caching | Service 模式下的校准缓存示例 |
| example_service_low_power_sensor_disable | Service 低功耗 :禁用传感器 |
| example_service_low_power_sensor_hibernate | Service 低功耗 :休眠传感器 |
| example_service_multiple_configurations | Service 多配置示例 |
| example_service_sensor_disable | Service :传感器禁用 |
| example_service_sensor_hibernate | Service :传感器休眠 |
| example_service_sensor_off | Service :传感器关闭 |
| example_service_subsweeps | Service :子扫描(subsweeps)配置示例 |
| Processing | |
| example_processing_amplitude | 幅值处理示例 |
| example_processing_coherent_mean | 相干平均处理示例 |
| example_processing_noncoherent_mean | 非相干平均处理示例 |
| example_processing_peak_interpolation | 峰值插值处理示例 |
| example_processing_static_presence | 静态存在检测处理示例 |
| example_processing_subtract_adaptive_bg | 自适应背景减除处理示例 |
| Troubleshooting | |
| example_diagnostic_test | 诊断测试示例,用于硬件/通信排查 |
| Reference Apps | |
| ref_app_breathing | 呼吸检测参考应用 |
| ref_app_parking | 停车/车位检测参考应用 |
| ref_app_smart_presence | 智能存在检测参考应用 |
| ref_app_tank_level | 料位/液位检测参考应用 |
| ref_app_touchless_button | 非接触式按钮参考应用 |
| Example Apps | |
| example_cargo | 货柜利用率与人员存在检测参考示例 |
| example_hand_motion_detection | 用于检测手部运动或手势的示例 |
| example_surface_velocity | 用于测量目标表面运动速度的示例 |
| example_vibration | 用于检测和分析振动特征的示例 |
| example_waste_level | 用于测量垃圾或物料液位高度的示例 |
| I2C | |
| i2c_distance_detector | I2C 接口距离探测器基础示例 |
| i2c_example_cargo | I2C 接口货物检测示例 |
| i2c_presence_detector | I2C 接口存在探测器基础示例 |
| i2c_ref_app_breathing | I2C 接口呼吸检测参考应用 |
镜头说明
- 我们提供的参考镜头采用 3301PA 材质 制成,为 实心一体结构设计,具备良好的机械强度与稳定性。镜头整体由以下几个关键部件组成:
1. 底座(Lens Holder)
用于固定 PCB 与镜头组件,确保镜头与芯片之间的相对位置精度,提升系统装配稳定性与一致性。
2. 平盖(Flat cover)
主要用于 保护感光芯片表面,防止在装配、运输或使用过程中被刮伤或污染,同时对成像不产生光学畸变影响。
3. 菲涅尔镜片(Fresnel Zone Plate)
通过 相位调制原理 实现光线聚焦,在保证聚焦能力的同时有效降低镜片厚度与重量,适用于对结构高度有要求的应用场景。
4. 曲面镜片(Hyperbolic Lens)
通过 折射原理 对入射光进行聚焦,可有效改善成像质量,提高光学系统的聚焦精度与成像清晰度。
探测范围
- 平盖
- 曲面镜片
- 菲涅尔镜片
其他
- 如何配置A121,跟其他参数说明请点击此链接
产品尺寸
UART固件使用
- 此处简单说明一下UART固件的效果跟使用方式,波特率默认为921600
- 测试不同功能,需要刷入不同固件,如果刷固件参考前面的刷固件处
硬件连接
- 刷好固件后,通过Type C数据线连接电脑,选择USB-Enhanced -SERIAL-B CH342 端口就可以查看信息或者通过MX1.25的接口上的TX 查看信息
Getting started
- example_bring_up效果:
- example_control_helper效果:
- example_detector_distance效果:
- example_detector_presence效果:
- example_service效果:
Reference Apps
- ref_app_breathing效果:
- ref_app_parking效果:
- ref_app_smart_presence效果:
- ref_app_tank_level效果:
- ref_app_touchless_button效果:
Example Apps
- example_cargo效果:
- example_hand_motion_detection效果:
- example_surface_velocity效果:
- example_vibration效果:
- example_waste_level效果:
I2C固件使用
- 此处简单说明一下I2C固件的效果跟使用方式,从机地址默认为0x52
- 测试不同功能,需要刷入不同固件,如果刷固件参考前面的刷固件处
树莓派使用
开启树莓派 I2C
- 在树莓派终端输入命令:sudo raspi-config nonint do_i2c 0
硬件连接
安装库
- C
git clone https://github.com/WiringPi/WiringPi.git cd WiringPi/ ./build debian #根据编译出来的文件名来进行下一步 sudo mv debian-template/wiringpi_*.*_arm64.deb . sudo apt install ./wiringpi_*.*_arm64.deb #查看是否安装成功,成功会出现版本号 gpio -v
- Python
sudo apt install python-smbus2
下载程序
cd ~ wget https://www.waveshare.net/w/upload/5/5d/A121_Range_Sensor_Demo.zip unzip A121_Range_Sensor_Demo.zip cd A121_Range_Sensor_Demo/
运行C程序
cd ~/A121_Range_Sensor_Demo/Raspberrypi/c/ #此处根据烧录的固件进行选择编译,分别是 make A121_APP=BREATHING -B make A121_APP=CARGO -B make A121_APP=PRESENCE -B make A121_APP=DISTANCE -B #运行程序 ./main
运行Python程序
cd ~/A121_Range_Sensor_Demo/Raspberrypi/python/example #此处根据烧录的固件进行选择编译,分别是 python main.py breathing python main.py cargo python main.py presence python main.py distance
ESP32S3使用
硬件连接
- 参考下图进行连接:
Arduino esp32示例使用
- 进入到A121_Range_Sensor_Demo\ESP32S3\Arduino\*,*是对应固件的示例,双击ino文件
- 选择开发板:
Micropython示例使用
- 进入到A121_Range_Sensor_Demo\ESP32S3\micropython,双击对应固件的py文件
- 选择开发板:
Pico使用
硬件连接
- 参考下图进行连接:
Arduino pico示例使用
- 进入到A121_Range_Sensor_Demo\pico\Arduino\*,*是对应固件的示例,双击ino文件
- 选择开发板:
Micropython示例使用
- 进入到A121_Range_Sensor_Demo\pico\micropython,双击对应固件的py文件
- 选择开发板:
Arduino使用
硬件连接
- 参考下图进行连接:
Arduino 示例使用
- 进入到A121_Range_Sensor_Demo\Arduino\*,*是对应固件的示例,双击ino文件
- 选择开发板:
FAQ






















