私的AI研究会? > ラズパイ覚書? > GPIO

GPIO General Purpose Input/Output

ピンアサイン

USB/LAN コネクタを下側にした基板上のコネクタ

BCM名称PinPin名称BCM
BCM名称PinPin名称BCM
 3.3V125V
2I2C SDA (8)345V
3I2C SCL (9)56GND
4(GPIO 7)78(15) UART TxD14
GND910(16)UART RxD15
17(GPIO 0)1112(GPIO 1)18
27(GPIO 2)1314GND
22(GPIO 3)1516(GPIO 4)23
3.3V1718(GPIO 5)24
10SPI MOSI (12)1920GND
9SPI MOSO (13)2122(GPIO 6)25
11SPI SCLK (14)2324(10) SPI CE08
GND2526(11) SPI CE17
0ID SD (30)2728(31) ID SC1
5(GPIO 21)2930GND
6(GPIO 22)3132(GPIO 26)12
13(GPIO 23)3334GND
19(GPIO 24)3536(GPIO 27)16
26(GPIO 25)3738(GPIO 28)20
GND3940(GPIO 29)21

GPIO コマンド

 GPIOを操作する「gpio」コマンドは「Wiring Pi」ライブラリを使用する。(通常は標準実装されている。)

RPI.GPIO 制御ライブラリ

 RPI.GPIO は Python Software Foundation からリリースされている GPIO を制御するパッケージ。(Raspbian full にはインストール済、Raspbian lite にはインストールされていない。)
使用するには、Pythonのプログラムの先頭で import 宣言をする。

$ import RPi.GPIO as GPIO

RPi.GPIO を呼び出す場合、RPi.GPIO.setup() というようにドット(.)で呼び出す。毎回 RPI.GPIO と書くのは長なるので、importする際に別名を付けることができる。別名は「as 別名」で指定。

$ import RPi.GPIO as GPIO

以後、GPIO.setup() というように呼び出すことができる。

RPI.GPIO 関数

 

忘れずにボードクリアを!

 RPi.GPIOのプログラムを実行するとThis channel is already in useの警告がでる場合がある。これは以前 GPIO.setup() を実行してポートのセットアップをした後、クリアしていないときに発生する。
プログラムの最後に以下を必ず記述しておく。

GPIO.cleanup()
 

参考資料

参考サイト

ドキュメント