Arduino 系列 - MPU6050 六轴姿态传感器模块实验-加速度测量

内容简介

MPU6050六轴姿态传感器,通常指的是三轴加速度计+三轴陀螺仪。加速度计的本次实验将测量一下加速度。

把每次实验的过程记录下来是一种好的习惯。更是为了方便后续查阅。

开发环境

Arduino UNO+MPU6050模块
模块采用IIC接口,接线如下,INT不用接也行。
在这里插入图片描述

Arduino范例代码

模块初始化

#include "Wire.h" 
#include "I2Cdev.h" 
#include "MPU6050.h" 
#define LED_PIN 13 
MPU6050 accelgyro; 
struct RAW_type 
{ 
    uint8_t x; 
    uint8_t y; 
    uint8_t z; 
}; 
 
int16_t ax, ay, az; 
int16_t gx, gy, gz; 
struct RAW_type accel_zero_offsent; 
char str[512];  
bool blinkState = false ; 
float AcceRatio = 16384.0; 
float accx,accy,accz; 
void setup()
{
    int i ; 
    int32_t ax_zero = 0,ay_zero = 0,az_zero = 0 ; 
    Wire.begin(); 
    Serial.begin(9600); 
    Serial.println("Initializing I2C devices..."); 
    accelgyro.initialize(); 
    delay(500) ; 
    accelgyro.setFullScaleAccelRange(MPU6050_ACCEL_FS_2); 
    Serial.println("Testing device connections..."); 
    Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed"); 
    for( i = 0 ; i < 200 ; i++) 
    { 
       accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); 
       ax_zero += ax ; 
       ay_zero += ay ; 
       az_zero += az ; 
    } 
    accel_zero_offsent.x = ax_zero/200 ; 
    accel_zero_offsent.y = ay_zero/200 ; 
    accel_zero_offsent.z = az_zero/200 ; 
    Serial.print(accel_zero_offsent.x); Serial.print("\t"); 
    Serial.print(accel_zero_offsent.y); Serial.print("\t"); 
    Serial.print(accel_zero_offsent.z); Serial.print("\n"); 
    pinMode(LED_PIN, OUTPUT); 
} 

主程序


 
void loop() { 
    delay(200); 
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); 
    //sprintf(str,"%d,%d,%d\n",ax-accel_zero_offsent.x, ay-accel_zero_offsent.y ,az-accel_zero_offsent.z); 
    //Serial.print(str); 
    //delay(50); 
    accx = (float)( ax-accel_zero_offsent.x ); 
    accy = (float)( ay-accel_zero_offsent.y ); 
    accz = (float)( az-accel_zero_offsent.z ); 
    Serial.print("{accx,");Serial.print(accx);Serial.print("}");
    Serial.print("{accy,");Serial.print(accy);Serial.print("}");
    Serial.print("{accz,");Serial.print(accz);Serial.print("}");
    /*delay(50); 
    accx = (float)( ax-accel_zero_offsent.x )/AcceRatio; 
    accy = (float)( ay-accel_zero_offsent.y )/AcceRatio ; 
    accz = (float)( az-accel_zero_offsent.z )/AcceRatio ; 
    Serial.print("{x,");Serial.print(accx);Serial.print("}");
    Serial.print("{y,");Serial.print(accy);Serial.print("}");
    Serial.print("{z,");Serial.print(accz);Serial.print("}");
    blinkState = !blinkState; 
    digitalWrite(LED_PIN, blinkState);*/ 
} 

随便晃动几下,用JXChart(查看使用方法) 采集如下图:
在这里插入图片描述
实时接收数据如下:

2024/06/07 20:04:15.336(接收)ascii:{accx,-144.00}{accy,-2405.00}{accz,15747.00}
2024/06/07 20:04:15.541(接收)ascii:{accx,-1032.00}{accy,-2449.00}{accz,16167.00}
2024/06/07 20:04:15.744(接收)ascii:{accx,-1232.00}{accy,-2617.00}{accz,15907.00}
2024/06/07 20:04:15.948(接收)ascii:{accx,-1140.00}{accy,-2309.00}{accz,16147.00}
2024/06/07 20:04:16.150(接收)ascii:{accx,-324.00}{accy,-2881.00}{accz,15567.00}
2024/06/07 20:04:16.354(接收)ascii:{accx,-784.00}{accy,-2457.00}{accz,15895.00}
2024/06/07 20:04:16.557(接收)ascii:{accx,-724.00}{accy,-2705.00}{accz,15855.00}
2024/06/07 20:04:16.762(接收)ascii:{accx,-1152.00}{accy,-2217.00}{accz,16423.00}
2024/06/07 20:04:16.966(接收)ascii:{accx,-1132.00}{accy,-3105.00}{accz,16043.00}
2024/06/07 20:04:17.169(接收)ascii:{accx,-1480.00}{accy,-3193.00}{accz,16467.00}
2024/06/07 20:04:17.372(接收)ascii:{accx,-520.00}{accy,-2665.00}{accz,15747.00}
2024/06/07 20:04:17.576(接收)ascii:{accx,-1088.00}{accy,-2585.00}{accz,15687.00}
2024/06/07 20:04:17.779(接收)ascii:{accx,-160.00}{accy,-3121.00}{accz,15795.00}
2024/06/07 20:04:17.982(接收)ascii:{accx,-804.00}{accy,-3109.00}{accz,15915.00}
2024/06/07 20:04:18.186(接收)ascii:{accx,-236.00}{accy,-3305.00}{accz,15727.00}
2024/06/07 20:04:18.389(接收)ascii:{accx,-660.00}{accy,-2853.00}{accz,15647.00}
2024/06/07 20:04:18.593(接收)ascii:{accx,-780.00}{accy,-2721.00}{accz,15899.00}
2024/06/07 20:04:18.797(接收)ascii:{accx,-1284.00}{accy,-2353.00}{accz,15887.00}
2024/06/07 20:04:19.001(接收)ascii:{accx,-1000.00}{accy,-3085.00}{accz,16043.00}

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

libertyman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值