はじめに
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)
インストール
- 下記URLを開く
https://golang.org/dl/ -
go1.12.7.windows-amd64.msiリンクをクリックしてインストーラをダウンロード - ダウンロードした
go1.12.7.windows-amd64.msiをダブルクリック - デフォルト値のまま
次へを押下し続けてインストール完了
稼働確認
-
{任意のフォルダ}/src/helloの配下にファイルhello.goを作成hello.gopackage main import "fmt" func main(){ fmt.Printf("hello, world\n") } -
hello.goがある場所で下記コマンドを実行$ go build $ hello hello, world
Gobotインストール
-
上記サイト内の
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/
-
{任意のフォルダ}/src/telloの配下にtelloTakeOff.goを作成telloTakeOff.gopackage 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() } -
Telloの電源を入れる
-
TelloとPCをWifi接続する
-
telloTakeOff.goがある場所で下記コマンドを実行$ go run telloTakeOff.go-> Telloが離陸して5秒後に着陸する
※ コマンド実行時に警告が表示されるので適宜対処
動くところ
https://t.co/99nRwDBBDh
— h.fujikawa (@mogumogu_kaeru) 2018年7月7日
gobotでTelloとばすの簡単すぎてヤバい。golangセットアップ含めて。
ドローンプログラミング教材としてもnode.js +mamboよりこっちのがお手軽かも。#tello #gobot #drone pic.twitter.com/nk7c6hWTr8