本帖最后由 黑暗料理 于 2013-11-11 20:03 编辑 本帖搬运并整理自茶大阿莫论坛发帖,供大家参考学习。首次发帖,有什么不对的地方,望大家多多指正啊。 此帖从最开始的硬件焊接调试,到最后的飞行调试,一一给大家介绍, 并为大家解答在硬件焊接/模块驱动/程序调试等方面会遇到各种各样的问题,也为了方便大家少走弯路,争取让大家跟着教程都能做出自己的飞控。特此开贴。 匿名四轴试飞视频: http://www.56.com/u56/v_ODQ0ODczNDk.html 一、全套原理图.程序.上位机 毕业以来,实在闲不住,总想做点什么玩,不想搞太复杂的硬件,想到了四轴,于是开始走入模界. 先买了大四轴,mwc,调的差不多了,发现我们这天天有风,实在是郁闷,于是开始计划做微型四轴,这次决定完全diy,成品实在是无味. 用业余时间做一架自己的四轴,是很有意思也是很难,很难有时间静下心来做.自己做板,写程序,写自己的上位机,用自己的协议来遥控. 因为平时上班忙,工作也全与电子无关,所以进度比较慢. 在跟大学好友俩人的共同努力下,我们的小四轴终于完工了.现在已经可以比较稳定的飞了.现在板子也升级到第二版本了,更加集成,遥控接收也做到板子上了. 下面把这段时间来的成果,自己的经验,还有原理图、程序、上位机分享给大家. 方案: CPU: STM32F103CB 2.4G: NRF24L01 电子罗盘:HMC5883 陀螺仪+加速度计:MPU-6050 做四轴过程中的一些经验: 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+FUN+LEN+DATA+SUM FUN可以是 0xA1到0xAA,共10个;LEN为DATA的长度(不包括0x88、FUN、LEN、SUM)。 SUM是0x88一直到DATA最后一字节的和,uint8格式。 飞控显示对应的帧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)。 遥控,电机pwm,电压显示对应的帧FUN为0xAE,(帧格式:0x88+0xAE+0x12+THROT YAW ROLL PITCH +AUX1 2 3 4 5 + PWM:1 2 3 4 + VOTAGE + SUM,共28字节),数据为uint16格式,遥控数据最小在1000左右,最大在2000左右。数据都为uint16格式,其中pwm范围1-100,votage为实际值*100。 最新上位机下载可前往匿名科创主站 在上位机中按F12查看帮助有更详细介绍,此处不再赘述。 上位机+源码的视频讲解: http://v.youku.com/v_show/id_XNTkzNDkxNTU2.html 上位机的数据处理速度可以1毫秒处理一个几十字节的数据帧(无线数据包为32字节,这里就以32字节为例),也就是说1秒可以处理32000字节的数据. (1ms接收32字节的数据,并分析,显示数据波形) 这里可以说是写上位机时最难的,占据了大量的时间,因为如果做到10ms接收一帧数据并显示,是比较容易的,如果频率快了,比如现在的1ms一帧数据的话,pc的数据处理和显示刷新要处理的很好才行,要不程序就很容易"死掉",因为windows不是实时系统,还有很多事情要做,不能把所有资源都给上位机程序. 目前传感器的采样频率也是1ms一次,这样就可以用上位机直接观察采样值和滤波后的值,很方便,可以实时观察滤波效果,不用再把数据先保存在内存卡或者电脑上,飞完了在调出来看波形了. 而且听取大家意见,很多人没有航模遥控,这里加上了鼠标键盘控制功能,可以用鼠标和键盘控制飞机了,当然,手感肯定没有遥控好了. |
|
来自: dwlinux_gs > 《四轴》