過去の記事がだいぶ古くなっていて、ドローンレースの日進月歩ぶりを実感するわけですが、フライトコントローラーについて一通り落ち着いてきたのかなとおもうので、ここで一旦基本的な設定を再説明することとします。
内容としては、
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を起動すると下記のような画面になります。
赤枠の部分はポート番号や名称です。
ドローンをUSBでPC接続するとPC側にドローンを認識し、ドローン用に割り当てられたポートなどが選択できるようになります。
試しにUSB接続して、プルダウンの内容に変化があることを確認してください。認識するとこのように変わります。
もし、何の変化もない場合、PC側がUSB接続でドローンを認識できていません。この際の問題は大きく2つです。
- USBケーブルがそもそも不適格で認識できない
- 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モードでの起動方法ですが、フライトコントローラーのBootピンが2つあるので、そこをショートさせながらUSB接続することで可能です。ピンの部分がすでにボタン式になっていて、押すだけでできる(実際はボタンに見えてショートさせている)ものもあります。とりあえず利用しているFCのマニュアルなどを探して確認しましょう。私はMotolab Cycloneを利用しているので、下記をGoogle画像検索で探し出しました。
これを見るとUSB部分の上に、BOOTPINSとあるのがわかります。この2つの穴をピンセットやハンダ線、各種ケーブルなどなんでもいいので繋ぐことでショート=通電させた状態でFCを起動(電源を入れる)させます。
ボードの種類・バージョンを選択していざ焼き込み
バージョンを選択していざファームウェアをアップデートします。オプション項目がいくつかありますが、No reboot sequenceをONのまま、Full chip erace(全削除)をONにして次の「Load firmware」へ進みます。インターネットに繋がっていればそのままダウンロードが始まり、完了すると隣の「Flash firmware」が押せる様になります。
成功すれば「successful」などのメッセージが出てきます。もし赤く失敗する旨のメッセージが出てきたら、DFUモードになっているか再度確認してみてください。だいたいがBootピンを正しくショートさせることができずにファームウェアをアップデートできていないことが多いです。
セットアップと基本設定
さぁこれで、Betaflightを使ってフライトコントローラーを設定できる準備が整いました。USBでPCに繋いで、ドローンを認識させConnectボタンを押してBetaflightの中に入ります。
Setupタブ
まず入るとドローンが表示された(場合によっては四角いボックスが表示)画面でsetupタブです。ここではセンサーのキャリブレーションができるのですが一旦とばしてOKです。諸々セットアップが完了した時に、水平状態をとるために、ここの「Calibrate Accelerometer」を押してキャリブレーションしてください。
Portsタブ
このPortsタブは、ドローンと外部機器などとの通信ポートの設定をします。外部機器とは、USB接続しているPCやプロポの受信機などを指します。通常は、USB接続とシリアル通信をつかった受信機との接続を使うことがほとんどですので、2つほど使います。テレメトリーやその他機能を使う場合に利用することもあります。
このUART1とかURAT3などは、フライトコントローラーによって異なります。基本的にはフライトコントローラーのマニュアルにどのポートを利用したらよいのかが書いてありますので、確認してみて下さい。注意としては、一番上のUSB部分はOFFにしてしまうとUSBで接続不可になってしまうので誤ってOFFにしないように気をつけてください。
Configulationタブ
ここは大量の設定項目があります。ESC/Motor ProtocolとGyro update frequency、PID loop frequencyについては、次の記事で詳細説明します。ここでは基本的な設定としてさらっと記載していきます。
ESC/Motor protocol
まずESCをどのプロトコルを選択するかです。私はすべての機体においてMULTISHOTです。(2017年8月現在)最近の機体ではDshot対応が増えているので、違っていたとしてもまったく問題ありません。
このプロトコルはESCとモーターの間の通信方法のようなものと考えて下さい。良いESCであればより早く計算して、フライトコントローラーからの指示をモーターに伝達してくれます。どのプロトコルにお使いのESCが対応しているかは、購入元のマニュアルや販売ページの表記を確認しましょう。例えば私が利用している「Racerstar V2 30A」であれば以下です。
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
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設定に進みます。
ドローン初心者かつ拙ブログで恐縮ですが、孝太さんの質問の回答になってるのではと思い、書きこみました。
Windows10でBetaflightのDFUとCOM3がうまくできない件について、下記の記事が参考にならないでしょうか。
https://www.valuestock.info/entry/201903100000
貴重な情報ありがとうございます!
私も困っていた部分なのでとても参考になります。
はじめまして
ドローンのFCとBETAFLIGHTの接続で困っています。
マイクロドローンを最近始めました。
FCとBETAFLIGHTの接続が上手く出来ず困っております。
設定方法などお分かりでしたらお教えいただきたくお願い申し上げます。
FCは以下の物になります。
BETAFPV F4 Brushed Flight Controller (Frsky Rx + OSD)
https://betafpv.com/collections/flight-controller-1/products/f4-brushed-flight-controller-frsky-rx-osd
HPをグーグルで翻訳してみましたが分かりません。
BETAFLIGHTとFCをBootボタンを押しながら接続をしてもDFUモードになりませんでした。
Bootボタンを押さずに接続するとポートの部分にCOM3となり認識された音がパソコンからなります。何というモードなのかわかりませんが色々と設定が出来る画面です。ドローンの絵がFCを動かすと合わせて動く画面です。
CP210xはCP210xVCPInstaller_x64.exeをインストールしました。
STM USB VCPはVCP_V1.5.0_Setup_W8_x64_64bits.exeをインストールしました。
Windows用ZadigUSB はZadig 2.4をインストールしました。
FCをパソコンと接続して Zadig は次のように設定しました。
STM32 BOOTLOADER
Driver usbser ⇒ winUSB
Replace Driver を押しました。
再度BETAFLIGHTとFCをBootボタンを押しながら接続をした所DFUモードになりました。
ファームフラッシャーで
未検証版リリースを表示をOFF
BETAFLIGHT4
3.5.4‐BETAFLIGHT4‐17-12-2018
再起動シーケンスをON
接続時に書き込みをOFF
チップメモリの完全消去をON
伝送速度の手動選択をOFF
ファームウェアを選択[online]をそして
ファームウェアを押しました。
書き込みは成功しました。
この後が問題になっております。
先ほども書きましたが
Bootボタンを押さずに接続するとポートの部分にCOM3となり認識された音がパソコンからなります。何というモードなのかわかりませんが色々と設定が出来る画面です。ドローンの絵がFCを動かすと合わせて動く画面です。
このモードにならなくなってしまいました。
Bootボタンを押さずに接続するとポートの部分にCOM3となり(ポートの部分に手入力でCOM3と入力後COM3と表示されます。以前はFCを接続できないと別の表記がされていました。表記は覚えていません)認識された音がパソコンからなりません。画面も変わりません。
FCには青いランプが点いています。
どこをどう設定したら良いのか分かりません。
パソコンはWindows10です。
お手数をおかけしまして申し訳ございませんがよろしくお願い致します。
やはり、Win10ですね。どうもDFUになるのが難しいOSなんですよね。
過去になんとかDFUになったことあるのですが、そうするとUSB通常接続ができなくなったりと…
ちょっと私も調べてみます。
よろしくお願い致します。
こんなサイトを見つけました。
http://support.betafpv.com/support/solutions/articles/27000040684-troubleshooting-cannot-connect-to-betaflight-gui
グーグルで翻訳したところ
注意:CP210xドライバを使用しないで ください。このドライバはBeebrain FCなどでのみ動作します。
とあります。
でもこれを読んでもどう対処したら良いのか分かりません。
対処方法をアドバイスいただきたくお願い致します。
はじめまして。
今回STM32F4搭載のbeta75xを購入し始めてFCの設定を行おうとbetaflightをつかってみたのですが、うまく認識されません。認識されているかも不明確なのですが、Virtual COM Port Driver をインストールし、USBを接続すると機体のLEDは点灯しポートはCOM1からCOM3へ表示が変わります。
これで認識されたのかと考えUSBを抜き、BOOTをショートさせてUSBを再度接続、ファームウェアの更新を行おうとしますが、USBが切断された場合のコーションが表示されるだけでした。USBケーブルは通信対応のものです。
初歩的な質問で申し訳ありませんが、お知恵を拝借できれば幸いです。
まずは、PC側の問題か考える必要がありますね。
MacとWinで異なります。Winの場合、Win 10だとDFUモードになることは私もまだできていません。
Win7やMac OSはもちろんできていますので直近困っていません。
どこかのタイミングでちゃんと調べてみたいと思います。
ご質問なのですが、当方 XS 220キット購入し、元々のモーターは、Racestar BR2306s 2400kvでした!この度 モーター交換 emax RS 2306 2750KV にしたのですが、燃費が悪いのは、仕方なく 問題は
バッテリーのコネクター部分が、多少焦げついてしまい、なんとか使用可能ですが、
そのうち、黄色コネクター部分が全部溶けてしまいそうで心配です。何か 対策法などありましたら、ご教授くださいませ!
長文にて、申し訳ありませんよろしくお願いいたします
いつも拝見しております。
FCの設定が悪いのかわかりませんが
プロポでスロットルをあげて戻すと
モーターの回転が止まらず、
むしろ加速してしまいます。
何度設定し直しても変わりません。
助言いただけないでしょうか。
FCはSPracingF3、プロポはAT9です。
おそらくプロペラがない状況ですよね?でしたらありうると思います。
本来回転数あげているので、飛行して位置が変わっているはずなのに変わっていないので制御センサーなどがそのように反応しているだけだと。
まずは、いつでもアームのOn/Offができる状態にしておき、プロペラをつけ、安全な場所で回転させてみてはどうでしょうか。
貴重な情報ありがとうございます!
えっと、万が一ですけど、Portタブで一番上のUSB部分はOFFにしてしまってとUSBで接続不可になってしまった人がいた場合、シリアルーUSBの変換か何かで入り込まないといけないですかね?(汗
再度ファームウェアを焼き直しすれば大丈夫ですよ