🐧 Linux 総合学習プラットフォーム
Raspberry Pi セットアップ ・ 中級

GPIOピンの概要

ラズパイの大きな特徴は、基板上に並ぶ40本のピン(GPIOヘッダ)です。GPIOは汎用入出力の意味で、LEDを光らせたりセンサーの値を読んだりと、電子工作で外部の部品とやり取りするための出入口です。ピンには電源(3.3V/5V)・GND・信号用が混在しており、配置を間違えると故障の原因になります。配置を確認するには pinout、各ピンの状態を見るには raspi-gpio を使います。

Raspberry Pi を一般的なパソコンと分ける最大の個性が、基板の縁に2列で並ぶ40本のピン、GPIOヘッダです。GPIO は General Purpose Input/Output(汎用入出力)の略で、その名のとおり「汎用的に」入力にも出力にも使える端子です。出力に使えばLEDを点灯させたりモーターを回す信号を送ったりでき、入力に使えばスイッチの押下やセンサーの値を読み取れます。つまりGPIOは、Raspberry Pi のプログラムと外の現実世界(電子部品)とをつなぐ出入口です。これがあるからこそ、Raspberry Pi は画面の中だけで完結せず、温度を測る・人を検知する・物を動かすといった、いわゆる電子工作やIoTの土台になります。ソフトウェアの知識を、実際に光る・動くという物理的な結果に結びつけられるのが、GPIO を学ぶ醍醐味です。

40本の内訳と電圧の注意

40本のピンはすべてが信号用というわけではなく、役割が混在しています。大きく分けると、電源を供給するピン(3.3Vと5V)、基準となる0Vのグラウンド(GND)、そして自由に使える信号用のGPIOピンの3種類です。ここで最も重要な注意が電圧です。Raspberry Pi のGPIO信号は3.3Vで動作し、5Vではありません。5Vのピンはあくまで部品へ電気を供給するための電源であって、信号のやり取りに使うものではありません。5Vの信号をGPIOの入力ピンに直接かけると、基板を壊す恐れがあります。同じ理由で、配線を1つ隣のピンに挿し間違えると、信号用のつもりが電源やGNDにつながって故障につながります。だからこそ、つなぐ前にどのピンが何の役割かを示すピン配置を必ず確認することが、Raspberry Pi の電子工作における最初の安全策になります。電源を入れたまま配線を抜き挿しするのも避け、必ず一度電源を落としてから作業するのが基本です。

ピン配置を確認する pinout

どのピンが電源か、GNDか、どの番号のGPIOかを確かめるのに便利なのが pinout コマンドです。Raspberry Pi OS には標準で入っており、ターミナルで pinout と打つだけで、基板の向きに合わせた40ピンの配置図と、各ピンの役割が色分けでターミナルに表示されます。配線するときは、この表示を実機の向きと見比べながら、目的のピンの位置を一本ずつ数えて確かめるのが安全です。あわせて基板のリビジョンやメモリ容量といった情報も出るので、手元の機器の素性をざっと確認するのにも役立ちます。ピン番号の数え方には2つの流儀がある点に注意が必要です。ヘッダの物理的な並び順で1〜40と数える「物理番号(ボードピン番号)」と、チップ上の信号名で呼ぶ「GPIO番号(BCM番号)」です。たとえば物理ピンの11番は GPIO17 にあたる、というように両者は対応しており、配線図やライブラリがどちらの番号で書かれているかを取り違えると、別のピンを操作してしまいます。pinout の表示はこの対応関係を把握する助けになります。

ピンの状態を見る raspi-gpio

配線したあと、各ピンが今どういう状態にあるかを確認するには raspi-gpio コマンドが役立ちます。raspi-gpio get と打つと、全ピンについて、入力か出力か(機能)、現在の電圧レベル(0か1か、つまりLowかHigh)、内部のプルアップ/プルダウン抵抗の状態などが一覧で表示されます。raspi-gpio get 17 のように番号を付ければ、そのピンだけを確認できます。出力の確認だけでなく、入力の確認にも使えます。たとえばスイッチをつないだピンを raspi-gpio get 17 で見ながらスイッチを押し、値が0と1で切り替わるかを確かめれば、配線が正しいかをプログラムを書く前にチェックできます。「LEDが光らない」というときも、raspi-gpio get でそのピンが本当に出力になっていて値が1(High)になっているかを見れば、プログラム側の問題か配線側の問題かを切り分けられます。学習や動作確認の場面では、コマンドからピンの状態を直接読めるこの道具が、目に見えない電気の状態を確かめる窓口になります。なお、ピンを操作・確認するコマンドは管理者権限を求めることがあるため、うまく動かないときは sudo を付けて試します。

よくある失敗と実務の使いどころ

初心者がつまずく定番は、まず物理番号とGPIO番号の取り違えで、隣や全く別のピンを操作してしまうパターンです。配線図やサンプルコードがどちらの番号体系かを最初に確認する癖をつけましょう。次に多いのが、3.3Vと5Vを混同して5VをGPIOにかけ、基板を傷めてしまう事故です。信号は3.3V、という原則を徹底します。また、LEDを直接つないで電流を流しすぎて壊す失敗もよくあるので、電流を抑える抵抗を間に入れるのが基本です。配線をずらして1ピン隣に挿してしまう、向きを間違えて電源とGNDを取り違える、といった物理的なミスも事故のもとなので、つなぐ前後に pinout と raspi-gpio で確認する習慣が効きます。

実務では、こうしたGPIOの操作はコマンドだけでなく Python の gpiozero ライブラリなどプログラムから制御するのが一般的で、ピン配置の確認に pinout、状態の確認に raspi-gpio、本番の制御はプログラム、という役割分担になります。センサーやディスプレイの多くは I2C や SPI といった通信方式でつなぐため、その場合は事前に raspi-config の Interface Options で対応する機能を有効化しておく必要があります。まずは pinout でピン配置を頭に入れ、raspi-gpio で状態を読めるようになることが、安全に電子工作へ踏み出すための確かな第一歩です。LEDを1つ光らせる、ボタンの押下を読む、という小さな成功体験から積み上げると、ピン配置と電圧の感覚が自然に身につきます。

この項目に出てくる用語

GPIOじーぴーあいおー
汎用入出力。外部の電子部品とやり取りするピン。
ピン配置ぴんはいち
GPIOヘッダの各ピンが何の役割かを示す並び。

関連コマンド

pinoutraspi-gpio

▶ 学習アプリでこの続きを学ぶ・演習する