0.引入
本人之前发表过一篇关于esp32读取mpu6050数据的文章,链接:http://t.csdn.cn/AwzSZ,但其存在一些漏洞,具体表现在输出数据存在不连贯和错误,在mpu6050高速运动时存在较大误差等。仅作为参考。故在此重发作为修正。当前该篇文章中所述的模块,已经过无人机稳定性控制的测试,可控制四轴无人机进行稳定性控制,故可保证其可靠性,请大家放心食用!
esp32,国产之光,双核算力强大,并且自带互联网模块,在控制飞行姿态的同时可以兼顾其它运算任务,集通讯和控制为一身,可作为无人机良好的开发平台。MPU6050,价格低廉,体积小,功能强大,可靠性高,可与esp32通讯辅助无人机调整姿态。本篇将教大家如何用esp32+mpu6050初步实现无人机的自稳定。当前作者已实现,大家可以放心阅读。
下图为本人搭载于无人机上的控制主板,其中最上方蓝色模块为MPU6050,左手边蓝色模块为无人机电池的电压转换模块,与本篇内容无关,在今后的文章中会介绍到,中间黑色模块为esp32。其中的陀螺仪姿态解算程序就是本篇介绍的内容。
1.废话不多说,先上干货。
链接:https://pan.baidu.com/s/1_Wlu54wnzNP1WX9bcKo1pA?pwd=cf9h
提取码:cf9h
食用方法:
step1:下载后用VScode打开文件夹,能看到src里面有这几个文件:
(不会搞VScode platformio的同学强烈推荐这个教程: https://www.bilibili.com/video/BV1xY4y1b7un/?share_source=copy_web&vd_source=203f2aa16a22e4820da35c4fe0a39593)
其中start.cpp是主程序,点击上传到esp32
step2:硬件连接
esp32与MPU6050引脚接法:
3.3v->VCC
GND->GND
GPIO22->SCL
GPIO21->SDA
step3:将esp32连接电脑,打开串口监视器即可看到esp32正在输出陀螺仪的姿态数据:
此处注意波特率是115200。可以看到,输出的速率非常快,这归功于esp32超高的运算速度,此时限制输出速度的不再是MCU,而是MPU6050。仔细整理数据将发现,无论6050以多高的速度转动,输出的相邻数据都会出现重复现象。这是因为esp32在6050的下一组数据传来前已经将上一组数据处理了两次。
2.详细介绍
代码源自arduinoIDE中MPU6050实例,本人将该实例整理并调整为适用于esp32的模式供大家使用。arduinoIDE中的原始代码可直接在arduino开发板上稳定运行,只是速度远不如esp32
输出的数三个数据(PRY)分别是Pitch(俯仰角)、Roll(横滚角)、Yaw(偏航角)的缩写。
如果想在串口监视器中看到其它数据可在<可视化>部分中找到要显示的数据的相关函数进行调用。
文件夹中其它文件主要为esp32与MPU6050的I2C通讯程序和陀螺仪数据的dmp解算程序,其中数据不建议改动。文章来源:https://www.toymoban.com/news/detail-595553.html
最后,同为小白,希望本篇能帮到大家!谢谢大家的光顾!文章来源地址https://www.toymoban.com/news/detail-595553.html
到了这里,关于【ESP32Arduino+MPU6050姿态解算】自制无人机学习笔记2 PLatformIO 下载即可使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!