37种传感器(二十九)MPU6050陀螺仪模块+Stduino Nano&UNO
) q1 F- q& a' h! _6 g3 d+ u4 }8 Y7 g+ l, U2 y
' J( s$ b5 Y6 a. t
关键词: 51 ; stm32 ; arduino ; stduino单片机; stduino UNO&Nano ;MPU6050陀螺仪
$ i' p- _* u: ?( u3 d% S. y说明:( i8 a4 G+ T* v8 ]! ~3 ]1 ~$ B
MPU6050 陀螺仪传感器具有很多强大的功能,采用单芯片封装。该芯片由一个MEMS 加速度计,一个MEMS 陀螺仪和温度传感器组成。该模块在将模拟量转换为数字量时非常准确,因为每个通道都有一个16 位的模数转换器硬件。
& U0 ^8 Q& X& }" P3 i, R
/ X' R U2 H2 x1 q6 V 1 K' z7 a! F1 V7 j* Y4 u
该模块能够同时捕获 x ,y 和z 通道。它有一个I2C 接口与主控制器进行通信。对于无人机,机器人,运动传感器等许多应用来说,这是一个非常有用的设备。它也被称为陀螺仪或六轴加速度计。
7 y; q1 m! J' A
6 y4 Q l$ s7 c4 N6 R2 u E5 { 就像上面的图片一样,在一个立方体的盒子里面有一个小球,盒子的四壁是用石英晶体材料。当盒子加速度发声变化时,由于惯性的作用,球就会向与加速度方向相反的地方倾斜,当小球碰到那里就会产生压电电流,通过此电流可以确定该方向上加速度大小(实际测得的是压力的大小))。 实际上,当模块静止时, Z 轴方向上一直受到小球的挤压(由于重力作用),也应此,该模块无法获得物体在Z 轴上的旋转角。如果必须要获得绝对的旋转角,那么可以选择性MPU9250这个九轴运动跟踪芯片。
* L) g: O2 J: h u0 t
- l) ?$ z4 h/ ]' z
实验目的: 在本例中,我们将学习如何将传感器与 Stduino UNO一起使用,利用陀螺仪模块监测物体移动方向。
- Q$ u5 T4 Z) ~! w! x8 \3 z器材: Stduino UNO / Nano; 杜邦线; MPU6050 模块
! @: V2 D' [0 F) P; N2 O. ]& q
电路连接: MPU6050-> Stduino UNO /纳米; w0 e9 b! g9 d
VCC-> 5V GND->GND SCL-> D9 SDA-> D10 XCL XDA AD0->接地 INT-> D2 ( K5 s+ D: O# r/ }
重点说明:
$ Y( {0 Y' {, l# M3 |# I, E
' N( a+ E2 [: j! `! ^# e% u
代码展示: - #include<Wire.h>% o1 g% u# z/ ^
- const int MPU6050_addr=0x68;: k1 |: Q) u0 [5 P+ } V. e
- int16_t AccX,AccY,AccZ,Temp,GyroX,GyroY,GyroZ;
( [( {+ ^' r8 ^ - void setup(){/ s H0 e4 a3 V7 \) T( g$ Z' k
- //D9 SCL
0 i6 h9 o* ^/ Q& D$ z - //D10 SDA
# h4 q5 m( a j - //5V
+ _7 n. Q! F) y - //GND
6 k Q$ U$ m) i! p/ s' |. e - Wire.begin();0 [4 ~: K' @* I$ h0 v& {6 ~
- Wire.beginTransmission(MPU6050_addr);
5 Q7 Z6 b1 y+ |& V% n - Wire.write(0x6B);/ h. w. r& `9 Z4 Z
- Wire.write(0);' s8 s( s# u0 b+ \; K0 P/ ?$ ]! I
- Wire.endTransmission(true);8 H! M+ n# f4 @$ [; p
- Serial.begin(9600);
/ x$ b$ L6 w m9 \ - }. r% V. V. m7 z; L" k
- void loop(){# S1 L U# w4 ^- n
- Wire.beginTransmission(MPU6050_addr);2 j5 \. J6 b8 I+ l, C c7 @: f
- Wire.write(0x3B);
$ `, X# N0 Y1 c) `, p* ^ - Wire.endTransmission(false);) X8 Y( B8 m; d
- Wire.requestFrom(MPU6050_addr,14,true);//按顺序读取数据
4 C( H; e% j/ i% Q, d# e# J3 U8 m' K - AccX=Wire.read()<<8|Wire.read();//X轴方向的加速度分量
- ^5 ?- f; n k% S# [1 } - AccY=Wire.read()<<8|Wire.read();//Y轴方向的加速度分量, D+ o$ Y1 n' h, l
- AccZ=Wire.read()<<8|Wire.read();//Z轴方向的加速度分量
7 ^ m6 C2 P6 h. W% j* Q - Temp=Wire.read()<<8|Wire.read();) J) S) ~% y8 e
- GyroX=Wire.read()<<8|Wire.read();//绕X轴旋转的角速度GYR_X
% N/ l0 C6 ]: `! M: [) T Y0 f) U0 {/ b - GyroY=Wire.read()<<8|Wire.read();//绕Y轴旋转的角速度GYR_Y
% j3 J3 l0 C, ` - GyroZ=Wire.read()<<8|Wire.read();//绕Z轴旋转的角速度GYR_Z
2 q- c# J; s) j( q. v0 F - Serial.print("AccX = "); Serial.print(AccX);# I- [, z9 _* }& t% F1 x0 v
- Serial.print(" || AccY = "); Serial.print(AccY);
% n: @ z d4 b; Z" |) }8 s) P8 x( i& ]1 T. s - Serial.print(" || AccZ = "); Serial.print(AccZ);. \' k5 O4 G! P# y2 \+ t
- Serial.print(" || Temp = "); Serial.print(Temp/340.00+36.53);; J! m1 W3 r7 B4 a+ k
- Serial.print(" || GyroX = "); Serial.print(GyroX);
4 q' P: B% m0 d u) Y - Serial.print(" || GyroY = "); Serial.print(GyroY);8 `+ e" I: ]) M$ [* `3 J: S2 I
- Serial.print(" || GyroZ = "); Serial.println(GyroZ);
* M3 B5 U7 [* N' ], f( p$ K4 {% K - delay(100);. m3 ?- S3 ]! X9 q+ d; s
- }
复制代码 8 z# E; K! h+ N; S: ^0 i
; e6 h: W4 a& J& j 7 [3 D6 f, O0 n: h% K+ w
K+ D* W$ m6 _6 O6 g# vStduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。+ G3 \5 ~' v/ F: r+ q* j% x$ h0 Q
IDE当前支持的功能有: - GDB调试
- 封装库下载安装
- 代码自动补全提示
- 中英文模式
- UTF-8\GBK编码格式
- 代码快速格式化
- SWD\串口程序下载&调试(已验证)
- DFU程序下载方式(待验证)
- USB HID程序下载方式(待验证)
- maple DFU程序下载方式(待验证)
- maple DFU2程序下载方式(待验证)
- MassStorage程序下载方式(待验证). W: \3 w' V. Z2 P9 p' T. Z
O1 D/ v+ e' R4 M5 O; U9 y! j3 ~
. ~6 @5 @9 |7 l8 J0 U
j8 h3 k2 w3 _, c- D* W
, S0 v1 H6 l# q5 X' q+ g! d更多功能细节请前往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 boards0 I1 ]6 w9 c9 Z, Y0 Q1 Q
' X) w; t; i# q9 j
! H& U9 O I: w: V1 Y) i: a
更多功能集成正在进行中~
( j$ z, x8 U. C9 v! E |