你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
stduino 发布时间:2020-8-19 12:32
37种传感器(二十九)MPU6050陀螺仪模块+Stduino Nano&UNO3 S( l0 Y/ r: H9 J" O, `
2 C2 }! g% m) z9 P7 ]: [& P) E

2 }* {7 x* O- W' G4 K8 v
关键词:
51 ; stm32 ; arduino ; stduino单片机; stduino UNO&Nano ;MPU6050陀螺仪

6 \/ @0 _2 {% g说明:9 r. Z& M3 q/ S& j- x) V: y
MPU6050 陀螺仪传感器具有很多强大的功能,采用单芯片封装。该芯片由一个MEMS 加速度计,一个MEMS 陀螺仪和温度传感器组成。该模块在将模拟量转换为数字量时非常准确,因为每个通道都有一个16 位的模数转换器硬件。

% r# m. t& T( F- ?' H5 ^- ~7 s
29陀螺仪模块.jpg
  X( C/ N. B4 D% i$ E
1 f; R3 q3 W0 S/ W
该模块能够同时捕获 x ,y 和z 通道。它有一个I2C 接口与主控制器进行通信。对于无人机,机器人,运动传感器等许多应用来说,这是一个非常有用的设备。它也被称为陀螺仪或六轴加速度计。
MPU6050加速度计01.png & @8 l* R9 C5 }8 U% d$ l
MPU6050加速度计02.png " q8 Z1 y  f4 I( b! i; m
就像上面的图片一样,在一个立方体的盒子里面有一个小球,盒子的四壁是用石英晶体材料。当盒子加速度发声变化时,由于惯性的作用,球就会向与加速度方向相反的地方倾斜,当小球碰到那里就会产生压电电流,通过此电流可以确定该方向上加速度大小(实际测得的是压力的大小))。
实际上,当模块静止时, Z 轴方向上一直受到小球的挤压(由于重力作用),也应此,该模块无法获得物体在Z 轴上的旋转角。如果必须要获得绝对的旋转角,那么可以选择性MPU9250这个九轴运动跟踪芯片。
MPU6050加速度计03.png
' y- ^/ B0 @8 p; M6 C

3 p, i( M! Q5 U& Z6 ]' j  y- O2 {
实验目的:
在本例中,我们将学习如何将传感器与 Stduino UNO一起使用,利用陀螺仪模块监测物体移动方向。
( q, J% d' t, u! `- _* s1 W  d
器材:
Stduino UNO / Nano; 杜邦线; MPU6050 模块

+ u, r! `( r3 g+ F4 V
电路连接:
  MPU6050-> Stduino UNO /纳米
) Q1 R: W' Q" x4 e% D
  VCC-> 5V
  GND->GND
  SCL-> D9
  SDA-> D10
  XCL
  XDA
  AD0->接地
  INT-> D2
6 ~# F0 z& Z& j" D) E
重点说明:
电路连接.png . {% ^( |( P# U9 g

  M+ e3 I( s0 x) d% }. B5 r
代码展示:
  1. #include<Wire.h>
    3 S& |( C' G/ `
  2. const int MPU6050_addr=0x68;
    2 j/ t4 g9 A* ]# ~& [9 ]' r% o% O8 `
  3. int16_t AccX,AccY,AccZ,Temp,GyroX,GyroY,GyroZ;
    9 Z2 u. X. z- Y5 F
  4. void setup(){
    3 }% |' f9 Y- \1 |8 m' |4 c. {
  5. //D9 SCL9 q! ]. a  C1 w- U% |# S6 u
  6. //D10 SDA
    5 F" C7 ^6 ]& j% _4 T" j- }- ~% @
  7. //5V
    5 X! Q8 a) V+ U9 @( G0 S. a0 H
  8. //GND
    4 V6 ?- d+ B2 B- q! e; V- L: l
  9. Wire.begin();* B* _6 c) g/ K' S1 n
  10. Wire.beginTransmission(MPU6050_addr);+ I2 N. ~% }2 \) u- z; d2 r
  11. Wire.write(0x6B);
    ) i6 `  ~" X, Q. |1 P2 a6 C
  12. Wire.write(0);
    & O4 u* s' i9 x/ n0 U: e4 O( @3 N8 @
  13. Wire.endTransmission(true);5 x9 i. x: L& S; k# c; h1 V
  14. Serial.begin(9600);3 a8 [5 M  _6 ]3 i. s
  15. }
    - Y  U5 i8 K/ Y* f
  16. void loop(){
    + X3 V6 E1 c  h9 Z2 \1 C: h
  17. Wire.beginTransmission(MPU6050_addr);
    4 \9 {$ t3 G  _; c& ^' K. S
  18. Wire.write(0x3B);# s0 p( @/ L3 t# P* _
  19. Wire.endTransmission(false);
    $ D! y7 b6 h% s" J
  20. Wire.requestFrom(MPU6050_addr,14,true);//按顺序读取数据
    # z  U+ z% G* `2 a+ p  L& f
  21. AccX=Wire.read()<<8|Wire.read();//X轴方向的加速度分量: ^9 e7 U  }& e4 p! f
  22. AccY=Wire.read()<<8|Wire.read();//Y轴方向的加速度分量9 b1 G: l4 F! k
  23. AccZ=Wire.read()<<8|Wire.read();//Z轴方向的加速度分量
    - R9 G' `3 n; y" y
  24. Temp=Wire.read()<<8|Wire.read();  c/ f3 ^4 p$ {, F, z' A+ }
  25. GyroX=Wire.read()<<8|Wire.read();//绕X轴旋转的角速度GYR_X! U9 I- Q& q+ e# A+ I# e0 }( n& m3 V
  26. GyroY=Wire.read()<<8|Wire.read();//绕Y轴旋转的角速度GYR_Y
    2 N/ U2 P, [' ~5 ~( B0 b9 U. o7 r
  27. GyroZ=Wire.read()<<8|Wire.read();//绕Z轴旋转的角速度GYR_Z
    % @* F5 U, J, O! Q  ^  I+ Q
  28. Serial.print("AccX = "); Serial.print(AccX);
    8 U; Q" P* {/ E1 j7 J1 K! U
  29. Serial.print(" || AccY = "); Serial.print(AccY);: R3 d. N9 g# Z3 O* B7 }8 j
  30. Serial.print(" || AccZ = "); Serial.print(AccZ);
    : E" f1 \1 A% i
  31. Serial.print(" || Temp = "); Serial.print(Temp/340.00+36.53);
    $ Z4 A, i8 j4 k9 U5 p
  32. Serial.print(" || GyroX = "); Serial.print(GyroX);
    0 ^0 F9 c, r. b
  33. Serial.print(" || GyroY = "); Serial.print(GyroY);: d/ A* S  q+ n& l1 [2 J
  34. Serial.print(" || GyroZ = "); Serial.println(GyroZ);
    4 k0 n; e2 `+ [. ~; D
  35. delay(100);  b3 M  O5 _8 T& W0 v5 j
  36. }
复制代码
% p' |! T& `" B! W9 O) L3 ?
实验效果:
窗口监视器,如下图所示:
29-陀螺仪模块.png ( b' u' i2 m, @% u

8 z9 \/ U' d. {6 N" @8 G
6 ^- H. o0 L1 q( j

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

  • GDB调试
  • 封装库下载安装
  • 代码自动补全提示
  • 中英文模式
  • UTF-8\GBK编码格式
  • 代码快速格式化
  • SWD\串口程序下载&调试(已验证)
  • DFU程序下载方式(待验证)
  • USB HID程序下载方式(待验证)
  • maple DFU程序下载方式(待验证)
  • maple DFU2程序下载方式(待验证)
  • MassStorage程序下载方式(待验证)8 y/ q- ~: F+ A, K, ]5 |3 ^

+ }: N6 x% l% ^/ Q. P/ O5 _, `" J2 H- N: U

9 u8 ?" E. Q& G- G: v4 O3 q; v0 ?; |$ q5 h5 [

更多功能细节请前往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) S1 l: v. p6 d$ V7 P
    7 Q! q# i- U' O  ]) [: w1 N% w

    5 d9 T4 z- Q/ T9 p9 `. A

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


7 u2 U2 e* L9 z) H8 y: n
赞 收藏 评论0 发布时间:2020-8-19 12:32

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版