2017年度大会に参加した機体ではペイロードが小さく、今より処理能力の高いボードを載せたり、重い物体を運搬したりするのは難しいので、現在Project C.G.S.では、2020年度大会用の機体を作成しています。
一般的にドローンを自作する場合には、機体を組み立てた後に、機体がうまく飛行できるようにパラメータを調整する作業が待っています。これには機体を手で持ってぐるぐる回したり、少しずつパラメータを変えながら実際に飛ばしたりする作業が必要なのですが、大きいドローンになると指示に従って機体をぐるぐる回すのも一苦労ですし、パラメータ調整のたびにいちいちUSBケーブルを接続するのは非常に面倒です。
なので、やはりパラメータの設定などは無線で通信したいものです。少し前にPX4ファミリーに加わったPixracerはなんとESP8266を使ったWifiモジュールがバンドルされており、これを使えばそのままWifiでQGCと接続することができちゃいます。また、このモジュールを接続すれば、Pixracerに限らずPixhawkなどでもWifi経由で接続することができるようになっています。
ところがここで問題がひとつ... 付属のモジュールは技適認証を受けておらず、日本国内で自由に使うことはできないのです!
そこで、この記事ではESP8266用のファームを技適認証を受けているESP-WROOM-02に書き込み、合法にWifi接続する方法を紹介します(と言っても普通に書き込むだけなのですが...)。
ファームウェアの書き込み
まずは、ESP-WROOM-02(スイッチサイエンスで扱っているピッチ変換基板に実装したもの)を書き込みモードにしてPCと接続します。接続には秋月電子のFT232RL USBシリアル変換モジュールを使いました。
ESP-WROOM-02への書き込み |
※念の為、ESP-WROOM-02に接続する前にVIOの電圧が3.3Vになっていることを確認してください
ESP-WROOM-02のピンと、変換モジュールとの結線はこちらのスライドの情報を参考に行い、ESP-WROOM-02がUART Download Modeになるように行います。
IO0をGNDにショートしています |
この状態で、Githubレポジトリの手順に従ってファームウェアのビルドと書き込みを行います。
※ビルド済みバイナリをesptoolで書き込んでみたのですが、残念ながら動作しませんでした… esp12e向けにビルドしたものでないと動作しないのかもしれません
まずは
sudo pip2 install platformio
でplatformioをインストールしたら、mavesp8266のレポジトリで
platformio run -e esp12e -t upload
でファームウェアのビルドと書き込みをします。
書き込みが終わったらIO0をプルアップに変えて、
IO0をVCCにショートしています |
※MavESP8266はGPIO2がGNDに落ちていると設定されているコンフィグをリセットしますので、IO2はGNDに落とさないように注意してください。
PixhawkのTELEM2に繋ぎます。
Pixhawkとの接続 |
このとき、PixhawkのTELEM2の電源は5Vになっているので、間にレギュレータを挟んでESP-WROOM-02に供給される電圧が3.3Vになるようにしてください。
ボーレートの設定
Pixracerの場合はESP8266用のWifi Serialは921600ボーに設定されているのでこのままで通信できますが、Pixhawkの場合は使うTELEMのボーレートを921600に変更する必要があります。
PixhawkをUSBでQGroundControlと接続し、この公式ページを参考にPARAMETERのSYS_COMPANIONの値を`ESP8266 (921600 baud, 8N1)`に変更します。
※MavESP8266側のWebUIでボーレートをPixhawk側に、合わせる方法もありますが、57600ボーだとQGCでのパラメータのグラフ表示が残念なカクカク具合になるので、こちらの方法をおすすめします。
Pixhawkの電源を入れるとESP-WROOM-02のアクセスポイント(Pixracer)が見えるので、ノートパソコンでアクセスポイントに接続し、QGroundControlを立ち上げると自動で無線で接続されます。😄
その他
今回は、
で動作することを確認しました。
こんにちは。
返信削除pixhawkとMavESP8266に関する資料がない中で非常に参考にさせております。
上記の手順で、192.168.4.1で接続確認まではできたのですが、QGCとの接続が上手くいきません。
QGC側のMAVLink Ground Station’s Host nameなどをいじっているのですが、もしUDP等の設定をされていたらご教授いただけないでしょうか。