0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

安信可定位开发板BU03-Kit使用指南 ——硬件&软件

AIoT行业洞察 ? 来源:AIoT行业洞察 ? 作者:AIoT行业洞察 ? 2025-04-30 15:53 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

以下内容由安信可社区用户

AndyL提供

目录

低功耗精准定位开发板BU03-Kit ——【硬件篇】

一、开发板硬件介绍

1、关于BU03-Kit

2、BU03主要特性 / 性能

3、按键及指示灯说明 / 引脚示意图 / 原理图

二、关于BU03模组功能介绍

1、关于超宽带(Ultra Wide Band,UWB)

2、UWB(超宽带)定位方法介绍

3、不同定位技术的差异

三、功能效果测试

1、快速上手使用测试

2、UWB 功能测试

3、功耗测试

四、测距精度矫正 / 串口数据解析

五、个人使用体验

低功耗精准定位开发板BU03-Kit ——【软件篇】

一、开发方式

1、AT指令

2、二次开发SDK

二、程序烧录

1、使用SWD接口下载 / 调试

2、使用串口USB下载

低功耗精准定位开发板BU03-Kit ——【硬件篇】

一、开发板硬件介绍

1、关于BU03-Kit

BU03-Kit 是一款 UWB 开发板。该开发板是基于 BU03 (DW3000) 收发模组, 搭载一颗 ST 主控 (STM32F103C8T6) 设计而成的一款测试评估板。其上的 BU03 模组集成了板载天线RF 电路, 电源管理

BU03-Kit 可以用于 双向测距TDOA 定位系统中, 定位精度可达到 10 厘米, 并支持高达 6.8 Mbps 的数据速率。可广泛应用于物联网(IoT)、 移动设备、 可穿戴电子设备、 智能家居等领域。

wKgZPGgR1teAL2xrAADvN1BMQVU250.jpg

2、BU03主要特性 / 性能

wKgZO2gR1tiAMjQ_AACaDBt8Qvs300.jpg

●采用 SMD-40 插针封装

●符合 IEEE 802.15.4-2015 UWB 标准

●符合 IEEE802.15.4z(BPRF mode)

●支持信道 5、 信道 9

●集成简单, 无需 RF 设计

●集成 MAC 支持功能

●使用 RTLS 的基础架构, 扩展了通信范围

●数据速率 850 Kbps, 6.8 Mbps

●支持双向测距和 TDOA 和 PDOA 定位方案

●提供精确定位和数据传输

●定位精度 10 厘米

●支持高标签密度

●集成 HW AES 256

●支持 SPI 接口

●模组支持 9 个可配 GPIO

●可编程调节发射功率大小

●BU03 模组睡眠模式下功耗<1uA

●适用于纽扣电池方案

基于 3.3V 的电源, 25° C 的环境温度,功耗表:

wKgZPGgR1tiAUl_EAACaHFOtX88682.jpg

管脚功能定义表:

wKgZO2gR1tmAUvGxAAFNGqjWtfE810.jpg

wKgZPGgR1tmAeLhQAAFQSEU-gjg264.jpg

wKgZO2gR1tqAQ2oJAACAV82gSNQ119.jpg

注:除了 SPICSn 外, 所有 GPIO 引脚都有一个软件可控的内部下拉电阻器, SPICSn 具有上拉功能, 以确保输入引脚未被驱动时的安全操作。内部电阻器的值可随 VDD 电源电压的变化而变化, 范围从 10 k? (VDD 为 1.8V) 到 30 k? 。

3、按键及指示灯说明 / 引脚示意图 / 原理图

按键及指示灯说明图:

wKgZPGgR1tqAF0UVAAFbb1iK8HA324.jpg

引脚定义示意图:

wKgZO2gR1tuAChBXAAEm8fHqgXo195.jpg

相关部分原理图:

wKgZPGgR1tuAJwXVAACqD8UuFKc272.jpg

wKgZPGgR1tyAYy2FAAD-5G3BPqM208.jpg

二、关于BU03模组功能介绍

BU03 是基于 Decawave 的 DW3000 系列芯片设计的超宽带(UWB)模组。

1、关于超宽带(Ultra Wide Band,UWB)

UWB 全名:Ultra Wideband。是一种无线通信技术,即超宽带技术。

在传统通信体制中,数据传输一般都需要使用载波来承载,UWB 则不需要,取而代之的是通过发送和接收具有纳秒甚至亚纳秒级的极窄脉冲来传输数据,一个信息比特可映射为数百个这样的脉冲。

根据傅里叶时频变换规则可知,单周期 UWB 脉冲时域宽度越短,对应的频域带宽就越宽,这种纳秒级时域脉冲信号,往往能产生具有 GHz 量级的频域带宽,因此这种技术也称 UWB 超宽带技术(带宽非常大)。

IEEE802.15.4z是UWB无线通信的代表性标准,其中有使用Impulse Radio的方式,Impulse Radio使用持续时间短的脉冲信号。

主要特征如下:

高精度测距和定位
安全性高
对其他通信干扰弱
低功耗

wKgZO2gR1t2AXp1QAABHk2AL8HE829.jpg

2、UWB(超宽带)定位方法介绍

参考资料:详细介绍点此查看】https://pdf.hanspub.org/CSA20200800000_47906344.pdf

基于测距的定位技术

(1) TOA(Time of Arrival,到达时间法)

原理:通过测量信号从标签(Tag)到基站(Anchor)的传播时间计算距离,需至少 3个基站 进行三角定位。

特点厘米级精度(±5cm)、要求设备间严格时钟同步

(2) TWR(Two-Way Ranging,双向测距)

SS-TWR(单边):依赖一端时钟,响应时间固定。

(SS-TWR是一种仅由一方的设备测量往返时间的方法。在这种手法中,设备A向设备B发送信号,设备B收到该信号后,向设备A发送回复信号。设备A测量从发送到接收所花费的时间并计算往返时间。此方法仅使用设备A就能进行测量,但需要两个设备的时钟同步)

DS-TWR(双边):两次测距抵消时钟偏差,精度更高(±2cm)。

(DS-TWR是一种用两台设备测量往返时间并共享结果的方法。在这种手法中,设备A向设备B发送信号,设备B收到该信号后,向设备A发送回复信号。设备 A和设备B分别测量各自从发送到接收所需要的时间,并使用这些结果计算往返时间。

这种方法不需要时钟同步,因此测量更容易,精度更高)

特点:无需严格同步,但功耗较高。

wKgZPGgR1t2APHLvAABlRjGkBIs901.jpg

(3) TDOA(Time Difference of Arrival,到达时间差法)

原理:利用信号到达不同基站的时间差进行双曲线定位。

特点:仅需基站间同步,适合大规模部署 同步误差影响精度

基于角度的定位技术

(1) AoA(Angle of Arrival,到达角法)

AoA是一种计算从设备A看到的设备B放置方向的角度的方法。如图所示,UWB无线中通过AoA进行的角度测量的原理。

设备B发射的电波被设备A的多根天线接收,并且根据接收的电波的相位差计算角度。使用这种方法,能通过用2根天线进行的角度测量(2D AoA)进行平面定位,以及通过用3根天线进行的角度测量(3D AoA)进行三维定位。

原理:通过天线阵列测量信号入射角度

PDOA(Phase Difference of Arrival):基于相位差测角,精度更高(±1°~5°)。

ADOA(Amplitude Difference of Arrival):基于信号强度差测角,成本低但精度较差。

wKgZO2gR1t6ABws3AACZlobNGnI227.jpg

3、不同定位技术的差异

UWB 与其他定位技术的核心区别:

wKgZPGgR1t6AZ8VbAADeyPjEO88458.jpg

三、功能效果测试

1、快速上手使用测试

UART1

UART1是BU03-Kit上标有TTL丝印字样的type-C接口,主要用来收发AT指令,进行模式配置的UART口,此UART口使用的是CH340的串口驱动。

(1)接入type-C数据线接到电脑上,打开串口调试助手,并且按下复位按键,调试助手打印如图信息所示,即说明复位按键正常;

(2)发送指令AT,返回OK,则说明收发测试成功;

wKgZO2gR1t-AI1hmAADVqzLSCdk824.jpg

USB

USB口是BU03-Kit上标有USB丝印字样的type-C接口,主要用来打印测距或者其他信息,此USB口使用的是ST的单片机自带的USB驱动,一般电脑不会自动识别安装,所以需要手动安装驱动。

wKgZPGgR1uCADKqCAADWQxxutPo825.jpg

UART2

UART2的端口测试需要借助USB转TTL工具

(USB 口 / UART2 输出相关测距信息,将在后面章节介绍)

wKgZPGgR1uCASo0OAAA0SWUmEWI899.jpg

流水灯测试

2

UWB 功能测试

测距 / 零位、一维定位

使用1个基站多个标签可实现基站于标签的实时测距功能

由于只有1个基站参与标签的测距,所以只有标签的距离没有方向(零位定位,是否在这个区域周边)。在这个系统基础上再增加一个基站就可以通过2个基站的相对位置和标签与基站之间的距离,实现1条线上的定位(一维定位)

二维定位系统

使用3个基站多个标签可实现最小2维定位系统

此系统缺点存在是,当出现某个基站有遮挡、干扰时,因为没有多的基站数据用于冗余计算会影响标签定位效果。使用时要注意基站标签之间要互相可视。3基站系统,只需其中任意一个模块(基站/标签都可以输出定位数据)通过USB/UART/WIFI/以太网链接电脑上传定位数据即可,其余基站供电(其余基站会通过UWB无线通讯,将定位数据汇总到自身)

wKgZO2gR1uGAU4brAAB_C0xTHHM009.jpg

使用4个基站多个标签的2维定位系统

此系统优点是,当出现某个基站有遮挡、干扰时,因为有多的基站数据用于冗余计算,所以定位精度会有一定保障不受干扰。使用时要注意基站标签之间要互相可视。4基站系统,只需其中任意一个模块(基站/标签都可以输出定位数据)通过USB/UART/WIFI/以太网链接电脑上传定位数据即可,其余基站供电(其余基站会通过UWB无线通讯,将定位数据汇总到自身)

wKgZPGgR1uGARlA9AABm2UndVPI498.jpg

三维定位系统

使用6个以上基站多个标签可实现更大面积的2维定位或3维定位

此系统优点是,定位区域更大,当出现多个基站有遮挡、干扰时,因为有多的基站数据用于冗余计算,所以定位精度会有一定保障不受干扰。使用时要注意基站标签之间要互相可视。6基站系统,只需其中任意一个模块(基站/标签都可以输出定位数据)通过USB/UART/WIFI/以太网链接电脑上传定位数据即可,其余基站供电(其余基站会通过UWB无线通讯,将定位数据汇总到自身)

wKgZO2gR1uKAVtcKAAB26_CLCFE790.jpg

wKgZPGgR1uKAT4NxAACgWVFMqJ0412.jpg

部分AT指令

AT指令表详见】

wKgZO2gR1uOASbE5AAC4qeMtqnI207.jpg

wKgZPGgR1uOAXOJVAACjUX9DqYI782.jpg

上位机下载地址https://docs.ai-thinker.com/_media/ai_thinker_twr.rar

测距配置是标签基站之间的距离测算,一块BU03-Kit需配置为标签,另一块配置为基站

(基站的OLED屏幕 / USB口 将实时显示标签和基站的距离)

(1)测试时要保持天线的净空区域(即标签和基站之间不能有阻挡,否则将会造成测试误差过大或者距离严重折损)
(2)基站或者标签测试时不能放置桌面,否则会出现误差较大
(3)上述两点点确认后仍需要提高精度时可以使用矫正指令来提高精度

测距

1、连接TTL口,通过AT指令来配置,一个设置为基站(A设备),另一个设置为标签(B设备)

在A设备上使用 AT+SETUWBMODE=0 AT+SETCFG=0,1,1,1 以及 AT+SAVE

wKgZO2gR1uSAasOPAAC_ri0EpG8220.jpg

在B设备上使用 AT+SETUWBMODE=0 AT+SETCFG=0,0,1,1 以及 AT+SAVE

2、A设备(基站) OLED屏显示当前与 B设备的距离信息

wKgZPGgR1uSAKasHAAC1cD0pClU953.jpg

升高开发板后测得的数据

未矫正前,实测多次 发现误差大约在20cm左右波动

wKgZPGgR1uWAbXgEAAD8vuqXntc860.jpg

二维定位

采用二维平面的的坐标测试,使用三基站一标签搭建的室内定位需求。

效果:电脑上位机上显示20米区域范围内定位导航,轨迹显示。

(1)连接TTL端口使用AT指令逐一配置,使用串口调试助手配置时我们需要配置3个基站1个标签

指令配置完毕后三个基站的OLED屏幕上都将显示与0号标签的实时测距信息(多基站同理)

(2)上述角色配置成功以后,并且打开TWR上位机进入如图示界面,此过程需要连接上0号基站的USB口,并且其他基站和标签保持持续上电。

注意
上位机软件无法识别USB口,此时需要先关闭软件,再插拔USB口,再次打开上位机操作;
测试所找空地要求空旷无遮挡,并且基站需要离地1.5M以上竖直放置,用三脚架固定等;

wKgZO2gR1uWAG6IAAADI-2ppWaw729.jpg

wKgZPGgR1uaAJHYyAACa64Zp-SA527.jpg

PDOA算法测距、测角度

PDOA 上位机下载

注意
方式一不能掉电保存(需重新配置),方式二可以保存

方式一【PDOA上位机】

1、连接TTL口,通过AT指令来配置,一个设置为基站(A设备),另一个设置为标签(B设备)

在A设备上使用 AT+SETUWBMODE=1 AT+SETCFG=0,1,1,1 以及 AT+SAVE
在B设备上使用 AT+SETUWBMODE=1 AT+SETCFG=0,0,1,1 以及 AT+SAVE

若TTL口出现报错打印,无需理会

2、连接A设备的USB口,并打开PDOA上位机

(1)点击加入标签以后,上位机将识别到标签出现在区域内,随着移动标签,上位机上实时显示标签的角度A和距离D

(基站的 OLED 屏幕也会显示距离D和角度A)

wKgZO2gR1ueAHd6hAACwShXC3wI016.jpg

方式二【AT指令绑定】

1、连接TTL口,通过AT指令来配置,一个设置为基站(A设备),另一个设置为标签(B设备)

在A设备上使用 AT+SETUWBMODE=1 AT+SETCFG=0,1,1,1 以及 AT+SAVE
在B设备上使用 AT+SETUWBMODE=1 AT+SETCFG=0,0,1,1 以及 AT+SAVE

此时继续观察基站TTL口,将会打印出一串标签 ID,需要填写进AT指令进行绑定。

wKgZPGgR1ueAcPagAAAn_V_ZSV4591.jpg

上述指令设置有后我们从基站的TTL口得到了标签 ID,我们将此ID绑定到基站上,使用如下指令

AT+ADDTAG=267F1313,8834,1,64,0
AT+SAVE
267F1313 为标签 ID,其他参数不变默认填写

此时,基站OLED屏幕显示与标签的距离D和角度A

wKgZPGgR1uiAGS05AABEkMQ1gmw434.jpg

角度范围(-60° ~ 60°)

wKgZO2gR1uiAB7FTAABxBEAeXoc337.jpg

移动设备定位功能(AirTag)

主要通过包含UWB芯片(BU03模组)、蓝牙芯片主控(NRF52832)、PDOA算法等,以实现与手机(UWB芯片)交互

手册 / 开发SDK】https://www.qorvo.com/products/p/DWM3000#documents

目前,支持UWB芯片的相关设备:

wKgZPGgR1uiADXxrAAEa5hEkj8o887.jpg

功耗测试

在功耗测试设备有限的情况下,固件为出厂固件,TWR算法下:一个为基站,一个为标签

所测得的大致功耗如下:

标签:318.2mW

基站:487.3mW

wKgZO2gR1umAevNhAAGymHW27qk666.jpg

四、测距精度矫正 / 串口数据解析

1

串口数据解析

TWR算法

(1) 连接至基站的USB口,在串口助手上,将收到以下的Hex数据格式

wKgZO2gR1uqAQCnvAAB4WEsekDY898.jpg

wKgZPGgR1uqAbkiiAAE_okdLtdE053.jpg

wKgZO2gR1uuAdGSIAABGqG4MKjA682.jpg

例帧说明:

wKgZPGgR1uuAEbpmAADKmt_2z2o746.jpg

(2) 连接至基站的UART2,在串口助手上,将收到以下的数据格式

帧协议格式

wKgZO2gR1u2AQCDPAABR3m5wCtE570.jpg

数据域协议格式

wKgZO2gR1u2AOlqXAABgB-Fh8AM991.jpg

PDOA算法

USB 口和 UART2 输出协议相同, 且可通过 AT 指令切换 Json 和 hex 两种格式

wKgZPGgR1u6ARPu2AABRG_xRDeU905.jpg

JSON 协议文本

JS006C{"TWR": //006c 为长度
{ "a16":"4096", //Tag 地址
"R"':115, //Tag 序列号
"T":0 //Tag 时间
"D":76, //Tag 与 Node 距离值
"P":-123, //Tag 与 Node 相位差
"Xcm":-57, //Tag 的 X 轴坐标
"Ycm":50, //Tag 的 Y 轴坐标
"O":408, //时钟偏移
"V":49152, //Tag 的信息
"X":0, //Tag 的加速度 X 轴信息 "Y":0, //Tag 的加速度 Y 轴信息 "Z":0 //Tag 的加速度 Z 轴信息 } }

例帧解析

JS006D{"TWR": {"a16":"8834","R":128,"T":1490981,"D":37,"P":56,"Xcm":14,"Ycm":32,"O":0,"V":49152,"X":0,"Y":0,"Z":0}}

关键的值是 Xcm 和 Ycm,用它们来计算角度。

角度的计算公式:

wKgZO2gR1u-AbLBDAAAQQE5we1s928.jpg

angle = arctan(14/32)×180/ = arctan(0.4375)×57.2958 ≈ 23.62°

wKgZPGgR1u-AUHG8AABo2K5oYAE079.jpg

HEX 协议文本

wKgZO2gR1vCAcKoJAADOPri68kk514.jpg

例帧解析

距离:38(Hex) -> 56cm

角度:EFFFFFFF(Hex) -> -17°

wKgZPGgR1vCAB983AACF4YNcnI0819.jpg

2

测距精度矫正

若测距过程中发现偏差过大,那么需要执行相关校准

(1)下载自动计算标定系数的表格Excel【下载地址】

(2)以TWR算法为例,打开Excel,根据OLED屏幕 / USB串口 / 上位机输出的数据,计算系数

在测试环境中已经搭建好设备,利用测量工具(如卷尺或者皮尺)依次按照间隔1米刻度,将标签分别放在刻度上,根据OLED屏幕 / USB串口输出数据 / 上位机 读数,分别填写在表格中,表格中会得出一个系数值,如下图;

wKgZO2gR1vGAQFcHAAFPgu7F6zc199.jpg

(3)使用矫正AT指令

上述的系数我们将使用这条AT指令来矫正,指令中我们将参数进行替换,并且发送保存指令即可,如下图所示(其他参数保持不变,仅改变图示框选参数值)

y=0.9924x-317.68

指令:
AT+SETDEV=10,16336,1,0.018,0.642,0.9924,-317.68,0,0
AT+SAVE

五、使用体验

使用一基站 / 一标签,在默认的AT固件下,很容易上手开发使用,未矫正前,实际距离与测试距离会有误差,但在经过精度矫正后,可以实现不错的距离/角度测量。

当然通过屏幕OLED读数,会因为屏幕尺寸以及数据变化过快,读数起来会相对不易,但可以使用上位机来获取读数,上位机的参数配置、使用起来也很容易。

优化:

1、BU03-Kit的MCU主控,可以换成低功耗的STM32C / L系列,或者具备蓝牙功能(NRF52832)、WiFi / BLE功能的ESP32C / S系列等,可以让后续的二次开发使用,有更多的拓展性。

2、开发板的板载的LED指示灯并非全部都是必须的,过多会增加不必要的消耗, 可以适当缩小开发板尺寸,以及引出锂电池接口,可以用作锂电池供电开发板使用(低功耗)、方便移动携带使用,以及后续的二次DIY开发制作等。

低功耗精准定位开发板BU03-Kit ——【软件篇】

一、开发方式

1、AT指令

AT指令表详见】https://docs.ai-thinker.com/_media/bu03_bu04_at%E6%8C%87%E4%BB%A4_v1.0.2.pdf

在出厂固件下,使用相关AT指令,能快速上手使用。可以进行算法选择、距离、角度测量配置等

(1)用数据线连接至开发板的TTL口,并打开串口助手连接

(2)连接后,使用指令 AT进行测试,若返回 OK,即代表AT指令处理成功

wKgZO2gR1vKAZphEAABoVmcAsYY208.jpg

主要相关指令:

保存配置:AT+SAVE

恢复出厂模式:AT+RESTORE

获取配置信息:AT+GETCFG (getcfg ID:65535, Role:0, CH:1, Rate:1)

算法切换指令:AT+SETUWBMODE=X

算法选择 X=0:TWR 1:PDOA)

配置完需执行保存配置 AT+SAVE指令

设置配置信息:AT+SETCFG=X1,X2,X3,1

X1: 设备ID(0~10)

X2:设备角色(0:标签 1:基站)

X3:设备信道(0:信道 9 1:信道 5)

1:(设备速率6.8M) 【目前只支持6.8M】

配置完需执行保存配置AT+SAVE指令

流水灯测试指令

AT+TESTLED=X

开始 / 停止开发板LED(流水灯)测试

X:1:开始测试LED 0:停止测试LED

注:执行AT+SETCFG配置设备信息前使用

获取加速度传感器数据

AT+GETSENSOR

获取加速度传感器数据 (BU03模组支持,BU04模组硬件不支持)

acc_x:80.000000acc_y:960.000000acc_z:144.000000angle: 81.493958

使用串口助手的定时发送功能,此时再移动开发板的位置,即可获得此时开发板传感器的实时数据

wKgZPGgR1vKAX_rQAAB9SViX-sU949.jpg

TWR算法指令

TWR测距

(1)用数据线连接至A开发板的TTL口,使用AT指令 AT+SETUWBMODE=0 AT+SETCFG=0,1,1,1 以及 AT+SAVE 配置为“基站”

(2)用数据线连接至B开发板的TTL口,使用AT指令 AT+SETUWBMODE=0 AT+SETCFG=0,0,1,1 以及 AT+SAVE 配置为“标签”

此时,“基站”开发板的OLED屏幕将会显示,当前“标签”与“基站”之间的距离

也可以在“基站”上使用 AT+DISTANCE指令,显示距离

wKgZO2gR1vOARmb9AABf6FC83-E348.jpg

专用指令

获取设置的相关系数参数

AT+GETDEV

(getdev cap:10 anndelay:16336, kalman_enable:1, kalman_Q:0.018, kalman_R:0.642, para_a:1.0142, para_b:-173.75, pos_enable:0, pos_dimen:0)

设置设备的系数

AT+SETDEV=X1,X2,X3,X4,X5,X6,X7,X8,X9

X1:标签容量(标签刷新速率)

X2:天线延迟参数

X3:是否卡尔曼滤波使能位

X4:卡尔曼滤波参数 Q

X5:卡尔曼滤波参数 R

X6:校正参数 a

X7:校正参数 b

X8:是否定位使能位

X9:定位维度设置

配置完需执行保存配置AT+SAVE指令

PDOA算法指令

PDOA测距 / 角度

(1)用数据线连接至A开发板的TTL口,使用AT指令 AT+SETUWBMODE=1 AT+SETCFG=0,1,1,1 以及 AT+SAVE 配置为“基站”

此时继续观察“基站”TTL口,将会打印出一串标签 ID,使用AT指令 AT+ADDTAG=267F1313,8834,1,64,0 AT+SAVE进行绑定。

wKgZPGgR1vOAOT1HAABna7e6dQ0020.jpg

(2)用数据线连接至B开发板的TTL口,使用AT指令 AT+SETUWBMODE=1 AT+SETCFG=0,0,1,1 以及 AT+SAVE 配置为“标签”

此时,“基站”OLED屏幕显示与标签的距离D 和 角度A

专用指令

以下指令,仅适用与“基站”:

AT+GETDLIST
获取 [发现列表]
AT+GETKLIST
获取 [配对列表]
AT+ADDTAG
增加标签到 [配对列表]
(AT+ADDTAG=267F1313,8834,1,64,0)
AT+DELTAG
从 [配对列表] 删除标签

更多指令

【AT指令表详见】https://docs.ai-thinker.com/_media/bu03_bu04_at%E6%8C%87%E4%BB%A4_v1.0.2.pdf

2、二次开发SDK

Github地址:https://github.com/Ai-Thinker-Open/STM32F103-BU0x_SDK.git

Gitee地址:https://gitee.com/Ai-Thinker-Open/STM32F103-BU0x_SDK.git

注意:此SDK只适用于安信可BU03或BU04系列模组或开发板

开发环境

(1)此开发板的主控MCU为STM32系列,因此可以使用 Keil 开发,SDK文件夹下的README.md有相关的配置使用方法

(2)打开下载好的SKD文件夹,在ProjectsUSER目录下面找到Project.uvprojx文件双击打开工程

SDK工程目录结构

文件夹

wKgZO2gR1vSAXhogAABGZB53o0U417.jpg

名称及路径

说明

wKgZPGgR1vSAV98wAADbjv0tL20147.jpg

(3)Keil环境配置

wKgZPGgR1vWAfPR2AAHoeXA48aI204.jpg

若提示报错,将报错的misc.c的131行的NVIC->IPR[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;

更改为 NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;

快速上手例程

Example下有不同的例程,以ds_twr_sts_sdc_init(双边测距发起者例程)、ds_twr_sts_sdc_resp(双边测距回复者例程) 为例

TWR双边测距回复者例程(UWB基站),负责接收发起者(UWB标签)的数据,并计算距离数据,实现在串口上显示TWR下的距离

此应用程序发送一个 “轮询 ”帧(记录轮询的 TX 时间戳)

然后等待 “ds_twr_sts_sdc_resp”示例代码(此应用程序的配套代码)发出 “响应 ”信息。

收到响应后,记录其 RX 时间戳,然后发送 “最终 ”报文完成交换。

最终报文包含本应用程序记录的所有时间戳,包括计算/预测的最终报文本身的 TX 时间戳。

配套的 “ds_twr_sts_sdc_resp”示例应用程序(回复者)可计算出空中飞行时间,并由此估算出两地之间的距离。

从而估算出两个设备之间的距离。

发起者:发起双边定位的设备,负责发送定位数据包,可视为"UWB标签"

回复者:负责接收定位数据包,并计算测距距离,可视为 "UWB基站"

wKgZO2gR1vWABc8tAAEujG6wxmY457.jpg

(1)打开 example_defines.h ,把宏 #define EXAMPLE_DEMO 的值改成 1,打开 example_selection.h,取消宏 #define TEST_DS_TWR_INI_STS的注释

(2)编译后,连接开发板的TTL口,下载并烧录到开发板中,配置为“标签

wKgZPGgR1vWAGjIBAAFuvXW_dw0725.jpg

(3)打开 example_selection.h ,

取消宏 #define TEST_DS_TWR_RESP_STS 的注释

example_selection.h 每次只能运行一个例程,所有要注释 #define TEST_DS_TWR_INI_STS

wKgZO2gR1vaAAplVAAFGPVTk5PA082.jpg

(4)让距离信息从UART上打印出来

打开 “ ds_twr_sts_sdc_resp.c ” 定位到 285 行

取消相关的注释

定义 dist_str 数组变量

wKgZPGgR1veASiHZAAEs4CGZL8M749.jpg

(5)编译后,连接另一块开发板的TTL口,下载并烧录到开发板中,配置为“基站

上电运行ds_twr_sts_sdc_init例程的设备A “标签

上电运行ds_twr_sts_sdc_resp例程的设备B “基站

(6)打开串口助手,输出标签到基站之间的距离数据 (间隔1s)。

wKgZO2gR1veANU-nAACqlZdNfio740.jpg

SDK相关代码介绍

UWB 驱动API指南

main.c:若没有打开 EXAMPLE_DEMO 宏 ,则执行主要任务 nt_task();

wKgZPGgR1viAPVyCAABWP2f6Htg744.jpg

nt_task:主要是根据设备的不同配置、角色进行不同初始化和操作;

根据工作模式的不同,处理不同的数据传输模式(TWR / PDOA模式)

void nt_task (void) { //读取上次flash存储数据 load_bssConfig(); if (sys_para.param_Config.s.userConfig.workmode == 0) { OLED_ShowStr (19, 2, "Please Send", 2); OLED_ShowStr (19, 4, "AT Command", 2); while (app.pConfig->s.userConfig.nodeAddr == 0xFFFF) //AOA是否有设置 { App_Module_Sys_Work_Mode_Event(); } if (app.pConfig->s.userConfig.twr_pdoa_mode == 0) { if (sys_para.flag == 0xAAAA) { if (sys_para.param_Config.s.userConfig.role == 1) //node { node_start(); } else if (sys_para.param_Config.s.userConfig.role == 0) //tag { tag_start(); } } } else { if (sys_para.param_Config.s.userConfig.role == 1) { ds_twr_sts_sdc_responder(); } else if (sys_para.param_Config.s.userConfig.role == 0) { ds_twr_sts_sdc_initiator(); } } } else { while (1) { App_Module_Sys_Work_Mode_Event(); } } for (;;); }

二、程序烧录

1、使用SWD接口下载/调试

接线方式

wKgZO2gR1viAEBl7AAAwi7nAdBU043.jpg

Keil 烧录配置

wKgZPGgR1vmASlKrAAEiK7w8oh0854.jpg

2、使用串口USB下载

Uart烧录软件:点击http://www.mcuisp.com/software/FlyMcu.rar

(1)使用数据线连接至TTL口

wKgZO2gR1vmANMiqAADCWZh4EoI184.jpg

(2)打开烧录软件

选择固件,已编译出来的Hex文件

点击搜索串口,选择对应的Port。

长按板载的BOOT0不松开,再按一下RESET后松开BOOT0。进入烧录模式,开始编程即可开始烧录。等待烧录完成即可。

wKgZPGgR1vqAHOcMAAFsXcbI3to752.jpg

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • UWB
    UWB
    +关注

    关注

    32

    文章

    1190

    浏览量

    63056
  • 开发板
    +关注

    关注

    25

    文章

    5775

    浏览量

    106515
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    小智AI正式授权!小安派语音AI开发板更新啦

    正式推出 语音AI开发板—— AiPi-PalChatV1 为毛绒玩具、桌搭机器人、 陪伴手办注入更有温度的AI对话体验! ? AiPi-PalChatV1 是一款接入了小智AI
    的头像 发表于 07-15 15:06 ?231次阅读
    小智AI正式授权!<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>小安派语音AI<b class='flag-5'>开发板</b>更新啦

    Texas Instruments AMP-PDK-EVM子开发套件数据手册

    Texas Instruments AMP-PDK-EVM子开发套件设计用于搭配AMP-PDK-EVM主板使用。子套件选项适用于不同封装
    的头像 发表于 07-09 14:15 ?242次阅读
    Texas Instruments <b class='flag-5'>AMP</b>-PDK-EVM子<b class='flag-5'>板</b><b class='flag-5'>开发</b>套件数据手册

    上手体验小安派AI开发板,如何接入Home Assistant?

    以下作品由社区用户 无垠的广袤 制作 感谢社区的支持,免费领到了
    的头像 发表于 07-08 10:34 ?1461次阅读
    上手体验<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>小安派AI<b class='flag-5'>开发板</b>,如何接入Home Assistant?

    正点原子Z20 ZYNQ 开发板发布!板载FMC LPC、LVDS LCD和WIFI&amp;amp;蓝牙等接口,资料丰富!

    正点原子Z20 ZYNQ 开发板发布!板载FMC LPC、LVDS LCD和WIFI&amp;amp;amp;蓝牙等接口,资料丰富! 正点原子新品Z20 ZYNQ
    发表于 05-30 16:55

    GP-02-Kit测试过程+GPS 时钟制作

    以下作品由社区用户 无垠的广袤测试及制作 产品介绍 GP-02-Kit是一款高集成带有陶瓷天线、高性能 BDS/GNSS 多模卫星导航接收机SoC
    的头像 发表于 04-23 09:24 ?489次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>GP-02-<b class='flag-5'>Kit</b>测试过程+GPS 时钟制作

    如何用蓝牙模块远程控制家中的设备?

    参数 本项目使用了PB-03F Kit开发板,使用的是模组PB-
    的头像 发表于 04-22 17:47 ?340次阅读
    如何用<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>蓝牙模块远程控制家中的设备?

    【道生物联TKB-620开发板试用】开箱&amp;amp;开发板说明&amp;amp;未来试用计划

    基于TK8620无线终端芯片的开发评估,为大家提供一个快速了解、测试芯片性能的平台,开发板精致小巧、外观及原件位图介绍如下: 2、TKB-620具有非常完善的SDK,包括快速使用指南
    发表于 04-13 20:51

    AI人脸识别开发板BW21-CBV-Kit驱动墨水屏

    HomeAssistant,实时查看Ai摄像头画面? 【教程】小安派BW21-CBV-Kit——读取 DHT 温湿度传感器 以下作品由社区用户 iiv制作 大家好,今天试着用BW
    的头像 发表于 03-06 08:47 ?509次阅读
    用<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>AI人脸识别<b class='flag-5'>开发板</b>BW21-CBV-<b class='flag-5'>Kit</b>驱动墨水屏

    STM32开发板教程之STM32开发指南免费下载

      本开发指南将由浅入深,带领大家进入 STM32 的世界。本指南总共分为三篇:1,硬件篇,主要介绍本指南的实验平台;2,软件篇,主要介绍
    发表于 02-28 09:08 ?179次下载

    M61/M62系列烧录指导(包含模组&amp;amp;开发板)

    进入烧录模式 模组:将IO2接入TTL的话则自动进入烧录模式。 开发板:长按IO2不松开,短按EN,再松开IO2。
    的头像 发表于 01-06 10:06 ?1294次阅读
    M61/M62系列烧录指导(包含模组&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>开发板</b>)

    基于UWB模组——BU03开发智能吊坠

    ? ? ? ? 智能吊坠 能对手机进行精准测距! ? 前言 基于新品 UWB 模组——BU03 开发的一款智能吊坠,它能够对手机进行精
    的头像 发表于 11-28 09:13 ?894次阅读
    基于<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>UWB模组——<b class='flag-5'>BU03</b><b class='flag-5'>开发</b>智能吊坠

    能力再次提升! 迅为RK3588/RK3568开发板&amp;amp;amp;核心新增定制分区镜像

    能力再次提升! 迅为RK3588/RK3568开发板&amp;核心新增定制分区镜像
    的头像 发表于 11-06 15:11 ?1545次阅读
    能力再次提升! 迅为RK3588/RK3568<b class='flag-5'>开发板</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;核心<b class='flag-5'>板</b>新增定制分区镜像

    迅为itop-3568开发板AMP双系统使用手册之烧写AMP镜像

    迅为itop-3568开发板AMP双系统使用手册之烧写AMP镜像
    的头像 发表于 11-04 15:00 ?1398次阅读
    迅为itop-3568<b class='flag-5'>开发板</b><b class='flag-5'>AMP</b>双系统使用手册之烧写<b class='flag-5'>AMP</b>镜像

    UWB室内定位模块,BU03 测距说明教程

    概要 本篇文章主要内容主要讲述BU03模组开发板的区别,测试方法,以及一些资源链接的分享,可以快速的帮助用户搭建测试环境,评估和测试模块功能和性能。 产品介绍 BU03 是深圳市
    的头像 发表于 10-10 10:28 ?1091次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>UWB室内<b class='flag-5'>定位</b>模块,<b class='flag-5'>BU03</b> 测距说明教程

    瑞萨开发板?RX-FSOE-REF-KIT功能安全使用介绍(上)

    本文基于瑞萨官方开发板RX-FSOE-REF-KIT,介绍EtherCAT通讯的功能安全应用开发以及实现过程所需的开发环境。
    的头像 发表于 08-20 15:25 ?1344次阅读
    瑞萨<b class='flag-5'>开发板</b>?RX-FSOE-REF-<b class='flag-5'>KIT</b>功能安全使用介绍(上)