番外編 Dell Edge Gateway 3001は素人でも使えるのか その3 外部に出ているGPIOポート-2
GPIOをアクセスします。sysfsという仮想ファイル・システムを利用します。作業はrootで行い、最初に当該GPIOポートをエクスポートします。
GPIO0は330、順番にGPIO7は337にマッピングされています。したがって、GPIO0を利用するときは、次のようにエクスポートします。最初にrootになります。rootを抜けるのはexitです。
$ sudo su - # echo 330 > /sys/class/gpio/export # cd /sys/class/gpio/gpio330 |
エクスポートすると、ディレクトリgpio330ができます。その中に、三つのテキスト・ファイルができます。
- active_low 0;正論理、1;負論理
- direction デフォルトは不定?もしくは前回の状態を引きづる。outは出力、inは入力
- value デフォルト0、1でHIGH
# echo 1 >value |
でGPIO0はHigh状態になります。
# echo 1 >active_low |
にしておくと、
# echo 1 >value |
で、Lowになり、
# echo 0 >value |
で、Highになります。GPIO0には定電流回路の入った赤色LEDをつないでいます。
GPIO1をエクスポートします。
# cd /sys/class/gpio/ # echo 331 > export |
入力にします。
# cd gpio331 # echo in >direction # cat value 0 |
GPIO0とGPIO1をケーブルでシュートし、GPIO1を読み出します。
# cat value 1 |
さきほど、GPIO330にはvalueには0を書き込みましたが、active_lowを1を書き込んで負論理にしたのでTrueという解釈のようです。
再起動すると、エクスポートの情報はなくなってしまいます。