自作ドローンにテレメトリー

ロボット

ドローンを作って飛ばしたいので、国土交通省のドローン登録に登録申請だしました。
このシステムはすごくよくできていて、かなりカネ使ったな、という感じです。
もちろんドローンの登録は無料じゃないし、3年ごとに更新料を取られます。

しかも、機体登録すると漏れなく”リモートID”という1万円以上するデバイスを取り付けねばならず、なにかとおカネがかかります。

テレメトリーとは

さて、ドローンの世界では”テレメトリー”といいますが、フライトコントローラーと通信するデバイスを取り付けることができます。
通常、最初にドローンを組み立ててフライトコントローラー(PixhawkとかCube Orangeとか)にはUSBケーブルをつないでミッションプランナー(Ardupailotの場合) からファームウェアを書き込みます。
その後、ファームウェアがアクティブになれば、そのUSBがつながっているCOMポートとフライトコントローラーを接続することができます。そうすると、ミッションプランナーからドローンを細かくコントロールできるようになります。
たとえば、フライト前に飛行プランを作って書き込むといったことができます。

このフライトコントローラーのファームウェアとのUSB接続は、別にUSBに限らず「テレメトリー」という機能を利用して無線でPCを接続することもできます。
具体的には、独自の無線機能やWi-Fiを利用することです。独自の無線機能は「テレメトリー通信モジュール」という名前で検索すれば見つかります。見通しで1キロメートルくらいの範囲で通信できるようです。
(プロポによってはテレメトリー機能がついているものもあります。)

そこまでいかずとも手元で機能を確認したら自動運転で飛んでほしい場合、Wi-Fiで十分です。

というわけでWi-Fi接続のテレメトリーを作ってみました。
Cube pilotとPixhawkを対象としています。

ESP WROOM-02

概要はArdupilotのドキュメントページにESP30 Wi-Fi Telemetryというページがありますので、さらっと見てください。DroneBridgeと呼ぶそうです。

今回使ったハードウェアは秋月電子でESP-WROOM-02開発ボードと呼ばれるボードです。
2022/12/01調べで¥1,280-です。

このボードはよくできていて、USBシリアルが繋がります、ESP-WROOM系はたいてい3.3V駆動ですので、ドローンから供給される5Vを3.3Vに下げねばなりませんが、それもオンボードにあります。
つまりこのボードと結線があれば、WI-Fiテレメトリーになります。

さらに重要なことは、テレメトリーとして使っている人が多く、ソフトウェアに困らないことです。

コネクター

Cube Orangeなどの最近のCube系はJST-GHというコネクターです。
ロック付きの基盤取り付けコネクターは、電子機器を制作している私はあまり見たことがないのですが、ArdupilotのFacebookのグループでは「みんな使っている」と怒られました。

さっさと手に入れるにはCubePilot Cubeミニキャリアボードケーブルセットを注文するとテレメトリーにささるコネクターが入ってます。3000円くらいするけど。

ちなみにPixhawk系はヒロセDF13というコネクターです。Pixhawkが世に出てずいぶん経つせいか、こちらの入手は容易です。

ファームウェア

ESP WROOM-02をオススメする最大の理由はDroneBridgeのプログラムがすでにあるからです。

オリジナル手順はやはりArdupilotのドキュメントESP8266 Telemetryにあります。

まずファームの書き込みソフト NodeMCU flasher (64bit or 32bit)を入手します。WIndows用です。
2015年が最後のアップデートですが、今、動作するならよしとしましょう。他のツールもあります。

次に書き込むファームウェアをダウンロードするのですが、名前をMAV8266といいます。

3種類あるので、フラッシュメモリーサイズを確認しなくてはいけません。
USBケーブルにESP WROOM-02を接続し、NodeMCU Flasherを立ち上げます。
「Advanced」をクリックするとこんな画面が出ます。

これでフラッシュが4MBだとわかりますね。

configでファームウェアを指定し、Operationで「Flash」を押すと、書き込まれるはずですが!

WROOM-02をプログラムの書き込みを許すモードにしないといけません。
秋月電子の説明書にあるとおり、

という順番にボタンを押して、離します。

そこですかさず、Operation画面のFlashを押すと、ファームの転送が始まり、やがて終わります。

念のために、ここでいったんUSBケーブルを抜いて、再度、つないでリブートしましょう。

ここで、このWRoom-02は小さなアクセスポイントになっています。

パソコンやスマホのWi-Fi設定画面からSSID ArduPilotを探してください。
指定するとパスワードを要求されますから、最初のパスワードは ardupilot です。

こうやってアクセスポイントに接続したら、http://192.168.4.1 にアクセスします。
メニューが出るのでsetupを選びます。

すると、こういうシンプルな画面が出ます。

私は混乱を避けるため、SSIDをちょっと変更しました。
セキュリティを木にする人はパスワードも変更しましょう。
変更したらsaveを忘れずに。

あとはポート番号が14550と、ボーレートが57600であるところに注目してください。

これでESP32 WRoom-02のテレメトリー装置の設定は終わりです。

コネクターの接続

Cube Orangeのテレメトリーのコネクターは次のようになっています。

各ピンの割当は

  1. VCC_5V 出力
  2. MCU_TX 出力
  3. MCU_RX 入力
  4. MCU_CTS 出力
  5. MCU_RTS 入力
  6. GND

太字の4本を使います。

Pixhawkの場合です。

  1.  VCC 5V 出力
  2. TX 出力
  3. RX 入力
  4. CTS
  5. RTS
  6. GND

一方、ESP WROOM-02の関係するピンは次のとおりです。

  • ピン10 5V 供給
  • ピン13  RXD
  • ピン14 TXD
  • ピン20 GND

これらをつなぐわけですが、通信するのでRXはTXとTXはRXと接続します。
電源は同じです。
私の場合の写真です。
電線ががっちり巻いてあるので、テスターで一本ずつ調べました。
電線の先はピンをはんだ付けして熱収縮チューブで補強してあります。

フライトコントローラーのテレメトリーの設定

フライトコントローラー側の設定をします。
まだ、USBでミッションコントローラーと接続します。
「一般設定」で「スタンダード パラメータ」を出します。
検索で「telem」を探すと以下のあたりにたどり着くと思います。

SerialとTelem 1を修正します。よくわからんのでボーレートは同じにしてあります。
SerialのほうはプロトコルをMAVlink1にしてあります。
画面上部の「パラメータ書き込み」を忘れずにクリックしましょう。

フライトコントローラを再起動します。

コネクターをフライトコントローラーに差し込んで、フライトコントローラーの電源を投入します。

PCのアクセスポイントをESP32 WRoom-02に設定したAP名を指定し、接続します。
発見できるまで、ちょっと時間がかかることはあります。
(USBケーブルは抜いてありますね?)

そのままで、ミッションプランナーを立ち上げ、UDPで接続します。

UDPの横のボーレートは関係ないです。変更できません。
つなぐとこの画面のようにポート番号を聞いてきますが、デフォルトのまま14550でOKです。

これでミッションプランナーは立ち上がり、テレメトリー経由で接続できるはずです。

手順は面倒ですが、テレメトリーが数千円で入手できるのです。

 

別のボード

もっと安価なボードをAmazonで発見しました。

どうもAdafruitのHUZZAH ESP8266 Breakoutボードのパクリのようです。
Adafuruitは資料が多いので使いやすいです。
可能かもしれません!

まだ、ブレッドボードの段階ですので安価なCPUボード大歓迎です。
やってみます。
うまくいけばコネクター付きボードを作ろう。

こんな感じで、引き続き高価なドローンパーツの安価版を自作してみたいと思います。

続報を待て