エンジニアの金田です。
最近はモノのインターネット化(IoT)という言葉を耳にするようになりましたが、その背景の一つにRaspberry Piのブームがあると思っています。Raspberry Piは手のひらに載る小型コンピュータで、ヒートシンクも不要、一見非力なマシンに見えますが実際にはLinuxサーバーにもなる強力なものです。
Raspberry Piは電源の入出力とその制御が容易なこともあり、家庭内のどこにでも置ける小型サーバーとして、またセンサー類の親機としてなど様々な用途が模索されており、その中に「モノのインターネット化」が含まれています。
ECの世界にもIoTの波は押し寄せてきており、例えばAmazonは小型で冷蔵庫や洗濯機に取り付けられる、ジュースや洗剤などの「注文ボタン」を発表しました。この小さなボタン(モノ)がインターネットに接続され、洗剤やジュースの追加注文ができるのです。Raspberry Piは機器の制御もできるのでこのようなボタンを実装することもでき、顧客側でも、例えば注文が入ったらチャイムが鳴るといった簡単なものから、今までは難しかった旧式のPOSシステムへのつなぎ込みや伝票出力など様々な用途の広がりが期待できます。
(米Amazonのサイトより引用。写真はキッチンペーパーの「買う」ボタン)
そういった機運もあり、弊社でもRaspberry Piでいろいろ試してみたいと提案しました。が、「そもそもRaspberry Piがどういったもので何ができるのか分からない」という声も聞かれ、社内で「予習会」をすることになりました(「勉強会」の準備ですね)。
当日は自宅から私物のカスタマイズされたRaspberry Piを持参し、午後4時より予習会が開始されました。
まず簡単にRaspberry Piの生い立ちを話しました。Raspberry Piの起源は1981年に発表されたBBC Microという教育用コンピュータに遡ります。その名の通り、英国国営放送のBBCが立ち上げたプロジェクトでエイコーン社が実装を行いました。1981年というと日本で最初のパソコンが発売された2年後、まだパソコンという言葉が一般的でない中、相当な先見性であったと思います。
時を経ること約30年、2012年にRaspberry Piは同じくイギリスの教育用コンピュータとして発表されました。開発はラズベリーパイ財団が行いエイコーン社は関わっていませんが、同社が開発したARMアーキテクチャ(省電力、低発熱の特徴を持つ)が採用され、OSや言語を部分的に継承しておりBBC Microの後継機を意識していることが伺えます。
Raspberry Piの特長としては、まず先に挙げた省電力(1ワット程度で動作するモデルもあります)・低発熱があります。家中のモノがインターネットに繋がるのですから、省電力化は見過ごせない課題です。そのため、SSDなどのストレージは持たずMicro SDカードがその役割を果たしています。インターフェイスも至ってシンプルで、USBの給電/入力端子、HDMI/オーディオ出力、LAN用端子、それからRaspberry Piの特徴の1つである2列のピン群を主とします。セットアップが済んでしまえばUSBバッテリーのみで動作可能です。
見慣れたインターフェイスの中でひときわ目立つのがずらりと並んだ2列のピン群でしょう。これらは外部との入出力に使われます。このような入出力装置を備えたPCというのは従来ほとんど存在していませんでした。似たようなものにArduino(アルドゥイーノ)がありますが、これはむしろマイコンに近く、LinuxのようなOSを走らせる前提にはなっていません。
小型でLinuxを搭載できるだけのマシンスペックを持ち、入出力装置ピンを備えたRaspberry Piはこの点で画期的でした。Arduinoでも同じようなことはできますが、独自のOS、言語、IDEを駆使しなければいけない点でなかなかハードルが高かったのです。こうしてイギリスで教育用に作られた小さなコンピューターは、あっという間に世界的シェアを広げていきました。
Raspberry Piを初めて見る人が最初に疑問に思うのが、まずこのピン列でしょう(写真左側上部)。このピンはそれぞれ役割が異なっており(見た目では分からないので、ピンと役割の対応図が必要です)、大きく次の4つに分けられます。
GNDは乾電池のマイナス極のことだと考えて構いません。細かい解説は省きますが、GNDは5Vと3.3Vの両方に接続できます。「電源」が乾電池のプラス極に相当するので、たとえば3.3V電源のピンとGNDのピンの間に3.3V用の電球を繋ぐとその電球が点灯します。
5VはUSB給電された電圧がそのまま来ています。従って使用できる電力は給電されている電力に依存します。3.3VはRaspberry Piの内部で使用されている電圧が流れてきています。この2つの電圧(5V/3.3V)は古くからPCに使われており、一般的なPC用の電源は12Vの他に5Vと3.3Vの給電ができるものが一般的です。
(ウィキメディアより転載:PC用電源についているラベル。3.3Vや5Vの表記が見える)
GPIOは3.3Vで駆動する点は同じですが、その名(General Purpose Input/Output)の通り汎用入出力端子となっています。例えば前述した電球のON/OFFもLinuxの操作で出来ますし、逆に3.3Vの電圧をかけてやることで外部の信号を受信できます。例えば温度を測ったり、リモコンの信号を受信したりすることができます。
難しい話ばかりしても仕方がないので、自宅から持ってきたRaspberry Piで簡単なデモを行いました。デモの内容は「MT東京-17でトークしました」のために準備したものをベースとしました。TwitterからRaspberry Piを会話を通じて操作し、LEDの電灯やリモコンで100V電源をON/OFFする様子の実演です。
最後にBLEの話をしました。BLEとはBluetooth Low Enargyの略で、元々省電力のBluetoothの規格に、更に省電力の機能を持たせるための規格で、モノのインターネット化に欠かせない技術とも言われています。この日は大きな切手くらいのサイズのBLEガジェットを持参しました。ボタン電池で駆動し、観測した気温をひたすら一方的に送りつけるものです。低機能ですがバッテリーの寿命は数年と言われています。壁一枚程度なら電波が貫通するので、外気温を測定したい時などに便利でしょう。
Raspberry Piについての説明を一通りしたので次回からは実際にRaspberry Piを購入し、触ってみようと思っています。今のところ次のような予定になっています。
今後もこのブログで内容をお知らせしていきますので、ご期待ください。