以前 2020 年頃にもドローンを制作してしました(過去記事はコチラ)が、再度ドローンの制作プロジェクトを始めていきたいと思います。本記事は部品選定にフォーカスします。
概要
今回の制作で最もこだわりたいポイントは以下です。
- 5 つ以上のモータを有するドローンを作る(特殊形状機体の作成)
- オプティカルフローセンサと ToF センサを用いて定点ホバリングを可能にする
前回制作したドローンでは定点ホバリングができなかったため、この動画のようにかなり不安定な飛行をしていました。
参考ドローン
自分のドローンプロジェクトをする上でモデルケースとなるドローンが M5Stamp Fly という名前ですでに販売されていました。optical flow センサと ToF センサが積まれています。

他にも ESP32 モジュールから作っているドローンや

1s リポバッテリを使っている hexacopter が参考になりそうでした。

また、ESPRESSIF 公式がサポートしているドローンプロジェクトもあるようです。
必要部品
今回制作するドローンで積みたいセンサやモータ等を列挙していきます。前回との差分は、optical flow センサと ToF センサを搭載する予定であること、モータを 6 つまで積む予定であることです。
- ESP32 x 1
- 昇圧コンバータ x 1
- IMU (9軸ジャイロの予定) x 1
- optical flow センサ x 1
- ToF センサ x 1
- モータ x 6
- Nch MOSFET(モータ駆動用) x 6
- 1s リポバッテリ x 1
ESP32
Arduino でコードを書けて BLE 通信をできるのが非常に良いので、今回も ESP32 を使用します。
前回 omni-wheel ロボットを作ったときは ESP32 の ESP32-DevKitC board は使わずに、単体モジュールを使って電気回路を設計しました(参考記事)。しかし、この方法だと少しコストが高いので、今回はESP32-DevKitC board に拡張する基板を設計します。また、ESP32-DevKitC board のみが故障した場合や拡張基板のみが故障した場合にも、いずれかを変えればよいため故障時のコストが抑えられるのも大きなメリットです。
昇圧コンバータ
ESP32-DevKitC board は 5V の入力電圧が必要なので、3.7V の 1s リポバッテリで駆動させる場合は昇圧コンバータが必要となります。以前こちらの記事で調べたとおり、昇圧コンバータとして MT3608 が使えそうです。MT3608 は KiCad 8.0 のライブラリにありました。
こちらのサイトで 3.3V から 5V に昇圧するサンプル回路図が載っているので参考にします。
1s リポバッテリから 3.3V に降圧して ESP32-DevKitC board の 3V3 ピンに直接つなぐ方法もあるのですが、ドローンのモータで多くの電流を使用するため結果的に大きな電圧降下が発生し電圧供給が不安定になる可能性があるため、5V に昇圧してから 3.3V にします。
IMU
今回のドローン制作でも omni-wheel ロボットを作った際に使った imu(BNO055)を使用します。
ESP32 の SDA (GPIO 21), SCL (GPIO 22), 3V3, GND ピンと IMU をつなげます(参考)。
optical flow センサ
オプティカルフローセンサとは、画像中の物体の移動方向・量を検知するセンサで、PCのマウスの移動量計測や物体追跡、ドローンの位置推定などに使用されています。
オプティカルフローセンサ PMW3901 (UART版) を Arduino で読んでみる
optical flow センサとしては、PMW3901 というセンサが主流のようです。AliExpress にて PMW3901 と後述する ToF センサが統合されているセンサモジュール(ATK-PMW3901)を見つけたので、今回はこれを購入してみます。生のセンサのデータシートはこちらです。
ピンに関しては、以下のような対応付けが必要のようです。
ATK-PMW3901 | ESP32 (VSPI) | 説明 |
CS0 | GPIO 5 (VSPICS0) | チップセレクト |
SCK | GPIO 18 (VSPICLK) | SPIクロック |
MOSI | GPIO 23 (VSPID) | マスター → スレーブ(データ送信) |
MISO | GPIO 19 (VSPIQ) | スレーブ → マスター(データ受信) |
VCC (+BATT?) | 3.3V | 電源 |
GND | GND | GND |
SPI 方式の通信を行う Arduino 用のライブラリ(Bitcraze PMW3901)を見つけたので、部品が届いたらこれが使えないか確認してみます。UART 方式で通信を行う方法はこのサイトに記載されています。
ToF センサ
先程紹介した ATK-PMW3901 に搭載されている ToF センサは VL53L1X で、4cm ~ 400cm まで測距でき、 I2C 通信を用いてデータを送受信することができます。
ちょうど同じセンサを使って Arduino で動作確認をしている記事があったので、部品が届き次第これを試してみようと思います。
接続が必要なピンは以下です。
ATK-PMW3901 | ESP32 | 説明 |
SDA | GPIO 21 (SDA) | データ入出力 |
SCL | GPIO 22 (SCL) | クロック |
VCC (+BATT?) | 3V3 | 電源 |
GND | GND | GND |
Arduino ライブラリとしては Pololu のこれが使えそうです。
モータ
以前購入して余っていた 8.5mm x 20mm のモータを使おうと思います。重さは 5g と軽めです。現在このモータは amazon には在庫がないようですが、代替品は見つかりました。前回制作時は 8.0mm x 20mm のモータを使用しましたが、8.5mm x 20mm の方が入手性が良さそうです。
推力の測定や分析に関しては、前回制作時にこちらの記事にて行っています。
Nch MOSFET
MOSFET の選定は以前こちらの記事にて行っています。以前、SQ2310ES がよいという結論になっているのですが、2025 年現在残念ながら生産中止になっているようです。
代替品として ChatGPT は SQ2310CES を推薦してきました。
・Idは最大で3A程度流せる必要がある.
ドローン用のMOSFET選定(2回目)
・Vgsのしきい値は1V以下である必要がある.VgsとIdの関係は要チェック.
・ドレイン・ソース間オン抵抗Rds(on)は0.032Ω以下であるべきで,小さければ小さい方が望ましい.
上記の基準に従って 2 つの MOSFET を比べてみます。
parameter \ MOSFET | SQ2310ES | SQ2310CES |
Id: 定格ドレイン電流 | 6A (temperature 25℃) | 6A (temperature 25℃) |
Vgs(th): 最大ゲート-ソース間しきい値電圧 | 1V (Vds = Vgs, Id = 250μA) ※Vds: ドレイン-ソース間電圧 | 1V (Vds = Vgs, Id = 250μA) |
Rds(on): 最大ドレイン-ソース間オン抵抗 | 0.030Ω (Vgs = 4.5V, Id = 4A) | 0.030Ω (Vgs = 4.5V, Id = 5A) |
パッケージ | SOT-23-3 | SOT-23-3 |
データシートを読み込むと Rds(on) 等に多少の差異はありますがクリティカルな差異はないのと、基準をすべて満たしているので、今回は SQ2310CES を使う予定です。
バッテリ
このドローンのように 1s リポバッテリでも hexacopter は飛ばせると考えています。
以前、こちらの記事の「リポバッテリの選定」という節でバッテリを選定しました。当時の選定で最大 27.5A を流せるリポバッテリを購入しています。
電気容量 | 放電率 | 充電率 | 重量 | 寸法 | コネクタ | 電流 |
550mAh | 通常;25-30C 最大:50C | 推奨:5C 最大:6C | 13.6g | 59 x 18.3 x 6.2mm | PH2.0 | 通常:13.75-16.5A 最大:27.5A |
1 つのモータにつき最大 3A 程度流すと仮定したとき、6 つのモータでは 18A 必要です。更に安全率を考慮して 20% 分の余裕を持たせても 22.5A で十分となります。この電流は、上記のバッテリの最大電流がクリアしているので、今回もこのバッテリを使うこととします。
ただ、前回は写真左のように 2.54mm ピッチの JST コネクタを使いピンヘッダと接続していたため、ヒューマンエラーによる逆接のリスクがありました。今回は逆接のリスクを防止するようにコネクタの選定は工夫したいと思います(ph コネクタ to ph コネクタ等)。
プロペラ
プロペラと推力の関係に関しては、以下が成り立つそうです(参考)。
$$T = C_t \rho n^2 D^4$$
ここで、$T$ を推力、$C_t$ を推力係数、$\rho$ を空気密度、$n$ をロータ回転数、$D$ をロータ直径としています。ロータの直径は大きく推力に関与しそうです。
また、プロペラの枚数が増えればもちろん生み出せる推力は大きくなりますが、ブレード同士が生み出す空気の流れの干渉により効率は低下してしまうようです。
先程選定したモータはシャフト直径が 1mm なので、以下のプロペラを選定しました。
- 2 枚プロペラ / ロータ直径 31mm(Tinywhoop 用)
- 3 枚プロペラ / ロータ直径 31mm
- 3 枚プロペラ / ロータ直径 35mm(Tinywhoop 用)
- 2 枚プロペラ / ロータ直径 59mm(Holy Stone HS220 用)
- 2 枚プロペラ / ロータ直径 76mm(DJI Tello 用)
まとめ
今回は、次のドローン制作に必要な部品やコンセプト等をまとめてみました。今後の記事で実際に回路を設計したり、センサのテストをしたりしていくのでご期待ください!
コメント