V2.4のDraftリリースノートにメモリ容量不足からSEボードのようなAtmega328pベースFCではインストールに制限有のように書いてあったのでAIOP(Atmega2560)に換装すべくGLBにAIOPを注文しました送料無料で$30と結構安かったので心配(Fake?)があったんですがとりあえず動作確認までOK。フライトはこれからです。
と、書いている間にV2.4が正式リリースされました。GPSナビが目玉とのことですがAtmega328pベースのSEボードにはこの機能は搭載不可の様です。
FC換装とV2.4の同時進行に少々不安があり、まずはV2.3で換装をしました。
AIOP+V2.3でテストフライト完了したらすぐにでもV2.4にアップのつもりです。
AIOPボード
All In One Proを略してAIOPということです、SEボードとの差異は
- マイコンチップ:ATmega328p ⇒ ATmeg2560-16AU
- Baroセンサー:BMP085 ⇒ MS5611-01BA03
- USB to UART:FT232RQを搭載
CPUは8bit@16MHzと性能はかわりはないもののメモリ容量32KByteから256Kbyteに増えてます、更にシリアルポートが1個から4個に増えてるのでGPSモジュール接続がI2C経由では無くてUARTダイレクト接続が可能になり今まで使ってたI2C-CPS-NAVボードが不要になります。
BaroセンサーがBoschのBMP085からMS5611にかわったのでAltHoldの動きがどのように変わるのかが興味ありです。
GPS、BTの各ボードとの接続ハーネスが2.54mmピッチのコネクタから1.25mm(Molex)ピッチに変わってるので何も加工せずには接続できないのがちょっと面倒でした。
1.25mmピッチの端子付ケーブル(8pinx2、6pinx1、4pinx1)が同梱されているので追加購入は不要ですが、それでも圧着とか半田付けは面倒です。
下の画像はAIOPボードと同梱ハーネス(すべて)です。
ボードのバージョンはV2.0らしいです。でもシルク印刷にはどこにもV2.0表記は無いです。これはやはりFakeものでしょうかCriusの文字も基板の表側には無いし。(裏側のシルクにはあるんですけど、なんとなく怪しい)
SJ1のショートプラグの使い方
- ショート:ESC内蔵のBECからボード全体の+5V電源供給する時
- オープン:UBECなどESC内蔵BECを使わない時にESC経由の+5VをJP1で遮断する。
ですが、本機体のESCからのBECリード線(3ピンコネクタの真ん中のピン)はカット(ピンを抜いてある)してあるのでSJ1はショートでもオープンでも構わないはずですのでショートのままにしてあります。
MultiWIiファームウエア更新
現時点でV2.4の正式リリースがされてますが、冒頭に書いたようにV2.3でまずは進めます。(尚、プリインストールはV2.2でした)
Config.h変更点
V2.3オリジナル定義から以下の部分をアンコメントしました。
- #define QUADX
- #define CRIUS_AIO_PRO_V1
- #define SERIAL_SUM_PPM ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Robe/Hitec/Futaba
- #define PPM_ON_THROTTLE
- #define MPU6050_LPF_42HZ
- #define GPS_SERIAL 2
- #define GPS_BAUD 38400
- #define UBLOX
- #define MAG_DECLINATION -7.1f
- #define GPS_FILTERING
補足説明
#define CRIUS_AIO_PRO_V1
使用しているボードはV2.0なのですがAIOPボードとしてはこれしかないのでとりあえずこのCRIUS_AIO_PRO_V1を選択
#define PPM_ON_THROTTLE
一つ上のSERIAL_SUM_PPMと共に使用、この定義を有効にしないとDelta8からのPPM信号をうまく識別できませんでした。
#define GPS_BAUD 38400
デフォルトは57600bps設定でしたが、以前から使用している38400bpsにしました。57600で問題が出たわけではないです。尚、ソースにも書いてあるように1152000では通信エラーの可能性があるようです。
#define UBLOX
UBLOXプロトコルを使用すると通信設定がオートネゴシエーションするのでu-centerでの事前設定の手間がないのでこれを選択。
#define MPU6050_LPF_42HZ & #define GPS_FILTERING
共にセンサー出力へのフィルターです、必須項目ではないのですが、とりあえず効果が有りそうなのでアンコメントしました。
ArduinoIDEでファーム更新
実はここで少々難儀しました、というのは最近IDEのバージョンが1.6.1にアップしてたので、ArduinoIDEをバージョンアップからAIOPのファーム更新をしたんですが、GPSプロトコルにUBLOXを選択するとコンパイルエラーが出ます、いろいろ調べたんですがAIOP+V2.3の組み合わせでコンパイルエラーに遭遇した人はいなくて皆さんすんなりとうまくいってるので、試しにV1.0.6にIDEをバージョンダウンしたらうまくいきました。
MultiWIiソースコードの内容がArduinoIDEのV1.6.1の仕様とミスマッチなんでしょうね、多分、その内V2.3側で修正されるんでしょうね。
尚、V2.4(MulitiWii)+V1.6.1(ArduinoIDE)の組み合わせでもコンパイルエラーが発生します、そしてV1.0.6ではコンパイルエラーは出ませんでした。
ちなみに、マイコンボードは「Arduino Mega 2560 or Mega ADK」を選択です。
機体への取付 & 配線
GPS&BTの配線
AIOPになってコネクタのピッチが2.54㎜⇒1.25mmに変わったので少し配線作業が発生しました、受信機とESC、それぞれの配線は従来通りなのでコネクタの差し込み位置のみ変えるだけです。
ESCコネクタ差し込み位置
モーターの番号位置がSEボードと異なるので要注意です。詳しくはMultiWiiサイトのこのページに書かれてます。(下のイラストは同サイトの物を参照用に貼付しました。)
機体への取付
AIOPボードは50㎜角(左)、SEボードは40㎜角(右)と外形サイズが異なります。
そのため、手持ちのスペーサ、ネジをうまいこと組み合わせて従来と同じような構造で組み上げました。
最後にキャノピー(カバー)を付けて完成です。
室内での動作確認
プロポ(送信機)の電源オンさせ、機体にリポ電池接続して以下の動作確認しました。
AUX1~AUX4によるフライトモード切替確認
- ACROモード⇒ANGLEモード⇒HORIZONモード
- BAROモードのオンオフ
- HEAD FREEモードのオンオフ
- GPSホールドモード⇒GPSRTHモード
Arm/Disarm確認
スロットルミニマムダウン+ラダーの右打ち&左打ちでArm/Disarmされるかの確認。
センサー動作チェック
機体を手持ちし、スロットルを少しアップさせて、ロール方向、ピッチ方向に傾けた時に逆方向にモータ回転数制御されるかの確認。
プロポスティック反応確認
同じく、手持ち機体でスティック操作に反応してモーター回転数制御されるかの確認。
ここまでOKです、FCは正常動作してますね。さて次はいよいよテストフライトです。