ESCの種類
ドローンで使うESCですが、BLHeli系とSimonK系がメジャーな気がします。
たとえばOEMで販売されている次のESCですが、外観から見るとBlueRobotics用のESCとまるで部品配置まで同じです。そもそもESCまでBlueroboticsが製造するはずもありません。ラベルを張り替えているだけだと思います。
いろいろ調べるとBlueroboticsはESCにしかるべき設定をしたら、通常の(BLHeliのユーティリティを使わない)キャリブレーションでは中身が変更できないようにしているようです。
後述しますが、BLHeliのユーティリティでBlueroboticsのESCの設定は読み取れます。
BLHeliのユーティリティ
BLHeliのESCの設定変更はどうするのでしょうか?
巷の情報ではArdupilotの場合でもSERVO_BLH_AUTO=1とセットすることでフライトコントローラーのパススルー機能を使ってユーティリティは動作すると書いてあります。
が、書いてあるとおりやってもまったくユーティリティは反応しません。(ネットの実例を探すとベータフライト、クリーンフライトでは問題なくできるようですが。)
Ardupilotにおける解決策の前に少しBLHeliのユーティリティについて説明します。
BLHeliが提供しているユーティリティは二種類あります。
BLHeliSuite16(BLHeli Suite_Sともいう)とBLHeliSuite32です。それぞれサポートするESCが違います。32系とS系があるようで、ラベルに書いてあります。S系が16のようです。
OEMが大量に出回っています。私はbi-directionできない品種にぶちあたったことがあります。
BLHeliSuite32の画面です。
BLHeliSuite16の画面です。S系はこちらなので、これからこの画面で話しを進めます。
BLHeliSuiteユーティリティの入手先はソースコードならGithub、バイナリーならこちら
幸いなことにBLHeliSuiteはフライトコントローラー経由以外に、なかなかおもしろい別の方法を提供しています。
それがArduinoなどを使う方法です。
Arduino Nano経由でユーティリティに接続
ここでは簡単そうなArduino Nano(の互換機)で試しました。なお、NanoはATMega 328搭載のものでないと駄目です。
まず、Arduinoの開発環境をarduino.ccから入手してインストールしてください。
それで「ファイル->スケッチ例->Basic->Blink でLチカプログラムがコンパイルアップロードできるか、確認してください。USB用デバイスドライバーがインストールされます。
話しはそこからです。Arduinoへの書き込みは意外にハードルが高く、私の場合、MacかLenovoのWindows11でないと書き込めず、HPのノートPCではできないです。
ファームの書き込み
(USB)–(Arduino Nano)–(BLHeli ESC)と接続します。
Arduino NanoのD3とESCの白い線、GNDとESCの黒い線を接続しています。
ユーティリティには各々Arduino Nanoを設定する画面があります。Arduino NanoをESCの設定ユーティリティにするためのファームウェアを書き込みます。
BLHeli Suite32の場合
BLHeli Suite16の場合
最初はESCに電源をつなぎません。Arduinoとのピン接続だけでOKです。
USBとArduinoを接続し、上記画面(とりあえず、いずれでもよい)の最下段のポート指定でArduinoのCOMポートを指定します。(Baudレートは115200です)
Suite16の場合、「Arduino 4way-interface」をクリックするとロードするファームのリストが出ます。”4wArduino_Nano_16_MULTIv20006.hex”を選択します。
PCとの接続
ESCとArduinoをリスタートするのですが、USBケーブルを抜きます。
ここでESCに電源をつなぎます。5VでもOKです。消費電流は0.04A程度と小さいので定電圧電源などでもOKです。
USBケーブルも繋げば、ArduinoもESCもリスタートしているはずです。
SuiteのメニュータブにSelect xxxxxx Interfaceとあります。そこをクリックして、Suite16の場合は(4way if)を選びます。
最下段のCOMポートを指定し、connectボタンを押すと繋がるはずです。
ここで現状を知るためには[Read Setup]を押せば今の設定が出てきます。
Blue Robotics ESCの設定
そもそもなんでBLHeliのESCの設定をいじる必要があるかというと、通常のESCはマルチコプター用に設定されていて、スラスターのようなモーターをコントロールする設定になっていないからです。中立でストップ、前進、後進してほしいのです。
Blue RoboticsのESCの設定を読み込んでみました。
自分のESCもこれを参考に数値を決めました。あとはWrite Setupボタンを押せばBlueroboticsのESCと同じものができあがります。