Go言語が面白そうなのでRaspberry Pi 3で動かして見ようと思う。
- インストール
2017.04.04現在,Raspbianのapt-getでインストールできるのは古いver.1.7なので,現行版をダウンロードサイトからwgetします。
ダウンロードサイト https://golang.org/dl/(最新版は1.11.2です。2019.01.18)$ wget https://storage.googleapis.com/golang/go1.11.4.linux-armv6l.tar.gz $ sudo tar -C /usr/local -xzf go1.11.4.linux-armv6l.tar.gz
- /usr/local/go/binにPATHを通す。
~/.bashrcファイルの末尾に export PATH=$PATH:/usr/local/go/bin を追加します。
- /usr/local/go/bin/goにSUIDを付与しておきます。これによりgoは常にroot権限で実行されます。
$ sudo chmod +s /usr/local/go/bin/go
- テスト
source .bashrcを実行するか,一旦ログアウトして再度ログインします。
$ go version go version go1.11.4 linux/arm
- Hello World
- ソース・ファイルhello.goを書きます。
package main import "fmt" func main() { fmt.Printf("Hello World\n") }
- そのまま実行
$ go run hello.go Hello World
- ビルドして実行
$ go build hello.go $ ls hello hello.go $ ./hello Hello World
- ソース・ファイルhello.goを書きます。
- WebサーバでHello World
- ソース・ファイル server.go
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }
- 実行
$ go run server.go
プラウザで http://”RasPiのIPアドレス”:8080/ を開くとHello Worldが表示される。
- ソース・ファイル server.go
チュートリアルサイト:A Tour of Go (Japan)
Go言語でLチカ
- 配線
GPIOヘッダーの7番ピンにLEDを接続する。 - GOBOTのインストール
$ go get -d -u gobot.io/x/gobot/...
- raspiプラットフォームのインストール
$ go install gobot.io/x/gobot/platforms/raspi
- ソース・ファイル raspi_blink.go
package main import ( "time" "gobot.io/x/gobot" "gobot.io/x/gobot/drivers/gpio" "gobot.io/x/gobot/platforms/raspi" ) func main() { r := raspi.NewAdaptor() led := gpio.NewLedDriver(r, "7") work := func() { gobot.Every(1*time.Second, func() { led.Toggle() }) } robot := gobot.NewRobot("blinkBot", []gobot.Connection{r}, []gobot.Device{led}, work, ) robot.Start() }
- ビルドしてsudoで実行
$ go build raspi_blink.go $ sudo ./raspi_blink
GPIOを使う場合はsudoでプログラムを実行する。
- 参考 githubhttps://github.com/hybridgroup/gobot/tree/master/platforms/raspi