2013年6月9日

BLHeli 回転数モニタ成功!

sskaugさんとXC90さんお二人に詳しく教えてもらって、ついに回転数の表示ができました。

なにが難しいって、回転数って何のこと?というのが難しくて…。いや未だにちゃんと理解できてませんが、とにかく式にあてはめてそれっぽい回転数が出るところまでは納得しました。


ガバナーの有無に関係なくちゃんと回転がわかるので、電池を持たすためにガバナーをOFFってる私のようなホバ専でも安心。

うちのSuperCPを計ってみましたが、やっぱ9Tじゃスロットルを全開にしなくてもけっこう早く回ってるもんですねえ。
nobさん推奨の3600rpmに近づけるには、ピニオンを8Tに下げてジーニアス64Tギアを使うのがとても良さそうです。

使い方の紹介

前提として、専用の改造BLHeliファームウェア10.64をESCに書き込みます。
こいつはXP-7A用の10.3をベースにしてますので、1S環境ならわりといろんなESCに使えるとは思いますが、うちではXP-7AとOversky/Origin doubleでしかテストしていません。
シリアル通信を追加した以外はまったく改造していませんが、シリアル通信の影響で何かおかしな動作をするか保証の限りではありません。うちでは特に違いなく飛んでいますけどね。


このファームウェアを使うと、ESCのプログラム書き込みに使うC2端子のうち、白のC2D線からシリアル通信でリアルタイムにモニタデータを吐きます。信号レベルは3.3VのUART、通信設定は600bpsのデータ8ビットパリティ無しです。

PCにつないでモニタするためには、まず3.3VのUART接続ができるシリアルポートが必要です。マイコン遊びをやってる人ならレベルコンバータやらFTDIモジュールやらあると思いますが、何も無い場合は秋月かストリナで3.3VUSBシリアル変換ケーブルを買うのが楽です。

接続は

   ヘリ側                                  PC側
     C2端子の黒(GND)  ------  変換ケーブルの黒(GND)
     C2端子の白(C2D)  ------    変換ケーブルの黄(RX)

って感じにつなぎます。つまりヘリ側から一方的にしゃべるだけです。


んで、PCアプリのBLH_Monitor V0.0.0.2を起動して、シリアルポート番号を選んでconnectするだけです。あとはヘリの電源を入れれば通信が始まって、スロットル値やらガバナー目標値やら現在のモーター回転数やらローター回転数が表示されます。

ESCから取れるのは電気的な周波数(electric freq)だけなので、モーターのポール数(磁石の数)、ピニオン歯数、メインギア歯数を自分で入れないと正しい回転速度が出ません。デフォルト値はうちのSuperCPの値です! ちなみに値を覚えてくれないので今は起動するたびに入れなおす必要があります。すいません…


Bloggerにファイルを置く方法がわからんので、RCGのブログにソースとHEX、PCアプリを置きました。すみませんがあっちから拾ってください。。

2 件のコメント:

  1. Takano様
    素晴らしいアイデアです。RCGでも絶賛ですね。
    私には専門外でチンプンカンプンですが、ぜひ使ってみたいです。
    このファームはXP12A、PLUSH6A、10Aなど他のESCでは動作しないのでしょうか?

    ホバリング回転数ですが、私の過去記事で3600rpmピッチ6度と書いてますが、マッタリ部屋ホバはちょうど良いですが、外で風がある場合はもう少し回転高い方が安定すると思います。

    返信削除
  2. ありがとうございます。
    コードを追加した場所は全ESC共通ソースの部分なので、他のESCの定義ファイルを使ってビルドさえすれば動くとは思います。ビルド環境違いのために定義書き換えが必要で、少々手間がかかるのでお待ちください。

    送信する変数の種類すら決まっていないレベルなのでまだまだ実験ソフトですが、タコメーターを持っている方に試していただけるととても重要な検証になります!

    回転数は確かに、3600rpmって思ってた以上に低いということがわかって驚きました。未だに外出バージンなのでまだまだ部屋ホバっ子ですが、だんだん回転上げて練習しないと一生かかっても部屋フリップまで到達できなさそうなので頑張ってみます。

    返信削除