はじめまして、エウレカという会社でWebエンジニアをしている小島と申します。
業務ではpairsというサービスの開発・運用チームで、pairsをGo言語で書き直すフルスクラッチ開発を担当しています。自宅では自作スマート家電開発・スマートホーム化を目指し趣味で「Raspberry Pi」を使用して電子工作したりしています。
今回はRaspberry Pi × Go言語で「センサーに手をかざすと通知が来る」という、外部ハードウェアと連携させて動かす仕組みをつくってみようと思います。Raspberry Piを買ったけれど、何をしたら良いのかわからないという方や、電子工作に興味のある方の参考になれば幸いです。
Raspberry Pi上にGo環境を設定する
開発時の動作確認を簡単にするため、Raspberry Pi上に直接Goの開発環境をつくります。
使用機器
本体:Raspberry Pi TypeB 512MB
Raspberry Pi Type B 512MB
- RS Components Ltd (ソースマーキング及び販売 Umemoto LLP)
- 価格¥ 4,820(2016/01/14 17:48時点)
- 商品ランキング28,307位
OS:Raspbian JESSIE https://www.raspberrypi.org/downloads/raspbian/
SDカード:32GB http://www.amazon.co.jp/dp/B004BDNLZI
1. 各種パッケージのインストール
Goを「apt-get」でインストールできれば一番手っ取り早かったのですが、うまく動かない・古いバージョンしかないなど環境設定だけで辛くなりそうでしたのでここはGoのソースをクローンして直接ビルドします。
まずはGoをビルドするのに必要なパッケージをインストールします。
$ sudo apt-get install -y gcc libc6-dev mercurial[/sourcecode]
2. Goのソースコードをクローン
$ cd /usr/local
$ sudo hg clone -u default https://code.google.com/p/go
[/sourcecode]作業フォルダ直下にGoがダウンロードされます。
3. Goをビルド
$ cd go/src
$ sudo ./make.bash
[/sourcecode]※ビルドに30分以上はかかりますので、ご辛抱ください。
4. 最後にGOROOT,PATH,GOPATHを設定
#ダウンロードしたgoファイルパスを指定
export GOROOT=/path/to/go
# go コマンドを使用するためのパス設定
export PATH=$PATH:$GOROOT/bin
# go get でソースをダウンロードするファイルパス
export GOPATH=/repos/gohome # どのディレクトリでも指定可[/sourcecode]
さて、これでGoを使用できる環境が整いました。
Goを動かしてみる
「Hello World」で動作を確認します。
適当なディレクトリに下記「main.go」ファイルを作成し、「go run」コマンドで実行します。
package mainimport "fmt"
func main() {
fmt.Println("Hello world!")
}
[/sourcecode]
$ go run main.go
Hello world!
[/sourcecode]これでやっと「Raspberry Pi」でGoの実行環境が整いました。
次はハードウェアとの連携をしてみましょう。次のページ