番外編 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という解釈のようです。

 再起動すると、エクスポートの情報はなくなってしまいます。