跳到主要内容

标签协议

该教程面向基于标签做导航的开发者,如机器人、无人机、终端导航设备等。通过该接口可获得标签UID、坐标、精度指标等信息,通信格式为十六进制,接口包括UART、IIC等。

概述

用户可以通过UART、IIC或其他接口获取定位结果。

UART

在串口模式中,当标签能够结算当前位置时,会以定位频率主动输出包含MSG_Location_Result的数据帧,MSG_Location_Result中包含定位结果。

更详细内容请参阅 uBeacon_Tag_UART_Protocol.pdf。

IIC

在IIC模式中,标签作为从机,需要主机主动获取定位结果,定位结果存储在Location_Result寄存器中,地址为0x44。

更详细内容请参阅 uBeacon_Tag_IIC_Protocol.pdf。

SPI

敬请期待。

数据解析

定位结果

标签数据以小端模式输出。

任何接口获取的定位结果都可以用下面的结构体表示。

struct LocationResult {
uint64_t local_time; //tag local time, unit:us
float pos[3]; //3 axis position (x,y,z), unit:m
int16_t vel[3]; //3 axis velocity (x,y,z), scaling factor 100, unit:m/s
uint8_t pos_noise[3]; //3 axis position noise (x,y,z), scaling factor 100, unit:m
uint8_t vel_noise[3]; //3 axis velocity noise (x,y,z), scaling factor 100, unit:m/s
};

解析示例

通过UART、IIC获取的数据以十六进制存储,为了更直观的观测定位信息,需要转化为十进制,可以参考下面解析示例。

十六进制数据: B5 23 0B 02 00 00 00 00 DD 51 b1 41 EB 58 57 41 AA E7 9A 3F FA FF 04 00 00 00 07 07 04 08 08 04。

local_time:

十六进制0x00000000020B23B5 转换为十进制 34284469,本地时间为从上电开始计算34284469us。

pos:

x轴位置十六进制 0x41b151DD 转换为十进制 22.164972, x轴坐标为 22.164972m。

y轴位置十六进制 0x415758EB 转换为十进制 13.459208, y轴坐标为 13.459208m。

z轴位置十六进制 0x3F9AE7AA 转换为十进制 1.210195, z轴坐标为 1.210195m。

vel:

x轴速度十六进制 0xFFFA 转换为十进制 -6,除以缩放因子 100. x轴速度为 -0.06m/s。

y轴速度十六进制 0x0004 转换为十进制 4,除以缩放因子 100. y轴速度为 is 0.04m/s。

z轴速度十六进制 0x0000 转换为十进制 0,除以缩放因子 100. z轴速度为 is 0m/s。

pos_noise:

x轴位置噪声十六进制 0x07 转换为十进制 7,除以缩放因子 100. x轴位置噪声为 0.07m。

y轴位置噪声十六进制 0x07 转换为十进制 7,除以缩放因子 100. y轴位置噪声为 0.07m。

z轴位置噪声十六进制 0x04 转换为十进制 4,除以缩放因子 100. z轴位置噪声为 0.04m。

vel_noise:

x轴速度噪声十六进制 0x08 转换为十进制 8,除以缩放因子 100. x轴速度噪声为 0.08m/s。

y轴速度噪声十六进制 0x08 转换为十进制 8,除以缩放因子 100. y轴速度噪声为 0.08m/s。

z轴速度噪声十六进制 0x04 转换为十进制 4,除以缩放因子 100. z轴速度噪声为 0.04m/s。

参数配置

用户可以通过配置参数以实现期望的定位效果

更详细内容请参阅 uBeacon_Tag_UART_Protocol.pdf.