Arduino vs. Raspberry Pi:あなたにぴったりのDIYプラットフォームはどっち?

写真拡大 (全3枚)

電子工作を始めたいとき、どちらを買えばいいのだろう?

もしあなたが電子工作に馴染があるのなら、ArduinoとRaspberry Piの名前を聞いたことがあるだろう。そして筆者がそうだったように、どちらも同じような事をするためのハードウェアだと考えていることだろう。

実の所、両者は大きく異なる。たとえば、Rasperry Piは機能的に完全なコンピュータだが、Arduinoはコンピュータの1コンポーネントであるマイクロコントローラだ。

ここではまずArduinoとRaspberry Piの違いを明らかにし、あなたが何かを作る際にどちらが電子工作のプラットフォームとして向いているのかをみていこう。

概要

Raspberry PiとArduinoはどちらも元々教材としてデザインされたもので、その習得の容易さから人気になった。

Raspberry Piは英国で生まれた。考案者のエベン・アプトンと彼のケンブリッジ大学コンピューターラボの同僚たちは、開催するプログラムに参加する生徒数の減少および、スキルの低下にイライラしていた。Raspberry Piはコンピュータをいじるスキルの向上の為に、安くハックできるようデザインされた。アプトンは2006年にプロトタイプの制作に着手し、Rasperry Piが初めて市場に出たのは2012年4月の事だった。

関連記事:「Raspberry Pi(ラズベリー・パイ)」について知っておくべきこと

片やArduinoはイタリアで生まれている。考案者であるマッシモ・バンジと設立者たちが最初にアイデアを持ち寄ったときに入ったバーからその名前が取られている。イブレア・インタラクションデザイン学院で教師をしていたバンジは、彼の生徒達のための、ハードウェア試作用のシンプルなツールを求めていた。

ハードウェアとソフトウェア

以下は両者の大きな違いを表すスペックの概要だ。

Arduino UnoRaspberry PiモデルB
価格30ドル35ドル
サイズ7.6×1.9×6.4(cm)8.6×5.4×1.7(cm)
メモリ0.002(MB)512(MB)
CPU周波数16MHz700MHz
オンボードネットワーク無し10/100 イーサネットRJ45(有線)
マルチタスク不可
入力電圧7〜12V5V
フラッシュメモリ32KBSDカード (2〜16G)
USB1口(入力)のみ2口(一般的な周辺機器接続可能)
OS無しLinux
統合開発環境ArduinoScratch,IDLEなどのLinuxで動くもの

価格とサイズについては両者に大きな差はない。どちらも安くて小さい事で知られている。しかし両者はその中身に置いて大きく異なる。

CPU速度に関して言えば、Raspberry PiはArduinoの40倍速い。Arduinoにとって分の悪いことに、Raspeberry Piは128,000倍のRAMも積んでいる。Raspberry PiはLinuxが走る独立したコンピュータであり、マルチタスクサポート、二口のUSBポートをもち、インターネットに無線でつながる。つまりMacやWindows PCとまではいかないものの、個人用のPCとしては十分なものなのだ。

ArduinoよりRaspberry Piの方が優れていると思うかも知れないが、それはソフトウェア云々の話の場合に限られる。完全なハードウェア・プロジェクトでは、Arduinoのシンプルさが優位性を発揮する。

ArduinoやRaspberry Piで使えるパーツや工具を販売している電子工作ショップ、Adafruitの創業者リモア・フリードに、両プラットフォームの違いについて聞いてみた。MIT卒のエンジニアであり、あらゆるスキルレベルの人々に電子工作を教えることを使命としている彼女によると、どちらのプラットフォームも他の類似製品より素晴らしいという。

「ArduinoにはRaspberry Piには無い、リアルタイム性やアナログ処理の能力がある。こういった順応性はArduinoであらゆるセンサーやチップの利用を可能にしている」と彼女はいう。また彼女は、「Raspberry PiはArduinoほどフレキシブルというわけではない。例えばアナログセンサーの読取には別途のハードが必要になる。Arduino向けの教本はそれこそあらゆる種類がゴマンとある。一方のRaspberry PiはLinuxの資産の恩恵に預かれるので、どちらも素晴らしい選択だと言える」

関連記事:Arduino の隆盛:小さなマイクロコントローラを使った 10 の驚くべきプロジェクト

Arduinoの開発環境はLinuxより非常に簡単に使える。例えばRaspberry PiでLEDを点滅させるプログラムを作る場合、まずはOSをインストールし、ライブラリも入れる必要がある。ここまででようやく入り口だ。Arduinoの場合は、同じようなプログラムをたった8行のコードで書くことができる。そもそもArduinoはOSや大きなソフトを走らせるようにできていないので、線を繋げばすぐに始められるというわけだ。

Raspberry Piはマルチタスク処理が可能だ。例えばRapsberry PiはプリンタサーバーとVPNサーバを同時にこなせる。

一方、シングルタスクのみのArduinoは、要る時に線をつなぎっぱなしにしておいて、終わったら線を抜くという使い方ができる。フリードが初心者にRaspberry Piより先にArduinoを勧める理由だ。

「Arduinoはシンプルで(環境を)壊しにくいし、初心者の時点で学ぶべきものがより多くある。Raspberry Piを使うにはLinuxとPythonのようなプログラミングについて知らなければならない。Arduinoはあらゆるコンピュータと連動できるし、電池で動かすこともできる。いつ電源をオンオフしてもシステムを壊すこともない。Raspberry Piの場合は手続きを踏まずにシャットダウンするとシステムを壊す恐れがある」

Raspberry Piにはソフト面で光るものがあるが、Arduinoはハードがメインのプロジェクトをとても簡単なものにしてくれる。結局のところどちらを選ぶかは、あなたが何をやりたいかによる。

組み合わせてみる

Raspberry PiかArduinoのどちらかを選択する上での究極の答えは、「両方選べばいい」だろう。電子工作を学ぶ上で、どちらからもそれぞれ違うことを学べるからだ。

フリードによると、Raspberry PiとArduinoは補完的な関係にあるという。彼女のおすすめはArduinoに検知機能を担当させ、Raspberry Piがロジックを司るというものだ。

「これらを組み合わせると素晴らしいことができる。Arduinoはモーター、感知センサー、LEDスイッチなどの駆動ユニットとしてベストだし、ネットに接続したRaspberry Piと連動させれば、メールを送信したりビデオや音楽を再生できるミニ・コンピューターとして立派に機能する」

Raspberry PiとArduinoについて多くの著書を執筆したサイモン・モンクはブログで、「Rapberry PiでArduinoと通信する」というほんの数行のコードを含んだチュートリアルを公開した。このチュートリアルには、Arduinoファウンデーションがもっとも簡単にArduinoとのやり取りができるとして推奨しているPythonライブラリ「PySerial」が使われている。

ここまでできれば可能性は無限大だ。センサーにArduinoを使い、Raspberry Piで醸造プログラムを走らせることで、家でビールを作ることだってできる。またこの二つを使うことで、それぞれ単独でつくるものよりもっと優れたロボット製作のプラットフォームを構築することも可能だ

ユーザーコミュニティー

Raspberry Pi、Arduinoには両方とも、大きくて活発なコミュニティが存在する。これらは学校の授業で利用されているだけでなく、世界中のハッカーたちにも使われている。

以下に、Raspberry Piのサポートやプロジェクトのアイデアを得ることができるリンクをいくつか紹介しよう。

  • The Raspberry Pi Foundation - FAQ
  • The Raspberry Pi Foundation - プロジェクトフォーラム
  • Learn Raspberry Pi with Adafruit
  • Element 14 (Pi’s manufacturer) Raspberry Pi Community
  • The Raspberry Pi Wiki

Arduinoの場合は、以下のリンクから

  • Arduino - 公式スタートガイド
  • Arduino - Playground
  • Arduino - 公式フォーラム
  • Learn Arduino with Adafruit
  • r/arduino on Reddit

画像提供:Simon Monk

Lauren Orsini
[原文4]