DJI の教育用トイドローン TELLO EDU で編隊飛行に挑戦(1)

DJI によるトイドローン TELLO のプログラミング教育用モデル TELLO EDU を入手しましたのでさっそく試してみました。

https://www.ryzerobotics.com/tello-edu

TELLO EDU のスペック

公式サイトをみるとこれまでの TELLO と見かけ上のスペックはまったく同じようです。

https://www.ryzerobotics.com/jp/tello-edu/specs

しかし、TELLO EDU では、従来の TELLO にはない大きな改善があります。

それは、TELLO が既存の Wi-Fi ルーターに接続することができるようになったことです。

従来の TELLO は、TELLO 自身に内蔵された Wi -Fi アクセスポイントに接続してスマホ等からコントロールする仕様になっていたため、TELLO をコントロールするにはそれと同じ台数の Wi-Fi クライアントが必要でした。

しかし、TELLO EDU では、家庭にある Wi-Fi ルーターに接続してそこから IP アドレスを取得することができるため、たとえば1台の PC から複数台の TELLO に対してまとめてコマンドを送ることができます。

TELLO の Wi-Fi 設定を変更する

実はこれハマりました。というか一瞬騙されたと思いました。w

Wi-Fi 設定はデフォルトでは従来の TELLO と同じモードになっており、TELLO に内蔵された Wi-Fi アクセスポイントに接続する必要があります。

これでは編隊飛行は難しいので、SDK ドキュメントに記載されているとおりに、UDP でコマンドを送信します。

TELLO SDK 2.0 User Guide

Node.js でコマンドを送信する場合は以下の通り。

#!/usr/bin/env node

'use strict'

const PORT = 8889;
const HOST = '192.168.10.1';

const dgram = require('dgram');
const client = dgram.createSocket('udp4');

const sendCommand = (command) => {
  const message = Buffer.from(command);
  client.send(message, 0, message.length, PORT, HOST, (err, bytes) => {
    if (err) throw err;
  });
}

sendCommand('command')

sendCommand('ap ssid password')

これを任意のファイル名で保存して、最後の方にある ssidpassword の部分を皆さんの環境にあわせて修正してください。

その後、node tello.js のような感じでコマンドを実行すると、設定が正しければ数秒後にルーターに接続されます。

Tello 側で IP アドレスを指定することはできないようなので、固定の IP を使用したい場合はルーター側で設定しないといけないようです。

一度設定すると設定内容は保存されるらしく、再起動後も設定はそのままでした。

次回の記事では、Node.js を利用して実際に編隊飛行に挑戦してみたいと思います。お楽しみに!

追記 – Wi-Fi 設定のリセットの仕方

上述の方法で変更した Wi-Fi 設定をリセットするには、電源が入った状態で再度電源ボタンを長押ししてください。