# Arduino小四軸 ## 材料 * Arduino Pro mini $\times$ 1 * HC-05 $\times$ 1 * 720空心杯 $\times$ 4 * 10k電阻 $\times$ 4 * si2302 $\times$ 4 * DC to DC 升壓模組 $\times$ 1 * MPU6050模組 $\times$ 1 * 美規線 一綑 * 洞洞板 $\times$ 1 * PPM接收器 $\times$ 1 * 遙控器(ex: devo7) * USB TO TTL ## 製作過程 1. 將Arduino Pro Mini以及MPU6050模組焊在洞洞板中央,並用下表接線方式(I<sup>2</sup>C)用美規線(OK線)連接。 > MPU6050僅具三軸陀螺儀和三軸加速度計 > 若需要可再擴充磁力計或氣壓計(BMP388) > Multiwii均可支援 | MPU6050 | Arduino | | -------- | -------- | | VCC | 5v | | GND | GND | | SCL | A5 | | SDA | A4 | 2. SI2302、720空心杯與10K電阻以下圖方式連接 注意圖中D3、D9、D10、D11的空心杯請用下列順序排列於洞洞板上 D3(左上)D10(右上) D11(左下)D9(右下) 做好後大概長這樣  3. 在最下面預留三條線接PPM接收機 PPM----ARDUINO 訊號----D2 紅色----5V 藍色----GND 4. 裝上機架後,硬體的部分就告一段落! --- ### 2020更新PCB版本 * 用EasyEDA設計PCB,將atmega328p晶片合上去 * 並畫好電路 * 省下焊線和debug的時間 * 設計兩種版本 1. 圓形版本:方便架在現有的機架上(測試影片中的那種)  2. 四軸外型版本:一體成形整台小四軸可以變得更小更輕  --- 5. 將ARDUINO接上USB TO TTL傳輸線連上電腦 6. 下載[Multiwii](https://code.google.com/archive/p/multiwii/)的開源程式2.4版 7. 打開檔案,將config.h的以下部分修改 ```c= #define QUADX //Drone type #define MINTHROTTLE 1120 //最小油門 #define I2C_SPEED 400000L #define SERIAL_SUM_PPM ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Robe/Hitec/Futaba 這邊可以自己改順序 ``` 8. MultiWii.h 遙控器最小值<MINCHECK ; MAXCHECK<遙控器最大值 ``` #define MINCHECK 1200 #define MAXCHECK 1800 ``` 10. 打開MultiWiiConf程式點選Arduino的port,按start,I<sup>2</sup>C ERROR若為0表示正常。  11. 將四軸放置於平坦處,點選CALIB_ACC進行陀螺儀校正(約需等待十秒左右) 12. 試飛並調整<font color="#0030ff">PID值</font>([影片](https://www.youtube.com/watch?v=j47WHXW82Hk)) ### PID控制器 由比例( P )、積分( I )、微分( D )控制項組成,誤差值設定為設定值-反饋值。 <b>比例控制項</b>便為誤差值$\times$參數$K_p$,會使系統來回會在設定值附近震盪 <b>積分控制項</b>將誤差值總和$\times$參數$K_i$輸出,因為加上負的誤差值,所以會降低比例控制器所產生的震盪,使系統趨向穩定,但如果誤差值持續累積則會產生overshoot。 <b>微分控制項</b>將誤差值的一階導數$\times$參數$K_d$輸出,調升$K_d$系統能做出更快速的反應,提升系統穩定性。 #### 調整參數(個人經驗) Multiwii有預設一組參數,一開始是用這組參數試飛,起飛後五秒基本沒問題,而後機體開始劇烈搖晃導致翻覆,判斷是$K_p$值太低造成的,將$K_p$值調高近原值的兩倍後,便能穩定飛起只剩輕微抖動Roll、Pitch都運作正常
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up