Raspberry Pi
Raspberry Piは英国Raspberry Pi Foundationにより開発されているシングルボードコンピュータのシリーズだ。小型で格安のPC*1と考えておけばわかりやすい。ただし、2021年に発売されたRaspberry Pi Picoはマイコンボードであるため、本記事で紹介する範疇からは外れることにご留意いただきたい。
もともとは教育目的で開発されてきたハードウェアで、プログラミングや電子工作の初学者にとってもってこいの教材として知られている。しかし、格安の初学者向けハードウェアとはいえ、かなりの機能性や拡張性を備え、しかも小型であるという利点から、産業や学術研究の現場でも普通に使われるようになってきた。Raspberry Piはそれだけのポテンシャルを秘めたハードウェアなのだ。
Raspberry Piは有線(LANケーブル)*2でも無線(Wi-Fi)*3でもインターネットに接続でき、入出力はUSB、micro HDMI、Bluetooth等に対応しており、市販品をそのまま開発に流用できる点も大きなメリットである。ただし、一般的なデスクトップPC*4のように、モニタやキーボード、マウス等は外付けなので、別途用意しておく必要がある。
Raspberry Piでできること
Raspberry PiはPCであるため、勿論、一般的なPC同様にwebブラウジングをしたり、文書作製や表計算のようなオフィスワークをしたりすることもできる。しかし、その程度ならわざわざRaspberry Piを使うまでもない。普通にWindows機を使えば良いのだ。Raspberry Piの本当の魅力はもっと別のところにある。それはプログラミングと電子工作だ。
Raspberry Piはプログラミングの環境が充実しており、Python*5を使ってプログラムを書くユーザが非常に多い。ちょっとしたプログラミング入門から実用的なAI開発*6まで、非常に幅が広い。さらに、Raspberry Piは GPIO*7と呼ばれるインターフェイスを備えており、Pythonから簡単に外部のハードウェアを制御できるのだ。つまり、Raspberry Piは電子工作とも非常に相性が良いのだ。しかも、PCに外部回路を接続して制御しようとすると、どうしてもPC本体の回路に過電流を流したり過電圧をかけたりして破損させてしまうリスクもある。一般的なPCでそんなことをしてしまったら涙目になること必至だが、Raspberry Piなら数千円程度という低価格なので、お財布へのダメージはさほど大きくはないだろう。
Raspberry Piを始める前に用意するもの
Raspberry Pi 4を用いた最小限の開発環境を構築するのに必要な物品を列挙する。Raspberry Pi 3以前のモデル*8やRaspberry Pi Zeroシリーズ*9では必要物品が若干異なるので要注意。
- Raspberry Pi本体
- 3A給電対応のUSB-C電源*10
- ディスプレイ(HDMI入力対応のTVでも可)
- micro HDMIケーブル
- キーボード*11
- マウス*12
- micro SDカード(16GB以上が望ましい)
本体を除いては家電量販店やネット通販等で購入できるものがほとんどだが、電源に関しては若干の注意が必要だ。スマートフォン用のUSB-C電源は、2.4A程度のものが多く、安いものだと1A程度しか出せないこともある。スペックを確認しておいたほうがよい。なお、2.4Aの電源でも起動はできるが、大きな負荷がかかると消費電流が増えるため、許容電流値をオーバーする可能性もある。ちなみに、著者はスイッチサイエンスから発売されている3A対応のACアダプタを利用している。
なお、Raspberry PiをGPIOピンへの給電で駆動することもできるが、給電端子を間違えたり、端子をショートさせたりすると動作不良や故障の原因にもなり得る。GPIOの取扱いに慣れるまではUSB給電が無難だ。
また、Raspberry Pi専用の小型ディスプレイも発売されており、著者はこれに専用ケースを装着して使っている。この構成のためには追加で結構な出費(Raspberry Pi 4の8GBモデルを買ってもお釣りが来るレベル)を要するが、ハンドリングがかなり容易になる。ただし、ディスプレイケースを装着するとCPUファンの装備は難しくなるので、大きな負荷をかけ続けるようなシステムを構築する場合は、放熱*13について一考する必要がありそうだ。
Raspberry Pi OS
PCに搭載されるOS*14といえば、WindowsやMacが一般的だが、Raspberry Piに搭載するOSはLinuxベースのRaspberry Pi OSだ。かつて、LinuxはCUI*15による操作が主体で、初心者にはとっつきにくいというイメージがあった。しかし、Raspberry Pi OSはWindowsやMac同様、GUI*16による操作主体で、初学者にも操作しやすいユーザフレンドリーなOSである。
さて、Raspberry PiにOSをインストールしよう。Raspberry PiにはハードディスクやSSDが付属していない。micro SDカードスロットがあり、そこにmicro SDカードを入れてストレージの役割を果たしてもらうのだ。なお、ストレージに用いるmicro SDカードは、後々のことを考えると、容量が16GB以上のものが望ましい。
Raspberry Pi OSのインストールはRaspberry Pi Imagerを使えば簡単*17だ。
https://www.youtube.com/watch?v=ntaXWS8Lk34
勿論、慣れた人はイメージファイルをダウンロードして書き込んでも構わない*18。
OSをmicro SDカードにインストールしたら、それをRaspberry Pi本体のカードスロットに差し込もう。いよいよ起動準備だ。
Raspberry Piの起動
OSを書き込んだmicro SDカードをRaspberry Pi本体にセットしたら、いよいよ初回起動だ。まずは本体にモニタ、キーボード、マウスを接続しよう。そして、電源を繋ぐ。Raspberry Piには電源スイッチがないので、電源を繋げば即座に起動処理が始まる。初回起動時には言語選択、キーボード選択、ネットワーク設定などの初期設定を求められるので、指示に従って設定を進めよう。
設定が終われば、WindowsやMacのPCと似たようなGUIのデスクトップ画面が現れる。2021年現在、初期設定ならば、Windowsでは画面下部にあるタスクバーはRaspberry Pi OSでは画面上部にあり、Windowsでは左下にあるスタートボタンはRaspberry Pi OSでは左上にある。WindowsやMacと基本操作は似ているので、これらのOSに慣れていれば、比較的簡単に基本操作ができるようになるだろう。ちなみに、電源を切るには、スタートボタンから"ログアウト"を選択して、さらに"Shut down"を選択すればよい。
Raspberry Pi OSは基本的にはGUI環境なので、ある程度のことはマウス操作で感覚的に実行可能だ。しかし、Pythonのライブラリ(TensorFlowやNumPy等)をダウンロードしたり、それらを更新したりするときは、ターミナルを用いてCUI操作を必要とすることもある。
はじめは難しく感じるかもしれないが、慣れると結構便利になるもので、WindowsのようなGUI環境よりも早く簡単にPC操作ができるようになる。さらに、ターミナル上で直接動作するviやVimといったエディタを使えるとコーディングが捗る。これらについては別稿に譲ることとしよう。
*1:Personal Computer:いわゆるパソコンのこと
*2:Raspberry Pi Zeroシリーズを除く
*3:Raspberry Pi Zeroを除く(Raspberry Pi Zero W / WHはWi-Fi対応)
*4:2010年代後半以降のデスクトップPCはモニタと本体が一体化されているもの(iMacのようなタイプ)が多いが、Raspberry Piはモニタと分離されたオーセンティックな形態(Mac miniのようなタイプ)のデスクトップPCだ。
*5:高水準プログラミング言語の一種。初心者向けといわれることが多いが、データサイエンスや人工知能開発といった最先端のプロジェクトにも用いられている。
*6:著者はRaspberry Piを用いた画像認識AIの医療応用に関する研究を指導していたことがあるが、Raspberry Piでも実際にAIとしての能力を発揮してくれた。
*7:General Purpose Input Output:汎用入出力
*9:電源はUSB micro-B、映像出力はmini HDMI、USB micro-Bが1ポートのみ
*10:ACアダプタ一体型給電ケーブルでも良いし、ACアダプタとUSB-Cケーブルを別に用意しても良い。
*11:Bluetoothキーボードも使用可能だが、設定のために有線キーボードが必要。
*12:Bluetoothマウスも使用可能だが、設定のために有線マウスが必要。
*13:著者が機械学習による画像分類器を構築し、大量の教師データを学習させていたところ、温度警告がなされたことがある。
*14:Operating System:基本ソフト
*15:Character User Interface:文字すなわちコマンド入力による操作体系
*16:Graphical User Interface:グラフィックとポインティングデバイスすなわちマウスやタッチパッドを用いた操作体系
*17:かつてはNOOBSとよばれる初心者向けの公式ツールがあったが、現在は非推奨とされている。
*18:単に micro SDカードにイメージファイルをドラッグ&ドロップしてもOSは動かない。適切なライティングツールを使う必要がある。