LoginSignup
11
10

More than 3 years have passed since last update.

Go言語(Gobot)でミニドローンTelloをプログラミング操作する

Last updated at Posted at 2018-07-20

はじめに

GobotというGo言語でIoTやロボットプログラミングするためのライブラリを使って、Ryze Tech社のミニドローンTelloをプログラミング操作して飛ばす方法があまりにも簡単すぎて感動したので手順をシェアします。
前提のバージョンなどは下記の通り。(2019年7月現在)

Software Version
OS Windows 10 バージョン1809 (OS ビルド 17763.615)
Go言語 1.12.7
Gobot 1.11

Go言語プログラム作成用には適宜任意のエディタを導入してください。私はVS Codeを使ってます。

Go言語セットアップ(Windows)

インストール

  1. 下記URLを開く
    https://golang.org/dl/
  2. go1.12.7.windows-amd64.msiリンクをクリックしてインストーラをダウンロード
  3. ダウンロードしたgo1.12.7.windows-amd64.msi をダブルクリック
  4. デフォルト値のまま次へ を押下し続けてインストール完了

稼働確認

  1. {任意のフォルダ}/src/hello の配下にファイルhello.go を作成

    hello.go
    package main
    import "fmt"
    
    func main(){
        fmt.Printf("hello, world\n")
    }
    
  2. hello.go がある場所で下記コマンドを実行

    $ go build
    $ hello
    hello, world
    

Gobotインストール

  1. 下記URLを開く
    https://gobot.io/documentation/getting-started/
  2. 上記サイト内の Installing Gobot を参考に下記コマンドを実行

    $ go get -d -u gobot.io/x/gobot/...
    

GobotからTelloを操作する

※ 参考URL https://gobot.io/blog/2018/04/20/hello-tello-hacking-drones-with-go/

  1. {任意のフォルダ}/src/tello の配下に telloTakeOff.goを作成

    telloTakeOff.go
    package main
    
    import (
        "time"
    
        "gobot.io/x/gobot"
        "gobot.io/x/gobot/platforms/dji/tello"
    )
    
    func main(){
        drone := tello.NewDriver("8888")
    
        work := func() {
            drone.TakeOff()
    
            gobot.After(5*time.Second, func(){
                drone.Land()
            })
        }
    
        robot := gobot.NewRobot("tello",
            []gobot.Connection{},
            []gobot.Device{drone},
            work,
        )
    
        robot.Start()
    }
    
  2. Telloの電源を入れる

  3. TelloとPCをWifi接続する

  4. telloTakeOff.goがある場所で下記コマンドを実行

    $ go run telloTakeOff.go
    

    -> Telloが離陸して5秒後に着陸する

    ※ コマンド実行時に警告が表示されるので適宜対処

動くところ

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10