这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【更新四轴姿态解算知识储备】snake0301四轴飞行器进程

共44条 4/5 |‹ 1 2 3 4 5 跳转至
高工
2014-04-16 17:23:49     打赏
31楼
what's up?

高工
2014-04-16 22:50:27     打赏
32楼
相当有意思 我明白为什么微型四轴现在这么火了

高工
2014-04-16 22:51:18     打赏
33楼
来来来 一起玩

高工
2014-04-17 22:23:25     打赏
34楼

启用了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文件中,看起来有点眼花

晚段时间再处理吧,现在拿来试验一下还是可以的。

上个视频,设备很渣,没有上无线,各位将就瞧瞧。



视频地址:http://player.youku.com/player.php/sid/XNzAwMjAyNzgw/v.swf


高工
2014-04-17 22:33:24     打赏
35楼

准备开始折腾一下算法了

烈火大神能给点提示不?

@烈火狂龙


高工
2014-04-18 11:35:01     打赏
36楼
擦,楼上这位大哥,能让我骗点回复不......

高工
2014-04-22 14:45:42     打赏
37楼

国内外网上开源的四轴不少

最近一直在考虑要移植一个玩玩

先研究一下差别,再选择一个移植吧

上午有点闲,也不想多看代码

看着微四轴,想加点什么模块

但是考虑到重量和空间,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


与5110有关的主函数代码做个简单的注释

还没把无线用上,慢慢折腾。

画得比较粗糙,有兴趣的筒子可以进一步改造一下

上视频,看效果:


视频地址:http://player.youku.com/player.php/sid/XNzAyMjMyMTQw/v.swf

视频传上来发现拖影比较严重

其实实际效果还可以的。


高工
2014-04-22 21:51:05     打赏
38楼

视频传上来发现拖影比较严重

其实实际效果还可以的。


高工
2014-04-22 21:54:07     打赏
39楼
不管多复杂的东西 都是由简单的部件有机结合起来的 一个个突破。 一起来。

高工
2014-04-28 18:20:13     打赏
40楼
爪机留名,有机型显示没?

共44条 4/5 |‹ 1 2 3 4 5 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]