今回はラズベリーパイが他のPCとは異なる点を中心に、特徴を説明します。
ラズベリーパイの外観
ラズベリーパイはかなりメジャーな存在になってきましたので、外観を見たことがある方も多いと思います。というより、すでにお持ちの方もいるかもしれませんね。
ここでは代表的な機種の外観を確認します。
現在まで、ラズベリーパイは多くの種類がリリースされています。その中でも代表的な機種はこの2つの製品になります。
左側はクレジットカードサイズの「Raspberry Pi 4 Model B」という製品です。
クレジットカードサイズの製品は、初代の「Raspberry Pi」から始まり、第2世代の「Raspberry Pi 2」、第3世代の「Raspberry Pi 3」と続き、上の画像の製品は第4世代の最新機種になります。
右側はクレジットカードの半分程度の大きさの「Raspberry Pi Zero WH」という製品です。画像の製品は第1世代ですが、すでに第2世代の「Raspberry Pi Zero 2 W」が発売されています。
現在流通しているラズベリーパイの大半は、ここで説明したクレジットカードサイズの「Raspberry Piシリーズ」(上の画像左側)、もうひとつはその半分程度のサイズの「Raspberry Pi Zeroシリーズ」(上の画像右側)です。
なお、この2系統の製品以外にもいくつかシリーズがありますので、次回の記事でそれぞれの製品特徴やスペックなどを詳しく説明します。
それではこれから、普通のPCとの大きな違いについて、ハードウエア観点、ソフトウエア観点に分けて説明します。
普通のPCとの大きな違い (ハードウエア)
最初はハードウエアの特徴です。
ラスベリーパイは中身がむき出しで扱いづらそうですが、その感じを強調しているのが金属のピンがたくさん出ている部分ですよね。この部分が普通のPCと大きく異なっています。
この金属のピンは機能を拡張するコネクタで「GPIO」と呼ばれています。
「機能を拡張するコネクタ」とか「GPIO」といわれてもさっぱりわかりませんよね。今は「ラズベリーパイの特徴はGPIO」ぐらいの理解で問題ありません。
これから、この「GPIO」がどんな役割を持っていて、どのようなことができるのか、雰囲気をつかんでいただこうと思います。また、最後に「GPIO」が何の略でどういう意味なのかも説明します。
GPIOでできること
「GPIO」は多くの金属のピン(棒)から構成されています。このピンの役割をひとことでまとめると…
プログラムでピンの電気信号を制御できる
ということです。
この「電気信号の制御」とは、大きく分けて2つあります。
ひとつは、プログラムによりピンの電圧を制御する、つまり出力する電圧を制御できることです。具体的には、プログラムで0Vか3.3Vのどちらかの電圧にすることができます。
もうひとつは、プログラムによりピンの電圧を読み取る、つまり入力された電圧を読み取ることです。具体的には、プログラムで0Vか3.3Vのどちらの電圧なのかを読み取ることができます。
でも、このようにピンの出力電圧を制御したり、ピンの入力電圧を読み取るだけで何ができるのでしょうか。こんな小さなコンピュータですので、0Vか3.3Vの電圧に制御できるとしても、ほとんど役に立たない感じがしますよね。(それに3.3Vなんて何だか中途半端ですし…)
実はこれができるだけで用途は無限に広がるんです。これから、このような電圧制御ができることにより、どんなことができるのか、いくつか例をご紹介します。
GPIOの出力電圧制御でできること
最初は出力電圧の制御について、もう少し具体的に説明します。
最近ではほとんどの照明がLEDになっていますので、LEDという言葉はかなり耳にされていると思います。
このLEDは、照明に限らずいろいろなところで使われています。例えば駅のホームなどで見かける行き先表示もLEDが使われています。
このように情報を表示する場合は照明ほどの光の量は必要ありませんので、以下のような小型のLEDが使われています。
このLEDは、以下のように電池に接続すると光ります。
このLEDをGPIOピンにLEDを接続すると、LEDを接続したピンの出力電圧をプログラムで0Vにしたり、3.3Vにしたり制御することでLEDを点滅させることができます。
例えば以下のような感じでLEDを接続して、プログラムでLEDが接続されているGPIOピンの出力電圧を制御することによりLEDを点滅させることができます。
といわれてもまだピンとこないかもしれませんよね…
模式的な説明になりますが、ラズベリーパイの中には以下のようにプログラムでON/OFF制御できるスイッチが入っています。
この図ではラズベリーパイ本体の中に電池とスイッチが中に入っているように説明していますが、実際に手でパチパチするスイッチや普段使っているような乾電池が入っているわけではありません。
実際には電池の代わりに内部で電圧が発生するように作られています。またスイッチはプログラミングで制御できる電子的なスイッチが入っています。
でもLEDを点滅させるだけですと、せいぜい電飾ぐらいの用途ぐらいしかないのでは?って感じですよね。
この入門シリーズでは、ラズベリーパイのGPIOにLEDを接続して、センサから読み取った気温や湿度の値や、ネットから取得した天気予報情報に応じてLEDの色を変えて表現してみます。
それでも結局LEDをつけたり消したり制御するぐらいでしょ、って感じるかもしれません。
実は出力電圧を制御できると他にもいろいろなことができるんです。例えばLEDを点灯する場合でも、もうちょっと工夫をすると、家電のリモコン制御ができるようになります。
家電のリモコンって、じっくりみてみると先端の部分がこんな感じになっているものがありますよね。(リモコンによってはカバーで覆われているものもあります)
もう少し近寄って拡大するとこのようになっています。
この透明の部品は赤外線を発生するLEDなんです。LEDというとすぐに照明用LEDを思いつきますが、他にもこのような赤外線LEDや、さらには紫外線LEDもあります。
リモコンで家電を制御する、というのは、実はこの赤外線LEDを点滅制御して、赤外線で信号を送って家電を制御しているんです。高速で赤外線のON/OFFを繰り返して信号のパターンを送っています。
例えば、テレビの電源をONにする信号パターン、OFFにする信号パターンなどをあらかじめ決めておいて、その信号パターンになるように赤外線LEDをON/OFF制御します。
この赤外線LEDですが、電子部品として一般に販売されています。
これを先ほどの普通のLEDの代わりに、赤外線LEDをラズベリーパイのGPIOに接続すれば、プログラムで赤外線リモコンの信号パターンを発生して家電のリモコン制御ができるようになるわけです。
それでもやっぱり「LEDを制御するぐらいか」なんて思われるかもしれません。
例えば100V電源を使用する家電も制御できたらいいですよね。
そういう場合でも大丈夫です。GPIOの電圧信号があれば、もっと高い電圧も制御できます。例えば
という部品があります。これは、小さな電圧(3V〜8V)のON/OFFで、100V製品のON/OFFを制御できるものです。
詳しい接続方法は省略しますが、これを使えば、ラズベリーパイのGPIOピンの出力電圧を制御して、リモコンがない100Vの家電製品のON/OFF制御もできるようになります。
他にもモーターを制御して何かを動かしたり、スピーカーを鳴らしたり、電圧を制御できるだけで電気で動作するものが自由に制御できるようになるんです。
GPIOの入力電圧読み取りできること
次に、入力電圧の読み取りができるとどんなことができるようになるのか、具体的な例をご紹介します。
基本的なところですと、GPIOピンにスイッチをつけて、スイッチのON/OFF状態を読み取ることができます。
例えばこのような感じでスイッチを接続すると、スイッチに接続したGPIOピンは、スイッチを押された時が3.3V、離された時が0Vというように読み取ることができます。(3.3Vってなんか中途半端ですね…でもラズベリーパイの仕様で3.3Vなんです…)
つまりスイッチが接続されたGPIOピンの電圧を調べると、スイッチが押されているのか離されているのかがわかります。
このスイッチと先ほどの赤外線LEDをつければリモコンが作れますよね。
ただのリモコンを作っても面白くありませんので、例えばスイッチを1回押しただけで、テレビとエアコンとライトをONにする信号パターンを連続で発生させるように作れば、一度ボタンを押すだけで3つの家電をONにすることもできますよね。
またこの例は単にスイッチのON/OFF状態を調べるだけですが、例えば気温や湿度を測定して電気信号にしてくれるセンサがあります。
このようなセンサをラズベリーパイのGPIOに接続すると、気温や気温の状態がわかります。家庭菜園などで環境管理ができそうですよね。
まだまだ他にもセンサーで感知できるものはたくさんあります。
明るさ、色、音、水分、圧力、ph(酸性/アルカリ性)、温度、湿度、大気圧、位置(GPS)、高さ、傾き、加速度、方位、アルコール濃度、ガス濃度、臭い、距離、動き、曲げ、ほこり、炎、衝撃、風、、、と多岐にわたっています。
組み合わせはアイデア次第
GPIOでできることについて、出力系や入力系の部品を確認してきました。
これらをどのように組み合わせるとどのようなものができるかはアイデア次第です。
身近なところにもいろいろなアイデアがあると思います。身の回りで何か困っていることがあれば、うまく部品を組み合わせると解決できるかもしれませんね。
このシリーズではすごいアイデアというわけではありませんが、温湿度センサで室内の環境を測定してLEDで表現したり、インターネットから天気予報の情報を取得して、この先の天気をLEDの色で表現するという回路を製作します。
「GPIO」の意味
今まで「GPIO」と呼んできましたが、これは「General Purpose Input/Output」の略です。
日本語では「汎用(General)目的(Purpose)の入出力(Input/Output)」ということになります。日本語で説明されてもさっぱり、という感じですよね。この意味をもう少し噛み砕いてみます。
GPIOの出力電圧制御、入力電圧の読み取りの機能は、何かの特別な用途というわけではありません。
例えばテレビのリモコン制御をする専用のピンになっている、とか気温を読み取るための専用のピン、というように何か特別な用途というわけではありません。
先ほどのように入力系や出力系の部品を接続するといろいろなことができますよね。
この「いろいろな目的に使える」ということを「汎用」と言います。ということで、これらの入出力ピンは「汎用目的の入出力」ということで「GPIO」と呼ばれています。
「GPIO」はラズベリーパイ特有の用語ではなく、他の似たような製品も使われる一般的な用語ですので、ぜひ覚えておいてください。
普通のPCとの大きな違い (ソフトウエア)
次はソフトウエアの特徴です。
デスクトップ画面
おそらく、多くの方はWindowsやMacを使用されているのではないでしょうか。
ラズベリーパイも、WindowsOSやmacOSと同じように「ラズベリーパイ用のOS」が用意されています。「基本的には」以下のようなデスクトップ画面で操作をします。
この画面のように、WindowsやMacと同様、ブラウザやオフィスアプリなどいろいろなアプリが利用できます。
このようなアプリは、WindowsやMacでは有料のものも多いですよね。でも、ラスベリーパイ用のOSではほとんどのアプリケーションが無料で利用できる、という特徴があります。
ターミナルアプリ
ところで、先ほど「基本的には」デスクトップ画面で操作できる、と強調しました。実は、ラズベリーパイ用のOSではWindowsやMacと異なり、以下のような「ターミナルアプリ」でコマンドを入力して操作することが多くなります。
「ターミナルアプリ」はあまり馴染みがないかもしれません。Windowsの場合は「コマンドプロントプト」、Macの場合は「ターミナル」と同じ種類のアプリになります。
ターミナルアプリが使ったことがある方は、なんだかちょっと難しくて面倒、って印象があると思います。初めて見た方は、なにこれ、って感じですが、ひとつひとつ理解していけば難しくありませんので一緒に習得していきましょう!
更新履歴
日付 | 内容 |
---|---|
2022.2.9 | 新規投稿 |
2022.3.10 | ラスベリーパイのソフトウエアの特徴の説明を追加 |
2022.6.21 | Raspberry Pi Zero 2 Wが国内販売開始されたため、「Raspberry Pi Zero 2 Wは未販売」という記述を削除 |