GY-95T九轴传感器_Arduino_ESP32读取数据程序_附代码

废话,可以跳过

前段时间买了一个GY87_10轴陀螺仪模块,就是这个货

read-normal-img

刚开始以为这个模块也就是把三个传感器集成在了一起, 结果买回来才发现QMC5883L是连接在MPU6050的备用iic上, 并不能直接使用,要先把备用iic连接到主iic上, 就是这样

read-normal-img

这就引发了一个问题,我比较喜欢用dmp解算,因为6050自带的dmp航向角几乎很少偏移,就算一直转圈圈,偏移得也很少, 可dmp需要独占iic总线(dmp-mpu6050内部), 也就是两个只能二选一, 自己用融合算法之类的,都打不到dmp的效果,(不借助磁力计的情况下,yaw偏差都很大),所以才买了GY-95T九轴传感器

正文

买模块自带的arduino程序并不能用在esp32上,表面上看起来就只有串口初始化的差异,实际上坑有点多,比如温度一直不准, 自己照着说明书写的一个程序,花了我一晚上

废话不多说,上代码  硬件连接是10,和11 这个用的是串口直接输出数据

#include <Arduino.h>

typedef struct
{
  int16_t roll;
  int16_t pitch;
  int16_t yaw;
  uint8_t leve;
  int16_t temp;
} gy;

// 定义 UART 对象,这里使用 UART2
HardwareSerial mySerial(2);
byte add = 0xa4;
byte len = 0, start_reg = 0;
unsigned char Re_buf[35], counter = 0;
unsigned char sign = 0;
gy my_95Q;

// 计算校验和
byte calculateChecksum(unsigned char *data, int length)
{
  byte sum = 0;
  for (int i = 0; i < length; i++)
  {
    sum += data[i];
  }
  return sum & 0xFF;
}

// 发送写寄存器指令
void writeRegister(byte reg, byte v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值