2014年6月18日 星期三

用 Arduino 製作四軸飛行器(四之一)Arduino 控制程式初始化


終於要來到程式實作的部份了

首先我們需要了解我們的實際程式運作流程

我目前所設計出來的流程如下(初始化部分):


我們使用的感測器是 GY-80 模組,他是整合三個感測模組的一個模組(好繞舌XD)

我們先從加速度模組開始,加速度模組我們使用的是 ADXL345 模組,為了方便,使用別人寫好的函式庫,載點如下:


初始化程式如下:

可以看到程式中在取得加速度的方法變得相當簡單,不過由於他是透過 Wire 函式庫(用I2C 作為通訊協定)去抓取數值,所以請務必先引入 Wire.h 檔案



接下來是陀螺儀的部份,其實老實說我目前還是沒有搞定陀螺儀錯誤問題,不過還是跟大家題一下有關陀螺以的簡單用法,我們這邊使用的是 L3G4200D 陀螺儀模組,其使用方法如下

大氣壓力模組其實目前我還沒有在運用他的資訊,所以程式可能之後才會補上。

接著是電子調速器(ESC)的部份,我們需要先了解使用方法,由於每一個電子調速器可能會有些許不同,在使用時建議先詳讀內容

我所使用的調速器為 Skywalker Quattro 20A*4 這一個版本,更詳細資訊請參考第一篇

在網路上剛好找到了他的說明書,連結如下:

原則上通電之後,初始化的流程如下:

要注意的是,油門放到最低並不是「零」,而是一個相對小的數值,當初我被這一個細節整了很久 XD

程式的部份,Arduino 是透過 PWM 去將轉速資訊傳輸給 ESC ,ESC 在把適當的能量以及訊號傳輸給馬達,達到旋轉的效果。

有趣的是, ESC 可以透過控制馬達,產生出音樂,這也是為什麼我們可以聽到 Do Re Mi 的聲音。

馬達控制的程式如下(其中一個馬達):


所以整個 ESC(四個馬達)初始化的部份可以寫成下面的程式:



PID 初始化的部份我打算保留倒下一篇文章在來說明,目前初始化的設定就先到這邊囉~