HJ450 MultiWii QuadCopter:組立編#8 ~GPS着荷、まずは接続設定~

初フライト時にはGPS未搭載でしたが注文品が着荷、そして機体への装着を実施し無事に完了しました。(注)連日の寒さに耐えきれずテストフライトはまだしてません。

ネット情報ですと先人の皆さん達はとても苦労されているようでしたが、逆に皆さんの情報が役に立って、割とすんなりと接続確認までできました。

その中でもこの方のブログがとても参考になったので、ほぼこの通りにやってうまく行きました。(感謝!) この方の情報も参考になりました。

ブログ情報によると接続成功ポイントは「I2C-GPS-NAVボード」と「GPSボード」間のシリアル通信速度を一致させるとのことです。(他のブログでも同じ事を説いてました。)

PC261149_R1Edit

MultiWii接続までの一連の作業手順は以下の通りでした

  1. MultiWiiファームウェアをGPS対応に再書き込み。
  2. I2C-GPS-NAVボードのファームをV2.2に書き換える。(V2.2では自動でシリアル通信速度設定機能有り)
  3. 取り付け&配線後のGPS補足動作の確認

 購入したもの

①CRIUS NEO-6 GPS v3.1と、②I2C-GPS-NAV v1.1の2点です、丁度うまい具合にこの2点がセットになった物がAmazonで見つかったのでポチリました。2点で¥3,075(送料無料)と格安でした、海外ショップ(Neewer)というというのが心配でしたが安さに負けて注文しちゃいました。11/27注文、12/14着荷なので3週間弱ほどかってます。このCRIUSは中華製ボード(多分)なので上海あたりからから出荷と思いきや封筒をみてビックリ、スイスからでした。これで送料無料、果たし元が取れるんかしら。

CRIUS NEO-6 GPS v3.1

V3.1のボードでしたが以前バージョンとの差異は不明です。(そもそもこのCRIUSというブランドをリリースしているメーカーサイトなるものが見つかりません)FC接続用のケーブルが付属してますが今回はI2C-GPS-NAVボード経由での接続になるので使用しません。(但し、u-center評価ソフトを使う時などはこのケーブルを使います、u-centerについては次の記事に詳細を書きました)

PC260003A_R1

基板裏側の画像です、GPSパッチアンテナが付いてます。機体装着時はこちらの面が上になるようにします。

OLYMPUS DIGITAL CAMERA

このGPSボード単品で動作チェックする時にはubloxから無償リリースされている「u-center評価ソフト」がとても便利です。(次回記事に詳細を書きました)

I2C-GPS-NAV v1.1

シリアル通信とI2Cを相互変換するボードで、MulitiWiiボードとGPSボードとの間に挿入します。購入品はv1.1になってました。

ケーブル2本と6ピンのストレートヘッダーが付属。ケーブル(左)はGPSとの接続に、ケーブル(右)はFCとの接続に使用。6ピンヘッダーはファーム書き換え時のFTDI接続に使用します。

OLYMPUS DIGITAL CAMERA左右のコネクタは同じ形状の4ピンコネクタなのでボードとの接続には要注意です、接続先がシルク印刷されてるので間違えはないとは思いますが。

ISP端子(2×3)、Sonar端子がありますが両方とも今回は使いません。FTDI端子(1×6)はファーム書き換え時に使用します。ボード上にはMultiWiiと同じAVR(Atmega326P)が搭載されてます。つまりArduinoということです、このAVRチップにはI2Cとシリアル用のピンが準備されているのでこのような変換ボードには便利なんでしょうね。

OLYMPUS DIGITAL CAMERA

ボードの裏面です。各ピンがしっかりとシルク印刷されてて間違えなくてよいですね。

OLYMPUS DIGITAL CAMERA

ファームウェアのダウンロード

MultiWiiボードとI2C-GPS-NAVボードそれぞれのファームを書き換えます

GPS対応MultiWiiファームウェアをダウンロード

以前の記事同様ArduinoIDEを使用してMultiWiiボードにファームをコンパイル&ダウンロードをします。GPS対応と言っても別バージョンのファームが有るわけではなくて、同じくV2.3ファームのconfig.hを変更してGPS対応にします。

前回の変更箇所に加えて以下の部分を変更します。(しつこいようですが、使用してるファームウェアのバージョンはV2.3です。)

  • #define I2C_GPS :アンコメントする。I2Cインタフェース経由でGPS接続をするという意味です。
  • #define MAG_DECLINATION  -7.1f  :磁気偏角の定義のことです。地球上の場所により角度が異なります。デフォルトでは数値が0.0fになっているので実フライト地域に応じて磁気偏角を代入する。-7.1fは千葉中央部の値です。尚、各地域の偏角値はこのサイトで判ります。(「度」以下の単位が「分」になってるので10進法変換が必要です)
  •  //#define GPS_BAUD   57600 :コメントアウトする。シリアル通信での接続時に有効となる設定の為デフォルト状態のアンコメントのままでも問題ないような気がしましたが念のためコメントアウト。(アンコメント状態で問題ないかは未確認)

config.h編集終了後、コンパイル&ダウンロードを実行。(具体的方法については今回は説明を省略します。詳細は前回記事または他ブログを参考にしてください)

I2C-GPS-NAVボードのファームをv2.2に書き換え

次にI2C-GPS-NAVボードのファームをv2.2に変更します。購入品はファームインストール済なんですがバージョンが不明なのでv2.2をそのまま上書きします。

手順は以下の様になります。

  1. ファームウェアv2.2はこのサイトにあるので、このリスト中の[I2C_GPS_NAV_v2.2Beta1-r62.rar]ファイルをダウンロードします。rarで圧縮されているのでlhaplusなどを使い解凍します、解凍すると「I2C_GPS_NAV_v2_2」というフォルダーができます。

(注)参考ブログの方に詳しく書いてあるのですが、このバージョンにはバグがありPatch当て版がリリースされてます。公式版はまだリリースされてないようです。

  1. Patch当て版は同サイト内のissue6ここにあるのでダウンロードし(ファイル名「I2C_GPS_NAV_v2_2.ino 」)、先ほどの解凍したフォルダ内に上書きコピーします。これでPatch当て版のArduinoファイルができるのでフォルダ全体をArduinoIDEのプロジェクトフォルダー内にコピーします。(デフォルトではドキュメントフォルダー内のArduinoフォルダーです。)
  2. ArduinoIDEのメニューの「ファイル」⇒「スケッチブック」に「I2C_GPS_NAV_v2_2」が表れるているはずなのでそれをオープン。(ちなみに、フォルダー名とxxx.inoファイル名は一致してないと「スケッチブック」に出てきません。)
  3. config.hの編集をします。変更個所は
    • //#define NMEAをコメントアウト
    • #define UBLOXをアンコメント
    • //#define INIT_MTK_GPSをコメントアウト
    • //#define SONAR をコメントアウトです。(3行目と4行目は必須ではないのでそのままでもよいのですが今回は未使用のためコメントアウトしました)

(注)#define GPS_SERIAL_SPEED 38400(GPSボードと通信速度設定、自動設定時はこの値が目標値となる)はそのままにしました、理由は通信速度は38400baudか57600baudが良くて、115200baudで速すぎては通信エラー発生の恐れありで19200baudでは遅すぎて追いつかないということです。

2014-12-26_21h03_44

  1. I2C-GPS-NAVボードにFTDIを接続します。6ピンのストレート・ヘッダーを使います、定常的に使うわけではないので半田付けせずに手で押さえて接触させてます。(ヘッダーを少し傾けるといいです)。それと、I2C-GPS-NAVボードにはFTDIコネクタ以外には何も接続しないことを忘れずに。
  2. ArduinoIDE上でコンパイル&ダウンロードを実行。COMポート選択、マイコンボード選択を忘れないように。尚選択するマイコンボードはMultiWiiファームの時と同じでArduino Nano w / Atmega328です。ArduiniIDE上にダウンロードまで終了したというメッセージが出たら、何も考えずにそのままFTDIボードは抜いて構わないです。

OLYMPUS DIGITAL CAMERA

I2C-GPS-NAVファームv2.2自動通信速度設定について

参考にしたブログ情報などから自動通信速度設定についてまとめてみました。

  • nBloxプロトコル選択時に有効となる。
  • GPSボードは初期値9600baudになってないとイニシャル通信ができないので通信速度の自動設定がうまく動作しない。(実際に初期値112500baudではNGでした)初期値確認、変更にはu-center評価ソフトを使います。(ここ参照)
  • GPSの更新速度5Hzも自動設定されてます。(ソース内にそれらしきコメント有)
  • 通信速度、更新速度の変更はGPSボード内のEEPROMにはSaveされないので電源オフで元の値、9600baud、1Hzに戻ります。

I2C-GPS-NAVボードv2.1の通信速度【おまけ】

このバージョンのファームのconfig.hを見てみると112500baudとなっています、更にGPSボードの初期値は9600baudとなっていますので、当然そのまま繋いでもうまくいかないです。現に購入後そのまま接続してもNGでした。試しにI2C-GPS-NAVボードのファームを書き換える前にGPSボードの通信速度初期値を115200baudに変更しEEPROMに書き込んでやってみたらうまくGPS補足できました、なのでGPSボードの通信初期値を逆にI2C-GPS-NAVボードの初期値(115200baud)に合わせるというアプローチでもOKです。但し、通信エラーの問題がありそうなので余りおすすめできないですけど。

GPS捕捉確認

最後に各ボードを接続してGPS捕捉確認します。

捕捉確認には機体は不要なので下記画像にあるように3種のボードとPC接続用のFTDIが必要です、それと捕捉モニター用にMultiWiiConfが必要です。

P1030001_R1A

GPS捕捉に成功するとMultiWiiConf画面の右下のGPSエリアに実測値が表示されるようになります。

2015-01-03_21h34_21A

電源オンからGPS捕捉までのLED点滅状況を動画でモニタリングしました。捕捉まで約4分30秒ほどかかりました。GPSボードが屋内であることとコールドスタートだったのが捕捉時間が長引いた原因と思われます。

捕捉に成功すると、

  • GPSボード上のFIX LED(緑):点滅スタート
  • I2C-GPS-NAVボード上のLED(赤):点滅速度が速くなる。

今回の記事はここまでです。