Raspberry Pi+Python+ 電子工作でコンピュータと 仲良しになろう

第
1
章
Raspberry Pi+Python+
電子工作でコンピュータと
仲良しになろう
超小型のコンピュータ基板である Raspberry Pi( ラズベリーパイ)。この Raspberry
Pi に、プログラミング言語の Python と電子工作を組み合わせると、どんなことができるで
しょうか?コンピュータである Raspberry Pi とプログラミング言語である Python は、
Raspberry Pi の「Pi(パイ)」の由来が Python(パイソン)であることからわかるように、と
ても相性がよいのです!それでは電子工作はどうでしょうか?
それを解くカギが本書にあります。ぜひ最後まで読み進めて、より一層、コンピュータと仲
良くなってください。
1.1
Raspberry PiとPythonと電子工作
本書では、世界中で使われているプログラミング言語「Python」と、Raspberry Pi の大きな特徴で
ある「自由に使える端子」
、GPIO 拡張コネクタを使って電子回路を制御するプログラムについて解説
します。はじめに、パソコンでできることを考えてみましょう。
(1)コンピュータでできること
読者のみなさんにとって身近なコンピュータといえば、パソコンだと思います。みなさんはこのパ
ソコンを、インターネットの閲覧やメール、ワープロ、ゲームなどに利用しているのではないでしょ
うか。もしかしたら、すでに何らかのプログラミング言語を使ってプログラムを自作している人もい
るかもしれません。ですが、Windows や Mac などで作成したパソコン用のプログラムは、ほとんどの
場合、パソコン上のみで動作するもので、LED やモーターを制御することはできません。
これに対して近年、小型のマイコンボードが注目を集めています。その中でも特に人気なのが
Arduino(アルドゥイーノ)です。パソコンに内蔵されているものとは違いますが、Arduino の小さな基
板の上にもマイクロコンピュータが搭載されており、プログラムを実行できるようになっています。
パソコンに比べると処理能力が低いので GUI プログラムなどを動かすことはできませんが、その代わ
り、LED やスイッチ、センサーなどを制御する機能を内蔵しており、電子回路の制御に向いています。
実際、Arduino のようなマイコンボードに搭載されているマイコンは、さまざまな電子機器に内蔵さ
れています。
このようにコンピュータは計算や情報の処理だけでなく、電気製品やロボットのような現実世界で
動くモノの制御にも使われています。コンピュータの応用範囲はとても広く、できることも数多くあ
ります。
2
1.1 Raspberry Pi と Python と電子工作
(2)Raspberry Pi
1
2012 年にイギリスで発売されたコンピュータボード Raspberry Pi は、すぐに日本にも広まりまし
Raspberry Pi
た。もともと、子供たちの教育用途を意識して開発された Raspberry Pi ですが、通常のパソコンとし
て、サーバーとして、機器に組み込む CPU ボードとしてなど、さまざまな用途に使えること、さらに、
2,500 円から 4,000 円程度の手頃な価格と OS を選べる柔軟性のおかげで非常に高い人気を得てい
ます。
R
Python
図 1.1.1 4 種類ある Raspberry Pi
R
電
子
工
作
R
R
R
R
R
R
R
と
R
R
R
R
R
R
R
Model A
Model B
Model A+
Model B+
Raspberry Pi は OS をインストールした SD カードもしくは microSD カードを使って起動し、パソ
コンとして動作します。インストールできる OS にはいくつかの種類がありますが、標準として推奨
されているRaspbian(ラズビアン)は Linux をベースとした OS です。
この Raspbian には、あらかじめプログラミング環境として Python がインストールされています。
もともとRaspberry Pi は、Python でプログラミングを学習することを意識してつくられたものだか
らです。Python はコマンドライン上で動作するような小さなプログラムから、GUI インターフェイス
を持った本格的なプログラムまで記述することができる、優れたプログラミング言語です。
また、Raspberry Pi には、ディスプレイや USB 機器を接続するコネクタのほかに、電子回路を直接
接続できる GPIO 拡張コネクタが用意されており、これをPython のプログラムから制御することが
できます。つまり、Raspberry Pi 上で Python のプログラムをつくると、GPIOコネクタを利用した電
子回路の制御から、GUI インターフェイスを利用した本格的なプログラミングまでこなすことができ
るわけです。もちろん、電子回路を制御する GUI プログラムをつくることもできます。
3
Windows、Mac などのパソコンでプログラムから直接電子回路を制御するには、専用の拡張ボー
ドなどを用意する必要がありました。一方 Arduino などのマイコンボードでは、GUI プログラムのよ
うな規模の大きなプログラムを動かすことはできません。しかし、Raspberry Pi であればこの両方の
プログラムを、さらには、両方を組み合わせたプログラムもつくることもできるのです。しかも、それ
らのプログラムはすべて Python だけで実現できます [1]。このことから、これほどプログラミング学習
に向いているコンピュータは、ほかにはないともいえるでしょう。
1.2
Raspberry Pi について
Raspberry Piはパソコンとしても機能すると前節で述べましたが、購入した時点では基板のみで、
ケースもなく、むき出しの状態です。基板上にはさまざまな半導体、チップ部品のほか、モニターや
マウス、キーボードを接続するためのコネクタが実装されています。
(1)Raspberry Pi の構成
Raspberry Pi には、現在「Model A」
、
「Model A+」
、
「Model B」
、
「Model B+」の 4 つのタイプがあり
ます(図 1.1.1)
。これらの違いは、次のとおりです。
表1.2.1 モデル別 Raspberry Pi の構成
Model A
Model A+
Model B
Model B+
256 MB
256 MB
512 MB
512 MB
なし
なし
1
1
1
1
2
4
GPIO 拡 張コネクタ
のピン数
26
40
26
40
SDカードコネクタ
SD
microSD
SD
microSD
メモリ容量
ネットワークコネクタ
USBコネクタ
コンポジットビデオ出力、
アナログオーディオ・
φ3.5mmステレオ
ビデオ出力
ミニジャック
φ3.5mm4 極
ミニジャック
コンポジットビデオ出力、
φ3.5mmステレオ
ミニジャック
φ3.5mm4 極
ミニジャック
Model B+ は Model B の改良版として 2014 年 7 月に発売されたモデルです。本書ではこの Model
B+ を使用します。
Raspberry Pi(Model B+)の構成は図 1.2.1、図 1.2.2 のようになっています。
[1] RaspberryPi では、Python の他にも、スクラッチや C、Ruby などのプログラミング言語でも、プログラムをつくったり動作させ
ることができます。
4