NAZE32(Cleanflight)設定編Part8
MicroMinimOSD+GPS編
前回、「
NAZE32(Cleanflight)設定編7(GPS)」の記事でGPSだけを有効にしてみたけど、そのままの状態でOSDを使ってみる。
【MicroMinimOSDの準備・設定】
今回は、ArduinoベースのMicroMinimOSDを使用して、OSDファームウェアは
MW OSDを使用することにした。
MW OSDは、
・MULTIWII
・BASEFLIGHT
・CLEANFLIGHT
・HARIKIRI
・FIXEDWING
に対応したOSDファームウェアで、
・Traditional GPS based OSD with full GPS info - Altitude , Direction, Distance, Speed etc.
・Traditional standalone basic OSD - basic Volts / Amps / RSSI / Timer
・Groundstation OSD for GS voltage / RSSI and Timer
などの機能が使えるみたい。
で、MW OSDのパッケージにはGUIの設定ツールも同梱されているんやけど、このGUIツールが直感的に色々と細かく設定できそう。
GUIの設定画面はこんなヤツ

●準備
基本的には、
GitHubのインストールガイドに必要なものなどが書かれてんねんけど、ざっと読むと、
・MW OSDソフトウェアを選んでダウンロードしてね。
・自分のPC OSに合ったArduinoソフトをダウンロードしてね。
・PCとOSDを繋いで操作するんに、FTDI breakout boardっていうドングルがいるよ。
的な事が書かれている。っぽい?w
FTDIドングルってのはこんなヤツ

左がドングル、右がMicroMinimOSD
つことで、
1.MW OSDファームウェアダウンロード:Release 1.5 - 14/08/2015
2.Arduinoソフトウェアインストール:Arduino IDE「arduino-1.6.7-windows.exe」(ファームウェア書き込みツール)
の2個を準備しておく。
準備ができたら、
3.MicroMinimOSDへファーム書き込み
直ぐにOSDにファームを書き込んでみたりする。
って感じで作業する。
【1.MW OSDファームウェアダウンロード】
GitHub から

「MW OSD R1.5」をクリックすると、こんなのが出るかもしれへんけど、

ダウンロードをクリックしてDLする。
zipファイルが落ちてくるので、

解凍すると、「scarab-osd-R1.5」ってフォルダが出来る。

この中にはあとで触るファイルなどがあるので、このフォルダの場所は把握しやすい所に置いておくのが良いかも。
てか、ここへのショートカット作っとけばええかな。
中身はこんなの

MW_OSD
MW_OSD_GUI
の2つ。
●MW_OSDの中身

この中身で、使うのは、「MW_OSD.ino」で、最初にMicroMinimOSDに書き込むWM OSDのファームウェア本体。
で、もう一つ使うのが、「Config.h」で、MW_OSD.inoのコンフィグファイル。
コンフィグファイルってのは、まぁ、簡単的に言うと、設定ファイルで、どう動かすかの設定があらかじめ記述されていて、最初にこれを読み込んでから設定されたとおりにプログラムが動く、というようなファイル。
●MW_OSD_GUIの中身

GUIってのは、グラフィカルユーザーインターフェースってやつで、まぁ、クリックボタンとか入力エリアとかの項目がデザインされた画面上で視覚的、直感的に操作しながら設定していけるって感じのもの。
逆にCleanFlightなどでもCLIってのが、コマンドラインインターフェースつって、文字列などの操作(コマンド)で設定やセットアップ操作を行うもの。
GUIの設定画面だけでは全ての設定などの項目が準備されていなかったりもする。
で、フォルダの中には、
Linuxの32bit/64bit
MacOS
Windowsの32bit/64bit
それぞれ用の、GUIプログラムが準備されてる。
64bit版は動かすのにひと手間いるので、32bit版を使う。
俺の場合、Windows7 64bit、Windows10 32bitやけど、どちらも32bit版の方で動いてる。
つことで、「application.windows32」を開いてみると、こんな感じ。

MW_OSD_GUI.exe
が、プログラム実行ファイルなのでこれをダブルクリックすると、MW_OSDのGUI設定画面が起動する。

このGUI設定画面は良く使うと思うので、MW_OSD_GUI.exeへのショートカットをデスクトップとかスタートメニューに追加しておくとエエかも。
OSDのファームウェア準備はとりあえず、そんな所かな。
次に、OSDファームウェアをOSDのCPUに書き込んだりする為のツールをインストールする。
【2.Arduinoソフト(ファームウェア書き込みツール)インストール】
●Arduinoソフト(ファームウェア書き込みツール)
Arduino IDEは下記のArduinoのサイトからDL
ARDUINO IDE
俺の場合、windows7と10の環境なのでWindows版「arduino-1.6.7-windows.exe」(現時点最新版かな?)をDL。
右側にあるリストから「Windows Installer」をクリック。
自分の環境に合うものを選ぶ。
こんな画面が出るんやけど、これは、オープンソースなので、寄付してね~って画面。

$3~$50の選択と、OTHERな人は、$ミリオン(ご希望金額)でも、ええよってw
で、「CONTRIBUTE & DOWNLOAD」をクリックすると、クレジット決済するか、PayPal決済するかでお支払い出来るよ~になってる。
でも、今日食べる晩飯代もままならんので、別な事で貢献するよ~って人は、

寄付のポップアップを閉じて、おーきに・・・すんまへん、つって「JUST DOWNLOAD」の方をクリックすると、DLが始まる。

実行するか、保存するか聞いてくるので、まぁ、俺の場合初めて入れるものはダイレクトに実行せずに、必ずDLしてからインストールするようにしてるので、DL保存。
PCの設定を変えてない場合、
Cドライブ直下のダウンロードフォルダあたりに落ちてきてるはず。
オープンソースとはいえ、維持管理すんのに少なからず経費はかかっとるやろし、良い物の開発が止まらんように余裕がある人はちびっとでも寄付をしてあげると良いのかも。
それか、開発側にコミットしてあげるとか、バグ出ししてあげるとか?
【インストール】
.exeファイルをダブルクリックしてインストールするとインストールが始まる。
こんなアイコン

このオープンソースライセンスはGPLでっせ、規約に同意してね。

「I Agree」で次へ進む。
アリアリで?

全部アリアリで!w
「Next」で次へ。
どこ入れとく?

そこ入れといて!w
つか、インストールまだやったんかい~w
「Install」でインストール開始。
インストールが進む。

途中で、ドライバ入れるけ?って、連発で来るかもなので、

「"Arduino LLC"からのソフトウェアを常に信頼する」チェックを入れて、「インストールする」をクリックで一気に終わる。
ちなみに、チェックを入れずに、「インストールする」で進むと、ご丁寧に一個ずつ聞いて来る。


全部いるので、全部「インストール」ってやって、インストールが終わる。

「Show details」をクリックすると、インストールした結果一覧などが表示される。
見る必要ないけどw
「Close」で画面を閉じて、インストールは終わり。
【3.MicroMinimOSDへファーム書き込み】
●WM_OSDインストール(書き込み)
【1】MicroMinimOSDとFTDIドングルを接続する。

多分、何も考えず、そのまま繋ぐだけやと思うけど・・・念のため、ピンアサイン。
(FTDI-----MicroMinimOSD)
GND-----GND
CTS-----GND
VCC-----+5V
TX------RX
RX------TX
DTR-----DTR
という風に接続する。
※MicroMinimOSDは対面が同じ6pinヘッダなので逆に接続しないように注意。
【2】USBでPCとFTDIドングルを接続する。
FTDIの方の赤LEDがたまに点いたりして、
OSDの青LEDが点灯、緑が早い点滅状態になる。
【3】Arduinoツールを起動。
さっきのインストールが無事に終わっていたら、デスクトップにアイコンが出来てるので、そのアイコンをダブルクリックしてARDUINOソフトを起動する。

デスクトップにない時は、スタートメニューからいけばエエ。
起動すると、こんなのが出て、

暫くすると、

Arduino画面が起動する。
メニューの「ツール」を開くと、最初はこんな感じで

FTDIドングルと接続されていれば、PCの空きシリアルポート(USB)が自動的に割り当てられてCOMポート番号が表示されるけど、もし割り当てられていなければ、「シリアルポート」をクリックして表示されているポート番号にチェックを入れておく。

同じく、ツールメニューの「マイコンボード」がデフォルトでは「Arduino/Genuino Uno」になっているので、MicroMinimOSDに実装されているターゲットデバイスに合わせて、


「Arduino Pro or Pro Mini」
「ATmega328(5V,16MHz)」
を設定する。
FTDIドングルを接続したときに、下記の状態になっていれば接続の設定はOKやね。

作業途中、画面の左下にアップデートの表示が出てきたら、

うっとおしいので、librariesをクリック。
今のライブラリバージョンは2.5.0でっせ。

つって、ダウンロードが始まる。

ダウンロードが終わると、プルダウンでバージョンを選択出来るようになるので、選んで、横の「インストール」をクリックする。
サクッとアップデートが終わって、下記画面の「閉じる」で終わる。

ん?止まってる?とか思うかもやけど、終わってるw
要はアップデートするもんが無いよ、って画面やね。
【4】EEPROM初期化ファイル書き込み
ファイルメニュー>EEPROM>eeprom_clearを選択する。

eeprom_clearの新ウィンドウが開くので、右向き矢印にマウスホバーすると、「マイコンボードに書き込む」が表示されるので、そのまま、右矢印をクリックして書き込みを実行する。

書き込みが進んでいく。

※途中で止まっていたり、なかなか終わらない場合はシリアル通信に失敗している可能性があるので、画面を閉じて、USBを外して、もう一度最初から接続しなおす。
エラーが発生した場合も同じく、再起動、再接続からもう一度試してみる。
成功すれば、下記画面のように、「マイコンボードへの書き込みが完了しました。」と表示される。

OSDは青LEDと緑LEDがどちらも点灯になる。
【5】WM OSDファーム書き込み
メニューの「ファイル」>「開く」で、最初にダウンロードして準備した
scarab-osd-R1.5>MW_OSDフォルダ内の
「MV_OSD.ino」ファイルを開く。

幾つかのファイルが読み込まれて、タブ表示されるので、「Config.h」というタブをクリックして画面に表示して、とりあえず、この画面上でConfigファイルの編集を行う。
【Config編集箇所】
※各行頭のコメントアウト「//」を消すと、その行の設定が有効になるので、自分の必要な設定箇所を有効にしていく。
●OSD HARDWARE settings
デフォルト

↓
変更後

デフォルトは95%のボードに対応、みたいな事書いてあるっぽいけど、MicroMinimOSDは3番目のトコにわざわざ書いてあるのでそれを選ぶ。
スクロールして下がって行き、
●CONTROLLER SOFTWARE
デフォルト

↓
変更後

デフォルトでMULTIWIIになってるので、MULTIWIIを無効(コメントアウト)して、「CLEANFLIGHT」を有効にする。
さらにスクロールで下がって、
●CALLSIGN setting
これは別にOSD自体の動きには関係ないので、やらなくてもOSDは動く。
ただ、コールサインがデフォルトでは、1分おきに4秒間表示ってなってるので、OSD画面にコールサインの点滅がうっとおしいと思ったので、俺の場合、時間を少し長くした。
デフォルト

↓
変更後

秒で指定する。
180秒(3分)置きに10秒間表示・・・のつもりやけど、まだちらっとしか動作見てないので後で、訂正するかも。
ちらっと見たときには、しばらく表示が出なくなった気がしたのでいけたような気がしてるけど・・・。
ちなみに、電波の連続発射の時には10分毎に自局のコールサインを出しとけよ、って法規になってるので、MAX600秒間隔かな。
250レーサーのフライトやと、ええとこ3~4分かと思うので、とりあえず1回程度サイン出るようにでえっか、って感じ。
あと、コールサイン自体の登録というか表示させる文字列入力はGUIツール側で項目があるんやけど、表示時間とかの設定がGUI側には無いみたいなので、Configファイルを直接編集する。
<補足>
「Config.h」ファイルやけど、上記Arduinoツールからの編集でええんやけど、どう設定したか分からんようになるってのがあったりするので、俺の場合、Config.hを先に直接編集したりする。
Config.hはテキストエディタで開くと、ツールでみたままと同じ記述が見れるので、そのまま直接コメントアウトなどして保存しておくと、そのConfig.h設定で書き込まれる。
ただ、注意点、かもしれないのが、どのテキストエディタで開いて編集保存するか、ってのは少し気を付けた方が良いかも。
影響があるかどうかは試してないけど、例えばWindowsに付属のメモ帳では、改行コードと文字コードがプログラムコードで使われている物で開けない可能性がある。なので、それらのコードが読み書きできるテキストエディタを使用することをお勧め。
俺の場合、Freeのサクラエディタってのを使ってるんやけど、有名どころでいけば、秀丸エディタとかでもエエと思う。
で、多分、文字コードはEUC、改行コードはLF、で書かれてるんやないかな?
Winメモ帳はShift_jisオンリーやったハズなので、あまり良くないかも。良くない場合は、多分文字化けしたりプログラムがコードを認識しなかったりというのがあるかも。
Windowsの場合、Config.hファイルを右クリックで、プログラムから開くでサクラエディタや秀丸エディタで開けばエエ。
ちなみに、下記は、コールサイン以外の箇所を上記設定に変更したConfig.hファイルなので、DL解凍後、Config.hファイルをそのまま上書きして使ってもええ。
(NAZE32+MicroMinimOSD+CLEANFLIGHT環境用Config.h)
miminosd_cleanflight_Config.zip・MicroMinimOSD有効
・CLEANFLIGHT有効
【6】書き込み実行
EEPROMクリアと同じ要領で、右矢印ボタンクリックして書き込み実行する。

完了画面。
OSDは青LEDが点灯、緑点滅になる。
ん~、なんか、メモリがギリっぽいね~
もしかしたら、旧バージョンでやった方が良いのかも。
後で、試してみよう。
メモリがオーバーすると、多分やけど、GPSの機能支障が出てきそうな気がする。
MicroMinimOSDのファーム設定などは、以上で終わり。
そのままOSDボードを、NAZE32のTX/RX、カメラVout、ATV送信機Vin、電源に正しく接続すれば、画面の表示項目は別として、画面上に何かオーバースクリーンで表示されるハズ。
何か表示されていれば、とりあえず、おお~~!位ゆーといてから、一服しとこかwww
この時点で、何も表示されないという場合、何か間違ってるので、ふりだしに戻る前に、一服しとこかwww
●MW OSDのGUI設定画面
画面に何か表示されてたら、今度は最初に準備した、
「application.windows32」>「MW_OSD_GUI.exe」
を起動して、MW OSDのGUIツールを使って画面上の表示項目のON/OFF設定やレイアウト変更(表示位置変更)などをイジっていくんやけど、めっさ、長なるんで、また別記事で。
大体は直感的に触れると思うけど・・・

GUIツールとFTDIドングルが正しくUSB接続出来ると、画像の様に、オンスクリーンのデモが表示されるので、これを見ながら表示する設定を変えていく、ちゅー感じやね。
【ハードウェア接続】
2.GPSとOSDを使う場合の接続設定。-------------------------------
●Portsは「UART1」「UART2」を使用する。
●NAZE32+GPS+MicroMinimOSD
(ピンアサイン)
1:GND
2:+5V
3:PPM(レシーバーTFR4のCH1_SIGNAL)
4:RSSI(レシーバーTFR4のCH2_SIGNAL)
5:USART2 TX(GPSのRX:Blue)
6:USART2 RX(GPSのTX:Orange)
7:LED_Strip
8:NC(使わない)
9:Sonar Trigger(使わない)
10:Sonar Echo/CURRENT(使わない)
※NAZE32側のピンアサインは前記事でやった「1.GPSだけを使う場合の接続設定。」の場合と同じ。
で、NAZE32ボードに用意されている、TX/RX端子にOSDのTX/RXを接続する。
OSD TX → NAZE32ボードのRX
OSD RX → NAZE32ボードのTX
MicroMinimOSDのピンアサイン

NAZE32ボードのTX/RX端子はこれ

PCB(PDB)ボードを使うと、PCBボード側をヘッダーソケット、NAZE32側をヘッダーという感じにして、PCBボードとNAZE32ボードをそのままソケットで接続できるようになるんやけど、後々の事を考えて、このTX/RXだけはソケットで接続しない方が良いかも。
詳細は、あとで出てくる3パターン目の「3.GPSとOSDを使いながら、CleanFlightも使う場合の接続設定。」で。
--------------------------------------------------------------
【CleanFlightの設定】
CleanFlightの設定は、前回記事
NAZE32(Cleanflight)設定編7(GPS)の通り。
●「Configuration」>「Ports」で
UART1のMSPをONする。(これはデフォルトMSP=ONから変更しない)
UART2のGPSをONする。
(Save and Reboot)
●「Configuration」>「GPS」項目を設定する。
GPSをONする。
Protocol=UBLOX
Ground Assistance Type=Japanese MSAS
Magnetometer Declination[deg]=7.4
(Save and Reboot)
この使用方法やと、NAZE32につなげたGPSも認識して、OSDにも座標など表示しよんねんけど、NAZE32のPIDとかの調整は現地でフライトさせながらの調整となると思うんやけど、CleanFlightを接続しても全く動かなくなる。
OSDを外せば、普通にCleanFlightが動くねんけど、毎回OSDを取り付け、取り外し、ってやってられへんw
なので、全部を同時使いできる方法で接続しなアカン。
つことで、パターン3での使い方は次回
←前の記事
NAZE32(Cleanflight)設定編7(GPS) →次の記事
NAZE32(Cleanflight)設定編9(GPS+OSD+CleanFlight)