首先是一大堆的感谢,太多人的帮助,感谢不完了…………首先要说明,这个PCB工程的出现要感谢论坛上的台湾大哥 john800422 开源了自己的飞控板的工程文件,我这样的没啥基础的小弟们才能学会如何制板,也才能开发出这套F4的飞控。要感谢论坛上第一个做wifi小四轴的小哥,那小哥确实花了好多功夫才把RTT自带的那个基本没法用的wifi驱动移植上来的……要不是那小哥后来蒸发了,我怎么想买他的板子都买不到,也许我也就不会做这个小四轴了…………wifi部分基本是参照这小哥的思路来的,虽然这小哥没提供多少资料,但是在我从新移植的过程中却在网络上各处搜到了这小哥当时移植驱动留下的足迹,确实非常困难,感谢这小哥之前一年多的辛勤付出。飞控程序继续沿用我之前的“山猫飞控”,鉴于硬件的增强,算法相应参数也做了适当的调整,性能提高了不少。感谢俊哥提供了最初的算法支持,无雪大神传授惯导经验,猴哥等人讨论控制算法,嘉哥条哥拓哥……………………果然感谢不完了…………

本次更新废除了几乎全部的商业软件和代码(操作系统由uCIII换成了RTT,上位机全部使用java开发,3D引擎图表引擎摇杆驱动均为开源协议),整个飞控从此严格遵守GPLv2协议,使用该代码的人需要开源自己的相关代码。

好了,开始介绍我的LynxFly吧~

该飞机面向有科研和强烈学习意向的小伙伴们使用,如果只是想玩的话你肯定不会喜欢这套四轴的,主要设计思想是提供一个高性能的控制和姿态算法验证平台,因此牺牲了许多“玩”的性能,却大幅的提高了通信和运算的能力。该机可以承载很大的通信数据量,通信部分我已经做了多线程时线程安全的考虑,可以随意的printf给上位机,完全不用自己考虑线程安全和数据胡乱穿插的问题(还没测试过最大能承载多大的数据量,但是实时发送存储飞控数据已经足够了)。最关键的是中央最优越的地理位置被一颗螺丝孔霸占了……这是做控制算法的人所必须的,连接万向节测试控制效果。上下位机软件的开发遵循“最简,方便修改”的原则,实现了大多数的功能,但是没有把程序写到“很大很复杂”,这样使用我程序的小伙伴们就可以非常方便的找到核心代码并按照自己的需求进行更改。

硬件:

为了更好的兼容台湾大哥 john800422以后的硬件和代码,电路连线未做大幅更改,仅将按键换了IO口。

主控:STM32F405RGT6

传感器: MPU9150+ms5611

通信: 完全的wifi通信 WM-G-MR-09

锂电充电:TP4056

SD卡: 支持

USB:支持 但目前没有驱动,仅提供充电

遥控方式: 航模手柄(接收机会超重,不建议使用),电脑USB游戏手柄,android手机(2.3以上可以遥控,4.0以上支持多点触控遥控)

电池: 300mah航模1s动力锂电池

电机驱动:MOS管驱动,带续流与匹配电容(没有试验条件暂时没法确定匹配电容的容量)

电机: 716空心杯电机 配46mm桨

重量: 含电池39.3g 不含电池30.4g

最大特点: 中央螺丝孔设计,可以连接转杆和万向节,方便进行控制和姿态算法的测试。

软件:

下位机:RT-Thread实时开源操作系统,UDP wifi通信,山猫飞控,SWD编程,不支持无线下载固件。

上位机:JAVA上位机,可接主流各种游戏手柄,强实时的3D姿态显示,飞控各种数据实时图表显示,自动记录并保存为excel格式。

android上位机:目前只提供虚拟摇杆的控制方式,3D姿态显示和体感控制暂时没有时间开发。

飞控算法:

导航:梯度法的全姿态姿态解算,200Hz姿态输出,仿DMP的自动陀螺0飘校准,磁阻融合姿态可以使用,但在室内环境下变化实在太大,会影响整体的姿态而被我暂时关闭了。有简单的惯导空间位移输出,但在简单的校准情况下漂移异常严重,仅空间速度勉强可用。在使用无雪大神的椭球拟合矫正加计和磁阻以后可以实现能用的空间位移输出,但是由于是付费软件的关系没有加到我的代码中,真的有需求的话可以找无雪大神购买。

控制:目前仅提供位置式PID的姿态控制 100Hz控制,以及单轴的自适应控制(原因见以前文章),稳定性上肯定是不如wmc的小四轴的(比如兔斯基),但是可以更好的理解控制的内涵而被我固执的保留了下来……飞机自带在线系统辨识的代码,可以提供几组在“最优参数范围”内的位置式PID参数供大家使用,所以该飞机只适合有科研和强烈学习意向的小伙伴们使用,如果只是想玩的话你肯定不会喜欢这套四轴的。

图片位~~~~~~~~~~~~~

视频位:

http://v.youku.com/v_show/id_XNjM2MDMwMzky.html

http://v.youku.com/v_show/id_XNjM1MjMyMTIw.html

http://v.youku.com/v_show/id_XNjM1MjM0MjQ4.html

本人不是专业做四旋翼的,现在研究生工作非常忙,不会大规模的卖东西,当然有强烈需求的话欢迎与我联系~我自然会开源我的代码的,有兴趣有时间的欢迎自己按照图纸制作。作为学生,最希望的还是能够得到更多的交流和知识,特别欢迎大家与我探讨导航和控制算法。扣扣 巴斯六舅三思六舅

下位机代码:  http://download.csdn.net/detail/lynx2/6602901

百度网盘全部开源资料下载: http://pan.baidu.com/s/1oZBDM  电路工程文件:http://pan.baidu.com/s/1gSPbw

LynxFly科研小四轴横空出世,开源,F4,WIFI --(转)的更多相关文章

  1. 微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布!!!

    微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布 Weixin-App-Shop 是捷微团队开发的微信小程序商城开源项目,涵盖了微信商城的全部功能,能够快速发布简单易用的小 ...

  2. 用Vue.js开发微信小程序:开源框架mpvue解析

    前言 mpvue 是一款使用 Vue.js 开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程 ...

  3. 手把手教你制作微信小程序,开源、免费、快速搞定

    最近做了个"罗孚传车"的小程序 一时兴起,做了一个小程序,将个人收集的同汽车相关的行业资讯和学习资料,分享到小程序中,既作为历史资料保存,又提供给更多的人学习和了解,还能装一下:) ...

  4. 基于WeChat的消息存储备份、远程控制、小功能项目开源分享计划

    WeChat+ 关于该项目 起源 该项目的起因是一个比较程(老)序(油)猿(条)的理由,有一天我发现我下班时间比较早,有点尴尬,但是又不想没事干还坐在公司,那么如何解决我的问题呢,初步想法是远程控制电 ...

  5. 微信小程序代码开源啦

    想学习如何使用mpvue开发微信小程序吗? 想知道微信消息推送如何实现吗? 想知道如何用springboot开发小程序后台吗? 看这里就全都有了.耗时一个月打造的微信小程序:PSN折扣助手前后端所有源 ...

  6. 即兴小探华为开源行业领先大数据虚拟化引擎openLooKeng

    @ 目录 概述 定义 背景 特点 架构 关键技术 应用场景 安装 单台部署 集群部署 命令行接口 连接器 MySQL连接器 ClickHouse连接器 概述 定义 openLooKeng 官网地址 h ...

  7. 面试利器!字节跳动2021年Android程序员面试指导小册已开源

    整份手册分为两个部分,分别是:Java部分.Android部分.数据结构与算法篇.字节跳动2020年全年面试题总结篇! 每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图 ...

  8. 伴随ListView、RecyclerView、ScrollView滚动滑入滑出小图标--第三方开源--FloatingActionButton

    FloatingActionButton在github上的项目主页是:https://github.com/makovkastar/FloatingActionButton 它的依赖包NineOldA ...

  9. 小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布

    Weixin-App-CMS 是捷微团队开发的微信小程序CMS开源项目,涵盖了微网站的基本功能,能够快速发布简单易用的小程序网站.采用工具“微信web开发”上传小程序,即可快速体验发布体验小程序网站. ...

随机推荐

  1. CRC校验的实现

    本例提供的是通过查表发来实现CRC校验. CRC余式表如下: unsigned int crctab[256] ={/*CRC余式表 */ 0x0000, 0x1021, 0x2042, 0x3063 ...

  2. Linux内存管理学习3 —— head.S中的段页表的建立

    作者 彭东林 pengdonglin137@163.com 平台 TQ2440 Qemu+vexpress-ca9 Linux-4.10.17 正文 继续分析head.S: ldr r13, =__m ...

  3. 测试RemObjects Pascal Script

    unit Unit1; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

  4. java 日历类Calendar用法

    如何获取昨天?取昨天的日期,本想的截出来日期减一就好了.又一想不对,如果今天是一号怎么办? 现有两个办法 1: Date as = new Date(new Date().getTime()-24*6 ...

  5. 用开源项目cropper实现对图片中任意部分进行裁剪

     红色区域为截图控件的区域.    开源项目地址:https://github.com/edmodo/cropper croper这个开源项目可以对一个图片进行任意区域的街区,并且可以设置图片的旋转角 ...

  6. Dump dynamic object in LinqPad

      Just like: dynamic paper = MockPaper(); LINQPad.Extensions.Dump(paper); //paper.Dump(); Use LINQPa ...

  7. idea创建springcloud项目图文教程(EurekaServer注册中心)

    http://blog.csdn.net/hcmony/article/details/77854999 idea创建springcloud项目图文教程(EurekaServer注册中心)(六) 1, ...

  8. InnoDB Record, Gap, and Next-Key Locks

    InnoDB has several types of record-level locks including record locks, gap locks, and next-key locks ...

  9. C++二维数组 取地址 复制给 二维指针

    本来应该是个简单的问题,但是我就不明白了,为什么会段错误了... #include<stdio.h> #define UINT32 unsigned int UINT32 NType1_X ...

  10. 关于NLP和深度学习,准备好好看看这个github,还有这篇介绍

    这个github感觉很不错,把一些比较新的实现都尝试了: https://github.com/brightmart/text_classification fastText TextCNN Text ...