2017年1月29日日曜日

Raspberry Pi GPIO

 Raspberry Pi で GPIO (汎用入出力)にアクセスする場合はデバイスドライバー経由でおこなうのが通常ですが、以前に紹介した WiringPi (Shell でLチカ) を使ってShell から直接アクセス, または C言語で関数を作ってアクセスする方法があります。(WiringPi ライブラリが一種のデバイスドライバーになります。)  
 そのほかに特殊なファイルを経由して簡単にアクセスすることもできます。

/sys/class/gpio ディレクトリに特殊なファイルがあります。 cd コマンドで移動して ls コマンドで中を覗いてみると


pi@raspberrypi:/sys/class/gpio $ ls
export  gpiochip0  gpiochip100  unexport


 見慣れないファイルがあります。この export ファイルに echo コマンドで指示を送ると GPIO へのアクセスファイルが出来ます。そして、入力とするか出力とするか等を設定できます。

GPIO17 ( Pin #11 ) を出力に設定して、LEDをON/OFFするには


echo コマンドで 17 を使いますよと宣言を行います。


pi@raspberrypi:/sys/class/gpio $ echo 17 > export


これで、gpio17 ができる。


pi@raspberrypi:/sys/class/gpio $ ls -l
合計 0
-rwxrwx--- 1 root gpio 4096  1月 29 13:57 export
lrwxrwxrwx 1 root gpio    0  1月 29 13:57 gpio17 -> ../../devices/platform........
lrwxrwxrwx 1 root gpio    0  1月 29 12:01 gpiochip0 -> ../../devices/platform.....
lrwxrwxrwx 1 root gpio    0  1月 29 12:01 gpiochip100 -> ../../devices/platform...
-rwxrwx--- 1 root gpio 4096  1月 29 12:01 unexport


その後に出力として使いますよ!と 宣言する。


pi@raspberrypi:/sys/class/gpio $ echo out > gpio17/direction


echo コマンドで 1 の指示を与えると GPIO17 が Hi  出力となり 3.3 v が出ます。
echo コマンドで 0 の指示を与えると GPIO17 が Low 出力となり 0v となります。

すなわち、これで LED の ON/OFF が出来ます。



pi@raspberrypi:/sys/class/gpio $ echo 1 > gpio17/value LED点灯

pi@raspberrypi:/sys/class/gpio $ echo 0 > gpio17/value LED消灯


使い終わったら、後始末して終了します。


pi@raspberrypi:/sys/class/gpio $ echo 17 > unexport


0 件のコメント:

コメントを投稿