搜索
查看: 820|回复: 0

[原创] 【更好用的单片机】【Stduino】Stduino学习(二十九)MPU6050...

[复制链接]

该用户从未签到

24

主题

26

帖子

0

蝴蝶豆

中级会员

最后登录
2020-9-29
发表于 2020-8-19 12:32:32 | 显示全部楼层 |阅读模式
37种传感器(二十九)MPU6050陀螺仪模块+Stduino Nano&UNO


关键词:
51 stm32 arduino stduino单片机 stduino UNO&Nano MPU6050陀螺仪

说明:
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

代码展示:
  1. #include<Wire.h>
  2. const int MPU6050_addr=0x68;
  3. int16_t AccX,AccY,AccZ,Temp,GyroX,GyroY,GyroZ;
  4. void setup(){
  5. //D9 SCL
  6. //D10 SDA
  7. //5V
  8. //GND
  9. Wire.begin();
  10. Wire.beginTransmission(MPU6050_addr);
  11. Wire.write(0x6B);
  12. Wire.write(0);
  13. Wire.endTransmission(true);
  14. Serial.begin(9600);
  15. }
  16. void loop(){
  17. Wire.beginTransmission(MPU6050_addr);
  18. Wire.write(0x3B);
  19. Wire.endTransmission(false);
  20. Wire.requestFrom(MPU6050_addr,14,true);//按顺序读取数据
  21. AccX=Wire.read()<<8|Wire.read();//X轴方向的加速度分量
  22. AccY=Wire.read()<<8|Wire.read();//Y轴方向的加速度分量
  23. AccZ=Wire.read()<<8|Wire.read();//Z轴方向的加速度分量
  24. Temp=Wire.read()<<8|Wire.read();
  25. GyroX=Wire.read()<<8|Wire.read();//绕X轴旋转的角速度GYR_X
  26. GyroY=Wire.read()<<8|Wire.read();//绕Y轴旋转的角速度GYR_Y
  27. GyroZ=Wire.read()<<8|Wire.read();//绕Z轴旋转的角速度GYR_Z
  28. Serial.print("AccX = "); Serial.print(AccX);
  29. Serial.print(" || AccY = "); Serial.print(AccY);
  30. Serial.print(" || AccZ = "); Serial.print(AccZ);
  31. Serial.print(" || Temp = "); Serial.print(Temp/340.00+36.53);
  32. Serial.print(" || GyroX = "); Serial.print(GyroX);
  33. Serial.print(" || GyroY = "); Serial.print(GyroY);
  34. Serial.print(" || GyroZ = "); Serial.println(GyroZ);
  35. delay(100);
  36. }
复制代码

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


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

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




更多功能细节请前往www.stduino.com进行了解

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

  • 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


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


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 07:32 , Processed in 0.153703 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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