Tello Programming 005 -Scratchでプログラミング Test Flight 01-

これまでに数回に分けて,TelloScratchでプログラミングする準備やテストを行ってきました.これまでの投稿は以下のようになります.

前回は,一つのコマンドを送信すると,受信したTelloがコマンドにある動作を行う(離陸,前進,後退,着陸)プログラムを作ってテストをしてみました.

前回の投稿にあるように,ターミナルを立ち上げ,nodeを起動させます.

$ cd Tello.jsのあるディレクトリの場所 
$ node Tello.js

そして,Scratch2.0 Offline Editorを起動させ,Scratch2.0 Offline Editorの"File"メニューをShiftキーを押しながらクリックして,"Import Experimental HTTP Extension (実験的なHTTP拡張の読み込み)"をクリックして,Tello.s2eを読み込みます(手順の詳細は前回の投稿を参照して下さい).

ブロックパレットからブロックを移動させて,以下のように連続して動作を行うプログラムを作成します.
ブロックパレットに,以下のような動作をプログラミングしてみました.

動作は,
  1. 離陸
  2. 50cm前進
  3. 50cm上昇
  4. 100cm前進
  5. 反時計回りに90°旋回
  6. 100cm前進
  7. 反時計回りに90°旋回
  8. 150cm前進
  9. 反時計回りに180°旋回
  10. 右方向に100cm移動
  11. 50cm下降
  12. 着陸

の1〜12を途中に2秒間の静止時間を挟みながら連続的に行うという流れです.
一応,緊急時のために"space"キーを押したら緊急停止するコマンドも作成してあります(画面右上).
Telloがコマンドの通りに飛行すれば,元の場所に戻ってくるはずです.
上記のプログラムを実行してみた結果の動画は以下のようになります.
Y.P.S. が上手く動作していないと,1回目のフライトのように離陸場所と着陸場所がずれますが,2回目のフライトでは,離着陸の場所がほぼ同じなので,V.P.S. がそれなりに上手く動作したようです.
各命令が実行されると,nodeを立ち上げているターミナルには以下のように表示されます.
send: takeoff
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: forward 50
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: up 50
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: forward 100
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: ccw 90
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: forward 100
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: ccw 90
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: forward 150
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: ccw 180
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: right 100
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: down 50
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
 
send: land
Data received from server : ok
Received 2 bytes from xxx.xxx.x
上記の"x"には数字が入ります.