IchigoJam + Tello フライト マニュアル (IchigoJam BASIC編)

0. 準備物

IchigoJam を使って Tello を飛ばすには、下記の準備物が必要です。各機器の物理的な接続方法や
ファームウエアのインストール方法については、それぞれのドキュメント等を参照してください。

1. IchigoJam + FruitPunch と Tello を接続する

最初に、Wi-Fiアクセスポイントとして機能している Tello に FruitPunch を接続します。
※Telloの電源をあらかじめONにしておく必要があります。
※一度接続すると、次回からは電源投入時に前回接続したTelloに自動で接続します。

コマンド一覧

コマンド 操作 説明 使用例(IchigoJam BASIC)
FP APL Wi-Fi アクセスポイント(Tello)一覧の表示 Tello を含む Wi-Fi アクセスポイントを検索し一覧を表示する。 ?"FP APL"
FP APC {ssid} Wi-Fi アクセスポイント(Tello)に接続 Tello に接続する。 ?"FP APC TELLO-FFFFFF"
FP APS Wi-Fi の接続状態を表示 Tello との接続状況を表示する。(0:未接続, 1:接続中) ?"FP APS"

使用例 I. (IchigoJam BASIC)

利用可能な Wi-Fiアクセスポイントを検索して一覧を表示します。
Tello が起動していれば、一覧に含まれて表示されます。
※まれに結果表示が崩れることがあります。

?"FP APL"
	
FP APL
OK
'TELLO-FFFFFF
'TELLO-EEEEEE
'OK
	

使用例 II. (IchigoJam BASIC)

Tello のWi-Fiアクセスポイントに接続します。

?"FP APC TELLO-FFFFFF"
	
FP APC TELLO-FFFFFF
OK
'.....
'WiFi connected: 192.168.10.2
'OK
	

使用例 III. (IchigoJam BASIC)

Wi-Fi の接続状態を表示します。

?"FP APS"
	
FP APS
OK
'1
	

2. [Tello を飛ばす] ふたつのフライト スタイル (Flight Style)

IchigoJam を使った Tello のプログラミングには2通りのスタイルがあります。
フライトの目的や参加競技、プログラミングの習熟度に応じて適切なものを選択できます。

A. コマンダー スタイル (Commander Style)
司令官になって、飛行計画を立案、まとめて実行させるスタイルによるプログラミング。初級者向け。
B. レーサー スタイル (Racer Style)
パイロットになって、操縦桿をリアルタイムに操作するスタイルによるプログラミング。上級者向け。

3. [Tello を飛ばす] A. コマンダー スタイル (Commander Style)

FP Q コマンドを使用すると、司令官のように飛行計画を立案、まとめて実行させることができます。
初級者でも簡単にTelloを飛ばすことができます。

コマンド一覧

コマンド 飛行計画の処理 説明 使用例(IchigoJam BASIC)
FP QRUN 実行 Tello を離陸させ、飛行計画を順次実行、完了後に着陸させる。
※飛行計画は実行されたものから順に消去されます。
?"FP QRUN"
FP QCLR 全消去 すべての飛行計画を消去する。
飛行計画の実行中(FP QRUN後)であれば中断してTelloを着陸させる。
?"FP QCLR"
FP QU {x} 追加 上昇 {x} cm 上昇させる。(20 <= x <= 500) ?"FP QU 50" '50cm 上昇
FP QD {x} 追加 下降 {x} cm 下降させる。(20 <= x <= 500) ?"FP QD 50" '50cm 下降
FP QR {x} 追加 右移動 {x} cm 右移動させる。(20 <= x <= 500) ?"FP QR 50" '50cm 右移動
FP QL {x} 追加 左移動 {x} cm 左移動させる。(20 <= x <= 500) ?"FP QL 50" '50cm 左移動
FP QF {x} 追加 前進 {x} cm 前進させる。(20 <= x <= 500) ?"FP QF 50" '50cm 前進
FP QB {x} 追加 後退 {x} cm 後退させる。(20 <= x <= 500) ?"FP QB 50" '50cm 後退
FP QTR {x} 追加 右回転 {x} 度 右回転させる。(1 <= x <= 360) ?"FP QTR 30" '30度 右回転
FP QTL {x} 追加 左回転 {x} 度 左回転させる。(1 <= x <= 360) ?"FP QTL 30" '30度 左回転
FP QFL R 追加 右に宙返り 右に宙返りさせる。(バッテリー残 >= 50%) ?"FP QFL R"
FP QFL L 追加 左に宙返り 左に宙返りさせる。(バッテリー残 >= 50%) ?"FP QFL L"
FP QFL F 追加 前に宙返り 前に宙返りさせる。(バッテリー残 >= 50%) ?"FP QFL F"
FP QFL B 追加 後に宙返り 後に宙返りさせる。(バッテリー残 >= 50%) ?"FP QFL B"
FP QG {x} {y} {z} {speed} 追加 三次元移動 前に {x} cm、左に {y} cm、上に {z} cm の位置に速度{speed}で移動させる。
(-500 <= x <= 500)
(-500 <= y <= 500)
(-500 <= z <= 500)
(10 <= speed <= 100)
※ x,y,zを3つ同時に-19~19に設定することはできません。
?"FP QG 50 50 50 50"
FP QC {x1} {y1} {z1} {x2} {y2} {z2} {speed} 追加 カーブ移動 前に {x1} cm、左に {y1} cm、上に {z1} cm の位置を通って、
前に {x2} cm、左に {y2} cm、上に {z2} cm の位置に速度{speed}で
カーブを描いて移動させる。
(-500 <= x1 <= 500)
(-500 <= y1 <= 500)
(-500 <= z1 <= 500)
(-500 <= x2 <= 500)
(-500 <= y2 <= 500)
(-500 <= z2 <= 500)
(10 <= speed <= 60)
※ x1,y1,z1を3つ同時に-19~19に設定することはできません。
※ x2,y2,z2を3つ同時に-19~19に設定することはできません。
?"FP QC 20 50 0 60 60 0 50"
FP QGM {x} {y} {z} {speed} {mid} 追加 三次元移動
(ミッションパッド)
※Tello EDU 限定
ミッションパッド{mid}を基準に、
前に {x} cm、左に {y} cm、上に {z} cm の位置に速度{speed}で移動させる。
(-500 <= x <= 500)
(-500 <= y <= 500)
(-500 <= z <= 500)
(10 <= speed <= 100 )
(1 <= mid <= 8)
※ x,y,zを3つ同時に-19~19に設定することはできません。
?"FP QGM 50 50 50 50 1"
FP QCM {x1} {y1} {z1} {x2} {y2} {z2} {speed} {mid} 追加 カーブ移動
(ミッションパッド)
※Tello EDU 限定
ミッションパッド{mid}を基準に、
前に {x1} cm、左に {y1} cm、上に {z1} cm の位置を通って、
前に {x2} cm、左に {y2} cm、上に {z2} cm の位置に速度{speed}で
カーブを描いて移動させる。
(-500 <= x1 <= 500)
(-500 <= y1 <= 500)
(-500 <= z1 <= 500)
(-500 <= x2 <= 500)
(-500 <= y2 <= 500)
(-500 <= z2 <= 500)
(10 <= speed <= 60 )
(1 <= mid <= 8)
※ x1,y1,z1を3つ同時に-19~19に設定することはできません。
※ x2,y2,z2を3つ同時に-19~19に設定することはできません。
?"FP QCM 50 0 50 100 50 50 50 1"
FP QJM {x} {y} {z} {speed} {yaw} {mid1} {mid2} 追加 ジャンプ
(ミッションパッド)
※Tello EDU 限定
ミッションパッド{mid1}を基準に、
前に {x} cm、左に {y} cm、上に {z} cm の位置に移動してから、
ミッションパッド{mid2}を基準に、
前に 0 cm、左に 0 cm、上に {z} cm の位置に速度{speed}で
{yaw} 度回転しながら移動させる。
(-500 <= x <= -20, 20 <= x <= 500)
(-500 <= y <= -20, 20 <= y <= 500)
(-500 <= z <= -20, 20 <= z <= 500)
(10 <= speed <= 60)
(1 <= yaw <= 360)
(1 <= mid1 <= 8)
(1 <= mid2 <= 8)
※ x,y,zを3つ同時に-19~19に設定することはできません。
?"FP QJM 200 0 50 50 90 1 2"

使用例 I. (IchigoJam BASIC)

操作: 後方宙返りを飛行計画に追加して実行させます。
動作: Tello が離陸、後方宙返りしてから着陸します。

?"FP QFL B":?"FP QRUN"
	

使用例 II. (IchigoJam BASIC)

操作: 50cm前進、後方宙返り、50cm後退を飛行計画に追加して実行させます。
動作: Tello が離陸、50cm前進、後方宙返り、50cm後退してから着陸します。

?"FP QF 50":?"FP QFL B":?"FP QB 50":?"FP QRUN"
	

使用例 III. (IchigoJam BASIC)

操作: 50cm前進、後方宙返り、50cm後退を飛行計画に追加して実行させます。
動作: Tello が離陸、50cm前進、後方宙返り、50cm後退してから着陸します。
※ 行番号をつけているので IchigoJam BASIC の RUN コマンドで繰り返し実行できます。

NEW
10 ?""
110 ?"FP QF 50"
120 ?"FP QFL B"
130 ?"FP QB 50"
800 ?"FP QRUN"
RUN
	

使用例 IV. (IchigoJam BASIC)

操作: 飛行計画を追加して実行させ、15秒(900フレーム)後に全消去します。
動作: Tello が離陸、50cm前進、50cm後退を繰り返しますが15秒(900フレーム)程度経過すると中断して着陸します。
※ 行番号をつけているので IchigoJam BASIC の RUN コマンドで繰り返し実行できます。

NEW
10 ?""
110 ?"FP QF 50"
120 ?"FP QB 50"
130 ?"FP QF 50"
140 ?"FP QB 50"
150 ?"FP QF 50"
160 ?"FP QB 50"
170 ?"FP QF 50"
180 ?"FP QB 50"
190 ?"FP QF 50"
200 ?"FP QB 50"
800 ?"FP QRUN"
900 WAIT 900:?"FP QCLR"
RUN
	

4. [Tello を飛ばす] B. レーサー スタイル (Racer Style)

FP コマンドを使用すると、パイロットのように操縦桿をリアルタイムに操作することができます。
難易度は高いですが、細かな操作が可能になります。

コマンド一覧

コマンド 操作 説明 使用例(IchigoJam BASIC)
FP INIT 初期化 おまじない。他のFPコマンドより前に必ず使用する。 ?"FP INIT"
FP TO 離陸 Tello を離陸させる。 ?"FP TO":WAIT300
FP LD 着陸 Tello を着陸させる。 ?"FP LD"
FP N 操縦桿 中立(ニュートラル) 操縦桿を中立(ニュートラル)にする。 ?"FP N"
FP U 操縦桿 上昇方向(100%) 操縦桿を上昇方向に100%たおす。 ?"FP U":WAIT60
FP D 操縦桿 下降方向(100%) 操縦桿を下降方向に100%たおす。 ?"FP D":WAIT60
FP R 操縦桿 右移動方向(100%) 操縦桿を右移動方向に100%たおす。 ?"FP R":WAIT60
FP L 操縦桿 左移動方向(100%) 操縦桿を左移動方向に100%たおす。 ?"FP L":WAIT60
FP F 操縦桿 前進方向(100%) 操縦桿を前進方向に100%たおす。 ?"FP F":WAIT60
FP B 操縦桿 後退方向(100%) 操縦桿を後退方向に100%たおす。 ?"FP B":WAIT60
FP TR 操縦桿 右回転方向(100%) 操縦桿を右回転方向に100%たおす。 ?"FP TR":WAIT60
FP TL 操縦桿 左回転方向(100%) 操縦桿を左回転方向に100%たおす。 ?"FP TL":WAIT60
FP {dir}{rat} 操縦桿 指定方向(指定割合) 操縦桿を指定した方向に指定した割合たおす。
(dir = U, D, R, L, F, B, TR, TL)
(rat = 1:20%, 2:40%, 3:60%, 4:80%, 5:100%)
?"FP U3":WAIT60
FP {some} 任意のTelloコマンドの送信 Telloコマンド {some} を送信する。
Tello SDK または Tello EDU SDK に定義されているコマンドの送信に利用できる。
?"FP rc 50 50 0 0":WAIT60

使用例 I. (IchigoJam BASIC)

操作: 離陸してから約8秒(500フレーム)待ち、操縦桿を前進方向に1秒(60フレーム)たおし、中立に戻して着陸させます。
動作: Tello が離陸後 約8秒経過すると1秒程度前進してから着陸します。

?"FP INIT":?"FP TO":WAIT500:?"FP F":WAIT60:?"FP N":?"FP LD"
	

使用例 II. (IchigoJam BASIC)

操作: 離陸してから約8秒(500フレーム)待ち、 操縦桿を上昇方向に1秒(60フレーム)、下降方向に1秒(60フレーム)たおす操作をくり返します。
動作: Tello が離陸後 約8秒経過すると2秒程度の上下動をくり返します。
※停止するには、下降中にESCキーでBASICを中断します。
※停止のタイミングによってはTelloが上昇しつづけてしまうことがあるので、天井までの高さが十分な場所でお試しください。

NEW
10 ?""
110 ?"FP INIT":?"FP TO":WAIT500
120 ?"FP U3":WAIT60:?"FP D3":WAIT60:GOTO120
RUN
	

使用例 III. (IchigoJam BASIC)

操作: 離陸してから約8秒(500フレーム)待ち、 様々な割合で操縦桿を何度か前後にたおし、 中立に戻して着陸させます。
動作: Tello が離陸後 約8秒経過すると速度を変えながら前後に移動してから着陸します。

NEW
10 ?""
110 ?"FP INIT":?"FP TO":WAIT500
120 ?"FP F1":WAIT120
130 ?"FP B1":WAIT120
140 ?"FP F3":WAIT120
150 ?"FP B3":WAIT120
160 ?"FP F5":WAIT120
170 ?"FP B5":WAIT120
800 ?"FP N":?"FP LD"
RUN
	

5. Tello に問い合わせる

FP S コマンドを使用すると、任意のTelloコマンドを送信し、結果を受け取ることができます。
バッテリー残量の確認などに使用できます。

コマンド一覧

コマンド 操作 説明 使用例(IchigoJam BASIC)
FP S {some} 任意のTelloコマンドの送信と結果の表示 Telloコマンド {some} を送信し、結果を表示する。
Tello SDK または Tello EDU SDK に定義されているコマンドの送信に利用できる。
?"FP S battery?"

使用例 I. (IchigoJam BASIC)

操作: バッテリーの残量を問い合わせる Telloコマンドを送信します。
動作: Tello が応答すると結果が表示されます。

?"FP S battery?"
	
FP S battery?
OK
'96
	

6. 編隊飛行を行う

Tello を ステーションモードに、FruitPunch をアクセスポイントモードにすると
1台のFruitPunch に複数のTello を同時に接続して操作することができます。
※Tello EDU 限定
※レーサースタイルにのみ対応

コマンド一覧

コマンド 操作 説明 使用例(IchigoJam BASIC)
FP APU {ssid} {pass} FruitPunch を アクセスポイントモードにする FruitPunch を SSID{ssid}、パスワード{pass} のアクセスポイントにする。
※パスワードは8文字必要。
?"FP APU foo bar01234"
FP {command} すべてのTelloにコマンドを送る
(レーサースタイルコマンドのみ対応)
FruitPunch に同時接続している すべてのTellに同じコマンド{command}を送る。
?"FP TO":WAIT300
FP @{id} {command} 特定のTelloにコマンドを送る
(INIT以外のレーサースタイルコマンドのみ対応)
FruitPunch に同時接続している Tello のうち、{id}番目にだけコマンド{command}を送る。
※ {id}は0(ゼロ)から始まる。
?"FP @0 F1":WAIT60

準備 I. Telloをステーションモードにする (IchigoJam BASIC)

アクセスポイントモード(初期状態)で動作しているTelloに接続します。

?"FP APC TELLO-FFFFFF"
	
FP APC TELLO-FFFFFF
OK
'.....
'WiFi connected: 192.168.10.2
'OK
	

Telloをステーションモードにするコマンドを送信します。
成功すると Tello が再起動します。
※Tello EDU 限定

?"FP INIT"
?"FP ap foo bar01234"
	
FP INIT
OK
FP ap foo bar01234
OK
	

※Telloをアクセスポイントモードに戻すには、電源ON(カメラ右上のLEDが黄色点滅)の状態でLEDが消えるまで電源ボタンを押し続けます。

準備 II. FruitPunchをアクセスポイントモードにする (IchigoJam BASIC)

FruitPunchをアクセスポイントモードにするコマンドを送信します。
ステーションモードのTelloから接続できるようになります。
(接続した Tello の IPアドレスは 192.168.20.100 から接続順に振られます。)

?"FP APU foo bar01234"
	
FP APU foo bar01234
OK
'WiFi AP started: 192.168.20.1
'OK
	

使用例 I. (IchigoJam BASIC)

操作: 2機のTelloを同時に離陸させ、個別に操作した後、同時に着陸させます。
動作: 2機のTelloが編隊飛行します。

NEW
10 ?""
110 ?"FP INIT"
120 ?"FP TO": WAIT500
130 ?"FP @0 F": ?"FP @1 B": WAIT60
140 ?"FP @0 B": ?"FP @1 F": WAIT90
150 ?"FP N": WAIT30
160 ?"FP @0 flip f": ?"FP @1 flip b": WAIT180
170 ?"FP LD"
RUN
	

7. その他のコマンド

コマンド一覧

コマンド 操作 説明 使用例(IchigoJam BASIC)
FP VER バージョンの表示 使用中のFruitPunchのバージョンを表示する。 ?"FP VER"
FP APD Tello から 切断する ステーションモードのとき: Tello との接続を切る。
アクセスポイントモードのとき: アクセスポイントモードを終了して全てのTelloとの接続を切る。
?"FP APD"
FP SPW {msec} シリアル通信の設定 シリアル通信時のWAITを設定する。デフォルトは30msec。 ?"FP SPW 50"
FP MAC MACアドレスの表示 FruitPunch の MACアドレスを表示する。 ?"FP MAC"
FP UDP {host} {port} {msg} UDP送信 UDPサーバ {host}:{port} にUDPメッセージ {msg} を送信する。 ?"FP UDP 192.168.10.1 8889 command"
FP THOST {host} コマンド送信先の設定 コマンドの送信先となる Tello のホスト名を設定します。(初期値: 192.168.10.1)
ステーションモードで接続している Tello にコマンドを送信するときに使用します。
?"FP THOST 192.168.20.100"

8. よくあるご質問 (FAQ)

共通

コマンダースタイル

レーサースタイル

編隊飛行