読者です 読者をやめる 読者になる 読者になる

bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

Haskell+Ubuntu Mate+Raspberry Pi (2)

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から使えるようにする。