概要

TelloFlightは、JforF Labが開発しているRyze Technology製ホビードローンのTello (DJI製のフライトコントロール システムとIntelプロセッサー )をScratchでプログラミングするツールの総称です。
本ページでは、開発中のTelloFlightを一般公開しています。

利用ルールを守っていただければ、一般の方(個人・教育)は無料で利用することができます。

利用上の注意

  • 本ツールの再頒布を禁じます。
  • 本ツールは64bitマシン向けのみの提供です。
  • 本ツールの利用によって生じた損害・トラブルにJforF Labは一切関知しません。
  • 本ツールは随時アップデートを行っており、事前告知なしでアップデートを実施することがあります。
  • ホビードローンは風に弱いので、使用は屋内での利用に限ります。
  • 人の密集地帯やその他ドローンの飛行が禁じられている場所での利用は行わないでください。
  • 法人やイベントでの利用、商用利用についてはJforF Labの許諾が必要です。こちらからお問い合わせください。

ダウンロードリンク

使い方

Web版の利用

Web版のScratch + WebGLのシミュレータを公開しています。
パソコンに環境をインストールしなくてもインターネット環境とブラウザがあればTelloのフライトプログラミングを行うことができます。

リンク:https://jforf.pro/scratch/

作成したプロジェクトファイル(sb3ファイル)をローカル用のScratchとTelloFlightに読み込ませることで実機を飛ばすことも可能です。

使い方は後述のブロックの組み方と同じです。
拡張機能のTelloFlightを読み込むとScratchのステージと呼ばれる部分がシミュレータ表示部に置き換わります。

ローカル版のセットアップ

まず、ダウンロードしたランタイム2つをインストールウィザードに沿ってインストールしてください。

次に「Scratch3.0 from JforF Lab」と「TelloFlight」 は任意のディレクトリ上に展開してください。

動かしてみる

Telloに繋ぐ

Tello本体の電源を入れ、パソコンのWi-fiの接続先をTelloに切り替えます。
接続先のSSIDはTelloのバッテリー挿入口に記載されています。

ツールの起動

Telloとの接続後に 「Tello Flight beta」 を起動します。
※Telloとの通信設定の関係上、Telloに接続後に起動してください。
起動すると、以下のような黒画面が出てくると思います。

この真っ黒な画面が出てくれば、OKです。
閉じずにそのままにしておいてください。

次に 「Scratch3.0 from JforF Lab」 を起動します。
以下の画面が出てくると思います。

画面左下の拡張ボタンを押下します。
拡張メニューが出てくるので、「Tello Flight」を選択します。

編集画面にTello Flight用のコマンドブロックが追加されました。

あとはScratchの作法に従ってプログラムを組んでみます。
今回は、離陸 → 右90°旋回を4回実施 → 着陸 という流れにしてみます。

※現バージョンでは、TelloFlightコマンドの後に1秒間の待機時間を設定する必要があります。

作成したプログラムは以下のようになります。

あとは、一番上のブロックまたは右上の旗アイコンをクリックすれば上から下への流れでプログラムを実行します。

応用編

前後左右の移動ブロック、旋回ブロックのほかにドローン自身がでんぐり返しをするフリップ、Telloのカメラ映像を取得するFPVも用意しています。
カメラ映像を静止画で撮影することも可能です。
保存先は、「TelloFlight\screenshot」になります。

応用編2

TelloFlightでは、v1.0.3からFPVの映像録画機能を追加しました。
カメラONの状態で、「動画撮影:開始」を実行すると録画を開始します。
録画を修了する場合は、「動画撮影:停止」を実行すると録画を停止します。

保存先は、「TelloFlight\screenshot」になります。
ファイル形式は、H.264形式のMP4ファイルになります。

以下は、サンプルとして撮影したFPVの動画になります。
UDPで通信を行っているため、ノイズや映像飛びが発生していますが、十分に見られる録画内容にはなっているかと思います。

割込み処理

TelloFlightではキューとスタックを活用した順実行と割込み実行を実現しました。
ブロックに順実行/割込み実行の切り替えがありますので、活用してください。

順実行では、FIFO(先入先出)でキューに投入された命令順で実行しますが、割込み実行ではLIFO(後入れ先出し)でスタックに投入された命令を実行します。
スタックの優先順位をキューより優先順位を高めていますので、割込み命令が先に処理される流れになっています。

注意点としては、割込み実行でも処理中の”次”に処理されるという点です。
コンピュータでの割込み処理というよりは、カラオケでの割込み予約のイメージで実行してください。

おわりに

Telloをお持ちの方は、ぜひこれらも組み合わせてドローンプログラミングを体験してみてください。

もし、Telloのご購入を検討されている方は、以下からご購入できます。