IMU使用入门——WT901CM

产品名称:WT901CM

官网:https://www.wit-motion.cn/#/witmotion/product/detail?id=78a80a409be742308b1e67153f773e1d

  • 硬件连线:

使用到STM32的两个串口(不同型号的STM32开发板会有区别):

  1. usart1(PA9,PA10)通过开发板上已有的USB转串口CH340连接到电脑上与上位机通信,波特率为115200
  2. usart2(PA2,PA3):PA2为TX口连接至下图板子的RX口,PA3为RX口连接至下图板子的TX口,另外板子的VCC和GND也要连接至32的3.3v和GND,波特率为9600

 

  • 上位机配置:

无论是IMU的数据直接读入电脑上位机,还是STM32读入经过计算得到角度、加速度等信息后再读入上位机,这些信息都需要上位机显示出来帮助我们理解和判断。

以下介绍两种应用场景:

  1. IMU直接与电脑相连,使用维特智能的上位机直接可以解析出角度,加速度等信息。

 

这时使用串口调试助手就可以读出IMU传给上位机的十六进制数据。

 

找出周期性的数据:

55 51 7A FA AE FF 86 05 C0 06 18

55 52 00 00 00 00 00 00 C0 06 6D

55 53 BE FC D8 1F C9 AB 22 49 38

55 54 67 08 13 FB F0 E5 00 00 FB

后面就可以通过维特的私有协议解析测量值。

 

2. IMU与STM32通信,STM32再与电脑上位机通信:

此时需要提前完成上文中的硬件连接部分,连接无误后,按下32开发版的RST复位键等待串口调试助手返回数据。

 

  • 维特私有协议:

此处拿角度输出举例:

 

0x55为协议头每一包数据都以0x55打头,0x53为数据类型这里代表角度输出。

复制一段上文中的16进制数据:55 53 BE FC D8 1F C9 AB 22 49 38

D8 1F分别是PitchL和PitchH,那么0x1FD8就是俯仰角Y的数据,根据计算公式可得:

int main()

{

    int PitchL = 0xD8;

    int PitchH = 0x1F;

    float res = ((PitchH<<8)|PitchL)/32768.0*180;

    printf("俯仰角为%f", res);

    return 0;

}

 

可以翻看上文中直接使用维特上位机读出的角度为44.736(这里角度有一点小偏差可能是没有把IMU固定住,让它的角度发生了微小的变化)

协议详细内容可访问:

https://wit-motion.yuque.com/wumwnr/docs/locehn?#%20%E3%80%8AWIT%E7%A7%81%E6%9C%89%E5%8D%8F%E8%AE%AE%E3%80%8B

  • 串口通信例程:

配置两个串口的驱动文件:

 

fAcc[3], fGyro[3], fAngle[3]分别用来存放计算后的得到的数据,以下是初始化函数,有设置波特率,搜索传感器等。

 

以下是具体计算过程:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值