2011.02.21
なぜArduinoが勝利して今も生き続けているのか
これから毎月、私はこのMake:Onlineでコラムを書こうと思う。みんなに問題を投げかけて論争が起きるような、ときにはみんなを怖がらせるような、そんな内容にしたい。最初のコラムは、「Why the Arduino Won and Why It’s Here to Stay(なぜArduino が勝利して今も生き続けているのか)というテーマだ。
たぶん1週間以内に、ある大手チップメーカーが “Arduino のようなプラットフォーム” を見せに来てくれることになっている。いわゆる “Arduinoキラー” だ。こういうことは、私の周りでは珍しくない。月に一度ぐらいは、企業は個人が “次期Arduino” を開発していて、決まって私にコンタクトを取ってくる。私は長年、Arduinoの記事を書いてMakerの世界に広めてきたし、Adafruitでは仕事で毎日扱っているからね。Arduinoには、電子工作愛好家やアーティストの間に多大なインパクトを与えた。それは、黎明期のパーソナルコンピューター(Homebrew Computer Clubなど)と同じぐらいの衝撃だったと思う。現在、10万台以上のArduinoが市場に出回っている。派生製品を含めればもっとだ(2011年2月現在で約15万台)。あと5年か10年たてば、Arduinoは学校の電子工作やフィジカルコンピューティングの授業でも普通に使われるようになるだろう。私はそう予測する。後退することはないだろう。
Arduinoキラー製品の知識の探り合いミーティングでは、たいていが好意的に終わり、もし彼らがArduinoをコテンパンにやっつけたいと考えていた場合の対処策を考える。それだけだ。Arduinoを本気で負かそうと考えているメーカーもほとんどない。Arduinoに関する記事はいくつかあり、その輝かしい歴史が紹介されているが、私は、なぜArduinoが「勝った」ように見えるのかについて語りたい。しかし、業界標準と決めてしまうのは危険がある。そう言うにはまだ早すぎるかもね。勝ったと言い切ってしまうことにも賛否があるだろう。もっとも、今は議論できるツールが充実してるから、大いに論争すればいいと思う。私は、Arduinoが「勝った」と思っている。その理由と、なぜ今まで生き延びているかについて、これから書いていく。もしあなたが、Arduinoを超える物を開発しようとしているなら、ぜひ読んでほしい。これは、そのためのレシピだ。それでは料理にとりかかろう。
Arduinoとは何か?
まずは、Arduinoチームがどう定義しているかから見ていこう:
「Arduinoは、柔軟で使いやすいハードウェアとソフトウェアを使ったオープンソースの電子プロトタイピング・プラットフォームです。アーティスト、デザイナー、ホビイスト、そしてインタラクティブな物や環境を作りたいと考えているあらゆる人に向けたものです」
「Arduinoは、さまざまなセンサーからの信号を受け取り、周囲の環境を感知できます。そして、光やモーターなどのアクチュエーターを使って周囲の環境に働きかけることができます。基板に使用されているマイクロコントローラーには、Arduinoのプログラム言語(Wiringベース)とArduino開発環境(Processingベース)を使ってプログラムします。Arduinoは単独で使うこともできますが、コンピューター上のプログラム(Flash、Processing、MacMSP)とコミュニケートさせることも可能です」
「ボードは自作または完成品の購入が可能です。ソフトウェアは無料でダウンロードできます。ハードウェアの参照デザイン(CADファイル)は、オープンソース・ライセンスのもとで入手でき、無料で利用できます」
これではまだ「何か」が曖昧だけど、そこがArduinoの強みでもある。それは、人とタスクを結びつける接着材のようなものだ。Arduinoを説明するには、使用例をあげるのがいちばんだろう。
- コーヒーが入ったらツイートするコーヒーポットを作るには? Arduino
- 縫いぐるみのステーキを光らせたいときは? Arduino
- 郵便受けに物理メールが届いたら携帯電話で知らせるようにしたいときは? Arduino
- スティームパンクのProfessor X車椅子をしゃべらせたり酒を売らせたりしたいときは? Arduino
- Staples Easy Buttonを改造してクイズイベント用にいろいろなブザーの鳴らしたいときは? Arduino
- メトロイドのアームキャノンを光るようにして子供を喜ばせたいときは? Arduino
- 自転車に乗っている間の心拍数をモニターしてメモリーカードに記録したいときは? Arduino
- 地面に絵を描いたり雪の中を走り回るロボットを作りたいときは? Arduino
電子工作やマイクロコントローラーに詳しくない人が聞いても、これはおもしろそうだ、自分でも作ってみたいと思うだろう。こうしたものは子供たちにも人気がある。これをダシにして子供に電子回路の勉強をさせるなんてことも可能だ。上に並べたプロジェクトはSF小説に登場したり、ガジェット紹介サイトで取り上げられるようなものたちだ。これらに共通するものは何だろう。これらは普段は考えつかない突飛なアイデアであり、普通なら夢で終わってしまうものだ。しかし、今やそれを現実に作ることができる。しかも、技術の専門家ではない人たちの手によってだ。
これは大きなことだ。普通、技術者は他の技術者のためにプラットフォームを作っている。アーティストや変人や子供たちが簡単に物と物とつなげてアイデアを実現させるためではない。Arduinoチームの中核をなす人たちは、バリバリの電子技術者ではない。デザイナーや教師やアーティストや(言うなれば)”テクノヒッピー”(もちろんこれは称賛を込めた呼び方だ、気を悪くしないでほしい)たちだ。Arduinoの本拠地はイタリアにあるのだが、私は毎年、イタリア人が「独自のグーグル」を求めて奮闘しているという記事を読む。もうすで持っているのに。それはArduinoだ。イタリア人自身がまだ気がついていないのだ。
Arduinoを使ったプロジェクトを見ると、作り手が、電子回路をどうやって作るかよりも、何を作るかに重点を置いていることがわかる。Arduinoの成功をおもしろく思わない堅物たちは、Arduinoでは電子回路の基礎を学ぶことができないと文句を言う。「ふん、こんなものは本物の電子回路ではない」「簡単すぎる」と彼らは言うのだが、そのとおりだ。もし、Arduinoを使わずにLEDを点滅させたりモーターを制御したいなら、そしてもしあなたがアーティストやデザイナーなら、相当がんばらないとね。なんとか動くようにできるまでには、それなりの日数がかかる。もちろん、電子技術の分厚い参考書に敬意を払うのはよいことだし、学習した技術は称賛に値する。だけど、大半の人間は、バーニングマンのコスチュームのLEDが点滅さえしてくれたら、それでいいのだ。
古くからあるマイクロコントローラー愛好家たちはArduinoをどう見ているかを知るための、よい例がある。それは、Arduinoにも使われているAVRマイクロコントローラーの公式ユーザーグループ、AVR Freaksのメンバーの主張だ。彼らはAVRがメジャーになって喜んでいるだろうと想像するかもしれない。しかし、技術者でもない連中が変テコなプロジェクトにAVRマイクロコントローラーを使い出して、彼らの階級が脅かされていることをおもしろく思わないメンバーが多いのだ。私のお気に入りのコメントはこうだ(私はこれをTシャツにしたいと思ってる)。
“Arduino: baby-talk programming for pothead”(Arduinoはマリファナ中毒野郎のための赤ちゃん言葉のプログラム)ArnoldB, AVRfreaks.net
この誤った態度は、Arduinoを後押しすることになってしまった。これがもとで、Arduinoファンは独自のコミュニティを作るようになったからだ。私から見れば、このコミュニティは非常にまとまりがあり、紳士的で人を見下すような態度はとらない。
Arduinoはシンプルだが、シンプルすぎることもない。そもそもArduinoは、学生たちがこれを使って何かを「する」ことを主眼に作られた。センサーのデータを読み込み、ちょっとしたコードを書いて、何かをさせる。自分でコードを書く必要すらない。どこかからコピー・アンド・ペーストしてくれば、それでも動く。精密な溶接というよりホットグルーに近い。ほんの実験段階で手を切り落としたりスタジオを全焼させるような危険もない。Arduino開発チームのメンバーには、デザインとアートの教師がいる。Arduinoは、一歩ずつ学んでゆけるプラットフォームとして、さまざまな教訓や公開された共有コードなどをもとに日々改良されているのだ。教えを受けたデザイナーやアーティストはMac上でProcessing(Arduinoの古い兄弟)をいじくりまわしている。
というわけで、心温まるアートと愛に溢れた物語りだ。そしてこれが、ArduinoのDIYサクセスストーリーというわけなのだが、これで終わりではない。まだまだある! もう少し具体的な話をしよう。
Mac、Linux、Windowsで走るIDE
IDEは、Mac、Win、Linuxで走り、完全にオープンソースだ。IDEとは、Arduinoにプログラムをするための手法。長い歴史を持つProcessing(デザイナーやアーティストの間で人気のグラフィックを駆使するプログラムを作るためのプログラミング言語と開発システム)がベースになっている。Windowsだけでなく、MacとLinuxでも使えた。これは多くのユーザーにとって重要だ。Processingには強固で充実した支援態勢、オープンソースのGCCのツールチェーン、Javaのラップなどがあるため、移植も簡単で、バグの発見も修正もすぐにできる。頭のいい人たちが大勢、このIDEを使い、改良に励んでいる。自分のプラットフォームで、めちゃくちゃクールな連中にすごいことをやってほしいと思ったら、MacでもLinuxでもシームレスに使えるIDEが必要だ。
Mac、Linux、Windowsで走るドライバー
IDEと同じく、ドライバーも Mac、Windows、Linuxで使える。FTDIドライバーも「ちゃんと動く」。シリアルという(遅いけど)広く知られている接続方法にこだわったのも正しかったのだと思う。HIDや独自方式というのもクールだし、ずっと高速だが、シリアルチップは、デバッグにもプログラムにも使えて、Java、Python、Perl、C、NET、BASIC、Delphi、MAX/MSP、PureData、Processingといったソフトウェアツールと簡単に連携できる。
ライブラリー、簡単シンプル、簡単ハード
SDカードへの書き込み、液晶画面表示、GPSデータの解析などなど、複雑な処理をしてくれるオブジェクトをラップしたライブラリーが無数にある。また、ピンの設定変更やボタンのデバウンスなど、シンプルな処理をするライブラリーもある。我々は10のチップに10のUARTコードを書くといったことにウンザリしていたが、Serial.begin(9600)
を呼び出せばレジスターをキチンと設定してくれる。
軽量でメタルで走る
コードは、洗練されてよく知られたコンパイラー(AVR GCCはAVRのデフォルト、または標準と言っていいだろう)を使って、直接、素のハードで走る。.NETやBASICのようなインタープリターではない。高速で、小さくて、軽くて、バルクの新しいチップにHEXファイルでプログラムできる。
センサー
Arduinoが成功したのは、アナログ-デジタル入力を備えているからだろう。言い換えれば、光や温度や音など、低価格の市販のセンサーからの信号を簡単に読み込めるという点だ。デジタルセンサーのための、すぐに使えるSPIやI2Cも用意されている。これにより、市販されているセンサーの99パーセントがカバーできる。ほかのプラットフォームでは、こう簡単にはいかない。BeagleBoard(いい製品だ)が、センサーのデータを読み込むために、いつもArduinoとセットで使われてるのは、おもしろい光景だ。
シンプルだけどシンプルすぎない
開発用ボードは、できることのすべてを示すように、液晶パネルやボタンやLEDや7セグメントLEDなどの追加パーツが複雑に取り付けられているのが伝統だった。しかし、Arduinoには必要最低限のものしかない。もっと機能が欲しければ、シールドを使えばいい。Arduinoには、液晶パネルやWi-Fiなど、何百種類ものシールドがある。それらを使うかどうかはユーザーが判断する。シールドを使えば、じつに簡単に機能を追加できる。そこにまた、シールドを作って売るとというビジネスチャンスが生まれるのだ。
チップメーカーの製品ではない
Arduinoを開発したのはチップメーカーではない。それのどこが重要なのかって? チップメーカーは、自社製品と他社製品との違いを見せたがる。差別化をはかるために、余計な機能を追加したがるのだ。反対にArduinoは、差異ではなく、マイクロコントローラー同士の共通性を重視している。つまりこれは、Arduinoが初心者にとって理想的なプラットフォームであることを示している。Arduinoでできることは、ほかのどのマイクロコントローラーでもできるからだ。Arduinoで学んだ基礎は、ずっと将来まで役に立つ。
低価格
Arduinoはひとつ30ドルで買える。もうすぐ20ドルのものも出てくるだろう。一般の開発用ボードは、チップメーカーがより現実的な価格設定にしようと努力を始めてはいるものの、安いもので50ドル、100ドルを超えるものも珍しくない。
オープンソース
Arduinoがオープンソースであるのは素晴らしいことだ。クローンを作って販売もできる。しかし、これが成功の最大の理由ではない。むしろリストの下のほうに書かれるべきことだ。とはいえ、ぜんぜん関係ないかと言えば、そうではない。特殊用途の派生品を、誰に金を払うことなく、また誰に断ることなく勝手に作ることができる。オープンソースハードウェアだから、企業でも学校でも、ライセンス料を払うことなく自由に使える。生産終了となりソフトウェアが失われるという心配もない。新機能が欲しければ、時間をかけて開発して追加できる。何千何万という人が、ほんの少しずつでも投資したり、所有権を持てば、みんなはもっと大切にするだろう。オープンソースソフトウェアについては、その恩恵についてこれ以上議論する余地はない。
以上が、Arduinoが「勝った」(少なくとも私が勝ったと思った)理由だ。ここまでやったプラットフォームはほかにない。惜しいところまで来たものもある(Netduinoはニッチな部分を埋めた素晴らしいプラットフォームだ)が、十分ではない。今あなたは、頭の中で長短のポイントの計算をして納得してくれているかもしれない。FPGAのほうがずっと優れていると言いたくて息を荒げているかもしれない。どちらにせよ、上に掲げたすべてのポイントにチェックマークが入らない限り、あなたのプラットフォームは、まだArduinoに対抗できる段階ではない。とくに、それをArduinoキラーと呼びたいならね。
なぜArduinoは生き続けているのか
参入の敷居は金銭の問題ではない。哲学の問題だ。それには大胆さが必要であり、委員会的思考(*)から脱却する必要がある。チップメーカーは、自社製チップを宣伝する必要がある。Macをサポートするとか、大量のソフトウェアやライブラリーやIDEを用意するといったことに興味がない。チップメーカーは(歴史的に)プラットフォームを作る企業でもあった。大手メーカーがArduinoの30ドルラインを割り込む補助金付きハードウェアで市場を席巻してしまうかもしれない。それでも、Arduinoのサポートと品質が保たれていれば問題はない。
ほかにもArduinoが長続きする理由がある。コミュニティだ。10万人以上の人たちが、いっせいに船から飛び降りることがあるだろうか。それはあり得ない。Arduinoに近づこうと思えば、Arduinoとまったく同じようにものを作らなければならない。シールドやアクセサリーに対応し、山ほどのコードを書く(チップメーカーがやりたがらない仕事だ)。複数のシステムで使える素晴らしいソフトウェア、豊富なライブラリー、ちゃんと動くドライバーがあるシンプルで低価格なオープンソースハードウェアだ。だが、ひとつ教えておこう。それこそ、Arduinoチームが求めていることなのだ。彼らはテクノヒッピーだ。同じアイデアの違うプラットフォームが誕生するのを楽しみにしている。彼らは、そういうゲームをプレイしているのだ。思うに、それは我々みんなも望んでいることだ。Arduinoという名前であるかどうかは関係ない。
Arduinoを負かしたいのなら、思い切ってArduinoの仲間になるべきだ。ユーザーにとって、最良のソリューションは、すでに大勝して生き続けているものを使うことだ。キング、Arduinoに栄えあれ!
こちらも:
新しいMake: Arduino ページも見てください。MAKEがArduinoのすべてを解説します。(英語)
– Phillip Torrone
訳者から:委員会的思考(Comittieethink)とは、誰がリーダーなのかわからず、明確な主張や哲学がない状態で、大勢の人間が部分的に関わって物を作っていくという考え方のこと。ハリウッド映画みたいな感じかな。
[原文]