amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 2185|回复: 27

T宝上淘一个6050模块,学习下四轴程序

  [复制链接]
发表于 2016-4-18 10:52:42 | 显示全部楼层 |阅读模式
看论坛上很多四轴开源的程序,也很想学习一下。过完年回来之后一直想弄弄,于是在网上买了一个GY-521 MPU6050模块和一个24L01+以及stm32f103的最小系统,不到70元而已,加上大学时候买的jlink,硬件上就这些了。也想过在淘宝买个成品四轴不过一看价格都300多,还是先学学再看。利用了晚上的一点时间没事就看看,都是基础的东西,给后来人参考,适合刚入门四轴的。本人之前没弄过四轴也没用过stm32,这个学习过程也想将两者都学学。路漫漫兮修远兮。转入正题,下面是我stm32的最小系统原理图,后面所改的程序都是基于此sch:
首先学习的四轴程序就是匿名的,正好有个开源的帖子是各个硬件模块的编程测试,适合我这种没用过stm32的人,看起来也容易些:
http://www.amobbs.com/thread-5544053-1-1.html
应为所用处理器不一样,所以MDK软件target options里面的设置也需要更改,下面是第一个工程:

功能比较简单就是一个LED长亮短灭的闪烁,因为硬件不同所以初始化中更改对应点亮的LED引脚即可,程序流程:MCO引脚初始化--LED引脚初始化--while1中LED不断闪烁;

下面是第二个工程,为串口的测试:不过因为硬件晶振的不同,匿名的是16M,而我的硬件是8M;所以程序中需要改2处波特率才可以正确(MDK软件target options里面的设置也需要更改),否则串口以及后面的定时器测试都会有问题的:
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL9);
#define HSE_VALUE    ((uint32_t)16000000)
改为:
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE | RCC_CFGR_PLLMULL9);
#define HSE_VALUE    ((uint32_t)8000000)

功能就是通过串口1发送一些字符,波特率256k,程序流程:MCO引脚初始化--串口1初始化--while1中串口1字符不断发送;

下面是第三个工程,为NRF24L01+的测试,通过这个工程可以学习一下NRF24L01+的简单配置使用,淘宝上的2401模块3元左右也够便宜了。正好我的硬件有24L01的接口,直接插上就行,功能简单:就是给2401的寄存器地址写入一个值在读出来对比,如果插上24L01后LED会闪,拔出后LED就不会闪。程序流程:MCO引脚初始化--LED引脚初始化----SPI引脚初始化--24L01初始化--while1中不断给2401写值在读出来对比,如果一样就LED闪烁:


下面是第四个工程,为定时器3的测试,定时器的理解比较重要,因为后面6050数据的读取以及姿态解算都是在定时器中断中进行的。下面的测试程序比较简单,每隔3S后LED闪烁一次,3S就是靠定时器实现的,程序流程:MCO引脚初始化--LED引脚初始化--定时器初始化--中断初始化--0.5ms定时器中断进入,如果3S达到LED闪烁一下:


下面是第五个工程,为MPU6050的测试,就是读取6050的原始数据发送到上位机上,注意这里AD0是接高电平的(SCL接PB6,SDA接PB7),波特率256K。程序流程:MCO引脚初始化--定时器初始化--串口初始化--中断初始化--硬件IIC初始化设置--MPU6050初始化--0.5ms定时器中断进入不断读取6050原始数据发送到上位机(上电初始会读取200次数据作为水平校准,之后读取的值都会减去这个初始值):

下面是匿名上位机显示的结果(因为是水平静止放置,所以Z轴加速度为1g,量程为正负4g,所以Z显示的10进制数据为8192,对应16进制是2000):


下面是所用的匿名上位机(软件帮助里面有通信协议):


下面是第六个工程,为MPU6050的测试以及姿态算法测试,最终解算出rol和pitch姿态角,匿名上位机3D显示。程序流程跟第五个工程差不多,就是最后中断函数中增加了一个姿态计算的步骤:


程序中增加了新旧上位机的通信协议,因为测试发现新的上位机显示3D时自旋的非常厉害,所以就用了老上位机显示的3D(老上位机比较稳定),下面是老上位机和效果(不传视频了):


在传一个DMP解算姿态的,发现用这个新的上位机显示3D就非常稳:

最后上传一个完整版的,原始的正式程序:

整个简单的学习过程完毕了,至于PID部分因为没有执行机构所以也没测试(PID部分的实验可以在对应接电机的PWM IO接上LED,晃动6050看看LED的变化情况);不过单级的PID应该不难。不过我看PID部分貌似有问题:

比例部分相乘的不是遥控和姿态解算的差值而是直接乘以的姿态值?

对于手上没有四轴,又想学学四轴程序的人,可以参考参考哈。成本低廉。这两天晚上再把圆点的整理下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2016-4-18 11:15:19 | 显示全部楼层
很详细,赞一个。
发表于 2016-4-18 12:18:16 | 显示全部楼层
MK了慢慢看
发表于 2016-4-18 14:40:32 | 显示全部楼层
跟着学,谢谢楼主分享!
发表于 2016-4-18 17:12:29 | 显示全部楼层
谢谢楼主  想学四轴却没有方向  正好看到这一篇!
发表于 2016-4-18 17:26:11 | 显示全部楼层
学习,谢谢分享
 楼主| 发表于 2016-4-18 22:42:11 | 显示全部楼层
整理一下圆点的程序,正好在圆点的官网找到了最新的四轴资料,这里就是最新的程序:http://pan.baidu.com/s/1mgqmhUK 为2015+那个文件夹;




测试效果:

上位机(第六个程序也用这个上位机测试通信协议):




每个压缩包里面都有一个read me文件,里面有程序说明,我就不一一说了;

还有一个遥控程序(把stm32的USB口虚拟成串口,安装驱动就可以用):

以后没时间看了,就算个学习总结了,共享下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2016-4-18 23:37:33 | 显示全部楼层
好资料了,太强了
发表于 2016-4-19 00:14:13 | 显示全部楼层
谢谢楼主的资料!
发表于 2016-4-19 00:33:34 来自手机 | 显示全部楼层
顶楼主!
发表于 2016-4-19 08:46:37 来自手机 | 显示全部楼层
楼主很强大,想学四轴一直没有时间,留个脚印,有时间了再学。
发表于 2016-4-23 15:53:45 | 显示全部楼层
原来买过一个6050 ,不过用一段时间之后,有一个轴莫名其妙的一直在加角度,问下楼主您知道这种问题是硬件的事还是程序的问题
发表于 2016-4-23 18:35:55 | 显示全部楼层
PID从读书到现在一直没有搞明白过。
发表于 2016-4-23 19:33:58 | 显示全部楼层
很好用。。。。。。。。。。。。
发表于 2016-4-24 00:29:08 | 显示全部楼层
谢谢楼主分享!
发表于 2016-4-25 18:07:54 来自手机 | 显示全部楼层
楼主在哪家买的啊?做回伸手党哈
 楼主| 发表于 2016-4-26 10:14:27 | 显示全部楼层
kind777 发表于 2016-4-25 18:07
楼主在哪家买的啊?做回伸手党哈

哪家都行,都是一样的。
发表于 2016-5-4 20:43:42 | 显示全部楼层
R88 发表于 2016-4-26 10:14
哪家都行,都是一样的。

可以试一下我们四轴方案板子,发资料给你了解,加995971182
发表于 2016-5-4 20:50:55 | 显示全部楼层
mark下,有空回来
发表于 2016-5-4 22:16:29 | 显示全部楼层
匿名四轴做得不错
发表于 2016-5-4 22:17:00 | 显示全部楼层
匿名四轴做得不错
发表于 2016-5-4 23:09:53 | 显示全部楼层
收藏,慢慢看
发表于 2016-5-7 22:58:05 | 显示全部楼层
mark 一个
发表于 2016-5-9 17:38:31 | 显示全部楼层
能遇到楼主这些资料 我得少走多少弯路啊!谢谢 啊
发表于 2017-3-27 10:20:27 | 显示全部楼层
谢谢分享,下载下来,学习一下。
发表于 2017-5-9 20:13:13 | 显示全部楼层
这两个开源的用的都是流行的方案,还是比较好上手的
发表于 2017-5-20 20:59:57 | 显示全部楼层
Mark, 十分感谢, 这块还是最难的。
发表于 2017-7-3 11:55:31 | 显示全部楼层
mark一下,最近很想学习这个
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 粤ICP备09047143号 )

GMT+8, 2017-10-22 19:54

阿莫电子论坛, 原"中国电子开发网"

© 2004-2016 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表