Linux活用レシピ > ドローンに活用 > ドローンをRaspberryPiとGoで自動飛行させカメラ動画を撮影し録画する方法
このページでは、ドローン「TELLO」をRaspberry PiとGoで自動飛行させカメラ動画を撮影し録画する方法を紹介します。


ドローンをラズパイとGoで自動飛行&撮影(録画)する方法
Go」(Go言語[Golang])プログラミング環境の準備

Goの準備

    ここまでで準備した「RaspberryPi」に、モニタ・ケーブル類を接続し、OS「Raspbian」が入ったmicroSDカードを挿して、電源を入れて起動します。

    「Raspbian」には今回使う「Go」(Go言語[Golang])が標準で入っていませんのでインストールしていきます。

    インストールはターミナルを使ってインターネットに接続した環境で行いますので、「RaspberryPi」をLANケーブルや、無線に接続しインターネットに接続できるようにしてください。

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

    ここで、インターネットからGoをダウンロードします。
    ダウンロードするファイルは、2019/03/02時点で公開されている「go1.10.8.linux-armv6l.tar.gz」を選んでいますが、都度最新に更新されていると思いますので、Goのダウンロードサイト「https://golang.org/dl/」で確認して、読み替えてコマンドを実行してください。
    また、「Raspberry Pi Model B」及び「Raspberry Pi Model B+」は、「linux-armv6l」とファイル名が付いているのを選んでください。

    以下のコマンドで、インターネットからGoをダウンロードします。
    pi@raspberrypi:~ $ wget https://golang.org/dl/go1.10.8.linux-armv6l.tar.gz[ENTER]

    以下のコマンドで、解凍してインストールを行います。
    pi@raspberrypi:~ $ sudo tar -C /usr/local -xzf go1.10.8.linux-armv6l.tar.gz[ENTER]

    以下のコマンドで、ファイルやディレクトリが表示されれば、インストール出来ています。
    pi@raspberrypi:~ $ ls -l /usr/local/go[ENTER]
    合計 184
    -rw-r--r--  1 root root 47028  1月 24 04:56 AUTHORS
    -rw-r--r--  1 root root  1339  1月 24 04:56 CONTRIBUTING.md
    -rw-r--r--  1 root root 61940  1月 24 04:56 CONTRIBUTORS
    -rw-r--r--  1 root root  1479  1月 24 04:56 LICENSE
    -rw-r--r--  1 root root  1303  1月 24 04:56 PATENTS
    -rw-r--r--  1 root root  1555  1月 24 04:56 README.md
    -rw-r--r--  1 root root     8  1月 24 04:57 VERSION
    drwxr-xr-x  2 root root  4096  1月 24 04:56 api
    drwxr-xr-x  2 root root  4096  1月 24 05:08 bin
    drwxr-xr-x  8 root root  4096  1月 24 04:56 doc
    -rw-r--r--  1 root root  5686  1月 24 04:56 favicon.ico
    drwxr-xr-x  3 root root  4096  1月 24 04:56 lib
    drwxr-xr-x 14 root root  4096  1月 24 05:08 misc
    drwxr-xr-x  5 root root  4096  1月 24 05:08 pkg
    -rw-r--r--  1 root root    26  1月 24 04:56 robots.txt
    drwxr-xr-x 46 root root  4096  1月 24 04:57 src
    drwxr-xr-x 20 root root 12288  1月 24 04:57 test
    

    以下のコマンドで、バージョン確認が出来ます。
    pi@raspberrypi:~ $ cat /usr/local/go/VERSION[ENTER]
    go1.10.8pi@raspberrypi:~ $
    ^^^^^^^^これがバージョン
    

    インストールできれば、パスを通します。
    viで~/.bashrcをオープン、
    pi@raspberrypi:~ $ vi ~/.bashrc[ENTER]
    
    一番最後に、以下の通りパスを追加します。
    # GO
    export PATH="$PATH:/usr/local/go/bin"
    

    以下のコマンドで、~/.bashrcの設定内容をすぐに反映します。
    pi@raspberrypi:~ $ source ~/.bashrc[ENTER]
    

    パスの確認をします。
    pi@raspberrypi:~ $ echo $PATH[ENTER]
    
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin
    /usr/local/go/binがあればOK
    
    「Go」コマンドが見つかるか確認をします。
    pi@raspberrypi:~ $ which go[ENTER]
    /usr/local/go/bin/go
    ^^^^^^^^^^^^^^^^^^^^Goがインストールされているフルパスが出ればOK
    

    テストプログラムを作成してみます。
    viでhello.goを作成
    pi@raspberrypi:~ $ vi hello.go[ENTER]
    
    以下の通りテストプログラムを書いて保存します。
    package main
    
    import "fmt"
    
    func main() {
        fmt.Printf("hello, world\n")
    }
    テストコマンドを実行します。
    pi@raspberrypi:~ $ go run hello.go[ENTER]
    hello, world
    ^^^^^^^^^^^^「hello, world」が表示されればOK
    

    GoのTELLO用ライブラリが、Gobotというロボット・IoT系のライブラリの子ライブラリとして用意されているので、以下のコマンドで追加します。
    pi@raspberrypi:~ $ go get -d -u gobot.io/x/gobot/platforms/dji/tello[ENTER]
    pi@raspberrypi:~ $
    コンソールが戻ってくればOK
    

以上でGoプログラミング環境の準備は完了です。