Pythonで制御することが多いRaspberryPiですが、ここではC言語でRaspberry PiのGPIOを操作します。
C言語でのGPIOを操作するためのライブラリとして「wiringPi」を使用します。
RaspberryPiとLEDとの接続は、GPIOでLEDの点滅(Python)と同じものとします。
「wiringPi」のインストール
「wiringPi」をダウンロードして、インストールする手順は以下の通りとする。
ソフトパッケージがないため、ソースコードから取得します。ソースコードの取得には、gitを使用するため、gitがインストールされていない場合は、「apt-get install git」として、インストールします。
gitでソースコードを取得して、コンパイルします。
コンパイルが完了すると、インストールが始まります。
$ git clone git://git.drogon.net/wiringPi $ cd wiringPi $ ./build
インストールが完了したら、バージョンを表示して確認してみましょう。
$ gpio -v gpio version: 2.14 Copyright (c) 2012-2014 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. For details type: gpio -warranty This Raspberry Pi is a revision 2 board.
動作確認
「wiringPi」では、プログラムを書かなくても、コマンドを打つだけでGPIOを制御可能です。GPIO17をONにして、LEDを点灯させてみましょう。
$ gpio -g write 17 1
消灯するには、以下のコマンドを実行します。
$ gpio -g write 17 0
サンプルプログラム
GPIO17にLEDを接続して、点灯、消灯を繰り返す簡単なプログラムを描いてみましょう。
#include <wiringPi.h> #define GPIO17 17 int main(void) { int i; if(wiringPiSetupGpio() == -1) return 1; pinMode(GPIO17, OUTPUT); for(i=0; i<10; i++){ digitalWrite(GPIO17, 0); delay(950); digitalWrite(GPIO17, 1); delay(50); } digitalWrite(GPIO17, 0); return 0; }
ソースコードを書き終わったら、プログラムのコンパイル&実行を行う。
コンパイルはgccコマンドで行いますが、「-lwiringPi」で、ライブラリをリンクする必要があります。
以下のコマンドを実行すると、LEDを点滅させることができます。
$ gcc -o sample wiringpi_sample.c -I/usr/local/include -L/usr/local/lib -lwiringPi $ ./sample
Pythonだけでなく、GPIOもC言語で同じように制御することができます。