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

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

[复制链接]
stduino 发布时间:2020-8-19 12:32
37种传感器(二十九)MPU6050陀螺仪模块+Stduino Nano&UNO6 Z% ~: k% [6 a0 }3 O
' m( T- e" Q& q
$ s( |5 b# |- W' Z; B' R4 }
关键词:
51 ; stm32 ; arduino ; stduino单片机; stduino UNO&Nano ;MPU6050陀螺仪

2 U" @& Q+ A0 V) {6 I说明:. i: n& k) Z% h
MPU6050 陀螺仪传感器具有很多强大的功能,采用单芯片封装。该芯片由一个MEMS 加速度计,一个MEMS 陀螺仪和温度传感器组成。该模块在将模拟量转换为数字量时非常准确,因为每个通道都有一个16 位的模数转换器硬件。

6 ^. z- J8 V3 U- f/ n! f6 t4 [: V
29陀螺仪模块.jpg
) q& {; Z  J9 w' t3 D
3 C$ x6 X5 B1 O6 u  m% h
该模块能够同时捕获 x ,y 和z 通道。它有一个I2C 接口与主控制器进行通信。对于无人机,机器人,运动传感器等许多应用来说,这是一个非常有用的设备。它也被称为陀螺仪或六轴加速度计。
MPU6050加速度计01.png
: i( r2 I; R0 x1 V3 K8 s: Y
MPU6050加速度计02.png
5 _+ v6 L% A6 t
就像上面的图片一样,在一个立方体的盒子里面有一个小球,盒子的四壁是用石英晶体材料。当盒子加速度发声变化时,由于惯性的作用,球就会向与加速度方向相反的地方倾斜,当小球碰到那里就会产生压电电流,通过此电流可以确定该方向上加速度大小(实际测得的是压力的大小))。
实际上,当模块静止时, Z 轴方向上一直受到小球的挤压(由于重力作用),也应此,该模块无法获得物体在Z 轴上的旋转角。如果必须要获得绝对的旋转角,那么可以选择性MPU9250这个九轴运动跟踪芯片。
MPU6050加速度计03.png 1 o. f5 t0 P8 j: v  `7 M
' {; q$ L& o0 G" {6 w- r# T5 U& Q3 h
实验目的:
在本例中,我们将学习如何将传感器与 Stduino UNO一起使用,利用陀螺仪模块监测物体移动方向。

+ u. M& h$ ?: g4 h" ?' h# v
器材:
Stduino UNO / Nano; 杜邦线; MPU6050 模块
; l. o' Y4 x( a1 T6 Y
电路连接:
  MPU6050-> Stduino UNO /纳米5 c1 c  w& E! p# b% R0 p
  VCC-> 5V
  GND->GND
  SCL-> D9
  SDA-> D10
  XCL
  XDA
  AD0->接地
  INT-> D2

6 W5 @$ \) q3 w( Q& p$ {
重点说明:
电路连接.png   v0 k- F$ X( b, z- ]1 N- {9 l

" j1 R: o& s4 k$ @/ y5 N
代码展示:
  1. #include<Wire.h>3 _" m1 o6 ]9 Z
  2. const int MPU6050_addr=0x68;
    ; ?& Z1 h' I- d+ j
  3. int16_t AccX,AccY,AccZ,Temp,GyroX,GyroY,GyroZ;; q+ F; @9 `" d8 n; n
  4. void setup(){
    6 u( [2 v! y8 R3 G; r6 H- V) X
  5. //D9 SCL3 k( M" U$ {4 i# N4 _$ `  U8 c# p
  6. //D10 SDA- P4 J# a- e( t% B( Q; i
  7. //5V( D% V! u0 p$ D3 T* ?
  8. //GND
    2 @' u9 q: M& I/ [  {5 T* z
  9. Wire.begin();0 b5 i, O; \0 s
  10. Wire.beginTransmission(MPU6050_addr);
    : a7 j2 K/ ^& I% w- u/ c$ e
  11. Wire.write(0x6B);) W6 t6 ^! b7 b1 w( O
  12. Wire.write(0);! d3 r# T& I( Y4 Z1 m# R, f
  13. Wire.endTransmission(true);/ W9 w( e+ L" C8 k# \! g5 v' V
  14. Serial.begin(9600);# g( ~' [" t+ ^/ |' n  ]. v
  15. }' p9 Q/ Z( Y6 N) n% j
  16. void loop(){% i' l; e' d+ y2 |
  17. Wire.beginTransmission(MPU6050_addr);
    7 h) J6 o  \% L9 _! o' t/ N4 e. i
  18. Wire.write(0x3B);
    * P7 }( }' u% t. s! x# u* U
  19. Wire.endTransmission(false);
    + B9 M" R% [7 P3 u! C
  20. Wire.requestFrom(MPU6050_addr,14,true);//按顺序读取数据
    4 i) Q3 B7 \$ v
  21. AccX=Wire.read()<<8|Wire.read();//X轴方向的加速度分量
    % a; @, K% l! f" Q' ]
  22. AccY=Wire.read()<<8|Wire.read();//Y轴方向的加速度分量* h$ H$ H* a1 \/ N
  23. AccZ=Wire.read()<<8|Wire.read();//Z轴方向的加速度分量/ M+ v. X8 `/ ?; r! b% b( B
  24. Temp=Wire.read()<<8|Wire.read();! O  y% O; P! z4 q3 e
  25. GyroX=Wire.read()<<8|Wire.read();//绕X轴旋转的角速度GYR_X
      o5 e8 y8 n6 I! m1 j0 i
  26. GyroY=Wire.read()<<8|Wire.read();//绕Y轴旋转的角速度GYR_Y
    ! [. V7 E% T( ~5 a
  27. GyroZ=Wire.read()<<8|Wire.read();//绕Z轴旋转的角速度GYR_Z: s0 ?8 m" q4 u4 ]
  28. Serial.print("AccX = "); Serial.print(AccX);
    " ^# m& S- v; H- B8 c; ?- Y$ l! F' g
  29. Serial.print(" || AccY = "); Serial.print(AccY);
    . _- s; `6 D% y- {" v1 H0 A
  30. Serial.print(" || AccZ = "); Serial.print(AccZ);
    + z. A% q; {; w+ I
  31. Serial.print(" || Temp = "); Serial.print(Temp/340.00+36.53);; G- Z1 c9 `$ m1 o
  32. Serial.print(" || GyroX = "); Serial.print(GyroX);
    & X7 ^" t( R( j' i0 y: D
  33. Serial.print(" || GyroY = "); Serial.print(GyroY);
    " E- f# Z- X* P! r
  34. Serial.print(" || GyroZ = "); Serial.println(GyroZ);3 J6 O9 {# R& {: z: {( }7 j/ @1 W: k
  35. delay(100);9 I: C" Q- ?) R' t6 [% |8 K4 X- _
  36. }
复制代码
: p. z) S6 e% x
实验效果:
窗口监视器,如下图所示:
29-陀螺仪模块.png 1 ?  G9 q: Z" H$ U, N
: c5 Y3 p8 ?, y  N9 |
# q$ L: k( W6 k; t; l& @# F

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

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

( j4 o! S% ^; M5 C8 c1 W5 F& O; s- M8 X" E# L3 l) Y: w4 `. q

+ [3 z$ [1 S# E0 ?, W6 v. M1 o% q5 y" V! y0 n  b/ g$ P* q5 W' f3 O

更多功能细节请前往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  K0 ], S6 k5 K8 t# _: O  d7 G
      y1 w$ U5 t0 k$ F4 L( g" t
    ' L' `2 D3 O$ b- s

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


& K$ n4 V# K: Y* f- {; M6 S
赞 收藏 评论0 发布时间:2020-8-19 12:32

举报

0个回答

所属标签

相似技术帖

官网相关资源

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