この記事は、IoTLT GWアドベントカレンダー 5/1の記事です。
Tello EDUをNode-REDから station mode にして操作するメモです。
Tello EDUの station mode とは
station mode モードは、モバイルルーターや家のネットワークにTello EDUのWi-Fiから接続され、接続されたIPさえわかれば、同じネットワーク内から操作可能になります。
ドキュメントからはこちらで説明されています。
Node-REDから station mode にする
仕組みとしては、こちらの記事を参考にさせていただきました。
DJI の教育用トイドローン TELLO EDU で編隊飛行に挑戦(1) | タロスカイ公式ブログ
ですが、ここを視覚的にわかりやすいNode-REDで組んでみます。
まず、Tello EDUのWi-Fiにつなげる
Tello EDUは標準では無印Telloと同様に、自分自身がアクセスポイントになって、操作ができるようになっています。
まず、Tello EDU起動すると、Wi-Fiリストから登場するので、接続します。
ap ssid password で設定したWi-Fi設定をリセットする手法はこちらのReset Tello Wi-Fiに書いてあって電源長押しでリセットできます。#TelloEDU #GWもくもく会 https://t.co/0SzZFf4QfT
— Tanaka Seigo (@1ft_seabass) April 29, 2019
なお、station mode にしてから、自分自身がアクセスポイントになる状況にリセットする場合は、電源を長押しすればいいです。
ドキュメントにも書いてありあります。
リセットのときの雰囲気です。
station mode 化する
いよいよ、station mode 化します。
Node-REDのフローがこちらです。
[{"id":"1a7b476.ee017b9","type":"udp out","z":"582469bb.4209e8","name":"","addr":"192.168.10.1","iface":"","port":"8889","ipv":"udp4","outport":"","base64":false,"multicast":"false","x":1130,"y":440,"wires":[]},{"id":"9532360f.6161b8","type":"inject","z":"582469bb.4209e8","name":"","topic":"","payload":"command","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":900,"y":420,"wires":[["1a7b476.ee017b9"]]},{"id":"da15569d.2727b8","type":"inject","z":"582469bb.4209e8","name":"ap ssid password","topic":"","payload":"ap <ssid> <password>","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":880,"y":480,"wires":[["1a7b476.ee017b9"]]},{"id":"de233722.2abce8","type":"comment","z":"582469bb.4209e8","name":"Setting Wi-Fi SSID and password for Access Point Mode","info":"","x":970,"y":360,"wires":[]}]
インポートできるNode-REDのフローです。
こちらをインポートして、以下の inject ノードを書き換えます。
<ssid>
と
<password>
を自分の接続したいアクセスポイントに書き換えましょう。
デプロイしたら、 inject ノードを動かして設定します。
- command の inject ノードを押して、操作可能にする
- 緑ランプが点滅することを確認して接続確認
- 設定済みの ap ssid password の inject ノードで station mode 設定
- 設定が成功すると3秒後に再起動がかかる
設定できた様子です。
IPを確認する
そして、今回は自前のモバイルルーターにつなげまして、IPを探します。
Androidの場合、Fingという同一Wi-Fiネットワークをリストアップできるツールがあるので、探るとこんな感じ。ホスト名?がしっかりありそう。 #nodered #TelloEDU pic.twitter.com/tharTr7A0B— Tanaka Seigo (@1ft_seabass) April 29, 2019
ローカルネットワーク上でTello EDUのIPを探す必要があります。Androidの場合、Fingという同一Wi-Fiネットワークをリストアップできるツールがあります。ほかにも、IPスキャンをかけるなど、とにかくIPを判明させます。
操作してみる
フローは
のときのものをベースに使います。
インポートできるフローはこちらです。
[{"id":"dae49cf9.cef52","type":"udp in","z":"582469bb.4209e8","name":"","iface":"","port":"8889","ipv":"udp4","multicast":"false","group":"","datatype":"utf8","x":360,"y":920,"wires":[["8abde9e7.b30f18"]]},{"id":"8abde9e7.b30f18","type":"debug","z":"582469bb.4209e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":590,"y":920,"wires":[]},{"id":"2522336c.0051fc","type":"udp out","z":"582469bb.4209e8","name":"","addr":"192.168.XX.YY","iface":"","port":"8889","ipv":"udp4","outport":"","base64":false,"multicast":"false","x":630,"y":800,"wires":[]},{"id":"4f68ccf8.779064","type":"comment","z":"582469bb.4209e8","name":"Controlling takeoff and land command as AP Mode","info":"","x":470,"y":720,"wires":[]},{"id":"5f6040cf.e5332","type":"inject","z":"582469bb.4209e8","name":"","topic":"","payload":"takeoff","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":370,"y":820,"wires":[["2522336c.0051fc"]]},{"id":"20d81f8e.f69c7","type":"inject","z":"582469bb.4209e8","name":"","topic":"","payload":"land","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":370,"y":860,"wires":[["2522336c.0051fc"]]},{"id":"98d635cf.43d478","type":"inject","z":"582469bb.4209e8","name":"","topic":"","payload":"command","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":366,"y":771,"wires":[["2522336c.0051fc"]]}]
こちらの接続先の udp out ノードを、先ほど判明させたIPに向けるようにします。
192.168.XX.YY となっているところを、判明したIPに設定して、デプロイします。
動かしてみる
これで、設定は完了です。
- command の inject ノードを押して、操作可能にする
- 緑ランプが点滅することを確認して接続確認
- takeoffを押して離陸させる
- land を押して着陸させる
ということをやってみます!
うまくいきました!
これが出来ると、無印Telloでは1対1のUDPで、IoTなり他の通信を絡ませるのに一工夫を必要だったものが、構造としてシンプルになり、同じネットワーク上であれば操作可能になり、外部ともつながるネットワークであれば、IoTの情報を取り込んで操作がやすくなります。
今後も用途が広がりそうですね。それでは、よき Tello EDU & Node-RED & IoT Life を!