搜索
bottom↓
回复: 350

miniIMU AHRS 姿态板首试 动如脱兔 静若处子

  [复制链接]

出0入0汤圆

发表于 2012-4-21 18:18:50 | 显示全部楼层 |阅读模式
不断的改程序测试再改再试,经几几个星期的努力,姿态仪的数据终于可以拿出来见人了。
硬件组成:
MPU-6050 集成3轴陀螺仪和3轴加速器
HMC5883L 3轴地磁传感器
BPM085  气压高度计
STM32F103T8  负责解算姿态
目前达到的效果是俯仰 横滚 航向稳定在0.1度内。高度与气压和温度有关,0.5米内波动。使用四元数表示姿态,
磁力计和加速度通过Pi环修正陀螺仪输出。
中间还有一些坎坷,上位机软件一直找不到有公开协议的,要么就是协议太复杂,要么就是效果不佳,自己动手做了一个:



http://player.youku.com/player.php/sid/XMzg0NzMyNjI0/v.swf

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-4-21 18:30:38 | 显示全部楼层
高手 不知道LZ开源不

出0入0汤圆

发表于 2012-4-21 18:55:53 | 显示全部楼层
我以为他会开源 看到他底下的淘宝地址后 我就知道他不会开源了

出0入0汤圆

发表于 2012-4-21 18:59:21 | 显示全部楼层
亮点是显示器左侧的彩页

出0入0汤圆

 楼主| 发表于 2012-4-21 19:12:52 | 显示全部楼层
kevinzcp 发表于 2012-4-21 18:59
亮点是显示器左侧的彩页

这都让你看出来了,哈哈,房子是租的,平时焊接的时候我有甩锡的习惯,怕把人家房子搞脏了。
所以用超市的海报贴一层上去。

报名一下,有没有人想要这3D显示上位机的协议和软件,我拿出来给自己调试姿态仪的朋友。


出0入0汤圆

 楼主| 发表于 2012-4-21 19:13:35 | 显示全部楼层

/**************************实现函数********************************************
*函数原型:                void UART1_ReportIMU(int16_t yaw,int16_t pitch,int16_t roll
                                ,int16_t alt,int16_t tempr,int16_t press)
*功  能:                向上位机发送经过解算后的姿态数据
输入参数:
                int16_t yaw 经过解算后的航向角度。单位为0.1度 0 -> 3600  对应 0 -> 360.0度
                int16_t pitch 解算得到的俯仰角度,单位 0.1度。-900 - 900 对应 -90.0 -> 90.0 度
                int16_t roll  解算后得到的横滚角度,单位0.1度。 -1800 -> 1800 对应 -180.0  ->  180.0度
                int16_t alt   气压高度。 单位0.1米。  范围一个整型变量
                int16_t tempr 温度 。 单位0.1摄氏度   范围:直到你的电路板不能正常工作
                int16_t press 气压压力。单位10Pa  一个大气压强在101300pa 这个已经超过一个整型的范围。需要除以10再发给上位机
                int16_t IMUpersec  姿态解算速率。运算IMUpersec每秒。
输出参数:没有       
*******************************************************************************/
void UART1_ReportIMU(int16_t yaw,int16_t pitch,int16_t roll
,int16_t alt,int16_t tempr,int16_t press,int16_t IMUpersec)
{
        unsigned int temp=0xaF+2;
        char ctemp;
        UART1_Put_Char(0xa5);
        UART1_Put_Char(0x5a);
        UART1_Put_Char(14+2);
        UART1_Put_Char(0xA1);

        if(yaw<0)yaw=32768-yaw;
        ctemp=yaw>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=yaw;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(pitch<0)pitch=32768-pitch;
        ctemp=pitch>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=pitch;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(roll<0)roll=32768-roll;
        ctemp=roll>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=roll;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(alt<0)alt=32768-alt;
        ctemp=alt>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=alt;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(tempr<0)tempr=32768-tempr;
        ctemp=tempr>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=tempr;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(press<0)press=32768-press;
        ctemp=press>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=press;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        UART1_Put_Char(temp%256);
        UART1_Put_Char(0xaa);
}

/**************************实现函数********************************************
*函数原型:                void UART1_ReportMotion(int16_t ax,int16_t ay,int16_t az,int16_t gx,int16_t gy,int16_t gz,
                                        int16_t hx,int16_t hy,int16_t hz)
*功  能:                向上位机发送当前传感器的输出值
输入参数:
        int16_t ax  加速度 X轴ADC输出 范围 :一个有符号整型
        int16_t ay  加速度 Y轴ADC输出 范围 :一个有符号整型
        int16_t az  加速度 Z轴ADC输出 范围 :一个有符号整型
        int16_t gx  陀螺仪 X轴ADC输出 范围 :一个有符号整型
        int16_t gy  陀螺仪 Y轴ADC输出 范围 :一个有符号整型
        int16_t gz  陀螺仪 Z轴ADC输出 范围 :一个有符号整型
        int16_t hx  磁罗盘 X轴ADC输出 范围 :一个有符号整型
        int16_t hy  磁罗盘 Y轴ADC输出 范围 :一个有符号整型
        int16_t hz  磁罗盘 Z轴ADC输出 范围 :一个有符号整型
       
输出参数:没有       
*******************************************************************************/
void UART1_ReportMotion(int16_t ax,int16_t ay,int16_t az,int16_t gx,int16_t gy,int16_t gz,
                                        int16_t hx,int16_t hy,int16_t hz)
{
        unsigned int temp=0xaF+9;
        char ctemp;
        UART1_Put_Char(0xa5);
        UART1_Put_Char(0x5a);
        UART1_Put_Char(14+8);
        UART1_Put_Char(0xA2);

        if(ax<0)ax=32768-ax;
        ctemp=ax>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=ax;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(ay<0)ay=32768-ay;
        ctemp=ay>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=ay;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(az<0)az=32768-az;
        ctemp=az>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=az;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(gx<0)gx=32768-gx;
        ctemp=gx>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=gx;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(gy<0)gy=32768-gy;
        ctemp=gy>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=gy;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
//-------------------------
        if(gz<0)gz=32768-gz;
        ctemp=gz>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=gz;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(hx<0)hx=32768-hx;
        ctemp=hx>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=hx;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(hy<0)hy=32768-hy;
        ctemp=hy>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=hy;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        if(hz<0)hz=32768-hz;
        ctemp=hz>>8;
        UART1_Put_Char(ctemp);
        temp+=ctemp;
        ctemp=hz;
        UART1_Put_Char(ctemp);
        temp+=ctemp;

        UART1_Put_Char(temp%256);
        UART1_Put_Char(0xaa);
}

出0入0汤圆

发表于 2012-4-21 19:14:10 | 显示全部楼层
看起来还不错。

出0入0汤圆

发表于 2012-4-21 19:35:15 | 显示全部楼层
关注,看后很激动。请问上位机是用什么实现的?

出0入0汤圆

发表于 2012-4-21 20:50:26 | 显示全部楼层
直接共享就完了,还报什么名啊

出0入0汤圆

发表于 2012-4-21 21:25:07 | 显示全部楼层
顶一下.

出0入0汤圆

发表于 2012-4-22 01:52:46 | 显示全部楼层
不知道楼主的上位机是用什么软件做的?

出0入228汤圆

发表于 2012-4-22 02:17:29 | 显示全部楼层
非常不错的东西

出0入0汤圆

 楼主| 发表于 2012-4-22 09:18:20 | 显示全部楼层
ghostxdy 发表于 2012-4-21 19:35
关注,看后很激动。请问上位机是用什么实现的?

上位机是VB做的,用了iocomp的控件

出0入0汤圆

发表于 2012-4-22 20:10:58 | 显示全部楼层
lisn3188 发表于 2012-4-22 09:18
上位机是VB做的,用了iocomp的控件

楼主好厉害 搞了几星期就弄出来了  我搞了 两三个月了 总是断断续续的 现在有被中断了 ~~~  还没搞出来

出0入0汤圆

发表于 2012-4-22 20:15:57 | 显示全部楼层
海报上面有奶罩!!!

出0入0汤圆

发表于 2012-4-22 20:26:27 | 显示全部楼层
楼主不是一般牛啊。上位机串口偶也在学习中,不过用的是C++Builder.

出0入0汤圆

发表于 2012-4-22 20:55:39 | 显示全部楼层
唉,目前用加速度传感器,并没有做到0.1度的精度!
很想知道LZ用的是什么型号加速度传感器?

出0入0汤圆

发表于 2012-4-22 20:56:04 | 显示全部楼层
唉,目前用加速度传感器,并没有做到0.1度的精度!
很想知道LZ用的是什么型号加速度传感器?

出0入0汤圆

 楼主| 发表于 2012-4-22 21:24:32 | 显示全部楼层
本帖最后由 lisn3188 于 2012-4-22 21:44 编辑
electrlife 发表于 2012-4-22 20:56
唉,目前用加速度传感器,并没有做到0.1度的精度!
很想知道LZ用的是什么型号加速度传感器? ...


MPU6050
特征
具有131 LSBs/°/sec 敏感度与全格感测范围为±250、±500、±1000与±2000°/sec 的3轴角速度感测器(陀螺仪)。
可程式控制,且程式控制范围为±2g、±4g、±8g和±16g的3轴加速器。
移除加速器与陀螺仪轴间敏感度,降低设定给予的影响与感测器的飘移。
数字运动处理(DMP: Digital Motion Processing)引擎可减少复杂的融合演算数据、感测器同步化、姿势感应等的负荷。
运动处理数据库支持Android、Linux与Windows
内建之运作时间偏差与磁力感测器校正演算技术,免除了客户须另外进行校正的需求。
以数位输出的温度传感器
以数位输入的同步引脚(Sync pin)支援视频电子影相稳定技术与GPS
可程式控制的中断(interrupt)支援姿势识别、摇摄、画面放大缩小、滚动、快速下降中断、high-G中断、零动作感应、触击感应、摇动感应功能。
VDD供电电压为2.5V±5%、3.0V±5%、3.3V±5%;VDDIO为1.8V± 5%
陀螺仪运作电流:5mA,陀螺仪待命电流:5µA;加速器运作电流:350µA,加速器省电模式电流: 20µA@10Hz
高达400kHz快速模式的I2C,或最高至20MHz的SPI串行主机接口(serial host interface)
内建频率产生器在所有温度范围(full temperature range)仅有±1%频率变化。
使用者亲自测试
10,000 g 碰撞容忍度

出0入0汤圆

发表于 2012-4-22 21:44:33 | 显示全部楼层
这个也太复杂了,呵呵!
俺用的ADXL345 !

出0入0汤圆

 楼主| 发表于 2012-4-22 21:48:34 | 显示全部楼层
Name_006 发表于 2012-4-22 20:10
楼主好厉害 搞了几星期就弄出来了  我搞了 两三个月了 总是断断续续的 现在有被中断了 ~~~  还没搞出来 { ...

这两天在忙写说明书,晚点整理一下把3D显示那一部分的软件发上来,让大家用这个调试。下位机的协议代码在6楼。

出0入0汤圆

发表于 2012-4-22 23:19:40 | 显示全部楼层
Nice Job! 做得挺好。

出0入0汤圆

发表于 2012-4-23 07:30:22 | 显示全部楼层
lisn3188 发表于 2012-4-21 19:12
这都让你看出来了,哈哈,房子是租的,平时焊接的时候我有甩锡的习惯,怕把人家房子搞脏了。
所以用超市 ...

你也爱甩锡?你喜欢横甩,我喜欢垂直甩。

出0入0汤圆

发表于 2012-4-23 08:33:24 | 显示全部楼层
做得很好啊

出0入0汤圆

发表于 2012-4-23 08:41:41 | 显示全部楼层
哇  确实很不错  IMU强大。
解姿态算法方面说个思路吧

出0入0汤圆

发表于 2012-4-23 09:40:50 | 显示全部楼层
楼主,请在百忙之中抽点时间,针对初学者对加速度计、陀螺仪、磁罗盘等传感器使用方法,编程思路、注意事项。搞个讲座,造福菜鸟。一枝独秀不是春,万紫千红春満园。谢谢!

出0入50汤圆

发表于 2012-4-23 09:53:33 | 显示全部楼层
这个nb啊,不得不顶

出0入0汤圆

发表于 2012-4-23 12:17:48 | 显示全部楼层
有点想买...= =

出0入0汤圆

发表于 2012-4-23 22:10:18 | 显示全部楼层
本帖最后由 htjgdw 于 2012-4-23 22:11 编辑

楼主厉害啊。
姿态结算处理的很不错,很稳。看来我也得加把劲儿了!呵呵

出0入0汤圆

发表于 2012-4-23 22:39:45 | 显示全部楼层
仰慕你的上位软件

出0入0汤圆

发表于 2012-4-24 16:39:50 | 显示全部楼层
上位软件蛮漂亮

出0入0汤圆

发表于 2012-4-26 18:20:24 | 显示全部楼层
mark study

出0入0汤圆

发表于 2012-4-26 20:51:11 | 显示全部楼层
LZ高级

出0入0汤圆

 楼主| 发表于 2012-4-26 21:39:38 | 显示全部楼层
终于找到一个大BUG,影响速度的Bug.现在上位机可以发布了。
可能还有更多的问题。希望用这个软件的同志们能及时反馈。



服务器无法上传这么大的文件?才3M不到。

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2012-4-26 21:45:23 | 显示全部楼层



下面是通信协议:

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-4-26 21:59:30 | 显示全部楼层
兄弟你太好了,功德无量啊!

出0入0汤圆

发表于 2012-4-26 22:26:30 | 显示全部楼层
楼主好犀利啊,真好需要,谢谢啦

出0入0汤圆

发表于 2012-4-26 22:35:27 | 显示全部楼层
楼主犀利
向楼主学习

出0入0汤圆

发表于 2012-4-26 23:36:26 | 显示全部楼层
我也顶一下

出0入0汤圆

发表于 2012-4-27 10:02:40 | 显示全部楼层
只用一个,如:void UART1_ReportIMU(int16_t yaw,int16_t pitch,int16_t roll,int16_t alt,int16_t tempr,int16_t press)发送给上位机就可以吧?

出0入0汤圆

发表于 2012-4-27 10:14:13 | 显示全部楼层
强大的上位机

出0入0汤圆

 楼主| 发表于 2012-4-27 10:30:02 | 显示全部楼层
wisology 发表于 2012-4-27 10:02
只用一个,如:void UART1_ReportIMU(int16_t yaw,int16_t pitch,int16_t roll,int16_t alt,int16_t tempr, ...

可以的。两个函数可以独立调用

出0入0汤圆

发表于 2012-4-27 10:55:01 | 显示全部楼层
上位机的确很强大,如果再结合一下机械模型就碉堡了,记得之前有人发过用c#做的四轴那个可以借鉴一下。

出0入0汤圆

发表于 2012-5-1 04:29:04 | 显示全部楼层
这个真要做个记号,以备学习

出0入0汤圆

发表于 2012-5-1 07:35:11 | 显示全部楼层
楼主不是一般的强悍!!我们公司也有自己写这软件。用于XBOX/PS3/WII手把中的GYRO的数据与原厂手把比对。

出0入0汤圆

发表于 2012-5-1 10:58:37 | 显示全部楼层
楼主牛B啊,几周时间久搞定了,我现在断断续续还在弄呢。上位机用MFC就写了两周多的时间,还没有完全ok。姿态这一块还是一大片的模糊啊。。。向楼主学习了

出0入0汤圆

 楼主| 发表于 2012-5-21 23:03:57 | 显示全部楼层
回楼上,两个帧是独立的,所以你的做法是可行的

出0入0汤圆

发表于 2012-5-22 21:46:38 | 显示全部楼层
谢谢楼主的分享.....

出10入95汤圆

发表于 2012-5-22 22:45:18 | 显示全部楼层
楼主牛得可以啊

出0入0汤圆

发表于 2012-5-22 23:16:28 | 显示全部楼层
强帖留名,我的四轴之路有宽了

出0入0汤圆

发表于 2012-5-30 22:49:00 | 显示全部楼层
楼主放快速地变姿态的视频出来看看效果如何 现在这个只能说静若处子 动如脱兔还差一半吧

出0入0汤圆

发表于 2012-6-8 09:57:35 | 显示全部楼层
楼主太好了,非常感谢!学习学习

出0入24汤圆

发表于 2012-6-8 10:26:30 | 显示全部楼层
大头显示器也掩盖不住楼主横溢的才华

出0入0汤圆

发表于 2012-6-8 15:24:28 | 显示全部楼层
无法解压怎么回事?

出0入0汤圆

发表于 2012-6-10 18:02:35 | 显示全部楼层
楼主你好,使用了你的上位机,很好很强大,万分感谢~~
这两天试了试书上写的旋转矢量求四元数,用的三字样优化算法,但是解算出的倾角误差很大,跟直接积分的感觉一样,如果单轴转动效果不错,三轴都有转动时转动后回到初始姿态误差有几十度,如果做圆锥运动误差就更明显,按照书上以及很多论文的说法这种算法效果应该不错,我不清楚问题出在哪里,这种算法的误差会有这么大么,程序用仿真一点点检查过了,不知道是我程序问题还是理解问题或者是算法问题,希望能得到帮助~
我用的6050,算法是从《惯性导航》上找的

出0入0汤圆

发表于 2012-6-10 20:34:27 | 显示全部楼层
kevinzcp 发表于 2012-4-21 18:59
亮点是显示器左侧的彩页

兄弟,够眼力。

出0入0汤圆

 楼主| 发表于 2012-6-11 08:31:40 | 显示全部楼层
40342zz 发表于 2012-6-10 18:02
楼主你好,使用了你的上位机,很好很强大,万分感谢~~
这两天试了试书上写的旋转矢量求四元数,用的三字样 ...

这个方法我没有试过。书上的东西和实际有些差别的。

出0入0汤圆

发表于 2012-6-11 09:41:45 | 显示全部楼层
喜欢3D效果,可是我用VC,不知道有谁会弄啊

出0入0汤圆

发表于 2012-6-11 14:55:55 | 显示全部楼层
楼主威武 来顶你下

出0入0汤圆

发表于 2012-6-11 15:20:24 | 显示全部楼层
lisn3188 发表于 2012-4-21 19:13
/**************************实现函数********************************************
*函数原型:                void UA ...

需要上位机~~~可否传一下~~~

出0入0汤圆

 楼主| 发表于 2012-6-11 16:47:41 | 显示全部楼层
nongxiaoming 发表于 2012-6-11 15:20
需要上位机~~~可否传一下~~~


需要上位机可以 到 http://www.chiplab7.com/goods.php?id=9 这里去下载最新的。

出0入0汤圆

发表于 2012-6-11 17:03:30 | 显示全部楼层
看视频里面那个方块有时候和实物的姿态在角度上有点偏移嘛。

出0入0汤圆

 楼主| 发表于 2012-6-11 17:30:50 | 显示全部楼层
zhengxg1990 发表于 2012-6-11 17:03
看视频里面那个方块有时候和实物的姿态在角度上有点偏移嘛。

有偏是因为,我的显示器不是朝北的,与正北有角度。也就是在指向显示器的时候会有一个偏角。

出0入0汤圆

发表于 2012-6-11 22:48:38 | 显示全部楼层
谢谢LZ的分享

出0入0汤圆

发表于 2012-6-11 23:01:07 | 显示全部楼层
LZ能不能知道知道姿态解算啊,最近一直在看这个

出0入0汤圆

发表于 2012-6-24 02:25:26 | 显示全部楼层
lz 厉害  谢谢上位机

出0入0汤圆

发表于 2012-6-29 10:10:46 | 显示全部楼层
lisn3188 发表于 2012-6-11 16:47
需要上位机可以 到 http://www.chiplab7.com/goods.php?id=9 这里去下载最新的。

看看效果如何再评论

出0入0汤圆

发表于 2012-6-29 11:59:38 | 显示全部楼层
lisn3188 发表于 2012-6-11 16:47
需要上位机可以 到 http://www.chiplab7.com/goods.php?id=9 这里去下载最新的。

有BUG,每秒10帧居然,一打开端口就报错

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-6-29 13:28:22 | 显示全部楼层
相当NB!i不顶不行!

出0入0汤圆

发表于 2012-6-29 17:53:06 | 显示全部楼层
不错……借鉴

出0入0汤圆

 楼主| 发表于 2012-6-30 00:22:41 | 显示全部楼层
lizhijieli 发表于 2012-6-29 11:59
有BUG,每秒10帧居然,一打开端口就报错

你好,你出现的这们问题是由于操作系统缺少了一些部件引起的,具体的解决办法请参考:
http://www.pcmmc.com/runtime-err ... -block-variable.php

出0入0汤圆

发表于 2012-6-30 10:59:20 | 显示全部楼层
东西不错

出0入0汤圆

发表于 2012-6-30 14:15:14 | 显示全部楼层
真心佩服楼主

出0入0汤圆

发表于 2012-6-30 15:46:53 | 显示全部楼层
请问楼主:有姿态结算,最后能不能输出控制四轴电机电调的控制信号啊

出0入0汤圆

发表于 2012-7-1 21:36:39 | 显示全部楼层
顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2012-7-1 21:43:10 | 显示全部楼层
这个论坛真的很强大

出0入0汤圆

发表于 2012-7-2 23:28:18 | 显示全部楼层
很好很强大,正好需要上位机和STM32的串口发送数据的源程序,谢谢了,楼主!

出0入0汤圆

发表于 2012-7-3 09:15:34 | 显示全部楼层
lisn3188 发表于 2012-6-30 00:22
你好,你出现的这们问题是由于操作系统缺少了一些部件引起的,具体的解决办法请参考:
http://www.pcmmc. ...

我测试发现该软件运行时很占资源,显示数据时一拖动软件就挂了,3D显示也比较卡

出0入0汤圆

发表于 2012-7-3 10:03:39 | 显示全部楼层
楼主神人,软件很给力,对大家应该帮助很大。
算法什么的能公开就更给力了!呵呵

出0入0汤圆

 楼主| 发表于 2012-7-3 10:25:55 | 显示全部楼层
lizhijieli 发表于 2012-7-3 09:15
我测试发现该软件运行时很占资源,显示数据时一拖动软件就挂了,3D显示也比较卡 ...

是的,这个波形显示非常占资源  最新版本的 修正了一些bug  但是还是建议上传的帧率不要超过 20hz  。
当然电脑的配置 也是会影响图形显示的

出0入0汤圆

发表于 2012-7-4 16:07:58 | 显示全部楼层
楼主厉害 看起来好高级哦

出0入0汤圆

发表于 2012-7-4 18:45:36 | 显示全部楼层
赞。。。

出0入0汤圆

发表于 2012-7-4 18:48:37 | 显示全部楼层
求背景音乐。。。

出0入0汤圆

发表于 2012-7-5 13:40:30 | 显示全部楼层
收藏一下//用得着的时候好找

出0入0汤圆

发表于 2012-7-7 09:06:19 | 显示全部楼层
学习中,

出0入0汤圆

发表于 2012-7-9 09:28:47 | 显示全部楼层
谢谢楼主的分享

出0入0汤圆

发表于 2012-7-20 21:25:20 | 显示全部楼层
厉害,厉害,感谢楼主分享。

出0入0汤圆

发表于 2012-7-25 09:45:20 | 显示全部楼层
不知道LZ的陀螺仪积分周期是多少,这软件,单片机向上位机发送频率一大就显示溢出,会很卡,姿态解算的反三角函数很耗时间,不知道LZ是怎么解决的,就算我5ms的积分周期,采集数据+四元数更新+欧拉角解耦+数据放送,远远超过5ms了而且上位机还卡,显示数据溢出,是不是上位机姿态解算来不及??想知道LZ咋解决的,望解答!

出0入0汤圆

 楼主| 发表于 2012-7-25 14:59:26 | 显示全部楼层
本帖最后由 lisn3188 于 2012-7-25 15:01 编辑
蓝海de梦 发表于 2012-7-25 09:45
不知道LZ的陀螺仪积分周期是多少,这软件,单片机向上位机发送频率一大就显示溢出,会很卡,姿态解算的反三 ...


陀螺仪积分周期 不限定 约有2ms 500Hz 。
你可能搞错了上位机的作用。你下面解算多快与电脑端的软件无关,它只是一个显示波形的软件,就算上传的不是姿态数据它也一样会按格式把接收到的数据显示出来。

所以 放心地加速计算。在有空或者是定期地上传数据给上位机显示。

出0入0汤圆

发表于 2012-7-25 16:09:25 | 显示全部楼层
lisn3188 发表于 2012-7-25 14:59
陀螺仪积分周期 不限定 约有2ms 500Hz 。
你可能搞错了上位机的作用。你下面解算多快与电脑端的软件无关 ...

你2MS就可以解算出欧拉角啦!好快的速度啊,对了,我如果不加延时,就是每周期发送,上位机就卡了,但是如果我发送完一帧数据后加5ms延时,那么就OK,我也奇怪的,之前传ADXL和HMC5883啥的不加延时一点问题没有,传姿态数据,就卡,

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-7-25 17:06:29 来自手机 | 显示全部楼层
mark        .

出0入0汤圆

发表于 2012-7-25 17:14:30 | 显示全部楼层
发现各位高手的关注焦点各不同!

出0入0汤圆

 楼主| 发表于 2012-7-25 17:26:42 | 显示全部楼层
蓝海de梦 发表于 2012-7-25 16:09
你2MS就可以解算出欧拉角啦!好快的速度啊,对了,我如果不加延时,就是每周期发送,上位机就卡了,但是 ...

每个周期都 发送,那当然卡了,像你5ms 那已经是 200Hz了
这个上位机的最高接收帧频率是 20Hz  不建议上传超过这个速度的。
因为波形显示和绘图是需要时间的。

出0入0汤圆

发表于 2012-8-3 15:11:56 | 显示全部楼层
为什么这个模块程序里面发送的是“ab”(随便发的,作为测试),电脑串口显示的却是“O'”(大写O和单引号)呢???

出0入0汤圆

 楼主| 发表于 2012-8-3 16:29:43 | 显示全部楼层
lxl_lw 发表于 2012-8-3 15:11
为什么这个模块程序里面发送的是“ab”(随便发的,作为测试),电脑串口显示的却是“O'”(大写O和单引号)呢? ...

你可能需要了解什么是 ASCII  什么是十六进制

出0入0汤圆

发表于 2012-8-3 22:53:06 | 显示全部楼层
上位机是源程序还是一个可执行文件?

出0入0汤圆

发表于 2012-8-11 02:01:17 | 显示全部楼层
牛人!谢谢上位机。

出0入0汤圆

发表于 2012-8-11 12:18:51 | 显示全部楼层
上位机相当猛啊

出0入0汤圆

发表于 2012-8-12 03:39:47 来自手机 | 显示全部楼层
lisn3188 发表于 2012-8-3 16:29
你可能需要了解什么是 ASCII  什么是十六进制

问题解决,原来板子输出的是TTL电平,还要转换成RS232才能接上电脑。

出0入0汤圆

发表于 2012-8-12 15:59:24 | 显示全部楼层
Lz的mpu6050与HMC5883L之间的数据是通过辅助I2c传输的么?是的话能否指教一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 17:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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