1 简述
最近在学习人体姿态设别的算法。想着买个角度传感器去尝试下。这个传感器最好是无线的带电池的,这样对我来说是比较方便使用的。我就在淘宝上找到一个一款BWT901CL,这个角度传感器。这个模块挺好用的,有加速度、角速度、角度。而且都是三个轴的。精度的话呢加速度0.01g、角速度0.63°/s、角度静态是0.05、动态是0.1。精度是满足我的需求的。给大家看下模块。
2 程序设计
2.1数据处理
根据商家给的通讯协议(如下图)。写了一个接收程序。
根据这个协议就很好理解我写的数据处理程序。这个BWT901CL蓝牙输出的角度的一共是11位数据。所以,我先判断数据 的长度是不是11位,然后再判断包头是不是55。如果不是55在判断下一位是不是55。直到我找到了55这个包头,然后才进行11位数据的第二位的数据的判断,是不是50、51、52、53、54这种商家定义的代表时间、加速度、角速度、角度、磁场的数。
void CJY901 ::CopeSerialData(char ucData[],unsigned short usLength)
{
static unsigned char chrTemp[2000];
static unsigned char ucRxCnt = 0;
static unsigned short usRxLength = 0;
memcpy(chrTemp,ucData,usLength);
usRxLength += usLength;
while (usRxLength >= 11)
{
if (chrTemp[0] != 0x55)
{
usRxLength--;
memcpy(&chrTemp[0],&chrTemp[1],usRxLength);
continue;
}
switch(chrTemp[1])
{