Linux活用レシピ > ドローンに活用 > ドローンをRaspberry PiとScratchを使って自動飛行させる方法
このページでは、ドローン「TELLO」をRaspberry PiとScratchを使って自動飛行させる方法を紹介します。


ドローンをラズパイとScratchで自動飛行させる方法
Telloの自動飛行中のリアルタイム動画を表示する

それでは、Telloのカメラのストリーミングを制御するブロックを仕込んだScratchプログラムを実行し、Telloの自動飛行中のリアルタイム動画を表示させてみます。

Tello用Scratchスクリプトセット ストリーミング用を読込

    それでは、プログラムを「Scratch2」から読み込ませます。
    ファイルメニューから「Load Project」を選択します。 スクラッチ
    Tello用Scratchスクリプトセット ストリーミング用(ここでは「Tello-Visual2.sb2」)を指定して、「開く」ボタンをクリックし、読み込みます。

    スクラッチ
    現在のプログラムと置き換えるか確認がありますので、「OK」をクリックします。

    スクラッチ

    ロードが完了すると、以下の通り読み込まれます。

    スクラッチ しかし、ブロックが「undifined」になっているので、

    スクラッチ

    ScratchのTELLO拡張(その2〜ストリーミング拡張〜)の読み込みを以下の通り行います。
    スクラッチ メニューからキーボードの「SHIFT」キーを押しながら、「ファイル」メニューをクリックし、表示される「"Import experimental extension"」をクリックします。

    URLに「"/home/pi/Downloads/tellocontJp2.js"」と入力し、「Load」ボタンをクリックして、ストリーミングのオンオフのコードを入れたブロックが追加されているTELLO拡張ファイルを読み込みます。

    スクラッチ
    読み込みが完了すると、以下の通りになり、

    スクラッチ 「undifined」だったブロックが正常に表示されました。

    スクラッチ

    これで離陸時と着陸時にそれぞれ「動画開始」「動画終了」をセットたスクリプトが準備できました。


Raspberry PiとTELLOをWiFiで接続

    TELLOを制御するにはWiFiで接続する必要があります。
    まずは、TELLOの電源を入れましょう。

    TELLOの正面のLEDが激しく点滅したら準備完了です。
    以下の通り、OS「Raspbian」で、右上のネットワーク部分をクリック


    「TELLO-」から始まるTELLOのSIDを選択します。

    以下の通りWiFiの表示が変わったら、Raspberry PiとTELLOがWiFiで接続できました。


Tello.jsの実行

    TELLOをScratchでコントロールするには、「Node.js」を使って「Tello.js」を裏で実行しておく必要がありますので、以下の手順で実行してください。

    まず、Raspbianのメニューから赤枠の部分をクリックしてターミナルを起動します。


    「Tello.js」は準備段階で、ホームディレクトリの「Downloads」の「Scratch」ディレクトリに保存しましたので、以下のコマンドで、カレントディレクトリを変更します。
    pi@raspberrypi:~ $ cd ~/Downloads/Scratch/[ENTER]
    pi@raspberrypi:~/Downloads/Scratch $ 
    

    「Tello.js」を実行します。
    pi@raspberrypi:~/Downloads/Scratch $ node Tello.js[ENTER]
    


リアルタイム動画をキャッチできるよう、mplayerの実行準備をする

    Scratchで自動飛行が始まったらすぐにTELLOのカメラの動画をリアルタイムでキャッチできるよう、別のターミナルで以下の通りパラメータを指定してmplayerの実行準備を行います。
    pi@raspberrypi:~ $ mplayer udp://0.0.0.0:11111 -fps 25
    
    これで、あとは[ENTER]キーを入力すれば、TELLOのカメラの動画をリアルタイムでキャッチできるように準備が出来ました。

自動飛行の開始と動画のリアルタイム表示

    それでは、TELLOを飛ばします。以下の赤枠の「キーが押されたとき」部分をマウスでクリックすると、TELLOのフライトが始まります。

    スクラッチ
    すぐに、先ほどのターミナルで用意しておいたmplayerを[ENTER]キーを入力し、実行します。
    pi@raspberrypi:~ $ mplayer udp://0.0.0.0:11111 -fps 25[ENTER]
    
    いかがでしょうか、TELLOが離陸後、四角形を描いてそののち着陸しますが、その動画がRaspberry Piに接続したモニタに表示されますよね。


    TELLOをRaspberry PiのScratchで自動飛行させカメラ動画を表示するオペレーション
    以上の手順を実際に動画で記録したのが以下になりますので参考にしてください。

    ドローン「TELLO」の外から見た動きは以下のようになります。