Raspberry PiのGPIOポートは次のとおりです。
GPIOを操作するためのオプションの1つは、 Sysfsインターフェイスです。 Sysfs GPIOの詳細については、 こちらをご覧ください 。 この場合、ファイルアクセスおよび書き込み操作を使用してGPIOポートにアクセスします。 特定の出力を使用するには、それを予約し、入力または出力の方向を設定する必要があります。 ポートでの作業が終了したら、他のプロセスが使用できるようにリリースする必要があります。
ポート予約(XX-必要なポートの番号):
$ echo XX > /sys/class/gpio/export
バックアップが正常に
/sys/class/gpio/gpioXX/
すると、アドレス
/sys/class/gpio/gpioXX/
新しいフォルダーが表示されます。 方向の設定は次のとおりです。
$ echo "out" > /sys/class/gpio/gpioXX/direction
または:
$ echo "in" > /sys/class/gpio/gpioXX/direction
出力用に構成されたポートの高レベルと低レベルの設定は次のとおりです。
$ echo 1 > /sys/class/gpio/gpioXX/value $ echo 0 > /sys/class/gpio/gpioXX/value
入力用に構成されたポートの状態の判別は、次のように行われます。
$ cat /sys/class/gpio/gpioXX/value
使用終了後にポートを解放します。
$ echo XX > /sys/class/gpio/unexport
Sysfsインターフェースを介したGPIOの操作を簡単にするために、2つのユーティリティに出会いました。 それらの1つはWiringPi GPIOユーティリティで、もう1つはquick2wire-gpio-adminです。
これらのユーティリティによって解決される主なタスクは、権限のないユーザーに代わってGPIOで作業する機能を提供することです。 同時に、 WiringPi GPIOユーティリティはより機能的です。
GPIOを使用するために、 RPIOパッケージを作成しました(執筆時点では、後者はバージョン0.10.0でした)。 このパッケージはGPIOポートで直接動作し、特別なデバイス
/dev/mem
介してBCM2708レジスタにアクセスします。 RPIOとは:
Raspberry Pi用の高度なGPIO。 PWM、GPIOインターラップ、TCPソケット割り込み、コマンドラインツールなどでRPi.GPIOを拡張
RPIOは、別のモジュールRPi.GPIOの改良および拡張バージョンとして位置付けられています。 RPIOに直接記載されているドキュメントでは、RPi.GPIOで利用できない機能についてのみ詳細に説明しているため、これらのモジュールに共通する機能の説明については、 こちらから入手できるRPi.GPIOのドキュメントを参照してください 。
次のコマンドでパッケージをインストールします。
$ sudo pip install RPIO
Pythonモジュールに加えて、rpio-cursesとrpioの2つのプログラムがインストールされます。 たとえば、GPIOの現在のモードと状態を取得し、必要に応じて変更することができます。 これは、rpio-cursesの使用方法です。
したがって、システムに関する情報を取得できます。
$ rpio --sysinfo 000f: Model B, Revision 2.0, RAM: 512 MB, Maker: Qisda
RPIOを使用したPythonプログラムの例:
import RPIO import time NRF_CE = 24 # set up output channel with an initial state RPIO.setup(NRF_CE, RPIO.OUT, initial=RPIO.LOW) for i in range(10): RPIO.output(NRF_CE, 1) time.sleep(1) RPIO.output(NRF_CE, 0) time.sleep(1) # reset every channel that has been set up by this program, # and unexport interrupt gpio interfaces RPIO.cleanup()