找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2502|回复: 0
收起左侧

[更好用的单片机]Stduino学习(二十九)MPU6050陀螺仪模块

[复制链接]
ID:786043 发表于 2020-8-17 18:57 | 显示全部楼层 |阅读模式
本帖最后由 Stduino 于 2020-8-17 18:58 编辑

说明:
MPU6050 陀螺仪传感器具有很多强大的功能,采用单芯片封装。该芯片由一个MEMS 加速度计,一个MEMS 陀螺仪和温度传感器组成。该模块在将模拟量转换为数字量时非常准确,因为每个通道都有一个16 位的模数转换器硬件。
29陀螺仪模块.jpg
该模块能够同时捕获 x y z 通道。它有一个I2C 接口与主控制器进行通信。对于无人机,机器人,运动传感器等许多应用来说,这是一个非常有用的设备。它也被称为陀螺仪或轴加速度计。
MPU6050加速度计01.png
MPU6050加速度计02.png
就像上面的图片一样,在一个立方体的盒子里面有一个小球,盒子的四壁是用石英晶体材料。当盒子加速度发声变化时,由于惯性的作用,球就会向与加速度方向相反的地方倾斜,当小球碰到那里就会产生压电电流,通过此电流可以确定该方向上加速度大小实际测得的是压力的大小))
实际上,当模块静止时, Z 轴方向上一直受到小球的挤压(由于重力作用),也应此,该模块无法获得物体在Z 轴上的旋转角。如果必须要获得绝对的旋转角,那么可以选择性MPU9250这个九轴运动跟踪芯片。
MPU6050加速度计03.png

实验目的:
在本例中,我们将学习如何将传感器与 Stduino UNO一起使用,利用陀螺仪模块监测物体移动方向。

器材:
Stduino UNO / Nano; 杜邦线; MPU6050陀螺模块

电路连接:
MPU6050-> Stduino UNO /纳米
VCC-> 5V
GND->GND
SCL-> D9
SDA-> D10
XCL
XDA
AD0->接地
INT-> D2

重点说明:
电路连接.png

代码展示:
#include<Wire.h>
const int MPU6050_addr=0x68;
int16_t AccX,AccY,AccZ,Temp,GyroX,GyroY,GyroZ;
void setup(){
//D9 SCL
//D10 SDA
//5V
//GND
Wire.begin();
Wire.beginTransmission(MPU6050_addr);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
Serial.begin(9600);
}
void loop(){
Wire.beginTransmission(MPU6050_addr);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU6050_addr,14,true);//按顺序读取数据
AccX=Wire.read()<<8|Wire.read();//X轴方向的加速度分量
AccY=Wire.read()<<8|Wire.read();//Y轴方向的加速度分量
AccZ=Wire.read()<<8|Wire.read();//Z轴方向的加速度分量
Temp=Wire.read()<<8|Wire.read();
GyroX=Wire.read()<<8|Wire.read();//绕X轴旋转的角速度GYR_X
GyroY=Wire.read()<<8|Wire.read();//绕Y轴旋转的角速度GYR_Y
GyroZ=Wire.read()<<8|Wire.read();//绕Z轴旋转的角速度GYR_Z
Serial.print("AccX = "); Serial.print(AccX);
Serial.print(" || AccY = "); Serial.print(AccY);
Serial.print(" || AccZ = "); Serial.print(AccZ);
Serial.print(" || Temp = "); Serial.print(Temp/340.00+36.53);
Serial.print(" || GyroX = "); Serial.print(GyroX);
Serial.print(" || GyroY = "); Serial.print(GyroY);
Serial.print(" || GyroZ = "); Serial.println(GyroZ);
delay(100);
}


实验效果:
窗口监视器,如下图所示:
29-陀螺仪模块.png


Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。IDE当前支持的功能有:

    GDB调试
    封装库下载安装
    代码自动补全提示
    中英文模式
    UTF-8\GBK编码格式
    代码快速格式化
    SWD\串口程序下载&调试(已验证)
    DFU程序下载方式(待验证)
    USB HID程序下载方式(待验证)
    maple DFU程序下载方式(待验证)
    maple DFU2程序下载方式(待验证)
    MassStorage程序下载方式(待验证)

更多功能细节请点击图片上水印显示的网址进行了解

已经支持的芯片&板型列表:

    Stduino UNO&Nano
    Nucleo 144 boards
    Nucleo 64 boards
    Nucleo 32 boards
    Discovery boards
    Eval boards
    STM32MP1 series coprocessor boards
    Generic STM32F0 boards
    Generic STM32F1 boards
    Generic STM32F3 boards
    Generic STM32F4 boards
    Generic STM32H7 boards
    Generic STM32L0 boards
    3D printer boards
    LoRa boards
    Electronic Speed Controller boards
    Generic flight controllers
    Garatronics boards
    Midatronics boards

更多功能集成正在进行中~




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表