TurtleRealを作る
安曇野の森から> TurtleRealを作る> GPIOのアクセス方法
Raspberry Piでは仮想ディレクトリ/sys/class/gpioを通してGPIOにアクセス出来ます。
古いバージョンのRASPBIANでは、この仮想ディレクトリをアクセスするのにルート権限が必要でしたが、最近のバージョンではユーザー権限でもアクセス出来るようになりました。
以下のコマンドで仮想ファイル/sys/class/gpio/exportにポート番号を書き込むと/sys/class/gpio内に"gpio"にポート番号が付いた仮想ディレクトリが作成されます。
例えばポート番号に"2"を入れて上記コマンドを実行すると「/sys/class/gpio/」内に「gpio2」という仮想ディレクトリが作成されます。
この仮想ディレクトリ内にGPIOの入出力方向を設定する仮想ファイル「direction」と入出力値を読み書きする仮想ファイル「value」が作成されます。
ポートがGPIO2の場合、以下のコマンドで仮想ファイル/sys/class/gpio/gpio2/directionに"out"を書くと出力、"in"を書くと入力になります。
ポートGPIO2を出力に設定した場合は以下のコマンドで仮想ファイル/sys/class/gpio/gpio2/valueに出力値を書くと、その値がGPIO2に出力されます。
ポートGPIO2を入力に設定した場合、以下のコマンドで仮想ファイル/sys/class/gpio/gpio2/valueからGPIO2の入力値を読み出すことが出来ます。
プログラムからは上記仮想ファイルを普通のファイルと同じようにオープンして読み書きすればGPIOにアクセスすることが出来ます。
以下にサンプルコードを示します。
exportにポート番号7を書いてから、実際に仮想ディレクトリ"/sys/class/gpio/gpio7"が生成されるまで、少し時間がかかります。すぐに"/sys/class/gpio/gpio7"を使おうとするとオープンエラーになることがありましたので注意してください。