概要
WiringPiはRaspberry PiのGPIOを制御するためのC言語ライブラリです。
Raspberry PiのGPIOは、仮想ファイルへ割り当てられているためシェルを使うのであれば
$sudo echo 1 > /sys/class/gpio/gpio18/value
echoコマンドを使って、設定することが出来ます。
プログラム初学者には、分かりやすいのかも知れませんが、プログラム言語から制御するには、ちょっと面倒です。
Raspberry Piは、プログラム言語から利用しやすいように処理をラッピングしてくれます。
ライブラリの準備
I2Cライブラリのインストール
WiringPiからI2C通信を行う際に呼び出されるライブラリとなります。
I2C通信しないなら必要ないようですが念のためインストールしておきましょう。
$sudo aptitude install libi2c-dev
WiringPiのインストール
gitでソースコードを取得してコンパイルをします。
$git clone git://git.drogon.net/wiringPi
ソースコードが取得し終わったらビルドします。
ビルドが成功するとインストールされますので、コマンドを確かめるためバージョンを確認します。
$cd wiringPi/
$./build
$gpio -v
gpio version: 2.20
Copyright (c) 2012-2014 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
Raspberry Pi Details:
Type: Model B+, Revision: 1.2, Memory: 512MB, Maker: Sony
gpioコマンドの動作確認
ブレッドボードなどを使って、GPIO25にLEDを接続します。
下記のコマンドは、GPIO25を出力へ設定して、点灯、消灯をテストしています。
$gpio -g mode 25 out
$gpio -g write 25 1
$gpio -g write 25 0
C言語での制御
C言語から利用するのは、簡単です。
$gcc -o test test.c -lwiringPi
$sudo ./test
test.c
#include <wiringPi.h>
#define GPIO25 25
int main(void) {
if(wiringPiSetupGpio() == -1) {
return 1;
}
pinMode(GPIO25, OUTPUT);
digitalWrite(GPIO25, 1);
delay(1000);
digitalWrite(GPIO25, 0);
}