"GPIO" (General Purpose I/O)

"GPIO"は,Wolfram言語を実行しているプロセッサに直接接続したデジタルピンを通して,低レベルの汎用入出力を提供する.

注: デフォルトで"GPIO"は,任意のピンを読取りモードでも書込みモードでも使うことができる.DeviceConfigureを使って,特定のピンを読取りあるいは書込み用に設定することができる.

  • GPIOピンの可能な値は0と1であり,それぞれ"low"と"high"に対応する.
  • "GPIO"のピンは整数で指定することができる.
  • Raspberry Piでは,読取りと書込みに4,7,8,9,10,11,14,15,17,18,22,23,24,25,28,29,30,31のピンが使用可能である.
  • Raspberry Piでは,ピンは"WiringPin"の形式で指定することにより,WiringPiの番号付けスキームを使って参照することもできる.
  • デバイス発見

    • FindDevices["GPIO"]は,使用中のシステムでGPIOが使用可能である場合には,GPIO DeviceObjectを返す.

    デバイスを開く

    • GPIOは,あればいつでもアクセス可能で,接続のためのステップを踏む必要はない.
    • DeviceOpen["GPIO"]は必要ではないが,これを使って,特性の問合せを行うことができるDeviceObjectを得ることは可能である.

    デバイスの設定

    • GPIOでは設定は必要ない.設定しなくても,任意のピンが読取りと書込みにおいて,入力と出力の間で自動的に切り換わる.ただし,意図しない方向でピンが使われると,システムの故障に繋がることがあることに注意されたい.
    • DeviceConfigure["GPIO",n->dir]

      ピン n の方向を dir に設定する.

      DeviceConfigure["GPIO",{n1->dir1,n2->dir2,}]

      ピン pini について方向 diri を設定する.

    • 可能な方向は,"Input""Output"Noneである.
    • 方向をNoneに設定すると,以前に設定されていたピンがある場合には,それが解放される.
    • DeviceConfigureは,非同期のタスクにアクセスされているピンを設定しようとすると,その要求を無視する.
    • GPIOピンをその設定と整合しない方向で使おうとすると,エラーが生成される.

    データの読取り

      DeviceRead["GPIO",p]

      GPIOピン p の値を与える.

      DeviceRead["GPIO",{p1,p2,}]

      複数のGPIOピン pi の値のリストを与える.

    • GPIOピンの値は常に0あるいは1である.
    • デフォルトで"GPIO"は,任意のピンを読取りモードでも書込みモードでも使うことができる. DeviceConfigureを使って,特定のピンを読取りあるいは書込み用に設定することができる.

    データの書込み

      DeviceWrite["GPIO",p->v]

      v をGPIOピン p に書き込む.

    • v は,0または1でなければならない.
    • デフォルトで"GPIO"は,任意のピンを読取りモードでも書込みモードでも使うことができる. DeviceConfigureを使って,特定のピンを読取りあるいは書込み用に設定することができる.

    リソースの終了と解放

    • DeviceClose["GPIO"]は必要ではないが,事実上すべてのピンをそのデフォルト状態に再設定するのに使うことができ,対応するDeviceObjectを終了したものとする.

    例題

      (2)

    システム上のGPIOデバイスを見付ける:

    ピン4を書込みに,ピン17を読取りに設定する:

    ピン17のデジタル値を読み取る:

    ピン4をデジタル"High"に設定する:

    ピン17のデジタル値を読み取る: