ドローン制作 2-1: 準備・部品選定

Multicopter

以前 2020 年頃にもドローンを制作してしました(過去記事はコチラ)が、再度ドローンの制作プロジェクトを始めていきたいと思います。本記事は部品選定にフォーカスします。

概要

今回の制作で最もこだわりたいポイントは以下です。

  • 5 つ以上のモータを有するドローンを作る(特殊形状機体の作成)
  • オプティカルフローセンサと ToF センサを用いて定点ホバリングを可能にする

前回制作したドローンでは定点ホバリングができなかったため、この動画のようにかなり不安定な飛行をしていました。

参考ドローン

自分のドローンプロジェクトをする上でモデルケースとなるドローンが M5Stamp Fly という名前ですでに販売されていました。optical flow センサと ToF センサが積まれています。

M5Stamp Fly (M5StampS3搭載)
メインコントローラとしてStampS3を搭載する、プログラマブルなオープンソースドローンキットです。StableモードとSportモードの2つから、好きな操縦方法を選択可能です。

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

ESP32でドローンを自作するガイド、スマホでちゃんと操作可能
マイクロコントローラー「ESP32」と市販のプラスチックプロペラ、カスタムPCBを使い、ドローンを自作する方法が公開されました。

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

【販売終了】GEFORCE 2.4GHz 4ch Hexacopter/X800 FPV RTFセット ホワイト /GM801
【販売終了】GEFORCE 2.4GHz 4ch Hexacopter/X800 FPV RTFセット ホワイト /GM801の通販なら共立エレショップにお任せください!

また、ESPRESSIF 公式がサポートしているドローンプロジェクトもあるようです。

Get Started — ESP-Drone documentation

必要部品

今回制作するドローンで積みたいセンサやモータ等を列挙していきます。前回との差分は、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)を使用します。

IMU diagram

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-PMW3901ESP32 (VSPI)説明
CS0GPIO 5 (VSPICS0)チップセレクト
SCKGPIO 18 (VSPICLK)SPIクロック
MOSIGPIO 23 (VSPID)マスター → スレーブ(データ送信)
MISOGPIO 19 (VSPIQ)スレーブ → マスター(データ受信)
VCC (+BATT?)3.3V電源
GNDGNDGND

SPI 方式の通信を行う Arduino 用のライブラリ(Bitcraze PMW3901)を見つけたので、部品が届いたらこれが使えないか確認してみます。UART 方式で通信を行う方法はこのサイトに記載されています。

ToF センサ

先程紹介した ATK-PMW3901 に搭載されている ToF センサは VL53L1X で、4cm ~ 400cm まで測距でき、 I2C 通信を用いてデータを送受信することができます。

ちょうど同じセンサを使って Arduino で動作確認をしている記事があったので、部品が届き次第これを試してみようと思います。

接続が必要なピンは以下です。

ATK-PMW3901ESP32説明
SDAGPIO 21 (SDA)データ入出力
SCLGPIO 22 (SCL)クロック
VCC (+BATT?)3V3電源
GNDGNDGND

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程度流せる必要がある.
・Vgsのしきい値は1V以下である必要がある.VgsとIdの関係は要チェック.
・ドレイン・ソース間オン抵抗Rds(on)は0.032Ω以下であるべきで,小さければ小さい方が望ましい.

ドローン用のMOSFET選定(2回目)

上記の基準に従って 2 つの MOSFET を比べてみます。

parameter \ MOSFETSQ2310ESSQ2310CES
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-3SOT-23-3

データシートを読み込むと Rds(on) 等に多少の差異はありますがクリティカルな差異はないのと、基準をすべて満たしているので、今回は SQ2310CES を使う予定です。

バッテリ

このドローンのように 1s リポバッテリでも hexacopter は飛ばせると考えています。

以前、こちらの記事の「リポバッテリの選定」という節でバッテリを選定しました。当時の選定で最大 27.5A を流せるリポバッテリを購入しています。

電気容量放電率充電率重量寸法コネクタ電流
550mAh通常;25-30C
最大:50C
推奨:5C
最大:6C
13.6g59 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 コネクタ等)。

JST 2.54mm ピッチコネクタ

PH2.0 コネクタ

プロペラ

プロペラと推力の関係に関しては、以下が成り立つそうです(参考)。

$$T = C_t \rho n^2 D^4$$

ここで、$T$ を推力、$C_t$ を推力係数、$\rho$ を空気密度、$n$ をロータ回転数、$D$ をロータ直径としています。ロータの直径は大きく推力に関与しそうです。

また、プロペラの枚数が増えればもちろん生み出せる推力は大きくなりますが、ブレード同士が生み出す空気の流れの干渉により効率は低下してしまうようです。

先程選定したモータはシャフト直径が 1mm なので、以下のプロペラを選定しました。

まとめ

今回は、次のドローン制作に必要な部品やコンセプト等をまとめてみました。今後の記事で実際に回路を設計したり、センサのテストをしたりしていくのでご期待ください!

コメント