・Scratchオフラインエディター(現在、Ver.2.0)
・Node.js
・Adobe AIR
が必要です.これらのセットアップに関しては,過去の投稿(macOS編,Windows編)を参照して下さい.また,Scratchの基本についても過去の投稿を参照して下さい.
TelloをScratchでプログラミングして動かすには
・Scratchでプログラム作成
・Nodeプログラム起動
・Wi-Fi接続(Telloとコンピュータ)
が必要になります.以下は,トライアルでプログラミングしてみた際のメモです.
まずは,Telloの電源を入れます.しばらくするとWifi接続が可能になるので,とコンピューターを接続します.
ターミナルを起動して,事前にダウンロードしてあるTello.jsのあるディレクトリに移動して,nodeを起動してTello.jsを読み込みます*(Scratchのセットアップについては以前の投稿Windows編,macOS編を参照して下さい).
$ cd Tello.jsのあるディレクトリの場所
$ node Tello.js
*毎回Tello.jsのあるディレクトリを探してそこに移動するのは面倒なので,作業用のディレクトリをデスクトップにでも作成して,その中にTello.js, Tello.s2e, TelloChs.s2eを入れておくと便利です.そして,ターミナルを起動して,"cd"と入力した後に,そのディレクトリをターミナルにドラッグ&ドロップすると,そのディレクトリの場所が表示されます.
下図は,作業用フォルダとして"Tello Project"というディレクトリを作成して,その中に必要なファイル(Tello.js, Tello.s2e, TelloChs.s2e)を入れた場合の例です.
ターミナルで"node Tello.js"と入力すると以下のように表示されます.
$ node Tello.js
---------------------------------------
Tello Scratch Ext running at http://xxx.x.x.x:xxxx/
---------------------------------------
(node:655) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
server listening x.x.x.x:xxxx
send: command
Data received from server : ok
Received 2 bytes from xxx.xxx.xx.x:xxxx
なお,上記で"x"と表示されている箇所には数字が入ります.
Scratch2.0 Offline Editorを起動します.Scratch2.0 Offline Editorの"File"メニューをShiftキーを押しながらクリックして,"Import Experimental HTTP Extension (実験的なHTTP拡張の読み込み)"をクリックして,Tello.s2eを読み込みます.
Scratch2.0 Offline Editorを使って,プログラムを作成します.
例えば,Scratchブロックパレット,Script(スクリプト)>More Blocks(その他)から[takeoff] をスクリプトエリアにドラッグ&ドロップすると,離陸(Take Off)の命令をプログラムしたことになります.
以下に,離陸(takeoff)と着陸()だけの命令を持っているプログラム例を示します.
下図はブロックパレットの拡大です.
このプログラムは,
- "t"を押したときに離陸(takeoff)
- "l"を押したときに着陸(land)
そこで,離陸,着陸に加えて,50cm前に進む,50cm後ろに下がるという命令を持つプログラムを作成してみます.
ブロックパレットを拡大すると,以下のようになります.
先の例と同じように
- "t"を押すと離陸(takeoff)
- "l"を押すと着陸,"space"を押すと緊急停止(emergency stop)
- "f"を押すと50cm前進(fly forward 50cm)
- "b"を押すと50cm後進(fly backward 50cm)
このプログラムを実行してみた際の動画は,以下のようになります.
なお,上記の動画を実行した際に,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: back 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.xx.x:xxxx
send: reset_all
0 件のコメント :
コメントを投稿