amobbs.com 阿莫电子技术论坛

标题: 开源自己的微型四轴—全套原理图.程序.上位机.11日晚更新 [打印本页]

作者: wangjt1988    时间: 2013-1-10 22:20
标题: 开源自己的微型四轴—全套原理图.程序.上位机.11日晚更新
本帖最后由 wangjt1988 于 2013-1-11 20:02 编辑

毕业以来,实在闲不住,总想做点什么玩,不想搞太复杂的硬件,想到了四轴,于是开始走入模界......
先买了大四周,mwc,调的差不多了,发现我们这天天有风,实在是郁闷,于是开始计划做微型四轴,这次决定完全diy,成品实在是无味...
用业余时间做一架自己的四轴,是很有意思也是很难,很难有时间静下心来做.自己做板,写程序,写自己的上位机,用自己的协议来遥控.
因为平时上班忙,工作也全与电子无关,所以进度比较慢.
在跟大学好友俩人的共同努力下,我们的小四轴终于完工了.现在已经可以比较稳定的飞了,情况见下面视频.现在板子也升级到第二版本了,更加集成,遥控接收也做到板子上了.
下面把这段时间来的成果,自己的经验,还有原理图、程序、上位机分享给大家.

方案:
CPU: STM32F103CB
2.4G: NRF24L01
电子罗盘:HMC5883
陀螺仪+加速度计:MPU-6050

[attach]83931[/attach]
[attach]83932[/attach]
[attach]83933[/attach]
[attach]83934[/attach]
[attach]83935[/attach]
[attach]83936[/attach]

视频:
http://v.youku.com/v_show/id_XNDg5Njk2MTI0.html
http://v.youku.com/v_show/id_XNDkwMTU3MjUy.html
http://v.youku.com/v_show/id_XNDkwNTY1NTQw.html
http://v.youku.com/v_show/id_XNDk2OTUyNzA4.html

视频都不长,但是可以看出四轴慢慢成长的过程,从最初的电亮LED,到马达转动,到成功起飞....过程是最精彩的,看到自己的小四轴能飞起来,实在是高兴.虽然现在飞的还不好,但相信还会改进的!!这里还要感谢所有帮助过我的DX们!!

做四轴过程中的一些经验什么的..
HMC5883:要我评价就是娇气,大家焊这个片的时候温度一定不要太高!焊第一片的时候,风枪开到350度,焊好后读取ID没问题,但不管怎么动板子,读出的数据都在正负2以内。后来发现网上很多人也碰到这个问题,主要是焊接时温度太高,HMC5883焊坏了。看它的DATASHEET后知道,温度不能超过260度,湿度较大时还要120度烘烤24小时。后来我把风枪温度调到250度,总算是OK了。(这家伙实在太娇气)

MPU6050:6轴,不错,也不贵,就不过多评论了

电机:7*16  还行  就是感觉动力不足,换7*20的试试.0.7mm的轴也容易弯,下次换1mm的试试.

主角STM32:速度可以,什么都可以,就是iic蛋疼....实在蛋疼,还没AVR好用......不想多说了...

上位机:开始VB6,做好了,开用,后来增加功能,发现没有代码折叠实在不方便,改delphi,直接跳过用的最多的7,上RAD2007,目前用着不错..后来觉得C#也不错,有想法改投C#,,,,都是半吊子水平...哎,,以后要专心啊....

飞控程序:目前四元数,还没上卡尔曼,卡尔曼还没弄懂..后悔大学数学没学好啊...

工程文件:[attach]83943[/attach]

上位机写了好久,全部功能还未实现,但是已经比较好用了,可以显示角度,各个传感器读数,波形显示
固定的传感器通讯格式为:0X88+0XA1+0X1D+ACC XYZ+GYRO XYZ +MAG XYZ +ANGLE ROLL PITCH YAW + cyc_time +0x00 + 0x00 +0x00
注意,所有数据位int16格式,angle飞控端为float,发送时乘以100,上位机以int16格式接收,显示时再除以100
自定义通讯格式为:0x88+自定义功能字如0xf1+lengh+data
float格式的通讯还没做,感觉不如转成int16再上传上位机
上位机是和飞控一起成长的,现在不完善的以后都会慢慢完善.

原理图:[attach]83975[/attach]

还有好多东西,一下也想不起来,不能一一说了,大家以后多多交流啊!!!

2013年1月11日20:00更新上位机:
增加飞控数据波形滚动功能,可以自己设置一页显示的数量
上位机:[attach]83961[/attach]
另外,只要打开高级收吗,不用设置帧头和功能字,就会接受0X88+0XA1开头的飞控数据,不用自己设置


作者: 00superman00    时间: 2013-1-10 22:25
还没看完先抢沙发
作者: fighterallen    时间: 2013-1-10 22:25
必须顶一个啊。
作者: nazily215    时间: 2013-1-10 22:27
第一个站着抢位
作者: dijiudanpianji    时间: 2013-1-10 22:28
站位站位
作者: MrLCL    时间: 2013-1-10 22:29
影响重大
作者: 小号    时间: 2013-1-10 22:30
楼主做的真心漂亮啊!!!
作者: Ronald    时间: 2013-1-10 22:34
楼主给力啊!顶起来哈
作者: aysyjgw    时间: 2013-1-10 22:43
楼主做的好认真,非常漂亮,给楼主加加油,希望你再接再厉,就算是玩,也玩出自己的特色,不失为人生的一件乐事!!
作者: tianheiGE    时间: 2013-1-10 22:48
前来学习,感谢分享
作者: jiaohaitao    时间: 2013-1-10 22:52
必须顶,,,,,走起。。。。。
作者: allanpk716    时间: 2013-1-10 22:53
- -IAR~不过还是感谢开源。
作者: hj184584882    时间: 2013-1-10 22:59
支持哦!
作者: zhikai_wu    时间: 2013-1-10 23:00
这个好,先收藏了再说
作者: eva_yang    时间: 2013-1-10 23:19
等你这个很久了。。
作者: li3p    时间: 2013-1-10 23:22
我替其他人问一句:有套件吗?
作者: Name_006    时间: 2013-1-10 23:23
               冲着楼主的精神就必须要顶一下                                                                                       
作者: 976717326    时间: 2013-1-10 23:32
顶起,有机会自己也要搞一个。
作者: wangjt1988    时间: 2013-1-10 23:33
面包会有的,套件也会有的!
作者: soarZDA    时间: 2013-1-11 00:34
顶起。。。考完试,也要开始了!
作者: X20130101    时间: 2013-1-11 05:45
STM32的硬件I2C正是我用的,还可以吧?主要是要自己弄个中断驱动的状态机,注意一下细节就行了。
作者: agnd    时间: 2013-1-11 06:03
下了大虾程序,粗看了一下,但还没完全看懂。
IMU.C的姿态解算,看着貌似用4元数了,但不像卡尔曼滤波,是一种基于四元数的互补滤波吗?有没有相关算法的理论能拜读一下?
作者: agnd    时间: 2013-1-11 06:04
还有,航向怎么解算的? 磁罗盘的数据怎么能融合进去?
作者: agnd    时间: 2013-1-11 06:12
我的控制算法和你差不多,都是最简易的 控制量= 基础油门+横滚调整+俯仰调整+航向调整
这种算法在自动起飞阶段可能会出些细节问题,微小机架没事,但巨大的就会明显甚至侧翻了。后来我增加了个控制量,改成:
控制量= (基础油门+横滚调整+俯仰调整+航向调整)*油门控制度


作者: plc_avr    时间: 2013-1-11 07:30
这个不顶对不起楼主啊!给力!!!我也在玩,呵呵
作者: plc_avr    时间: 2013-1-11 07:35
已举报:建议置酷!   冬天冷,莫大能否给条“裤子”穿穿,
作者: plc_avr    时间: 2013-1-11 07:41
楼主的5883在装上电机后还能正确读出数据吗?我的在装上电机后,转动一圈输出变化量很小,数据就明显不对了,不装电机读出来的数据是正常的。
作者: wangjt1988    时间: 2013-1-11 07:45
学习了,我磁场还没加进来,手工焊,没焊好
作者: wangjt1988    时间: 2013-1-11 07:47
下一版板子好了,5883焊好了,电机还没装,装上再试试
作者: wangjt1988    时间: 2013-1-11 07:54
agnd 发表于 2013-1-11 06:03
下了大虾程序,粗看了一下,但还没完全看懂。
IMU.C的姿态解算,看着貌似用4元数了,但不像卡尔曼滤波,是 ...

其实就是四元数,没有卡尔曼,卡尔曼我也不懂呢,希望哪位dx分享下卡尔曼的使用
作者: qq335702318    时间: 2013-1-11 08:40
頂貼!!!
爲什麽要用2.4G通訊呢?只是上傳傾角,前後左右這些信息,需要2.4G那種帶寬嗎?
作者: wangjt1988    时间: 2013-1-11 09:07
如果观察传感器波形,加速度陀螺仪磁场,就有18字节,加上6字节的角度,就24字节了,如果2ms发一次,波特率至少115200,加上余量,现在用的波特率是256000,空中速度必须高于这个,能满足的不多,2。4g又便宜,当然选用它了
作者: oyingzi007    时间: 2013-1-11 09:20
楼主有上位机的源码要公布吗? 或者说下上位机用到的控件名称。 对VB编程蛮感兴趣的,想学习下。
作者: 49547754    时间: 2013-1-11 09:21
哈哈,支持
作者: wangjt1988    时间: 2013-1-11 09:25
上位机不是vb,是delphi
作者: wuguoyan    时间: 2013-1-11 09:27
楼主厉害的,支持下,顶起~~
作者: bbsview    时间: 2013-1-11 09:43
好东西呀,楼主做的很漂亮呀,cool
作者: ICPACHONG    时间: 2013-1-11 09:45
这个必须顶!!!!
作者: amazing030    时间: 2013-1-11 09:48
这个我喜欢,还有套件
作者: muniao    时间: 2013-1-11 10:15
好给力啊  
作者: agnd    时间: 2013-1-11 10:57
下载了楼主的上位机软件,试了一下,果然很是不错!
入乡随俗,我临时按楼主协议改了一下我的飞控发送,使用115200波特率,每6mS(1个卡尔曼姿态解算周期)发一帧数据,连续测了14秒,共接收384320字节
,12010帧数据,竟然没出错,波形也同步画出来了,看来还是比较牛的!!
下边附我实际用的截图和从基本功能窗口考出的数据.
[attach]84043[/attach]
[attach]84044[/attach]
[attach]84051[/attach]

我的数据中时标字段(cyc-time)忘了颠倒高低位了,是从0x0437开始到0x3321结束,单位为6mS
顺便问一下:数据怎么方便存盘? 从窗口剪切太雷人了.
还有,波形挤成一堆了,如何缩放?? 没法细看啊


作者: agnd    时间: 2013-1-11 11:01
另外,使用中还发现几个细节问题:
比如,使用0x88,0xA1即传感器数据帧格式时,怎么"高级收码"窗口不同步显示了?
作者: agnd    时间: 2013-1-11 11:19
楼主确实给力,这个上位机软件相见恨晚!
正准备使用双串口密集下传实际飞行中的所有数据(主要是调和观察PID过程),已经整了两块ST-MW-08S模块,4轴上双串口转Wi-Fi发送, 笔记本无线接收后虚拟成两个115200波特串口无间隔密集发数,但愿这软件能不负众望啊!


作者: adamwin2011    时间: 2013-1-11 11:27
不错,顶一个
毕业后一年多,都没有做东西了
没有勇气开始啊,怕半途而废
作者: phodal    时间: 2013-1-11 11:39
必须顶一个啊。
作者: wangjt1988    时间: 2013-1-11 12:11
上位机还在更新中,你们提到的都记下来了,会改进的
作者: liliuqun    时间: 2013-1-11 12:17
谢谢楼主开源!学习中
作者: Elec_Ramble    时间: 2013-1-11 12:20
给力,支持!!
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端
作者: hy317    时间: 2013-1-11 12:21
顶一个,谢谢楼主分享!
这个框架结构很有创意啊
作者: liang_work    时间: 2013-1-11 12:33
记下,顶起.
作者: dj3365    时间: 2013-1-11 12:35
有套件吗,大概多少钱
作者: wangjt1988    时间: 2013-1-11 12:39
dj3365 发表于 2013-1-11 12:35
有套件吗,大概多少钱

会应大家需求出套件的。 这几天吧
作者: agnd    时间: 2013-1-11 12:39
我觉得应该做个稍微大点的.太小了电池重量或许是个问题
作者: wangjt1988    时间: 2013-1-11 12:55
目前做适合室内玩的,也安全,打到手没啥事,小的也挺好玩,小的玩好了在搞别的,摄像头啊GPS啊什么的
作者: number007cool    时间: 2013-1-11 13:03
楼主空板有卖的么
作者: liang_work    时间: 2013-1-11 13:38
用什么遥控的?
作者: wangjt1988    时间: 2013-1-11 13:41
空板再等等吧,遥控用nrf模块,可以用电脑,可以采集ppm,可以采集pwm,自己diy就这个优势,想咋控制咋控制,写写代码就行了
作者: wangjt1988    时间: 2013-1-11 13:44
我目前用的是采集接收机的pwm,什么都不用改,就给mwc飞控换个自己的程序,再接个nrf就OK了,下一步打算做个遥控板
作者: ronic    时间: 2013-1-11 13:45
强烈支持,楼主伟大
作者: wangjt1988    时间: 2013-1-11 13:51
呵呵,就是自己的爱好,发上来大家一起交流一起学习下
作者: ronic    时间: 2013-1-11 14:04
等楼主套件
作者: wangjt1988    时间: 2013-1-11 14:28
很快会有的
作者: sgzzour    时间: 2013-1-11 14:29
必须学习了
作者: 小号    时间: 2013-1-11 15:39
坐等套件了〜〜〜
作者: plc_avr    时间: 2013-1-11 16:14
遥控板我有现成的,如果楼主需要,可以赠送一块成品给你,大家一起玩才好,呵呵。样子是下面这样的。
先借用这个图吧,晚上重传一下图装上遥杆的。

作者: wangjt1988    时间: 2013-1-11 16:23
plc_avr 发表于 2013-1-11 16:14
遥控板我有现成的,如果楼主需要,可以赠送一块成品给你,大家一起玩才好,呵呵。样子是下面这样的。
先借 ...

思路不太一样,我要做的是只负责信号采集转发和数据接收,不带摇杆,摇杆用商品控的,手感好,大多玩航模的都有自己的遥控,要利用起来,没有的再考虑加摇杆
作者: jiang47    时间: 2013-1-11 16:35
红蜘蛛。
作者: wangjt1988    时间: 2013-1-11 16:38
jiang47 发表于 2013-1-11 16:35
红蜘蛛。

哈哈,很形象啊
作者: li99932li    时间: 2013-1-11 16:40
等了好久。总算有程序了,谢谢楼主
作者: chliken    时间: 2013-1-11 18:59
楼主费心了,为中国无人机的普及作了重大贡献啊!!!  很给力的顶一下
作者: bolizhicheng204    时间: 2013-1-11 19:15
楼主威武啊
作者: jacktau    时间: 2013-1-11 19:27
严重关注,谢谢共享~~~~~~~~~~~~~~~~~~
作者: wangjt1988    时间: 2013-1-11 19:29
谢谢大家支持,抽点时间把上位机改了,稍后上传..
作者: fengyuxiaoxiao    时间: 2013-1-11 20:12
必须顶啊
作者: wangjt1988    时间: 2013-1-11 20:19
上位机更新了传感器波形的每页显示数量,已经上传
作者: source.ant    时间: 2013-1-11 20:31
我来学习C#的

作者: ShawnLinson    时间: 2013-1-11 20:41
要不是已经买了成品,肯定就买楼主的了!
作者: wangjt1988    时间: 2013-1-11 20:57
目前上位机还是delphi做的....c#是愿望..
作者: wengxiaoming    时间: 2013-1-11 21:22
真心不错,真想买个套件玩玩
作者: binham    时间: 2013-1-11 22:30
板子做的好漂亮啊
作者: agnd    时间: 2013-1-11 22:42
谢谢楼主更新软件。回来晚了(加班打扫卫生迎接明天领导视察),刚下了软件,明天再试试。
作者: agnd    时间: 2013-1-11 22:48
已再次“举报”建议老大给裤子
作者: wangjt1988    时间: 2013-1-11 22:57
agnd 发表于 2013-1-11 22:48
已再次“举报”建议老大给裤子

谢谢支持!!哈哈   这样更有动力了   有进展会更新的
作者: john800422    时间: 2013-1-12 00:08
頂一個
考完試來試一下
作者: fighterallen    时间: 2013-1-12 00:21
再支持一下。
作者: wangjt1988    时间: 2013-1-12 00:23
fighterallen 发表于 2013-1-12 00:21
再支持一下。

非常感谢大家的支持!!
刚玩了下C#,可以串口通讯了,还不错
作者: TroyLee    时间: 2013-1-12 00:33
http://www.udacity.com/view#Cour ... 13014/Nugget/513015

Kalman Filter 這 UNIT 看完就懂了...
作者: lovecrystal    时间: 2013-1-12 08:30
好东西 得留着
作者: fjourdev    时间: 2013-1-12 09:27
这个我喜欢,要是套件价格能承受就搞一件玩下!
作者: wangjt1988    时间: 2013-1-12 10:03
不贵,需要的器件也不多
作者: wangjt1988    时间: 2013-1-12 12:35
vs的ide做的确实厉害
作者: hj184584882    时间: 2013-1-12 13:50
楼主的开源精神,在这再顶一次!
作者: wangjt1988    时间: 2013-1-12 15:34
很多人无私的帮我,大灰狼,de-boy等等,在别人帮助下做了点东西,开源必须的,大家一起学习嘛
作者: laojiao    时间: 2013-1-12 18:02
好玩,顶一下
作者: 小号    时间: 2013-1-12 18:21

作者: wangjt1988    时间: 2013-1-12 19:11
电力,我接触的电压都是 22W  50W v
作者: hemeizhi    时间: 2013-1-12 20:41
电力,高压,有钱人啊
作者: wangjt1988    时间: 2013-1-12 20:54
不景气啊,,,,实话,工资低的离谱....后悔当初啊
作者: djmxia    时间: 2013-1-12 21:05
寒假回去学原理~
作者: elong2013    时间: 2013-1-12 21:28
支持楼主的开源精神




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4