twiiterもチェック!! 15億画素カメラ自作企画進行中!

【cleanflight】カスタムファームウェアの作成方法【ドローン自作】

ドローン

ドローン記事はかなりお久しぶりになります.どらびです.

バリ旅行にドローンを持参するというのを一番の目標にしていたので,バリ旅行の後はしばらくお休みしていました.というか,マイクロドローン以外の需要がほとんどといってない状況に見えたので

DRB
DRB

少なくとも自分の周りでやってる人見たことないし,ブログもあまり見られてない気がするからいいやってことで放置してました.

そしたらここ最近,ほんの少しなんですけど定期的に記事をご覧になってくださる方がいることに気づきました.何かと思ったらとあるワードで検索順位5位になってました.

という事で久々のドローン記事になります.

内容としては,前回書いた記事でやるって言ってたのにやってなかったことです.この度コメントを頂いたので,需要があるという事で書いていきます.

DRB
DRB

というか,書いてなくてすみませんでした.ほんとにこの記事読んで参考にしている方がいらっしゃるって思ってませんでした(反省)

はい,前置きはこの辺にして本編へ.

広告

ファームウェア改造前に

今回の記事はcleanflightという自作ドローンのファームウェアについて,必要に応じてカスタムしましょう.という内容になるわけですが,

そもそも改造する必要性があるのか?

というところに少し触れておきます.この記事を見ている時点でcleanflightで大分手詰まりの状態にあると思うのですが,

DRB
DRB

少なくとも自分がこれをやる必要性に駆られていた時はそうでした.

そういう時って,往々にして視野が狭くなっているので,他の解決策も模索はしましょうね.という提案になります.もちろん状況によって変わりますので,一刻を争う場合はすっ飛ばして直接かかわりのあるところをご覧いただければ結構です.

なぜファームウェアを改造する?

私の場合は

  1. SPRacingF3を使用し,
  2. GPS機能を利用したかった

という2つの状況が重なっていたのですが,cleanflightでは特定のファームウェアのバージョンから,

flashの容量が足りないモデルではGPS機能はカットする.

という方針をとっています.そのため標準のファームウェアではGPSの設定がONにならないようになっています.

私と同様の理由であると仮定して話を進めますが,改善策を提示していきます.

flash容量の大きいボードにする

すごく単純な話ですが,公式の推奨に従いつつファームウェアも公式が出しているものをそのまま使えるという観点ではこれがベストです.商品リンク貼りたいのですが,その辺の通販だとまだあまり取り扱っていない模様.安いのはやはりまだSPRacingF3だけっぽい.

余談ですが,aliexpressで購入すると,商品名にdeluxeって入っていても余裕で違うのが送られてきます.優良店はちゃんとしたの送ってくれるかもですが,運ゲーですので特におすすめはしません.

Amazonで買ったのはちゃんとしてました.

判断基準はBAROセンサーの有無.

cleanflight以外のファームウェアを使う

そもそも特に日本国内でのドローンの需要が現在はほとんどレースドローンであるというのが原因だと思うのですが,cleanflight,betaflight以外の情報がほぼ入ってこない…

ご存知の方もいらっしゃるかもですが

cleanflight→安定志向のファームウェア

betaflight→新機能などがいち早く盛り込まれるβ仕様のファームウェア

というイメージをして頂ければよいです.

ただ,両方ともレースドローン用のファームウェアです.

GPSを使いたい人は

iNav

というファームウェアをお勧めします.こいつはGPS機能(特にオートパイロット系の機能)に特化したファームウェアなのですが,cleanflightからのフォーク(派生)なので,使用感はほとんどcleanflightのそれと同じ.

そして,betaflight等で一時的に実装されたけど(うまくいかなくて?)消された機能が入っていたりします.GPShold系の機能とかですね.

という事で,余裕があればこっちを使うのが個人的にはお勧めです.

カスタムファームウェアの作成

はい.ようやく本題です.

カスタムファームを作らなければならない,という可能性は低いとは思いますが,不必要な機能をカットして容量減らすとか,プログラミングができる方はやろうと思えば自作で機能を追加もできるはずです.

DRB
DRB

お勧めは全くしません.

手順0:コンパイル環境の準備

gcc-arm-eabiを設定して,armマイコンのクロスコンパイルができるような環境を整えなければなりません.

linuxPCでやるほうが早いかもしれません.

需要があれば追記いたします.

手順1:必要ファイルのダウンロード

Cleanflight:https://github.com/cleanflight/cleanflight.git
Betaflight:https://github.com/betaflight/betaflight.git

からダウンロードしてください.github使ったことがある人はわかると思いますが,

右真ん中らへんの緑色,【Clone or download】をクリックするとzip形式でダウンロードできます.

手順2:機能ON/OFFに関わるコードの書き換え

今回はGPS機能をONにするのが目標ですが,いくつか変更しないといけません.

不要な機能設定を切る

全部入れると,最終的に書き込むhexファイルの容量が足りなくなります.(確か)

なので,不要な機能をOFFにしましょう.公式ドキュメントを参考に,

 target/common_fc_pre.h

をテキストエディタで開いてあげて,必要のない機能の#define行を消すかコメントアウトしましょう.コメントアウトとはコンパイル時に読み込まないようにすることを言います.ここではコメントアウトしたい行の先頭に【//】を追加しましょう.

GPS機能をONにする

GPS機能のON/OFFも同じファイルで設定できます.下記の画像を見るとわかるように,

flashサイズが128Mbを超えないと機能が入らないように条件分岐されてます.

という事で,GPSをONにしたい場合,2行目の

#define GPS

を,このifの部分より上,先ほど機能を消したところの辺りにコピペしましょう.

基本的に変更は以上になります.

手順Ex:追加設定が必要な場合も

使用するGPS等の組み合わせにより,もしかすると他の設定項目もいじらないといけないかもしれません.

コメントでご相談いただければ可能な限りお手伝いいたしますが,私自身も一例で試しただけですので,何とも言えません.使用しているGPSはublox6シリーズととても古いので,もしかするとこれだけで解決しないかも.

手順3:コンパイル

コンパイルは手順0次第なのでとりあえずは割愛させていただきます.

基本的にはターミナルでmakefileがあるフォルダに移動して,

make TARGET=SPRacingF3

ってするだけです.windowsユーザーは若干めんどくさい思いをするかも.

海外サイトでよければですが以下に参考サイトを載せておきます.

https://eecs.blog/compiling-betaflight-cleanflight-firmware-for-your-multirotor/

終わりに

いかがでしたでしょうか.意外と手順自体は少な目かなあと思います.

日本語で説明が書かれていないのが一番のネックです.それだけです.

たぶんですが,今の日本だと需要が皆無に等しいのではないかと思います.

200g以下のドローンでGPS積んでもメリット少ないですしねえ.

空撮目的で,かつ自動追尾させたい.かつ海外旅行で使う.

という目的であれば私と同士です.ご覧になられる方がいそうであればその手の記事も徐々に増やそうかな?とりあえずiNavの紹介だけは近いうち記事にします.

それでは.

コメント

  1. よう より:

    BetaflightのGPSレスキューをやりたくてGPS手に入れたのですがどうしてもわからなくて・・・
    で、発見しました。FCはSPRacingF3deluxeと全く一緒でした。Cleanflightで一応GPS表示までいけましたのでこれからどうするか考えます。
    カスタムファームはむりっぽいです。

タイトルとURLをコピーしました