7.wiringPiを実装する
シェルスクリプトを用いてのgpioの制御は、LEDの点滅のような単純な場合には、大きな問題を生じない。しかし、本格的なプログラムを書くときは適しているとは言えない。Raspberry Piにはgpioの制御のためにwiringPiというライブラリが用意されている。そこで、これを実装し、ラッピングしてHaskellで利用することを考える。
将来、センサやモータの間でI2Cプロトコルによる制御の可能性もあるので、これも実装することとする。これには、
sudo apt-get install libi2c-dev
を行う。
ubuntu mateをインストールした直後だと、後で利用するgitとmakeのライブラリが実装されていないので、これを実装する。
sudo apt-get install git-core sudo apt-get install build-essential
次に、wiringPiのソースコードを取得する。なお、githubにもソースコードがあるが、これは他の目的のために用意されたものなので、下記から取得する(第一世代と第二世代を両方支援しているソースコードを用いること。ビルドするときにハードウェアが自動的に認識され、そのためのライブラリが作成される)。
git clone git://git.drogon.net/wiringPi
ソースコードはカレントディレクトリの直下にwiringPiというディレクトリが作成され、そこに納められている。そこで、これをビルドする。
cd wiringPi
./build
正しくビルドされているかを確認する。
gpio -v
Raspberry Pi 2用になっているというメッセージが表示されれば使用可能である。
wiringPiはコマンドでも利用することができるので、例によって、LEDを点滅させてみる。
gpio -g mode 4 out gpio -g write 4 1 (LEDが点灯する) gpio -g read 4 (値を調べる。1が返ってくる) gpio -g write 4 0 (LEDが消灯する) gpio -g read 4 (値を調べる。0が返ってくる)
次回はwiringPiをラップし、Haskellから使えるようにする。