Raspberry Pi 公式ドキュメントを日本語訳 トップページ > 使い方 > GPIO: ラズベリーパイモデルA+、B+、Pi2

GPIO: ラズベリーパイモデルA+、B+とPi2

ラズベリーパイ上のGPIOとフィジカルコンピューティングの導入

ラズベリーパイの強力な特徴の1つは、 ボードの端にそったGPIO(general purpose input/output)ピンの列です。

これらのピンはラズベリーパイと外の世界の物理的なインターフェースです。 最も簡単なレベルでは、それらのピンはあなたがON/OFFできるスイッチ(入力)もしくは、 ラズベリーパイがON/OFFできるスイッチ(出力)と考えられます。 40ピンのうち26ピンはGPIOピンで、他は電源やグランドピン (それから2つのEEPROMピンがありますが、分からなければ使わないでください)です。

このGPIOピンの番号付けはかなり変わっています。 このページの下部の「付録1 ピンナンバーに関する注意」にその理由を記載しています。

これらのピンを何に使うのか? 何ができるのか?

現実世界と驚くべき方法で相互作用するプログラムをすることができます。 入力は物理的なスイッチである必要はありません。 例えば、センサーや別のコンピュータや装置からの信号であっても良いわけです。 出力もまた、LEDをつけたり、信号やデータを他の装置に送ったり、なんでもできます。 ラズベリーパイがネットワーク上に置かれている場合、 ラズベリーパイに接続されている装置をどこからでも(*)制御し、データを受け取ることができます。 インターネットを介した物理的装置との接続と制御は強力かつ面白いものです。 ラズベリーパイはそれをするのに理想的なものです。 我々のブログ にフィジカルコンピューティングの素晴らしい例がたくさんあります。

注意:当然ながら、文字通りにどこからでもというわけではありません。 ネットワークへのアクセス、ネットワークにアクセスできるデバイス、そして電気が必要です。 このことのために問い合わせしないようお願いします。

どのようにGPIOピンが動くか

出力

注意: この説明に従って行えば、GPIOをいじるのは安全で楽しいものです。 しかしながら、導線や電源を無造作にラズベリーパイに接続すると故障してしまうことがあります。 たくさんの電力を使うものをラズベリーパイに接続するのも良くありません。 例えば、LEDは大丈夫ですが、モーターはダメです。 もし心配であれば、GPIOを直接扱う自信が持てるまでの間は、 Pibrella のようなブレークアウトボードを使うことを考えるのも良いでしょう。

ラズベリーパイのことは一旦置いて、 あなたが作れる最も単純な電気回路の1つは、 バッテリにライトとスイッチをつなげたものです(ここで抵抗はLEDを保護しています)。

GPIOピンを出力として使うとき、ラズベリーパイは、 上の回路で言うところのスイッチとバッテリの両方の代わりになります。 それぞれのピンはON/OFFもしくはコンピュータ用語で言えばHIGH/LOWにすることができます。 ピンがHIGHのとき、そのピンは3.3ボルト(3v3)を出力し、 LOWのときはOFFになっています。

ラズベリーパイを使って同じ回路を作りました。LEDはGPIOピン(+3.3Vを出力する) とグランドピン(0Vで、バッテリのマイナス端子のように振る舞う)に接続されています。

次のステップはピンをHIGHやLOWにするプログラムを書くことです。 Pythonを使った例と、 Scratchを使って行う方法があります。

入力

GPIOの出力は、ONかOFFかもしくはHIGHかLOW、3.3Vか0Vですから簡単です。 入力は、デジタルデバイスの動き方が理由で、少し扱いづらいです。 入力ピンとグランドピンの間に単にボタンをつければ良いと考えるかも知れませんが、 ラズベリーパイはボタンがONなのかOFFなのか迷ってしまいます。 正しく動くかも知れないし、そうでないかも知れません。 それは深い場所での流れのようなもので、 基準がなければ、上に向かっているのか下に向かっているのか当てるのが難しいばかりか、 上と下の意味さえも分からないかも知れません。

「プルアップ」「プルダウン」といった言葉がラズベリーパイGPIOのチュートリアルの中にあるのはこのためです。 これは、入力ピンに基準を与える方法で、いつ入力を受けているか確実に知ることができます。

GPIOを入力として使って何かしたい場合は、Pythonを使うなら screaming jelly babyquick reaction gameを Scratchを使うならreaction gameを見てください。

これで説明は終わり。素晴らしいことはここから始まります

この説明が、ラズベリーパイのGPIOを使ってフィジカルコンピューティングを始める一助になればと思います。 これは思ったほど取っつきにくいものではありません。 全ては単純なLEDから始まりますが、それはあなたを信じられないようなところへ導いてくれます。 ピンの束と小さなコンピュータから始めることの面白さ、創造性、意義を過小評価しないでください。 楽しんでください。そして何か面白いものを作ったら教えてください。


用語集

GPIO

General purpose input/output(汎用入出力)とは、 この説明内では、ラズベリーパイのピンとそれらを使ってできることを指します。 あらゆる目的で使用できるためそのような名前で呼ばれています。 ほとんどの場合はプログラムによって入力か出力として使われます。

LED

Light-emitting diodeは小さく、省電力な光源で、電子機器に広く使われます。 また、ラズベリーパイ上でのフィジカルコンピューティングの導入に理想的なものです。

フィジカルコンピューティング

触れることのできる何かをコンピュータに接続して使用することで、 キーボードやモニターのような一般的な入出力装置にも及びます。 身近なところにある、ボタン、ライト、ロボット、アラーム、センサー、ホームオートメーション、 Babbageと呼ばれるテディベアなどと考えてください。 フィジカルコンピューティングはとても楽しく、それと同時に 強力な教育・学習ツールであり、創造性、問題解決、共同作業を促進します。 スクリーンを超えたコンピューティングは、 全ての年齢層の子供達を引きつけ、とても面白いものが作れます。


付録1 ピンナンバーに関する注意

GPIOピンのプログラムをするときに、それらのピンを参照する方法が2つあります。 GPIOナンバーと物理ナンバーです。

GPIOナンバー

コンピュータが認識するためのGPIOピンです。 このナンバーは人間にとっては意味のないもので、 飛び飛びの値になっています。 ですから、それらのナンバーを覚える簡単な方法はありません。 参照用資料を印刷するか、ピンに合わせたリファレンスボードが必要になるでしょう。

物理ナンバー

ピンを参照するもう1つの方法は、単純に、左上にあるピン1(SDカードに一番近いピン)から上下に数えることです。 これが物理ナンバーで、次のようになります。

どちらの方法を使えば良いか?

初心者や若い子供たちには、ピンを数えるだけなので、物理ナンバーの方法が簡単かも知れません。 それでも、どのピンがGPIOピンで、どのピンがグランドや電源なのかを知るためには、 上のような図が必要になります。

一般的にはGPIOナンバーを使うことを推奨しています。 これは良い練習にもなりますし、ほとんどの参考資料がこの方法をとっています。 けれでも、プログラム内で同じ方法を使う限りは全てうまくいきますので、自分で選択してください。 ピンナンバーはあなたが使うプログラミング言語にも依存することに注意してください。 例えば、ScratchのGPIOは物理ナンバーを使用していますが、対してPythonはどちらを使うか選択できます

GPIOピンの機能についてさらに詳細な情報は、gadgetoidの インタラクティブなピン配置図を参照してください。

このページについて

このページはラズベリーパイ財団が権利を保有するRaspberry Pi Documentation五十嵐システムズが日本語訳したものです。
Creative Commons Attribution 4.0 International Licenceのもとで公開されております。
原文はhttps://github.com/raspberrypi/documentationの成果によって作成されています。

なお、このページは2015年6月に翻訳しており、それ以後の更新内容は翻訳に反映していないため、内容が原文とは異なる場合があります。