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