Skip to content

基于STM32G431结合三轴加速度计,三轴陀螺仪,三轴磁力计实现的九轴数据融合,可输出欧拉角,四元数等相关数据

Notifications You must be signed in to change notification settings

EggplantPotatoes/imu_9_DSX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 

Repository files navigation

imu_9_DSX

一款IMU九轴姿态传感器,基于STM32G431RBT6结合三轴加速度计,三轴陀螺仪,三轴磁力计实现的九轴数据融合,可输出欧拉角,四元数等相关数据

模块视频效果请转至B站:https://www.bilibili.com/video/BV1wr42157nD/?vd_source=4c57166c6142504cc135c2135bf9844e

模块购买网址:https://item.taobao.com/item.htm?abbucket=9&id=784316261466&spm=a230r.7195193.1997079397.34.2dbe2731CdNSQF

硬件介绍

以STM32G431为主控MCU,三轴加速度计和三轴陀螺仪使用LSM6DS3TR,三轴磁力计使用LIS2MDLTR

image

使用USB_TypeC供电,引出12路IO口,其中包括3路UART,可用于二次开发

image

image

USB输出数据,使用USB CDC(VCP)虚拟串口连接VOFA+上位机软件查看相关数据波形,无需外接U转串模块,也不需要安装驱动

image

image

软件介绍

软件开发使用STM32CubeMX生成底层驱动,使用STM32CubeIDE开发代码

两路硬件IIC分别连接六轴LSM6DS3TR和地磁LIS2MDLTR

USB使用CDC虚拟出串口,与上位机vofa+通信

硬件定时器TIM2定时1ms中断采集九轴数据,进行数据融合并输出数据,故数据融合算法的运行频率是1000Hz

使用命令行修改配置

数据融合算法,接入九轴或六轴(可屏蔽磁力计)传感器数据,传入相关变量中,可以解算出姿态角,对外提供四元数、旋转矩阵、世界加速度等相关信息。

数据融合算法坐标系使用ENU,即X轴指正北,Y指正东,Z轴指天,但是要注意地磁的轴向与六轴不一致,需要手动调整

使用说明

USB_Type线(手机充电线)连接电脑,电脑端会出现一个COM口,使用串口工具既可以看到相关数据输出,默认欧拉角输出,可以输出欧拉角,四元数,去掉重力之后的三轴加速度,三轴加速度原始数据,三轴陀螺仪原始数据,三轴地磁原始数据

数据融合算法参数调试:

1、六轴,将attitude->flag.use_mag改为0

attitude->flag.use_mag = 0; //不使用地磁

查看roll,pitch数据波形,调整 attitude->parameter.error_kp attitude->parameter.error_ki 两个参数;

2、九轴

需要yaw输出,调整attitude->parameter.correct_kp参数,如果调整参数无效,可能是地磁偏差大造成的,需要对地磁进行校准

校准:

使用之前需要校准,校准可以提高传感器精度。加速度和陀螺仪六轴校准,需要将板子水平放置;地磁校准方法是将板子在水平桌面上来回360°旋转,约5s后校准完成。

校准使用命令行,命令行格式是以 空格分割,回车换行结束命令。相关命令如下:

    加速度和陀螺仪校准	  cmd cali a+g 
    
      地磁校准	          cmd cali mag 

校准一次之后零点存到G431内部Flash中,掉电保存。

数据输出:

数据输出可选,默认是欧拉角输出使用命令行进行切换,相关命令如下:

    欧拉角     cmd output euler 
  
    四元数    cmd output quaternion 
  
    世界加速度   cmd output earth_a 
  
    三轴加速度    cmd output acc 
  
    三轴陀螺仪    cmd output gyro 
  
    三轴地磁    cmd output mag 
  
    九轴原始数据  cmd output acc_gyro_mag 

修改数据输出模式之后存到G431内部Flash中,掉电保存。

数据输出速率可调整:

  调整数据输出   cmd freq 10  表示数据每10ms输出一次,该指令不会保存

如果发现数据不准确,可能是因为校准失败了,可以将数据清除, 发送 cmd restore 系统删除所有存储的数据,并复位

image

欧拉角数据输出: image

九轴原始数据输出:

image

About

基于STM32G431结合三轴加速度计,三轴陀螺仪,三轴磁力计实现的九轴数据融合,可输出欧拉角,四元数等相关数据

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published