本帖最后由 wangjt1988 于 2013-1-11 20:02 编辑
毕业以来,实在闲不住,总想做点什么玩,不想搞太复杂的硬件,想到了四轴,于是开始走入模界......
先买了大四周,mwc,调的差不多了,发现我们这天天有风,实在是郁闷,于是开始计划做微型四轴,这次决定完全diy,成品实在是无味...
用业余时间做一架自己的四轴,是很有意思也是很难,很难有时间静下心来做.自己做板,写程序,写自己的上位机,用自己的协议来遥控.
因为平时上班忙,工作也全与电子无关,所以进度比较慢.
在跟大学好友俩人的共同努力下,我们的小四轴终于完工了.现在已经可以比较稳定的飞了,情况见下面视频.现在板子也升级到第二版本了,更加集成,遥控接收也做到板子上了.
下面把这段时间来的成果,自己的经验,还有原理图、程序、上位机分享给大家.
方案:
CPU: STM32F103CB
2.4G: NRF24L01
电子罗盘:HMC5883
陀螺仪+加速度计:MPU-6050
视频:
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#,,,,都是半吊子水平...哎,,以后要专心啊....
飞控程序:目前四元数,还没上卡尔曼,卡尔曼还没弄懂..后悔大学数学没学好啊...
工程文件:
上位机写了好久,全部功能还未实现,但是已经比较好用了,可以显示角度,各个传感器读数,波形显示
固定的传感器通讯格式为: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再上传上位机
上位机是和飞控一起成长的,现在不完善的以后都会慢慢完善.
原理图:
还有好多东西,一下也想不起来,不能一一说了,大家以后多多交流啊!!!
2013年1月11日20:00更新上位机:
增加飞控数据波形滚动功能,可以自己设置一页显示的数量
上位机:
另外,只要打开高级收吗,不用设置帧头和功能字,就会接受0X88+0XA1开头的飞控数据,不用自己设置
|