启用了MPU6050内置的DMP模块后
四轴姿态的解算似乎变得简单了许多
几乎不用做过多的处理,就能够获得比较好的姿态数据
但是不足的地方也有很多
Z轴上的运动数据会发生漂移
特别是在上电后的10-15秒钟内,漂移比较夸张
不过后来就会慢慢稳定下来
不知道是不是内置数字运动处理模块的问题
以后再想辙进行处理吧(据说是融合磁力计的数据,或者对其进行积分)
硬件比较简单
飞行器+串口就能进行姿态的解算及演示了
这里使用了匿名的上位机
按照匿名上位机的通信协议进行了处理
1、下位机发送自定义数据,格式为:0x88+FUN+LEN+DATA+SUM
2、飞控显示对应的帧FUN为0xAF,(帧格式:0x88+0xAF+0x1C+ACC DATA+GYRO DATA+MAG DATA+ANGLE DATA
+ 0x00 0x00 + 0x00 0x00+SUM,共32字节,ACC/GYRO/MAG/ANGLE(roll/pitch/yaw)数据为int16格式,其
中ANGLE的roll和pitch数据为实际值乘以100以后得到的整数值,yaw为乘以10以后得到的整数值,
上位机在显示时再 除以100和10)。
所有的源程序,包括匿名的上位机
全部来源于网络
这里为了对匿名大神及这些无名作者表示尊敬,同样将所有源码及工程(MDK4.72a版本)一并共享
不过还是请大家回复一下
使用了软件模拟IIC
强调一下,工程里面没有处理MCU的时钟
如果下载无法使用的话,请进入debug
大部分函数都没有进行整理,基本上都挤在main.c文件中,看起来有点眼花
晚段时间再处理吧,现在拿来试验一下还是可以的。
上个视频,设备很渣,没有上无线,各位将就瞧瞧。:
国内外网上开源的四轴不少
最近一直在考虑要移植一个玩玩
先研究一下差别,再选择一个移植吧
上午有点闲,也不想多看代码
看着微四轴,想加点什么模块
但是考虑到重量和空间,GPS啥的估计够呛啊
飞行器一侧只能添加些气压计之类的小模块了
焊接的时候,排针又是朝上的,到时候添加估计又有些小困难
突然看到了遥控器
个人看来的话,遥控器的耗电量其实相对比较小
加上手柄两侧还预留了相当大的原型区
想着飞四轴的时候,肉眼有时难以判断飞行器的姿势和朝向
嘿嘿,加个LCD来做个简单的显示吧
续航应该不会受到影响吧
LCD,果断首选Nokia 5110
倒腾一上午,打完收工。
上图
用到了一些5110的函数,作图啥的,蛮不错
上传分享一下,老规矩,回复下载
/*姿态的浮点数值取整*/ P = (int)Pitch; R = (int)Roll; Y = (int)Yaw; LcdClearAll(); //清屏 PutIcon((char*)(icon + com_temp),0,0);//输出电量显示,com_temp为电量比较值 /*画出pitch和roll图显*/ PutLine(20,8,25,8); PutLine(25,8,25,47); PutLine(20,8,20,47); PutLine(20,47,25,47); PutLine(30,0,78,0); PutLine(30,5,78,5); PutLine(30,5,30,0); PutLine(78,0,78,5); /*画出Yawl图显*/ PutCircle(54,28,18); PutLine(54-P/3,0,54-P/3,5); PutLine(55-P/3,0,55-P/3,5); PutLine(21,28-R/3,25,28-R/3); PutLine(21,29-R/3,25,29-R/3); PutCircle(54-18*sin(Yaw/60),28-18*cos(Yaw/60),2); PutLine(54,28,54-18*sin(Yaw/60),28-18*cos(Yaw/60)); /*数据格式转换,并送5110显示*/ sprintf(buffer_p,"%d",P); sprintf(buffer_r,"%d",R); sprintf(buffer_y,"%d",Y); PutStr(buffer_p,2,0); PutStr(buffer_r,3,0); PutStr(buffer_y,4,0); ClearAllBuf();//清除5110显示buff
还没把无线用上,慢慢折腾。
画得比较粗糙,有兴趣的筒子可以进一步改造一下
上视频,看效果:
视频传上来发现拖影比较严重
其实实际效果还可以的。
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |


我要赚赏金
