0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

零知开源——MPU6050六轴传感器模块实践教程,轻松实现运动检测!

零知实验室 来源:PCB56242069 作者:PCB56242069 2025-02-20 16:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

零知增强板I2C通信

本教程将指导您如何使用零知增强板与MPU6050六轴传感器模块进行交互。MPU6050是一款含有三轴加速度计和三轴陀螺仪的传感器,能够测量设备的倾斜情况和旋转运动。

通过本教程,您将学习如何读取并处理这些数据,为您的项目添加运动检测和姿态控制功能。

一、硬件连接

在开始编程之前,首先需要正确连接MPU6050模块到零知增强板。

1.所需材料:

零知增强板

MPU6050六轴传感器模块

跳线若干

2.硬件连接示意图:

MPU6050模块的SCL和SDA分别连接到零知增强板的21、20号引脚

零知增强版 MPU6050
3.3V VCC
GND GND
21/SCL SCL
20/SDA SDA

wKgZPGe23x2ALOiIAASN-2GeUno622.png

完成以上步骤后,硬件连接就完成了。

二、代码实现

接下来,我们将编写代码来读取MPU6050的数据。

准备工作:

1.打开零知开源平台,选择零知增强板开发板

2.选择电脑连接的串口,验证代码并上传

wKgZPGe23yeAPoWXAAP_lOyOgCs823.png

完整源代码:

/* I2C interface MPU6050 demo
* powered by www.lingzhilab.com
*/
#include "MPU6050.h"
 
// 默认I2C地址为 0x68
// AD0 low = 0x68
// AD0 high = 0x69
 
MPU6050 accelgyro;
 
int16_t ax, ay, az;//三轴加速度值
int16_t gx, gy, gz;//三轴陀螺仪值
 
float nax,nay,naz;
float ngx,ngy,ngz;//转换后的实际值
 
#define LED_PIN LED_BUILTIN
bool blinkState = false;
 
void setup() {
 
    Serial.begin(9600);
 
    // MPU6050初始化设置
    Serial.println("Initializing I2C devices...");
    accelgyro.initialize();
 
    // verify connection
    Serial.println("Testing device connections...");
	if(accelgyro.testConnection()){
		Serial.println("MPU6050 connection successful");
	}else{
		Serial.println("MPU6050 connection failed");
	}
    
    //使用LED进行指示
    pinMode(LED_PIN, OUTPUT);
	
//	accelgyro.setFullScaleAccelRange(MPU6050_ACCEL_FS_16);//加速度参数
//	accelgyro.setFullScaleGyroRange(MPU6050_GYRO_FS_500);//陀螺仪
}
 
void loop() {
    // 获取原始的数值:三轴加速度值和三轴陀螺仪数值
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
 
    // 分别获取
    //accelgyro.getAcceleration(&ax, &ay, &az);
    //accelgyro.getRotation(&gx, &gy, &gz);
 
    // 显示打印
    Serial.print(" acc:t");
    Serial.print(ax); Serial.print("t");
    Serial.print(ay); Serial.print("t");
    Serial.print(az); Serial.print("t");
	Serial.print("t gyro:t");
    Serial.print(gx); Serial.print("t");
    Serial.print(gy); Serial.print("t");
    Serial.println(gz);
	
	//实际数值转换
	accelgyro.readNormalizeAccel(&nax,&nay,&naz);
	accelgyro.readNormalizeGyro(&ngx,&ngy,&ngz);
	Serial.print("Normalize acc:t");
    Serial.print(nax); Serial.print("t");
    Serial.print(nay); Serial.print("t");
    Serial.print(naz); Serial.print("t");
	Serial.print("t Normalize gyro:t");
    Serial.print(ngx); Serial.print("t");
    Serial.print(ngy); Serial.print("t");
    Serial.println(ngz);
 
    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);
 
    delay(300);
}

三、实验结果

将代码验证上传到零知增强板,打开串口监视器,设置波特率为9600。观察测量到的加速计和陀螺仪输出数据

wKgZO2e23x6AVWFKAAA7RPeM1dY315.png

结果分析:
上传代码并打开串口监视器后,将看到加速度计和陀螺仪的原始数据以及归一化后的数据。

原始数据:

原始数据显示了MPU6050直接读取的数值,这些数值是传感器内部ADC转换后的数字量。

归一化数据:

归一化数据是将原始数据转换为实际的物理量(加速度单位为g,陀螺仪单位为度/秒)。这些数据更直观,便于进行后续的处理和分析。

通过本教程,您已经学会了如何使用零知增强板和MPU6050模块来读取运动数据。这些数据可以用于各种应用,如姿态控制、平衡机器人、运动跟踪等。您可以根据项目需求进一步处理和分析这些数据。

完整工程参考:

通过网盘分享的文件:MPU6050.rar
链接: https://pan.baidu.com/s/1nHM_Uh29d-DEb4zKxlAoGQ 提取码: kyrc

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2578

    文章

    55923

    浏览量

    796052
  • 运动检测
    +关注

    关注

    0

    文章

    42

    浏览量

    12901
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ZMOTION™ 检测模块开发套件:开启运动检测开发新旅程

    ZMOTION™ 检测模块开发套件:开启运动检测开发新旅程 在电子工程领域,运动检测技术的应用越来越广泛,从智能照明到安防系统,都离不开高效可靠的
    的头像 发表于 06-02 12:10 203次阅读

    派——TCS3200颜色识别传感器模块

    ” 转移到 “创意实现”,极大降低了技术门槛。开源编程软件,内置上千个覆盖多场景的示例代码,支持项目源码一键下载,项目文章在线浏览。
    的头像 发表于 05-13 16:26 660次阅读
    <b class='flag-5'>零</b><b class='flag-5'>知</b>派——TCS3200颜色识别<b class='flag-5'>传感器</b><b class='flag-5'>模块</b>

    BMA220:一款高性能的三加速度传感器

    BMA220:一款高性能的三加速度传感器 在当今的电子设备中,加速度传感器扮演着至关重要的角色。无论是智能手机、平板电脑,还是可穿戴设备,都离不开加速度传感器
    的头像 发表于 05-09 14:40 147次阅读

    开源项目低功耗蓝牙智能骰子总体介绍

    一款将传统桌游道具与低功耗蓝牙结合的创意!这款智能骰子基于 nRF52840 核心的低功耗模组打造,集成 MPU6050 惯性测量单元,精准检测掷骰动作与朝向,掷出后 LED 自动
    的头像 发表于 02-27 09:08 670次阅读
    <b class='flag-5'>开源</b>项目低功耗蓝牙智能骰子总体介绍

    CW32L012解算MPU6050姿态数据

    我们仅仅获取了MPU6050的三加速度和角速度,要想得到姿态角,需要利用读取的数据进行姿态解算。
    的头像 发表于 01-05 16:42 2072次阅读
    CW32L012解算<b class='flag-5'>MPU6050</b>姿态数据

    CW32L012读取MPU6050姿态数据

    随着物联网、可穿戴设备、工业倾角检测等场景的普及,低成本、低功耗的姿态检测方案成为嵌入式领域的研究热点。MPU6050 作为集成三加速度计和三
    的头像 发表于 01-05 16:36 1361次阅读
    CW32L012读取<b class='flag-5'>MPU6050</b>姿态数据

    ‌基于STEVAL-BLUEPIRV1的蓝牙低功耗运动检测技术解析

    STMicroelectronics STEVAL-BLUEPIRV1无线运动检测器基于无源红外 (PIR) 传感器,具有蓝牙®低功耗无线连接功能。得益于低功耗和低成本
    的头像 发表于 10-30 09:32 821次阅读
    ‌基于STEVAL-BLUEPIRV1的蓝牙低功耗<b class='flag-5'>运动检测</b>技术解析

    博世推出首款高性能惯性传感器

    博世即将推出全新一代MEMS惯性传感器——SMI980与SMU300,这是公司首次发布高性能惯性传感器系列。该产品可广泛应用于辅助驾驶系统、高精定位、车载导航等场景,为车辆提供更加
    的头像 发表于 07-17 17:03 1929次阅读

    开源——STM32F407VET6驱动SHT41温湿度传感器完整教程

    目基于STM32F407VET6增强板,实现SHT41高精度温湿度传感器的驱动和数据采集。SHT41是Sensirion推出的新一代数字温湿度
    发表于 07-10 12:01

    开源——STM32F407VET6驱动SHT41温湿度传感器完整教程

    摘要:本项目基于STM32F407VET6增强板驱动SHT41高精度温湿度传感器实现±0.2℃温度精度和±1.8%RH湿度精度的数据采集。硬件连接采用I2C接口(SCL:PB6,
    的头像 发表于 07-09 18:53 2116次阅读
    <b class='flag-5'>零</b><b class='flag-5'>知</b><b class='flag-5'>开源</b>——STM32F407VET6驱动SHT41温湿度<b class='flag-5'>传感器</b>完整教程

    G-sensor运动检测功能开源:解锁硬件创新的无限可能!

    G-sensor(重力传感器)作为感知加速度变化的核心技术,如今其运动检测功能的完整源码全面开放。开发者可深入内核算法,定制灵敏度和检测模型,从智能设备到工业监测,这项开源技术为硬件创
    的头像 发表于 07-07 10:13 1787次阅读
    G-sensor<b class='flag-5'>运动检测</b>功能<b class='flag-5'>开源</b>:解锁硬件创新的无限可能!

    小安派BW21-CBV-Kit入门教程之DMP6读取MPU6050数据

    本示例将演示使用 DMP6 从 MPU6050 获取数据。MPU6050 配备了数字运动处理 (DMP),用于处理运动算法的计算,如转换为
    的头像 发表于 06-19 14:20 1277次阅读
    小安派BW21-CBV-Kit入门教程之DMP6读取<b class='flag-5'>MPU6050</b>数据

    开源——STM32F103RBT6驱动 ICM20948 九传感器及 vofa + 上位机可视化教程

    STM32F1本教程使用标准板(STM32F103RBT6)通过I2C驱动ICM20948九传感器实现姿态解算,并通过串口将数据实时
    发表于 06-09 14:53

    开源——STM32F103RBT6驱动 ICM20948 九传感器及 vofa + 上位机可视化教程

    本教程使用标准板(STM32F103RBT6)通过I2C驱动ICM20948九传感器实现姿态解算,并通过串口将数据实时发送至VOFA
    的头像 发表于 06-09 14:01 2455次阅读
    <b class='flag-5'>零</b><b class='flag-5'>知</b><b class='flag-5'>开源</b>——STM32F103RBT6驱动 ICM20948 九<b class='flag-5'>轴</b><b class='flag-5'>传感器</b>及 vofa + 上位机可视化教程

    经验——STM32F4驱动ICM20948 九运动传感器 + VOFA上位机可视化验证与抗漂移优化

    系统中,ICM20948作为高性能9运动传感器(3加速度+3陀螺仪+3磁力计),理论上能
    发表于 06-06 10:03