分享

不思带你【从零开始】做四轴!!!(强势整理搬运版)

 dwlinux_gs 2014-09-12
 本帖最后由 黑暗料理 于 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一次,这样就可以用上位机直接观察采样值和滤波后的值,很方便,可以实时观察滤波效果,不用再把数据先保存在内存卡或者电脑上,飞完了在调出来看波形了.
   
       而且听取大家意见,很多人没有航模遥控,这里加上了鼠标键盘控制功能,可以用鼠标和键盘控制飞机了,当然,手感肯定没有遥控好了.




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多