RPi.GPIOモジュールをimportするには(注: RPiは Raspberry Piの略):
import RPi.GPIO as GPIO
これにより、以降のプログラムコードで単に GPIO として参照できるようになる.
importし、かつそれが成功したかどうかを調べるには次のようにする:
try: import RPi.GPIO as GPIO except RuntimeError: print(" RPi.GPIOのimportエラー! おそらくこれがエラーになるのは、これを使用するには管理者権限が必要だからである。管理者権限を得るには、コード実行において 'sudo' コマンドを使うこと")
RPi.GPIOにおけるRaspberry PiのIOピンの番号の付け方には二通りある。 一つは BOARD 番号を使う方法で、これはRaspberry Piのボードのピン配置を 使う方法である。この利点はRPiのボードの版の違いによらず常に動く、 つまりコードを書き換えたり配線を変える必要がない。
もう一つの方法はBCM番号である。これは低レベルの方法、つまりBroadcom SOCのチャネル番号を使う方法である。これを使う場合には、チャネル番号が RPiボードのどのピンに対応するか、常に気をつけていなければならない。 Raspberry Piのボードの版によっては動かないこともある。
どちらの方法を使っているかを指定するには(必ず書かなければならない):
GPIO.setmode(GPIO.BOARD) # もしくは GPIO.setmode(GPIO.BCM)
(例えば、他のPythonモジュールによって)どちらのピン番号付けが設定されているか を調べるには:
mode = GPIO.getmode()
この結果は GPIO.BOARD か GPIO.BCM 、もしくは None となる。
同じRaspberry PiのGPIOに対して複数のコードや回路を走らせることは可能である。 この結果として、RPi.GPIOがデフォルト(input)以外の値に設定されているこ とが検知されたら、コードを走らせようとすると警告を受けるようになっている。 この警告は次のようにすれば表示させないことが可能:
GPIO.setwarnings(False)
使用するチャネル(注:ここではピンと思って良い)を input(入力)かoutput(出力)に設定する必要がある。 入力に設定するには:
GPIO.setup(channel, GPIO.IN)
(ここで channel はBOARD か BCMのどちらかで設定したピン番号付けによるピン番号)
More advanced information about setting up input channels can be found here.
チャネルを出力に設定するには:
GPIO.setup(channel, GPIO.OUT)
(ここで channel はBOARD か BCMのどちらかで設定したピン番号付けによるピン番号)
次のように、初期値を指定してチャネルを出力に設定することもできる:
GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)
複数のチャネルを一遍に設定することができる(ただし0.5.8版以降). その例:
chan_list = [11,12] # 好きなだけたくさんのチャネルを追加可能 # リストではなく、次のようにタプルを使用しても良い: # chan_list = (11,12) GPIO.setup(chan_list, GPIO.OUT)
GPIOピンの値を読み込むには:
GPIO.input(channel)
(ここで channel はBOARD か BCMのどちらかで設定したピン番号付けによるピン番号)。 これは0 / GPIO.LOW / False もしくは IO.HIGH / True を返す.
GPIOピンを出力に設定するには:
GPIO.output(channel, state)
(ここで channel はBOARD か BCMのどちらかで設定したピン番号付けによるピン番号)
出力ピンの状態は 0 / GPIO.LOW / False もしくは 1 / GPIO.HIGH / True である。
一遍に複数のチャネルに出力することが可能 ( 0.5.8 版以降). その例:
chan_list = [11,12] # リストではなくタプルでもよい GPIO.output(chan_list, GPIO.LOW) # 全てのピンを GPIO.LOW にセット GPIO.output(chan_list, (GPIO.HIGH, GPIO.LOW)) # まず HIGH に設定し、次に LOWに設定する
どのプログラムの終了時においても、使った資源(リソース)を片付ける
ことはよい習慣である。これは RPi.GPIOにおいても当てはまる。
すべてのチャネルをプルアップ(HIGH)でもpull down (LOW)でもない入力状態
に戻すことで、例えばピンをショートすることによるボードへの破損を防ぐ
ことができる。
ここでは使用したGPIOチャネルの「片付け」だけが行われることに注意。
コードの最後で「片付け」するには:
GPIO.cleanup()
全部のピンを「片付ける」のではなく、いくつかのピンはそのままにしておく、 ということも可能である。その場合には、次のように「片づけ」するピンを タプルかリストで指定する:
GPIO.cleanup(channel) GPIO.cleanup( (channel1, channel2) ) GPIO.cleanup( [channel1, channel2] )
自分が使っているRPiについての情報を調べる:
GPIO.RPI_INFO
Raspberry Piボードのバージョンを調べるには:
GPIO.RPI_INFO['P1_REVISION'] GPIO.RPI_REVISION (これは廃止される予定)
RPi.GPIOのバージョンを調べるには:
GPIO.VERSION