资料介绍
描述
。
第 2 步:简介
MPU6050是世界上第一个集成 6 轴运动跟踪设备,将 3 轴陀螺仪、3 轴加速度计和数字运动处理器™ (DMP) 全部结合在一个小型 4x4x0.9mm 封装中,即中间的集成电路,它基于I2C通信协议,具体不讨论,参考MPU 6050的Datasheet 。
第 3 步:硬件
MPU 6050 采用模块形式,有 8 个引脚,但不用担心,我们将只使用 4 个重要引脚,足以与我们的 Arduino 板集成。
所以我们有 VCC,接地,它接受从 2v 到 5v 的任何输入,因为这个板上有一个稳压器,因此支持 3.3v 逻辑高电平和 5v 逻辑高电平。
接下来我们有一些 SMD 封装的免费电阻器和电容器,最重要的部分是 MPU6050 IC,它是一个 MEMS 或微机电系统,它根据轴位置的变化改变电压。
该 IC 还有 SCL SDA,它们是 I2C 引脚,XDA 和 XCL 是辅助串行引脚,在本教程中我们不会将它们与 Arduino 一起使用,我们有 AD0,它是辅助端口和主端口之间的地址选择,最后我们有 INT中断引脚,
我们的 Arduino UNO 和 NANO 的连接如下:
VCC-5v
接地 - 接地
沙中线 - A5
SDA-A4
(对于其他 Arduino 板,只有 SDA 和 SCL 引脚发生变化。)
这就是连接的全部
(在UTSOURCE找到所有组件)
第 4 步:安装库
在开始编码之前,我们需要一个由 jarzebski 命名为 Arduino MPU-6050 的库,
我们还需要内置的 Wire Library,因此我们只需安装 MPU - 6050 Library。
这是MPU6050 库的链接。
要将新库安装到您的 Arduino IDE 中,您可以使用库管理器。
- 打开 IDE 并单击“Sketch”菜单,然后单击“Include Library”> 选择“Add.ZIP Library”选项。
- 导航到 .zip 文件的位置并将其打开。
有关导入的更多信息,请参阅https://www.arduino.cc/en/guide/libraries
第 5 步:打开陀螺仪示例。
将 MPU-6050 库添加到 Arduino IDE 后,我们有很多示例可供选择,例如
- MPU6050_accel_pitch_roll
- MPU6050_accel_simple
- MPU6050_自由落体
- MPU6050_gyro_pitch_roll_yaw
- MPU6050_gyro_simple
- MPU6050_运动
- MPU6050_温度
我们需要慢慢了解库和基础知识,所以让我们从MPU6050_gyro_simple示例开始。
(你知道 MPU6050 也有一个温度传感器,但不是很准确所以我们没有在这里讨论它!)
第 6 步:理解代码
基本上在这个例子中,我们将查看我们的传感器是否正常工作,因此我们将在串行监视器上显示传感器数据。
所以我们在设置部分开始串行监视器。
Serial.begin(115200);
在此While 循环中,执行传感器测试序列。
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
{ Serial.println("Could not find a valid MPU6050 sensor, check wiring!");
delay(500);
}
有时我们正在做一个项目,并且必须将我们的传感器设置在一个特定的方向,我们需要偏移量,我们不需要这个教程,
- 但要更改偏移量,只需取消注释这些行。
// mpu.setGyroOffsetX(155);
// mpu.setGyroOffsetY(15);
// mpu.setGyroOffsetZ(15);
( uncomment by removing "//" )
- 有一条校准线,它实际上会将我们的传感器设置为平坦。
// Calibrate gyroscope. The calibration must be at rest.
// If you don't want calibrate, comment this line.
mpu.calibrateGyro();
记住偏移和校准是两个不同的东西,偏移会给你定义的校准,例如,你可以以奇怪的角度安装这个传感器,但它会作为零的参考点。
- 接下来是灵敏度,默认值为 3。
// Set threshold sensivty. Default 3.
// If you don't want use threshold, comment this line or set 0.
mpu.setThreshold(3);
- 在检查循环部分,完成了基本的硬件检查。
void checkSettings()
{
Serial.println();
Serial.print(" * Sleep Mode: ");
Serial.println(mpu.getSleepEnabled() ? "Enabled" : "Disabled");
Serial.print(" * Clock Source: ");
switch(mpu.getClockSource())
{
case MPU6050_CLOCK_KEEP_RESET: Serial.println("Stops the clock and keeps the timing generator in reset"); break;
case MPU6050_CLOCK_EXTERNAL_19MHZ: Serial.println("PLL with external 19.2MHz reference"); break;
case MPU6050_CLOCK_EXTERNAL_32KHZ: Serial.println("PLL with external 32.768kHz reference"); break;
case MPU6050_CLOCK_PLL_ZGYRO: Serial.println("PLL with Z axis gyroscope reference"); break;
case MPU6050_CLOCK_PLL_YGYRO: Serial.println("PLL with Y axis gyroscope reference"); break;
case MPU6050_CLOCK_PLL_XGYRO: Serial.println("PLL with X axis gyroscope reference"); break;
case MPU6050_CLOCK_INTERNAL_8MHZ: Serial.println("Internal 8MHz oscillator"); break;
}
Serial.print(" * Gyroscope: ");
switch(mpu.getScale())
{
case MPU6050_SCALE_2000DPS: Serial.println("2000 dps"); break;
case MPU6050_SCALE_1000DPS: Serial.println("1000 dps"); break;
case MPU6050_SCALE_500DPS: Serial.println("500 dps"); break;
case MPU6050_SCALE_250DPS: Serial.println("250 dps"); break;
}
Serial.print(" * Gyroscope offsets: ");
Serial.print(mpu.getGyroOffsetX());
Serial.print(" / ");
Serial.print(mpu.getGyroOffsetY());
Serial.print(" / ");
Serial.println(mpu.getGyroOffsetZ());
Serial.println();
}
我强烈建议保留此循环。
- 在循环部分,这是整个代码中最重要的部分,即从我们的传感器获取值。首先我们需要调用值,使用 mpu.readRawGyro 或 mpu.readNormalizeGyro,现在原始和规范化的概念是这样的,原始基本上是数字,规范化值是经过过滤器和计算的值,或者你可以说,处理过的数据。
void loop()
{
Vector rawGyro = mpu.readRawGyro();
Vector normGyro = mpu.readNormalizeGyro();
- 我们有 3 个轴,称为 xy 和 z,可以使用我们设置为 rawGyro 的变量名调用它们,后跟轴名,为了制作一个项目,我们将需要使用此变量名的 x、y 和 z 这 3 个值。轴命令。
Serial.print(" Xraw = ");
Serial.print(rawGyro.XAxis);
Serial.print(" Yraw = ");
Serial.print(rawGyro.YAxis);
Serial.print(" Zraw = ");
Serial.println(rawGyro.ZAxis);
Serial.print(" Xnorm = ");
Serial.print(normGyro.XAxis);
Serial.print(" Ynorm = ");
Serial.print(normGyro.YAxis);
Serial.print(" Znorm = ");
Serial.println(normGyro.ZAxis);
- 最后,为了以舒适的速度查看值,让我们将延迟从 10 增加到 1000
delay(10);
}
由于我们的示例代码已准备就绪并且我们了解我们在代码中做了什么,现在是上传代码和查看结果的时候了。
代码可以在这里找到!
第 7 步:在串口中查看结果
上传完成后,是时候打开串行监视器并观察输出了:
不要忘记将串口与我们在代码开头定义的波特率相匹配,即115200
如果我们的接线和硬件正确,我们应该在串行端口上获取每个轴的值,以获取传感器中原始和归一化陀螺仪的变化。
Initialize MPU6050
* Sleep Mode: Disabled
* Clock Source: PLL with X axis gyroscope reference
* Gyroscope: 2000 dps
* Gyroscope offsets: 0 / 0 / 0
Xraw = -65.00 Yraw = 25.00 Zraw = -29.00
Xnorm = 0.00 Ynorm = 0.00 Znorm = 0.00
Xraw = -62.00 Yraw = 20.00 Zraw = -32.00
Xnorm = 0.00 Ynorm = 0.00 Znorm = 0.00
Xraw = -64.00 Yraw = 25.00 Zraw = -30.00
Xnorm = 0.00 Ynorm = 0.00 Znorm = 0.00
Xraw = -66.00 Yraw = 23.00 Zraw = -29.00
Xnorm = 0.00 Ynorm = 0.00 Znorm = 0.00
Xraw = -67.00 Yraw = 20.00 Zraw = -33.00
Xnorm = 0.00 Ynorm = 0.00 Znorm = 0.00
Xraw = -64.00 Yraw = 22.00 Zraw = -31.00
Xnorm = 0.00 Ynorm = 0.00 Znorm = 0.00
这是我们在串口上得到的日志。
第 8 步:下一步是什么?
。
- MPU6050运动跟踪设备开源分享
- MPU6050数据手册 118次下载
- MPU6050( )
- STM32 MPU6050 平衡车
- STM32获取MPU6050数据
- MPU6050常见问题的分析与处理
- MPU6050简介
- MPU6050开发 -- 数据分析
- 如何进行MPU6050的初始化配置详细教程说明 90次下载
- 6轴MPU6050模块的介绍和应用资料说明 32次下载
- MPU6050(硬件IIC) 78次下载
- MPU6050原理图 115次下载
- MPU6050九轴示例程序 101次下载
- MPU6050程序 39次下载
- MPU-6050 datasheet 36次下载
- mpu6050和mpu6500哪个性能好 6359次阅读
- MPU6050传感器解析实验 3407次阅读
- MPU6050简介及rt-thread软件包使用 3002次阅读
- 采用I2C总线实现MPU6050模块功能 6835次阅读
- mpu6050姿态解算原理_mpu6050姿态解算程序 4.3w次阅读
- 一文看懂mpu6050卡尔曼滤波程序 7.3w次阅读
- mpu6050怎么与单片机连接 2.6w次阅读
- 一文看懂mpu9150和mpu6050区别 4.1w次阅读
- 一文看懂mpu6500和mpu6050区别 9.3w次阅读
- 基于MPU6050的老年人跌倒监测系统设计 3.4w次阅读
- mpu6050对应i2c地址是什么_如何读取数据 2.4w次阅读
- mpu6050和mpu3050有什么不同和相同(基础介绍和区别分析) 3.6w次阅读
- mpu6050六轴传感器模块驱动程序源代码分享 3.6w次阅读
- mpu6050姿态解算原理分析及程序设计 4.2w次阅读
- mpu6050姿态融合原理及程序代码 7.2w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多