Arduinoで自作クアッドコプター:DIYフライトコントローラーガイド
必要な部品と材料
| 部品 | 数量 |
|---|---|
| Arduino Nano R3 | 1 |
| GY-521 MPU-6050 3軸ジャイロスコープ + 加速度計モジュール | 1 |
プロジェクト概要
単なるクアッドコプターではない、オープンソースマシン!
クアッドコプターのコードはどこで手に入るのか?答えは「MultiWii」です。
MultiWiiは、DIYマルチローター向けの非常に人気のあるフライトコントローラーソフトウェアで、大きなコミュニティがあります。Bluetoothによるスマートフォン操作、OLEDディスプレイ、気圧計、磁力計、GPS位置保持と帰還、LEDストリップなど、高度な機能をサポートしています。Arduinoを使ってフライトコントローラーを自作しましょう!
ステップ1:フライトコントローラーの設計

フライトコントローラーボードの回路図です。ユニバーサル基板で自作するか、筆者のようにPCB製造業者に発注できます。
ESC接続
- D3 → ESC 1 信号ピン
- D9 → ESC 3 信号ピン
- D10 → ESC 2 信号ピン
- D11 → ESC 4 信号ピン
Bluetoothモジュール接続
- TX → RX
- RX → TX
MPU-6050接続
- A4 → SDA
- A5 → SCL
LEDインジケーター
- D8 → LED アノード
受信機接続
- D2 → スロットル
- D4 → エルロン
- D5 → エレベーター
- D6 → ラダー
- D7 → AUX 1
ステップ2:フレームの組み立て
DJI 450フレームを購入し、モーターなどを取り付けました。組み立て手順は動画を参照してください。
ステップ3:フライトコントローラーをフレームに搭載
回路図通りにESCと受信機をボードに接続すれば完成です!
コード
MultiWii.ino (C/C++)
#include "Arduino.h"
#include "config.h"
#include "def.h"
#include "types.h"
#include "GPS.h"
#include "Serial.h"
#include "Sensors.h"
#include "MultiWii.h"
#include "EEPROM.h"
#include
// GPS関連の関数プロトタイプ(一部抜粋)
#if GPS
static void GPS_bearing(int32_t* lat1, int32_t* lon1, int32_t* lat2, int32_t* lon2, int32_t* bearing);
static void GPS_distance_cm(int32_t* lat1, int32_t* lon1, int32_t* lat2, int32_t* lon2, uint32_t* dist);
// ... その他の関数定義
#endif
// メインのナビゲーション処理とステートエンジン
uint8_t GPS_Compute(void) {
// GPSデータの処理、ナビゲーション状態の管理
// ポジションホールド、RTH(帰還)、ウェイポイントナビゲーションなど
// 詳細なコードは全文を参照してください
}
// PID制御、位置保持、ナビゲーション計算などの関数群
// ... (コードは省略、全文はダウンロードして確認)
回路図

製造プロセス
- Drone Pi:スマートフォンとリモコンのデュアル操作対応 Multiwii & Raspberry Pi クアッドコプター
- Bluetooth操作のArduinoスパイボットを自作する
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduinoプロジェクトのための最適化電源ソリューション
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- Arduino Nano R3で本格的なCNCマシンを自作する