レースドローンのFC設定①ファームウェアの書き込み〜基本設定

LINEで送る
Pocket

過去の記事がだいぶ古くなっていて、ドローンレースの日進月歩ぶりを実感するわけですが、フライトコントローラーについて一通り落ち着いてきたのかなとおもうので、ここで一旦基本的な設定を再説明することとします。

内容としては、
1.フライトコントローラー(FC)ってそもそも何?
2.ファームウェア(Firmware)の書き込み(焼き込み)
3.Setup/Port/Configulationタブ
4.Gyro/Looptime/ESC protocol
5.PID settingタブ

これらについて書きます。本記事では1~3を記載します。
4のGyro/Looptime/ESC protocolはこちら
5のPID設定についてはこちらから確認してください。

1.フライトコントローラー(FC)ってそもそも何?

フライトコントローラー

フライトコントローラー

FCは、ドローンの頭脳です。状態を検知して、モーター回転の指示を出すのが主な役目です。本記事では説明しませんが、バッテリーのアラート用に設定されたしきい値を下回ったらビープを鳴らすとか、OSDを設定したりとか、BLACKBOXのようにログデータを取得してデータ解析をするために使うこともあり、様々な機能やアクションの元となっています。

この頭脳であるフライトコントローラーですが、ファームウェアという単語が随所に出てきます。
パソコンの中には、WindowsやMacというOSが入っているように、ドローンに利用するフライトコントローラーにも中核となるソフトウェアがインストールされており、それをファームウェア(Firmware)と呼んでます。ファームウェアを大別すると、今はあまり使われていないMultiwii、OpenPilot、Cleanflight、レース系では大多数が利用しているBetaflight、新機能も多いRaceflight系(RACEFLIGHT ONE含む)のものがあります。

最初にインストールされているファームウェアは、購入元の販売ページなどに書いてあることが多いので、チェックしてみてください。ほとんどが、CleanflightかBetaflightのはずです。またこれらのファームウェアは原則変更することができます。Clean→Beta、Beta→Raceなど。今回の記事では、一番メジャーとなっているBetaflightをもとに説明します。

Betaflightのファームウェアの書き込み作業やアップグレード作業

ファームウェアはソフトウェアであり、ソフトウェアである以上、不具合(バグ)があることは当然です。それらの修正やアルゴリズムの最適化、新機能の追加など日々改良作業が行われています。最新の機能をすぐに利用したいという方もいれば、安定したバージョンを利用したいという人もいますが、時に致命的な不具合(Infinity Yawや起動直後プロペラ回転など)もあるため、アップグレード時は十分に注意して飛行開始しましょう。

ファームウェアの書き込み作業や各種設定はすべてChrome Appの「Betaflight」からできます。インストールされていない人は、Goggle Chromeのブラウザより下記URLよりBetalightをインストールしていください。

パソコン版 Chrome
アプリケーションBetaflight – Configurator

Betaflightを起動すると下記のような画面になります。

betaflight起動画面

betaflight起動画面

赤枠の部分はポート番号や名称です。
ドローンをUSBでPC接続するとPC側にドローンを認識し、ドローン用に割り当てられたポートなどが選択できるようになります。
試しにUSB接続して、プルダウンの内容に変化があることを確認してください。認識するとこのように変わります。

正常に認識されるとプルダウンの中身が変わる

正常に認識されるとプルダウンの中身が変わる

もし、何の変化もない場合、PC側がUSB接続でドローンを認識できていません。この際の問題は大きく2つです。

  1. USBケーブルがそもそも不適格で認識できない
  2. PC側にドローンをUSB接続で認識するためのドライバーが起動していないため認識できない

です。1は見分けがつきにくいですが、モバイルバッテリーなどに使うUSBケーブルではドローンが認識できないことが多いです。そのため、「ちょっと良い」USBケーブルを使いましょう。あくまで充電用、ではなく通信用のケーブルとして用意されているものを使うようにしましょう。ここらへんならまず問題ないと思います。

2は、PCに精通していない方にはよくわからないと思いますが、USBなどを使って電子機器と通信する場合は、PC側にドライバが必要になる、と認識しておいてください。自分でインストールしたことがなくても、事前にインストールされているかもしれませんが、接続できない場合は、下記などを参考にして、VCPドライバなどをインストールしてください。

Installing Betaflight · betaflight/betaflight Wiki · GitHub
STSW-STM32102 – STM32 Virtual COM Port Driver – STMicroelectronics – STMicroelectronics

フライトコントローラーのF4やF3という言葉はやや馴染みがありますが、F4は正式にはSTM32F405という規格だったり、F3はSTM32F303だったりしますが、この接頭辞のSTM32というのが共通です。STMicroという会社の頭文字ですが、このチップ用のドライバーが用意されているのでそれを使うというわけです。フライトコントローラーのほとんどは今やSTmicroのものなので、基本的にこのドライバーがインストールされて正常に起動していればほとんどのパソコンで認識できるはずです。

以下は、ドローンがPCに正常に認識できている前提で記載します。

ファームウェア書き込み手順1:Boot部分をショートさせて、DFUモードで起動せよ

DFUモードで起動した場合

DFUモードで起動した場合

DFUモードで起動できると、右上のポート部分が「DFU」になります。このDFUモードは、ファームウェアを書き込む時のモードと考えて下さい。このDFUモードでの起動方法ですが、フライトコントローラーのBootピンが2つあるので、そこをショートさせながらUSB接続することで可能です。ピンの部分がすでにボタン式になっていて、押すだけでできる(実際はボタンに見えてショートさせている)ものもあります。とりあえず利用しているFCのマニュアルなどを探して確認しましょう。私はMotolab Cycloneを利用しているので、下記をGoogle画像検索で探し出しました。

フライトコントローラーのマニュアル

フライトコントローラーのマニュアル

これを見るとUSB部分の上に、BOOTPINSとあるのがわかります。この2つの穴をピンセットやハンダ線、各種ケーブルなどなんでもいいので繋ぐことでショート=通電させた状態でFCを起動(電源を入れる)させます。

ボードの種類・バージョンを選択していざ焼き込み

バージョンを選択してファームウェアをダウンロード

バージョンを選択してファームウェアをダウンロード

バージョンを選択していざファームウェアをアップデートします。オプション項目がいくつかありますが、No reboot sequenceをONのまま、Full chip erace(全削除)をONにして次の「Load firmware」へ進みます。インターネットに繋がっていればそのままダウンロードが始まり、完了すると隣の「Flash firmware」が押せる様になります。

Flash firmwareでいざ書き込み

Flash firmwareでいざ書き込み

成功すれば「successful」などのメッセージが出てきます。もし赤く失敗する旨のメッセージが出てきたら、DFUモードになっているか再度確認してみてください。だいたいがBootピンを正しくショートさせることができずにファームウェアをアップデートできていないことが多いです。

セットアップと基本設定

さぁこれで、Betaflightを使ってフライトコントローラーを設定できる準備が整いました。USBでPCに繋いで、ドローンを認識させConnectボタンを押してBetaflightの中に入ります。

Setupタブ

BetaflightのSetupタブ

BetaflightのSetupタブ

まず入るとドローンが表示された(場合によっては四角いボックスが表示)画面でsetupタブです。ここではセンサーのキャリブレーションができるのですが一旦とばしてOKです。諸々セットアップが完了した時に、水平状態をとるために、ここの「Calibrate Accelerometer」を押してキャリブレーションしてください。

Portsタブ

BetaflightのPortタブ

BetaflightのPortタブ

このPortsタブは、ドローンと外部機器などとの通信ポートの設定をします。外部機器とは、USB接続しているPCやプロポの受信機などを指します。通常は、USB接続とシリアル通信をつかった受信機との接続を使うことがほとんどですので、2つほど使います。テレメトリーやその他機能を使う場合に利用することもあります。

このUART1とかURAT3などは、フライトコントローラーによって異なります。基本的にはフライトコントローラーのマニュアルにどのポートを利用したらよいのかが書いてありますので、確認してみて下さい。注意としては、一番上のUSB部分はOFFにしてしまうとUSBで接続不可になってしまうので誤ってOFFにしないように気をつけてください。

Configulationタブ

BetaflightのConfigulationタブ

BetaflightのConfigulationタブ

ここは大量の設定項目があります。ESC/Motor ProtocolとGyro update frequency、PID loop frequencyについては、次の記事で詳細説明します。ここでは基本的な設定としてさらっと記載していきます。

ESC/Motor protocol

まずESCをどのプロトコルを選択するかです。私はすべての機体においてMULTISHOTです。(2017年8月現在)最近の機体ではDshot対応が増えているので、違っていたとしてもまったく問題ありません。

このプロトコルはESCとモーターの間の通信方法のようなものと考えて下さい。良いESCであればより早く計算して、フライトコントローラーからの指示をモーターに伝達してくれます。どのプロトコルにお使いのESCが対応しているかは、購入元のマニュアルや販売ページの表記を確認しましょう。例えば私が利用している「Racerstar V2 30A」であれば以下です。

Multishot対応しているのでそれを選択します。

Multishot対応しているのでそれを選択します。

Motor PWM speed Separated from PID speed

これは、もう少し下で設定している「PID looptime frequency」で設定したPIDの計算速度と同期させるか否かの設定でありONにすると、非同期でモーターのPWM実行速度を設定できます。しかし、GyroやPID looptimeより大きくしておいたほうがよい(順番としてはFC → ESC → モーターなので後ろに行けば行くほど計算速度が速いほうがロスが少ない)のは理解できますが、大きくしすぎることで良いメリットがあるのかは定かではないです。ここはパイロットの感覚値によるところもあるのですが私は、

・PID looptimeより高い値で、
・5インチ用モータにおいては、32000(32K)で問題なく飛行ができる値

を設定しており、特に支障ありません。このへんの詳しい説明は次の記事でします。

MOTOR STOP

これはOFFにしておくのがよいです。理由は

・スロットルを一番下にした時に機体がふらつく
・アームしているかどうかが気づきにくいからです。

これをONにすると、スロットルを一番下にした時にモーター回転がすべて止まるようになります。飛行中にモーター回転がすべて止まると、ジャイロセンサーやPID制御は何もできませんので、機体はめちゃくちゃな姿勢になって空中で落ちていきます。スロットルを一番下に入れなければいいのですが、レース中などの急に入れてしまうことはありますので、可能な限りOFFにしておくのが良いと思います。

Disarm motors regardless of throttle value ( When arming via AUX channel )

これは、どんなに飛行していようが、アームスイッチをOFFにしたらモーターが止まるようにする設定です。これは必須でONにしておくべきです。もしもどこかあらぬ方向に飛んでいった時やクラッシュ時にすぐにアームをOFFにすることで、被害を最小限にすることが可能です。

Minimum/Maximum Throttle(Minimum command)

最小と最大のスロットルの値を設定します。Commandは1000のままで良いです。最小にはモーターが周り始める頃の値をいれておきます。ESCのキャリブレーションを行ったあとに、モータータブでモーターが周り始める値をチェックしてみましょう。その数字をここにいれておけば良いです。Maxは2000のままで問題ありません。

System configuration

System configuration

System configuration

Gyro update frequency/PID loop frequency

これは、次記事で説明しますが、FCのセンサーによって設定できる値が異なります。私はMPU6000spiのセンサーを利用しているので8K以下の値をいれ、結果4K/4Kを設定しています。

ここで大きな値をいれすぎるとFCのCPUアベレージが上がり、アームできないなどの現象が起こることもありますので注意です。

その他機能

他機能

他機能

Betaflightなどは常に新機能などが追加されており、最新の機器に対応しています。
例えば、OSD内蔵のFCやVTX内蔵のFCなどが出てきおり、今まで別々の機器で設定や調整していたものが全てBetaflightで設定することも可能になっています。お使いのFCに内蔵されている機能などを確認の上、ON/OFFしてください。

さて、基本設定が終わったら、次はFCやESCの設定理解を深めるために、FCがどんな働きや計算をしてモーターを回転させているのかを見ていきます。その後は、皆さんが気になるPID設定に進みます。

LINEで送る
Pocket

こちらもおすすめ!

4 Responses

  1. れいにー より:

    いつも拝見しております。
    FCの設定が悪いのかわかりませんが
    プロポでスロットルをあげて戻すと
    モーターの回転が止まらず、
    むしろ加速してしまいます。
    何度設定し直しても変わりません。
    助言いただけないでしょうか。
    FCはSPracingF3、プロポはAT9です。

    • YOKOTA より:

      おそらくプロペラがない状況ですよね?でしたらありうると思います。
      本来回転数あげているので、飛行して位置が変わっているはずなのに変わっていないので制御センサーなどがそのように反応しているだけだと。
      まずは、いつでもアームのOn/Offができる状態にしておき、プロペラをつけ、安全な場所で回転させてみてはどうでしょうか。

  2. とよ より:

    貴重な情報ありがとうございます!
    えっと、万が一ですけど、Portタブで一番上のUSB部分はOFFにしてしまってとUSBで接続不可になってしまった人がいた場合、シリアルーUSBの変換か何かで入り込まないといけないですかね?(汗

コメントや質問・相談はお気軽にどうぞ!(承認してから反映しますので投稿後しばらくお待ちください。)

メールアドレスが公開されることはありません。