今回はいよいよモーターを回してみます。っと思ったのですが、説明ではまだ ESC やモーター/電池などを接続していませんでした。まずは接続しなければダメじゃないですか・・
何度か説明していますが、ESC から出ている電源の線は1個のESCはそのまま残し、3個の ESC の電源ラインはコネクタから抜き去り絶縁処理しておきます。
下図を確認しクアッドコプター(真ん中上)の図を確認します。D5/D2/D6/D3がモーターの番号です。下にはMultWii Pro の図がありますが、それぞれのモーター番号の通りのMoter Pins に ESC から出ているコネクタを差し込みます。外側がマイナス、内側が信号線ですので、間違いの無いように良く確認します。
ESC とモーターは3本の線で接続しますが、今のところどの線に接続しても良いので、とにかく3本をつなげておきます。後ほど回転方向を確認し、逆に回転しているようなら差し替えて回転方向を合わせます。
モーターを回すためには、まずはESC(Electric Speed Controller)をキャリブレーション(更正)します。プロポの最大(小)打角をESCに伝え、正しく動作をさせる作業です。ESCとは別途説明した通りですが、AMP(アンプ)とかスピードコントローラー(スピコン)とかも呼ばれる、プロポからの信号を元にモーターの回転速度を制御する装置の事です。ここでは ESC と呼ぶ事にします。
あらかじめお断りしておきますが、使用するプロポとESCによって対処の方法や動作が異なる場合があり、その際には適切に対応を行う必要がありますので、ご了承ください。
また、以下の作業を行うには、MultiWill が機体に搭載され、バッテリー/ESC/モータ/受信機と MultiWii に正しく接続されていること、加えて既に使用する MultiWii に合ったスケッチが準備できていることが作業の条件となります。
ESC をキャリブレーションするには2つの方法があります。
ここでは、1の方法でESCのキャリブレーションを行ってみます。簡単ですよ。2の方法は従来から普通に行われている方法です。ご存じの方も多いと思います。
1の作業方法
の画面で数値を確認します。右側に数値が表示されていますね。接続が全て正常で正しく機能していれば、送信機のスティックを動かすことにより、動かした分だけ右側の数値が変化し、グリーンでバーが表示されます。
この画面で数値を確認しながら、各スティックと AUX など全てのチャネルに対して、最小1000μs を切る値に、最大2000μs を上回る数値となるようにトラベルアジャスト機能で調整します。また、各舵のニュートラルは1500μsとなるように送信機側のサブトリム機能などで全て調整しておきます。(国産の一部の送信機では 1520μsなどとなっている製品があるようなので注意してください)
画面右下の ARM 部分が赤で表示されています。
なお、アームを行うには、デフォルトではラダースティックを使いますが、エルロンスティックで行うすることも簡単にできます。config.h のARM/DISARM セクションにある下記の2行の記述で、どちらかをコメントアウトし、どちらかを生かしておいて、コンパイル->転送するだけです。
#define ALLOW_ARM_DISARM_VIA_TX_YAW /* ラダーで行う */
//#define ALLOW_ARM_DISARM_VIA_TX_ROLL /* エルロンで行う */
MultiWiiWinGUIでは、AUX チャネルでも ARM 動作を行うよう指定をすることも可能です。
おそらくこの方法が、ESCをキャリブレーションするには、いろいろな意味で一番楽な方法かと思います。しかしながら、使用している ESC によってはこの方法が使えないこともあるかと思いますので、そんなときには上記と同じように送信機の設定を済ませた後、通常の通り ESC を1つずつ受信機に接続し、ESC のキャリブレーションを行います。
ここでもう1点確認をしておくことがあります。モーターの回転方向です。回転方向を正しく合わせることにより、生じる反動トルクを抑えますので、非常に重要です。言葉で説明するよりも図で確認した方がわかりやすいと思いますが、前の2個のモーターは前方向に内側に回転するように、後ろのモーターは、後ろ方向に内側に回転するように回転方向を合わせておきます。
モーターの回転方向を変えるのは簡単です。モーターから出ている3本の線のどれでも良いので2本を抜き、その2本を入れ替えるとモーターの回転方向が変わります。
また、使用する ESC によってはブレーキ、オートカットオフなどの設定が出来る物がありますが、ブレーキはナシ、オートカットもナシ、スロースタートなどもナシとし、ごく普通の状態としておいた方が良いと思います。特にオートカットは勝手にカットされてしまうとモーターが止まりますから、即墜落となる事もありますので、別の方法でバッテリーの状態を監視するようにした方が良いと思います。経験上の事ですが、ESC によるバッテリーのカットオフはあまり正確ではないように思います。
多分この状態で機体を傾ける(安全に気をつけて)と、モーターの回転数が変わると思います。これは MultiWii が傾きを検出し、姿勢を保とうと頑張っている証拠です。
MultiWiiWinGUI では、その状態を表示できるはずです。おもしろいです。
今回の場合、ちょっと困ったことがおきました。アイドル時の回転が少し高めなのです。電源を入れARM するとモーターがアイドル回転を始めます。その回転数が高く、いくらなんでも元気すぎてしまうのです。MultiWiiWinGUIで値を確認すると、送信機の設定には問題は無く、正しく動作しています。おそらく先に記した
#define MINTHROTTLE 1150 // (*) (**)
#define MAXTHROTTLE 1850
#define MINCOMMAND 1000
この部分の MINTHROTTLE の値が大きいのが問題です。
MINTHROTTLE の値を少し小さく変更してみました。
しかし動作は変わらないです。いろいろ調べた結果、『EEPROM Clear した後、再度スケッチを描き込むと値が反映された』などの報告を見つけましたので、早速試してみました。Arduino IDE を開き、ファイル->スケッチの例->EEPROM->EEPROM Clear でスケッチを開きます。コンパイル->転送で MultiWii Pro に転送します。その後、MINTHROTTLEを小さい値に変更した MultiWii のスケッチをコンパイル->転送し、元に戻せば完了です。
このスケッチは Arduino IDE をインストールした際に、一緒に入った EEPROM をクリアするサンプルプログラムです。
なぜか変更した値が反映されていないように感じる際には、試してみる価値はあると思います。今回の場合はテストの結果、アイドル回転数も適切な状態となり、良好な状態となりました。
最高回転は MAXTHROTTLE で、アーム時の値は MINCOMMAND で変更が出来ますので、必要に応じ対処してください。
国内・国外でもうまくアームが出来ないなどの話をよく目にしますので、次回はアーム出来ないときの原因と対処の方法をまとめてみます。(経験した事だけですけど)
電子機器が大好きです。
プログラムを書くのをお仕事としていたこともあるので、両方できる PIC や Arduino を使って、いろいろな(役にあんまり立たない)ものを作っています。
実は UNIX 関連のお仕事も長かったので、Raspberry Pi もお手の物なのですけれど、これから触る機会が多くなるのかなぁ。
ボチボチ行きますが、お付き合いください。
若いころの写真なので、現時点では、まだ髪の毛は黒くてありますが、お髭は真っ白になりました。
愛車の国鉄特急カラーのカスタムしたリトルカブで、時々、秋月電子通商の八潮店に出没します。