1. 程式人生 > >MWC(1) Multiwii 飛控程式初學者概要

MWC(1) Multiwii 飛控程式初學者概要

 學習MWC飛控程式有一段時間了,略有所得,現整理一下學習思路,略作記錄。

大三開始老師讓我看飛控程式,就給了一塊飛控板(如下圖),Cirus AIOP(All In One Pro),也就是一塊集成了處理器和各種感測器的微控制器。當然,要是精通嵌入式硬體設計,也可以按照官方文件自行搭建,只是對於新學者來說,尤其對於只想涉及軟體演算法層面,實在無此必要。這塊AIOP板子已經足夠了,或者也可以淘寶買一些類似的整合板子,例如mwcSE v2.5之類,都很便宜,便宜的只需幾十塊錢,足夠學習之用了。


對於初學者,很大一個問題就是面對一個全新的領域,不知何從下手,想學但是不知道從哪開始學起。首先,要明確自己所研究學習的平臺是什麼,各個平臺的飛控程式演算法都有不同。現在主流的飛控主要有以下幾種:

1. MWC
MWC是MultiWii Copter的縮寫,它並不是指硬體產品,而是開源韌體。此韌體的原創作者是來自法國的Alex,他為了打造自己的Y3飛行器而開發了最初的MWC韌體(原創交流帖與官網的連結在最下方)。 幾年來經過許多高手的參與及共同努力,開發進度越來越快。現在MWC已經基本成熟,可以支援更廣泛的硬體平臺、外圍裝置及更多飛航模式,讓執行MWC的飛控硬體成為國外開源飛控市場上佔有率最高之一的產品。
MWC韌體是用Arduino IDE來編寫,支援Arduino釋出的幾種主要的AVR開發板Pro Mini/Pro Micro/Mega等,也可支援使用STM32的Arduino相容平臺,但STM32目前無法體現出任何效能與埠上的優勢,所以仍以AVR為主流,成熟、夠用且穩定。我是用的AIOP就是基於Arduino Mega2560,已經集成了大多數感測器,介面豐富的一個平臺。

2. APM

APM(ArduPilotMega)是在2007年由DIY無人機社群(DIY Drones)推出的飛控產品,是當今最為成熟的開源硬體專案。APM基於Arduino的開源平臺,對多處硬體做出了改進,包括加速度計、陀螺儀和磁力計組合慣性測量單元(IMU)。
由於APM良好的可定製性,APM在全球航模愛好者範圍內迅速傳播開來。通過開源軟體Mission Planner,開發者可以配置APM的設定,接受並顯示感測器的資料,使用Google Map完成自動駕駛等功能。


3.  PX4 & PIXHawk PX4

PX4 & PIXHawk PX4是一個軟硬體開源專案(遵守BSD協議),目的在於為學術、愛好和工業團體提供一款低成本、高效能的高階自駕儀。
由3D Robotics聯合APM小組與PX4小組於2014年推出的PIXHawk飛控是PX4飛控的升級版本,擁有PX4和APM兩套韌體和相應的地面站軟體。該飛控是目前全世界飛控產品中硬體規格最高的產品,也是當前愛好者手中最炙手可熱的產品。

這個飛控價格較高一些,單單一個板子一般要500左右。



我個人至今一直在看在學的就是MWC。對於一個初學者而言,為了繼續你的學習步伐,你需要一些如下基礎知識:

  1. C語言基礎

  2. 學習一下Arduino語言,主要要了解它的程式設計方法,結構如下
    void setup() {
      // put your setup code here, to run once:
      // 初始化部分,只執行一次
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      // 程式入口,且不斷在此迴圈
    }
    不要擔心得學一門新的程式語言,arduino是基於c語言的,格式基本相同。
然後,你就是還需要一塊飛控板,無論是自己買的整合的,還是自己畫自己搭的,這樣不斷學習不斷有些小結果,才能不斷激勵自己進步。

相關推薦

MWC(1) Multiwii 程式初學者概要

 學習MWC飛控程式有一段時間了,略有所得,現整理一下學習思路,略作記錄。 大三開始老師讓我看飛控程式,就給了一塊飛控板(如下圖),Cirus AIOP(All In One Pro),也就是一塊集成了處理器和各種感測器的微控制器。當然,要是精通嵌入式硬體設計,也可以按照官

Autoquad程式中SRCDKF演算法分析

個人總結,不正確的地點希望大神指點。 接下來對程式進行分析 (1)演算法初始化 在初始化部分對f->wim,f->wic1,f->wic2進行計算,對應公式(3),f->w0m是在應用程式中進行計算。 (2)sigma點的計算

作為無人機方面做嵌入式編寫的總結1-基本協議驅動介紹1

基本的驅動,要算標準的串列埠,iic和spi協議不可缺席;1 作為微控制器初學者必備知識點和重要知識點,在linux系統編成之中依然還發揮很大作用,因為這三個協議使用的是在太多了;首先廢話不多說,協議除錯工具,用過兩個不同的邏輯分析儀,一個是金沙灘電子工作室的,一個是周立功的

基於Eclipse IDE的Ardupilot源碼閱讀環境搭建

安裝位置 步驟 建立 images ase loaded 開發環境 abs 進入 基於Eclipse IDE的Ardupilot飛控源碼閱讀環境搭建 作者:Awesome 日期:2017-10-21 需準備的軟件工具 Ardupilot飛控源碼 PX4 toolc

JDK動態代理[1]----代理模式實現方式的概要介紹

method 運用 因此 action tcl 為什麽 需要 底層 哪些 日常工作中經常會接觸到代理模式,但一直沒有對其進行深究。代理模式一直就像一團迷霧一樣存在我心裏,什麽是代理模式?為什麽要使用代理?代理模式有哪些實現?它的底層機制是怎樣的?這些問題促使著我迫切想要揭開

day 61 Django part-1 django的安裝,以及初學者三件套

true utf8 new 再看 gpo 停止 常用 筆記 red 老師的筆記: day61 1.前情回顧 1. pymysql 使用: 安裝 pip install pymysql

Java並發系列[1]----AbstractQueuedSynchronizer源碼分析之概要分析

人的 等等 子類 運行 pos unsafe fse oid 出了 學習Java並發編程不得不去了解一下java.util.concurrent這個包,這個包下面有許多我們經常用到的並發工具類,例如:ReentrantLock, CountDownLatch, Cyclic

Ardupilot(PX4)驅動蜂鳴器和RGB細節

initial 控制 text ict notify ble default 參數 neither Ardupilot(PX4)飛控驅動蜂鳴器細節 飛控代碼細節 任務調用頻率50HZ(20ms),buzzer.update() 內部將頻率減少到10HZ(100ms)

1、試對程式,程序,執行緒的慨念和功能進行比較?

答:程式 是計算機指令的集合它,以檔案的形式儲存在磁碟上。 程序是一個程式在其 自身的地址空間中的一次執行活動。 程序是資源申請、排程和獨立執行的單位,因此,它使用系統中的執行資源,而程式不能申請系統資源,不能被系統排程,也不能作為獨立執行的單位,因此,它不佔系統的執行資源。 執行緒:程序中的一個單一的連續控

練習 1-4 編寫一個程式列印攝氏溫度轉換為相應華氏溫度的轉換表。

C語言程式設計(第二版) 練習1-4 個人設計 練習 1-4 編寫一個程式列印攝氏溫度轉換為相應華氏溫度的轉換表。 程式碼塊: #include <stdio.h> #include <stdlib.h> int main() { double c,

S2.1 修復影象小程式(簡單版)

用OpenCV自帶的inpaint()演示 CV_EXPORTS_W void inpaint( InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRad

1.3 攻擊應用程式Linux試驗

TurnKeyLinux 介紹 個人理解TurnKeyLinux是一個只有一個應用程式的Linux版本 並用於研究滲透該應用程式實驗體 詳細資訊 網站:turnkeylinux.org (例)應用名稱:WordPress 下載應用Linux 在首頁找到W

QGC通過網路連線(樹莓派+ROS橋接MavLink)

1. 為樹莓派刷ubuntu     因為無介面的ubuntu在連線無線,設定自動登入等方面的設定比較複雜,我經過各種百度嘗試後,均沒有成功,所以我放棄了.轉而又刷了ubuntu mate(帶介面).然後連線了無線,設定了自動登入,靜態IP.自此樹莓派的準備工作到此結束.這部

Ardupilotlog程式碼學習(3.6版本韌體)

目錄 文章目錄 目錄 摘要 1.官網資料學習 新增一個新的日誌訊息(Adding a new Log Message) 簡單的方法(The Easy Way) 複雜的方法(The Harder Way)

【Windows語音識別】基於SAPI v5.1的語音識別程式配置

參考連結: 1.https://blog.csdn.net/eriato/article/details/70768327 2.https://social.microsoft.com/Forums/fr-FR/51831f59-d532-4ac3-9bdc-b010b27de2c5/v

Mybatis學習筆記(1)——第一個程式

暑期之前就有打算學習SSM,但是我記得當時再配置一個框架瘋狂報錯,弄得我很難受,,再加上當時有點其他事情,所以就放了下來。現在很有需求要會ssm,所以就學了一下。感覺框架這東西配置就煩的要死。錯一丁點就全錯。。下面開始說配置詳情。 介紹一下這些東西,將mybatis的jar包依賴放

Atitit 持久化 Persistence概念的藝術 目錄 1. 持久化是將程式資料在持久狀態和瞬時狀態間轉換的機制。 1 2. DBC就是一種持久化機制。檔案IO也是一種持久化機制。 2 3.

Atitit 持久化 Persistence概念的藝術   目錄 1. 持久化是將程式資料在持久狀態和瞬時狀態間轉換的機制。 1 2. DBC就是一種持久化機制。檔案IO也是一種持久化機制。 2 3. 日常持久化的方法 2 4. 理解與分類 3 4.1

2018-2019-1 實驗三 併發程式

實驗三 併發程式 任務一 學習使用Linux命令wc(1) 基於Linux Socket程式設計實現wc(1)伺服器(埠號是你學號的後6位)和客戶端 客戶端傳一個文字檔案給伺服器 伺服器返加文字檔案中的單詞數 server: include <netinet/in.h> include

淚奔!學了1年java的程式設計師面試,掛在了這道基礎演算法題!

  這都是java的演算法題,應該來講都是些比較簡單的演算法題,但是我敢說很多基礎的學習的,或者想去面試的人都會不能完整的寫出來,現在java學習,大多數人都不是非常紮實,對於基礎也不是很重視的,所以就發出來給大家參考鞏固下基礎! 這篇文章分享之前我還是要推薦下我自己

《OpenCV3程式設計入門》——3.1.9 綜合示例程式:影象的載入、顯示與輸出

書中關於影象的載入、顯示與輸出的綜合應用。有些細節知識將在本部落格後續更新。 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; int