100g未満FPVドローンの製作 – ファームウェア(Ardupilot)のカスタム化とインストール

 今回は100g未満FPVドローンのフライトコントローラ(Flywoo GOKU GN 405S 20A AIO)にカスタム化したArdupilotファームウェアをインストールおよびアップデートする方法について記載します。

Ardupilotのカスタム化

 部品選定(1)で述べましたが、Flywoo GOKU GN 405S 20A AIOはSTmicro社のSTM32F405OG MPU(1MB Flash、192KB SRAM)を搭載しています。標準のファームウェアは以下のFTPサイトからダウンロードできます。

ArduPilot firmware : /Copter/stable/FlywooF405S-AIO

しかしながら、STM32F405OG MPUのフラッシュメモリが1MBしかないため標準のファームウェアにはオプティカルフロー関連のドライバーが搭載されていません。従って、オプティカルフローをフライトコントローラに接続しても認識されません。

 幸いにもArdupilotではファームウェアのカスタム化サイトがあります。このサイトではArdupilotの機能やセンサー類のドライバーが選択可能であり、標準ファームウェアに搭載されている必要の無いセンサードライバー等を除外し、必要なドライバーのみを追加するなどして1MBのメモリ制限内で、独自のファームウェアをビルド可能です。ビルド等はサイト内のサーバーで自動的に行われ、生成されたカスタム化ファームウェアはサイトから自動的にダウンロードされます。独自ファームウェアのビルド方法は以下の通りです。

  • Ardupilotのカスタム化サイトにアクセスする。
  • 画面上部の「Add a build」ボタンをクリックすると、ビルド画面が表示される。
Ardupilotカスタム化サイト
カスタム化ビルド画面
  • カスタム化ビルド画面で、カスタム化の条件を設定する。(以下、条件設定の一例)
    1. Select Bard欄①で「Flywoo 405S AIO」を選択する。
    2. Compassプルダウンメニュー②において「QMC5883L」、「QMC5883P」にチェックを入れそれ以外はすべてチェックを外す。
    3. MSPプルダウンメニュー③において「MSP OpticalFlow」、「MSP rangefinder」、「MSP telemetry and MSP OSD」にチェックを入れ、それ以外はすべてチェックをはずす。
    4. Rangefinderプルダウンメニュー④において「Rangefinder – VL53L0X」、「Rangefinder – VL53L1X」、「Rangefinder」にチェックを入れ、それ以外はすべてチェックをはずす。
  • ビルド画面下方の「Generate build」⑤をクリックしてビルドを開始する。
カスタム化条件の設定
  • ビルドを開始すると、カスタム化サイトに戻り、開始したビルドの状況が画面に表示される。
  • ビルドが正常に終了するとStatus欄が「SUCCESS」に変わり、ビルドされたファームウェア圧縮ファイル(Copter-FlywooF405S-AIO-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.tar.gz:xxxxx….は暗号化された番号)が自動的にダウンロードされる。ビルドに失敗すると「FAILURE」が表示されビルドが終了する。失敗した場合は、Logファイルの内容を確認し、フラッシュメモリの容量オーバの場合は「Add a build」をクリックし、カスタム化ビルド画面でビルド条件を見直し、上記1.~4.を繰り返す。
ビルドの状況表示

 ダウンロードされたファイルを解凍すると以下の6個のファイルに分かれます。フライトコントローラに初めてファームウェアをインストールする場合には「arducopter_with_bl.hex」を用い、ファームウェアをアップデートするには「arducopter.apj」を用います。「extra_hwdef.dat」はカスタム化のための条件設定データファイルです。

ダウンロード圧縮ファイルの中身

ファームウェアのインストール

 Flywoo GOKU GN 405S 20A AIOに初めてArdupilotファームウェアのインストールする方法として以下の2通りあります。どちらもファームウェアファイルとして上記のaducopter_with_bl.hexをPCに読込み、バイナリファイルに変換してインストールします。

  1. 購入時にフライトコントローラにインストールされているファームウェアBataflightとPCソフトのBataflight Configuratorを用いてインストールする。
  2. STmicro社のインストールツールSTM32CubeProgrammerを用いてインストールする。

 2.の方法はフライトコントローラボードにファームウェアBataflightがインストールされていなくてもインストールが可能ですので、本ドローン作製には2.の方法を用いました。STM32CubeProgrammerは以下のサイトからダウンロードが可能です。

STM32CubeProg | Software – STMicroelectronics

インストールの手順は以下の通りです。

  1. バッテリーを外した状態で100g未満FPVドローンのSHコネクタとSHコネクタ-USB変換ボードを接続する。このときSHコネクタ-USB変換ボードとPCとは接続しない。
  2. FCカバー上部のGPSの隣に配置した穴に六角ドライバーなどを挿入してフライトコントローラのブートスイッチを押したままの状態(ON状態)にし、SHコネクタ-USB変換ボードとPCをUSBケーブルで接続する。これによりフライトコントローラはブートモードで起動する。
  3. フライトコントローラ上の赤色LEDが点灯状態になる。
  4. PC上でSTM32CubeProgrammerを起動し、aducopter_with_bl.hexをSTM32CubeProgrammerに読み込んで、フライトコントローラに書き込む。

以下のページにSTM32CubeProgrammerを用いたファームウェアの書き込み方法を示します。

ファームウェアのアップデート

 ファームウェアのアップデートは、地上局制御プログラムMission Plannnerを用いて行います。Mission PlannerはWindows上のアプリでArdupilotのサイトからダウンロードが可能です。Mission PlannerはArdupilotのバージョンが更新されると自動的に更新表示が出て、更新を促します。Mission Plannerの更新手順でアップデートすると、標準のファームウェアがインストールされカスタム化でドライバーを搭載したオプティカルフロー等が認識されなくなります。したがって、アップデートするときは最新のArdupilotバージョンを再度カスタム化してそのファームウェアをアップデートする必要があります。以下のページにアップデートの方法を示します。

 以上、今回はArdupilotファームウェアのカスタム化、インストールの方法およびアップデートの方法を説明しました。次回からArdupilotのパラメータ設定について記載していきます。

100g-drone

Posted by dronedroid-masa