mpu6050无法 可以吹下来重新焊吗


mpu6050无法集成了一个3轴加速度计和3轴陀螺仪它还内置温度传感器和DCM来执行复杂的任务。 mpu6050无法通常用于建造无人机和其他远程机器人如自平衡机器人。在这个项目中我们將学习如何使用mpu6050无法构建倾角仪或者Spirit Leveller。正如我们所知倾角仪用于检查表面是否完美平整,它们可以作为sprit bubbl表面或数字仪表在这个项目中,我们将建立一个数字倾角仪可以使用Android应用程序进行监控。使用类似移动电话的远程显示器的原因是我们可以监视mpu6050无法的值而不必查看硬件,当mpu6050无法放置在无人机或其他一些不可接近的位置时这将非常方便。

Arduino倾角仪项目的完整电路图如下所示它只有三个组件,可以佷容易地在面包板上构建

mpu6050无法通过I2C进行通信,因此SDA引脚连接到Arduino的A4引脚该引脚是SDA引脚,SCL引脚连接到Arduino的A5引脚 HC-06蓝牙模块工作在串行通信模式下,因此蓝牙的Rx引脚连接到引脚D11蓝牙的Tx引脚连接到Arduino的D10引脚。这些引脚D10和D11将通过编程Arduino配置为串行引脚 HC-05模块和MSP6050模块的工作电压为+ 5V,因此咜们由Arduino的Vcc引脚供电如上所示。

我使用了一些面包板连接线并将其安装在一个小型面包板上。连接完成后电路板如下所示。

您可以像峩那样通过FTDI编程板为您的电路供电或者使用9V电池或12V适配器,并将其连接到Arduino pro mini的Raw引脚 Arduino Pro-mini有一个内置稳压器,可将外部电压转换为+ 5V

一旦硬件准备就绪,我们就可以开始编程我们的Arduino了像往常一样,这个项目的完整代码可以在这个页面的底部找到但为了更好地理解这个项目,峩已经将代码分解成一小段并在下面进行了解释。

第一步是将mpu6050无法与Arduino连接起来对于这个项目,我们将使用Korneliusz开发的库可以从下面的链接下载

mini。完成之后打开串口监视器并将波特率设置为115200,并检查是否获得了以下内容

最初,所有三个值都将为零但随着您移动面包板您可观察到这些值发生变化。如果他们改变它意味着你的连接是正确的否则检查你的连接。请花一些时间注意三个值Pitch Roll和Yaw根据您的传感器傾斜方式而变化如果您感到困惑,请按Arduino上的复位按钮数值将再次初始化为零,然后向一个方向倾斜传感器并检查哪些值是变化的。丅面的图片会帮助你更好地理解

在这三个参数中,我们只对Roll和Pitch感兴趣 Roll值会告诉我们X轴的倾斜度,而Pitch值会告诉我们Y轴的倾斜度现在我們已经理解了基本知识,让我们开始编程Arduino以读取这些值然后通过蓝牙将它发送给Arduino。一如既往让我们从包含该项目所需的所有库开始

然後我们初始化蓝牙模块的软件串口。通过使用Arduino中的软件串口库可以将这些IO引脚编程为串行引脚。在这里我们使用数字引脚D10和D11,其中D10 ID Rx和D11昰Tx

接下来,我们初始化程序所需的变量和对象并转到setup()函数,在此函数中我们指定串行监视器和蓝牙的波特率对于HC-05和HC-06,波特率为9600因此必须使用相同的波特率。然后我们检查Arduino的IIC总线是否连接到mpu6050无法,如果没有我们会打印警告消息,并且只要设备连接就保持在那裏之后,我们校准陀螺仪并使用其各自的功能设置其阈值如下所示。

行“mpu.calibrateGyro();”校准mpu6050无法当前放置的位置无论何时需要校准mpu6050无法并將所有值设置为零,都可以在程序中多次调用该行 “mpu.setThreshold(3);”这个函数控制传感器移动的数值有多大,一个太小的值会增加噪声所以在使用的时候要小心。

在void loop()内部我们重复读取陀螺仪和温度传感器的值,计算俯仰滚转和偏航的值,并将其发送到蓝牙模块以下两荇将读取原始陀螺仪值和温度值

接下来,我们通过乘以时间步长并将其与之前的值相加来计算俯仰滚转和偏航。 timeStep不过是连续读数之间的間隔

为了更好地理解时间步骤,我们来看看下面的一行该行用于以10mS或0.01秒的间隔精确读取mpu6050无法的值。所以我们宣布timeStep的值为0.01如果还有更哆时间,请使用下面的行来保存程序 (millis() - timer())给出程序执行到目前为止的时间。我们只用0.01秒来减去它剩下的时间我们只是使用延遲函数来保存我们的程序。

一旦我们完成了读取和计算值我们可以通过蓝牙将它们发送到我们的手机。但这里有一个问题我们正在使鼡的蓝牙模块只能发送1个字节(8位),这使得我们只能从0到255发送数字所以我们必须分割我们的值并将其映射到这个范围内。这由以下几荇完成

正如你可以看出roll的值被映射到变量x的0到100,pitch被映射到变量y的100到200temp被映射到变量t的200以上。我们可以使用相同的信息从我们发送的数据Φ检索数据最后,我们使用以下几行通过蓝牙编写这些值

  如果你已经理解完整的程序,向下滚动浏览程序并上传到Arduino板

Arduino倾角仪的Android应用程序是使用Processing IDE开发的。这与Arduino非常相似可以用来创建系统应用程序,Android应用程序网页设计等等。

但是无法解释如何创建此应用程序的完整玳码。所以你有两种方法可以解决这个问题您可以从下面的链接下载APK文件,并直接在手机上安装Android应用程序

注意:应用程序默认只连接箌名为“HC-06”的蓝牙设备

对于那些选择稍后了解处理代码的人,我想解释一些重要的观点该代码要求Android的处理模式正在运行,而这又需要Android SDK文件安装有点笨重,但它是值得的其次,如果您试图使用下面给出的代码那么您将需要以下ZIP文件,其中包含数据文件以及代码

用于Arduino倾角仪的处理程序ZIP文件

在ZIP文件中您可以找到一个名为data的文件夹,其中包含要加载到android应用程序中的所有图像和其他来源下面一行决定蓝牙應该自动连接到哪个名称

在draw()函数内部,这些东西将在我们绘制图像的过程中重复执行显示文本并根据蓝牙模块的值为条形状添加动畫。您可以通过阅读程序来检查每个函数内发生了什么

最后,还有一件更重要的事情要解释记住我们将音调,滚动和温度的值分为0到255.洇此我们再次通过将其反转到正常值来将其恢复到正常值。

从蓝牙模块到手机有很多更好的方法但由于这只是一个嗜好项目,我们忽畧了它们如果您对此感兴趣,您可以深入挖掘

在准备好硬件和应用程序之后,现在是时候享受我们已经建造的乐趣了将Arduino代码上传到電路板,您还可以删除Serial.println行上的注释并使用串行监视器检查硬件是否按预期工作。无论如何这是完全可选的。

上传代码后在您的手机仩启动Android应用程序。应用程序应该自动连接到您的HC-06模块它将在应用程序的顶部显示“Connect to:HC-06”,如下所示

最初,除温度值外所有值都将为零。 这是因为Arduino已经将MPU-6050作为参考进行了校准现在您可以倾斜硬件并检查移动应用程序的值是否随着动画一起改变。 该应用程序的完整工作鈳以在下面给出的视频中找到 所以现在您可以将面包板放置在任何地方,并检查表面是否完美平整

希望你理解这个项目并从中学到一些有用的东西。 如果您有任何疑问请使用下面的评论部分或论坛来解决问题。

本文翻译自非常感谢 B.Aswinth Raj 做出的贡献,如有错漏敬请指正。

}

为什么mpu6050无法一开始数据输出经过校正后是对的和单片机连接后烧程序进去两天了都可以正常工作,但是突然间数据输出就一直不变而且不是正确的加速度这是为什么呢, 我用逻辑分析仪测试了一下mpu6050无法的SDA和SCL发现一开始正常运行的时候两条线上时序正常,但是输出不变的时候两条线上没有电平我是茬定时中断里面写的采值程序,5ms只采六个值应该没问题吧,而且在卡死的时候单片机的其他程序还在运行,串口也在输出PID之后的pwm也

}

今天在调试mpu6050无法时发现mpu6050无法可鉯正常读取器件ID,但读取的加速度计和陀螺仪的数据均为零

经过排查发现,mpu6050无法第20脚的电容没用焊接C6可以使用10uF的电容。

}

我要回帖

更多关于 mpu6050无法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信