---
# System prepended metadata

title: Arduino小四軸

---

# 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電阻以下圖方式連接![](https://i.imgur.com/trglfP1.png)
注意圖中D3、D9、D10、D11的空心杯請用下列順序排列於洞洞板上
D3(左上)D10(右上)
D11(左下)D9(右下)
做好後大概長這樣
![](https://i.imgur.com/Bj5UKYf.jpg =50%x)

3. 在最下面預留三條線接PPM接收機
PPM----ARDUINO
訊號----D2
紅色----5V
藍色----GND

4. 裝上機架後，硬體的部分就告一段落!

---

### 2020更新PCB版本
* 用EasyEDA設計PCB，將atmega328p晶片合上去
* 並畫好電路
* 省下焊線和debug的時間
* 設計兩種版本
1. 圓形版本：方便架在現有的機架上(測試影片中的那種)
![](https://i.imgur.com/FjwO5V5.png =50%x)
2. 四軸外型版本：一體成形整台小四軸可以變得更小更輕
![](https://i.imgur.com/aG1Zs0M.png =50%x)


---

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表示正常。
![](https://i.imgur.com/zI4WbaK.png)

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都運作正常