Raspberry Pi 2の目玉機能の一つであるGPIOの操作をやってみたいと思います。
どうも手動でファイル操作を行うことでも操作ができるらしいので早速試してみました。
ブレッドボードにLEDと適当な抵抗を付けて、グランドと22番ポートを接続しました。
ポートの設定や操作はrootである必要があるのでsuコマンドでrootになっておきます。
22番ポートを有効にして、モードを出力に設定します。
sudo su echo 22 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio22/direction
ON/OFFの制御は以下のコマンドになります。
echo 1 > /sys/class/gpio/gpio22/value echo 0 > /sys/class/gpio/gpio22/value
LEDの点灯や消灯ができました!
これでプログラムを組むこともまぁできなくはないのですが、ライブラリ+C言語でやってみます。
ライブラリはwiringPiを使ってみることにしました。
wiringPiのインストール
git clone git://git.drogon.net/wiringPi cd wiringPi ./build
インストールが完了するとアプリもインストールされます。
これでバージョンの確認ができます。
gpio -v
このアプリからもGPIOの制御ができます。
gpio -g write 22 1 ##LED ON gpio -g read 22 ##ポートの状態を読み込む gpio -g write 22 0 ##LED OFF
最後の1とか0がON/OFFになります。
では、C言語でやってみます。
test.cpp
#include <wiringPi.h> #define GPIO22 22 int main(void){ int i; if(wiringPiSetupGpio() == -1) return 1; pinMode(GPIO22,OUTPUT); for(i=0;i<1000;i++){ digitalWrite(GPIO22,0); delay(1000); digitalWrite(GPIO22,1); delay(1000); } digitalWrite(GPIO22,0); return 0; }
コンパイルと実行は
gcc -o test test.cpp -lwiringPi ./test
1秒おきに点灯、消灯を繰り返すプログラムができました。
今回はLEDの点灯、すなわち出力ですが、次回は入力をやってみたいと思います。
コメント
[…] ということで、前回に引き続き、今回はGPIOでの入力をしてみたいと思います。 […]