Raspberry Piの強力な特徴は、ボードの上端に沿ったGPIO(汎用入出力)ピンの列です。 40 ピンの GPIO ヘッダーは、現在のすべての Raspberry Pi ボードにあります (Pi Zero および Pi Zero W では未実装です)。 Pi 1 Model B+ (2014) より前のボードでは、より短い 26 ピン ヘッダーで構成されていました。
GPIO ピンのいずれかを入力または出力ピンとして指定することができ、幅広い用途に使用することができます。
注意: GPIO ピンの番号付けは番号順ではありません。GPIO ピン 0 と 1 はボード上に存在しますが (物理ピン 27 と 28)、高度な使用 (下記参照) のために予約されています。 残りのピンはすべて汎用3V3ピンであり、出力は3V3に設定され、入力は3V3トレラントです。
出力
出力ピンとして指定されたGPIOピンは、ハイ(3V3)またはロー(0V)に設定できます。
入力
入力ピンとして指定されたGPIOピンはハイ(3V3)またはロー(0V)に読み取ることが可能です。 これは、内部のプルアップまたはプルダウン抵抗を使用することで容易に行うことができます。 ピン GPIO2 と GPIO3 には固定プルアップ抵抗がありますが、その他のピンについては、ソフトウェアで設定できます。
詳細
単純な入出力デバイスとしてだけではなく、GPIO ピンは、すべてのピン、特定のピンで使用できるものもあり、さまざまな代替機能で使用することができます。
- PWM (パルス幅変調)
- Software PWM はすべてのピンで使用可能
- Hardware PWM は GPIO12、GPIO13、GPIO18、GPIO19 で使用可能
- SPI
- SPI0.PWM
- PWM はすべてのピンで使用可能。 MOSI(GPIO10); MISO(GPIO9); SCLK(GPIO11); CE0(GPIO8), CE1(VPIO7)
- SPI1: MOSI(GPIO20); MISO(GPIO19); SCLK(GPIO21); CE0(GPIO18); CE1(GPIO17); CE2(GPIO16)
- I2C
- Data.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA.DATA..: (GPIO2); Clock (GPIO3)
- EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
- Serial
- TX (GPIO14); RX (GPIO15)
GPIO pinout
どのピンがどれかを意識することが重要である。 ピンラベルを使う人もいます(RasPiO Portsplus PCBや、印刷できるラズベリーリーフのように)。
Raspberry Piでターミナルウィンドウを開いて
pinout
コマンドを実行すると、便利なリファレンスにアクセスすることができます。 このツールは、Raspberry Pi OS デスクトップ イメージにデフォルトでインストールされている GPIO Zero Python ライブラリによって提供されていますが、Raspberry Pi OS Lite にはインストールされていません。GPIO ピンの高度な機能の詳細については、gadgetoid の対話型ピンアウト図をご覧ください。
GPIO によるプログラミング
多くのプログラミング言語とツールで GPIO ピンを制御することが可能です。 以下のガイドを参照してください:
- GPIO with Scratch 1.4
- GPIO with Scratch 2
- GPIO with Python
- GPIO with C/C++ via libgpiod standard kernel interface
- GPIO with C/C++ using 3rd party library pigpio
- GPIO with Processing3
警告です。 GPIO ピンに簡単なコンポーネントを接続することはまったく問題ありませんが、配線方法に注意することが重要です。 LED には、通過する電流を制限するための抵抗を付ける必要があります。 3V3部品に5Vを使用しないでください。 モーターを GPIO ピンに直接接続せず、H ブリッジ回路またはモーター コントローラー ボードを使用してください。
Permissions
GPIO ポートを使用するには、ユーザーは
gpio
グループのメンバーである必要があります。 デフォルトでは、pi
ユーザーがメンバーで、その他のユーザーは手動で追加する必要があります。