标签协议
该教程面向基于标签做导航的开发者,如机器人、无人机、终端导航设备等。通过该接口可获得标签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.