CodeLab技術ブログ

プログラミング技術まとめ

Raspberrypi2でLEDチカチカをやってみる

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の点灯、すなわち出力ですが、次回は入力をやってみたいと思います。