2013.04.26
Arduino Uno対BeagleBone対Raspberry Pi
この記事は Digital Dinerの筆者、Roger Meikeが2012年10月24日に書いたものです。筆者の許可を得て、MAKEに再掲載しました。
左から右:Arduino Uno、BeagleBone、Raspberry Pi
私たちはこのDigital Dinerで物を作るのが大好きだ。いつも何かしら工作プロジェクトが進行している。最近は、デジタル部品、つまりマイクロプロセッサーを使うものが多い。まだこのMakerな虫に噛まれたことのない人は、ぜひ試されることをお勧めする。びっくりするほどの実りがある。プログラミングの知識がほとんどなくても、いろいろなウェブサイトで学べる。技術を養うためのプラットフォーム(電子基板)やツールも揃っているので、ボタンやツマミやサーボのあるハードウェアデバイス、つまり本物のリアルなガジェットを自分で作れるようになれるのだ。ソフトウェアも楽しいが、フィジカルなプロジェクトはもっと楽しい。
デジタルデバイスに埋め込むプラットフォームには、優れたものがいろいろあるが、どれを選ぶかがとても難しい。たとえば、私たちは今、水耕栽培ガーデンのプロジェクトを進めているのだが、ポンプを制御したりセンサーの情報を読み取るためのコントローラーに何を使うかで悩んでいる。その選択肢の幅の広さに驚いているのだ。初心者には頭の痛い問題だ。そこで、私たちは3つの代表的なモデルを選んで比較してみることにした。あなたの次のプロジェクトに最適なひとつが見つかれば幸いだ。ネタバレすると、3つすべてがお勧めだけど。
3つのモデルとは(すべてこのDigital Dinerで使ったものだが)、Arduino、Raspberry Pi、BeagleBoneだ。これらを選んだ理由は、すべて入手可能であり、安価であり、ほぼ同じサイズ(約5×8センチ)であり、どれを使っても素晴らしいデジタルガジェットを作れるという点だ。比較を始める前に、それぞれの紹介をしておこう。
Arduino UnoはMakerコミュニティの定番だ。Arduinoにはいろいろなサイズや種類があるが、ここではプロトタイピングに適したArduino Unoを選択した。簡単に使える開発環境もある。熱烈なユーザー層があり、あらゆるハードウェアと接続できるように作られている。
Raspberry Piはこの世界の新顔だ。これは組み込み用のコンピューターと言うよりは、完全なデスクトップコンピューターだ。基板だけだが、35ドルで本物のコンピューターが買える。そこが注目点だ。いろいろなMakeプロジェクトに使える優れたプラットフォームだ。
BeagleBoneは、おそらく3つの中でもっとも無名の存在だろう。しかし、大変に有能なボードで、いろいろなプロジェクトに使える。アルトイドの缶の中に収まってしまうLinuxコンピューターだ。
Raspberry Piの裏側。
BeagleBoneの裏側。
Arduino Unoの裏側。
この3つはどれも、ホビイストに最適だ。下の表は、それぞれの機能を比較したものだ。書かれている言葉の意味がよくわからなくても問題ない。それぞれに、使い道によって光ってくるちょっとした違いがある。
3つのプラットフォームの比較表。
まずはArduinoとRaspberry Piだ。どちらも40ドル以下ととても安い。BeagleBoneは、ほぼArduino Uno、3つ分の価格だ。ただし、Arduinoのクロック速度は 40分の1、メモリーは12万8000分の1だ。すでに違いが見えてきただろう。ArduinoとRaspberry Piは安価で、Raspberry PiとBeagleBoneはうんとパワフルだ。こう見ると、Raspberry Piがいちばんよさそうだが、そう単純ではない。ひとつは価格だ。Raspberry Piを使うためには自分でSDカードを用意しなければならず、これが5ドルから10ドルのコスト増になる。
クロック速度には大差がないが、私たちがテストした結果では、BeagleBoneはRaspberry Piの2倍の速度で走った。意外かも知れないが、こう見るとArduinoが初心者にはベストなようだ。Raspberry PiもBeagleBoneもLinuxオペレーティングシステムを走らせる。そのおかげで、これらは複数のプログラムを同時に使え、さまざまな言語でプログラミングができるようになっている。Arduinoはいたってシンプルだ。一度にひとつのプログラムしか走らせることができない。言語はローレベルなC++だ。
BeagleBoneとRaspberry Piの面白い機能に、フラッシュメモリーカードから起動できるというものがある(Raspberry PiはSDカード、BeagleBoneはMicroSDカード)。つまりこれらのボードは、カードを入れ替えることで頭脳を交換できるということだ。異なる設定のカードを用意しておけば、それを差し替えるだけで、前に中断したところからプロジェクトを再開できる。オペレーティングシステムだってカードで交換できる。
プラットフォームを選ぶ
なぜひとつを選ばなければならないのか?
初心者にはArduinoがお勧め。ユーザーのコミュニティがいちばん大きい。チュートリアルやサンプルプロジェクトも大変に多い。外部ハードウェアの接続もいちばん簡単だ。ハンダごてを使う方法よりもずっと多く、初心者向けのArduino学習の方法が紹介されている。Arduinoは、センサーやエフェクターなどさまざまなパーツを、電子回路を使わずに簡単に接続できるようになっている。なので、電子回路の知識がまったくなくても始められる。使ったことのない人も、ぜひひとつ購入して(安いし)、試してみてほしい。とてもいい経験になると思う。
Arduinoは、フィジカルコンピューティングのための驚くべきツールだ。オープンソースのマイクロコントローラーボードで、ソフトウェア開発環境は無料。
Raspberry Piは、テレビに接続して使えるクレジットカードサイズのコンピューターだ。普通のPCと同じ機能を持つので、ワープロも表計算もゲームもできる。
BeagleBoardは、組み込みLinuxシステムを愛する人のための安価で拡張性の高いハードウェアハッカー御用達の品だ。基本的にベアボーンで、これだけで自己完結しているが、USBやEthernetでBeagleBoardやBeagleBoard-xMに接続して拡張ボードとして使うこともできる。
サイズを小さくしたいならArduino。Raspberry PiはSDカードが飛び出して全体的にやや大きくなるのだが、3つのデバイスはどれもサイズが小さい。Arduinoにはものすごい数の種類がある。基本的に、Arduinoは、特定のマイクロプロセッサーとソフトウェアが使われていればArduinoになる。これには、Atmelという会社の小さくて安いマイクロプロセッサーが使われている。うんと小さなデバイスを作る高度なプロジェクトでは、このチップを1ドルか2ドルで買ってきて、それにArduinoブートローダー(ArduinoをArduinoたらしめる基本の機能を持ったプログラム)を読み込ませれば、はい、それだけでArduinoの完成だ。私たちも、この方法でいくつかプロジェクトを完成させている。これならとても小さいガジェットが作れる。基板すら必要ない。
いろいろなサイズと形のArduino。
BeagleBoneとお兄さんのBeagleBoard。
BeagleBoardは大きくてさらにパワフルなお兄さんだ。このような上位機種にスケールアップする予定なら、BeagleBoneがいいだろう。
BeagleBoneとRaspberry PiのEthernetポートに注目。
インターネットにつなぎたいならBeagleBoneかRaspberry Pi。これらはどちらも本物のLinuxコンピューターだ。どちらもEthernetとUSBのインターフェイスがあるので、比較的簡単にネットワークに接続できる。USBを使ってワイヤレスモジュールを接続すれば、無線でインターネットが使える。Linuxオペレーティングシステムには多くのコンポーネントが内蔵されているので、高度なネットワーク機能を使うことができる。
BeagleBoneとRaspberry Piで使える超小型のUSB WiFiアダプター。Linuxエペレーティングシステムはこうしたデバイスに対応している。
Arduinoは「シールド」と呼ばれる拡張ボードに対応している。シールドにはEthernetに接続できるものもあるが、ネットワーク機能には制限がある。Ethernetシールドを買うのだったら、もっと高機能なボードを買ったほうがいい。
外部のセンサーに接続するならArduinoとBeagleBoneがお勧め。外部センサーの接続はArduinoがもっとも簡単だ。動作電圧が異なる(3.3ボルトと5ボルト)ものもあるので、外部機器に接続しやすい。BeagleBoneは3.3ボルトのみなので、一部の外部機器では抵抗や電子回路が必要になる。ArduinoもBeagleBoneもアナログ入力があるので、出力電圧が変化する部品も接続できる。BeagleBoneのほうが、アナログ/デジタル変換の分解能がやや高い。高度な使い方をするなら、こちらのほうがいいだろう。
とは言え、小さなセンサーも含め、接続できるものの多くは、I2CやSPIと呼ばれるデジタルインターフェイスを備えている。この3つのボードは、どれもそれに対応していて、そうした部品と簡単に対話ができるようになっている。
バッテリーで駆動させたいならArduino。ワットあたりのコンピューターパワーで計算すると勝者はBeagleBoneだが、消費電力がいちばん小さいのはArduinoだ。ここにArduinoの強みがある。対応電圧に幅があるので、いろいろな電源が使え、バッテリーが弱くなっても動いていられるのだ。
グラフィカルUIを使いたいならRaspberry Pi。Raspberry Piはグラフィックに強い。HDMI出力もある。マウスとキーボードを接続して、テレビにつなげば使えるのだ。グラフィカルユーザーインターフェイスを備えた完全なコンピューターとして動作する。なので、ディスプレイがあってユーザーがそれを操作するキオスクタイプのウェブブラウジング機器を作りたいときは、Raspberry Piが最適だ。私たちは、ちょっとした遊び心で、Arduinoの開発ツールをRaspberry Piにインストールして、ちょっとしたプログラムを書いてRaspberry PiからArduinoにダウンロードしたことがある。速くはないが、ちゃんとしたコンピューターだ。
まとめ
Arduinoは、ほとんど何にでもつなぐことができる高度な能力を持つ柔軟なプラットフォームだ。初心者に最適なプラットフォームで、小さなプロジェクトに向いている。Raspberry Piは画像表示とネットワークを必要とするプロジェクトに向いている。コストパフォーマンスが素晴らしい。
BeagleBoneは、Arduinoの接続の柔軟性と、Raspberry Piの高速プロセッサーと完全なLinux環境の両方を併せ持つ(それ以上のものがある)。たとえば、水耕栽培ガーデンの監視用に、私たちはBeagleBoneを採用した。入出力の機能に優れ、ネットワークに簡単に接続できるからだ。そこでウェブサーバーを走らせ、センサーの情報を知らせるようにしている。
この3つは、どれもがDigital Dinerでのプロジェクトに欠かせない重要なものだ。家には、この他にもプラットフォームがある。たとえば、トマト菜園にはSun SPOTを使っている。だがこの3つは、ほとんどの人のニーズに応えることができる素晴らしいボードだ。
この比較記事のMAKEへの転載を許可してくれたRoger Meikeに感謝します。
– Alasdair Allan
[原文]