Electronics

2011.05.20

GoogleがArduinoを選択したことの何が問題なのか、そしてこれは「Made for iPod」終焉なのか?

Text by kanai

Why Arduino Google
先日、年に一度のGoogle I/Oがサンフランシスコのモスコーンセンターで開かれた。大勢の人や企業が集まった、巨大なドットコムど派手パーティーだ。特に、対象となるのが「Googleのクラウドとオープンウェブ技術を使ってアプリケーションを開発している、ウェブ、モバイル、企業向けの開発者…… I/Oで紹介される製品と技術はApp Engine、Android、Google Web Toolkit、Google Chrome、HTML5、AJAXとData API、Google TVなどなど」ということだが、Google TVとGoogle Waveに関しては、今年は大したことがなかった :) しかし、オープンハードウェアとモバイル関係の人間には、歴史上もっとも重要なイベントになったはずだ。
今週のコラムでは、Googleがオープンソースハードウェアのプラットフォーム(Arduino)をAndroid Open Accessoryキットに選んだこと、そして、どうしてそうなったかについて語りたいと思う。また、Googleはなぜうまくできたのかについても、ちょっと考えてみたい。そして、私がいつもこのコラムで行っている「予測」(なぜArduinoが勝利して今も生き続けているのか)をやろうと思う。 1) GoogleはAndroidとArduinoを組み合わせることでキネクトのような創造性の結集を実現する。 2) Appleは排他的な「Made for iPod」(TM) プログラムを破棄してアクセサリ開発に何らかの形でArduinoを採り入れる。 3) Microsoft/Nokia/Skypeはこれらすべてを注視し、Windows Phone 7用のアクセサリ開発にNetduinoの採用を考えるようになる。
モバイル関連企業が、これまで思いもつかなかったアクセサリで創造性あふれる電話市場の活性化を夢見るならば、これがそのための道筋だ。
それでは始めよう。
Androidに関するデータ(Google調べ):

  • アクティベートされたAndroid機器:1億台
  • 1日にアクティベートされるAndroid機器:40万台
  • Android Marketに登録されている無料有料のアプリケーション数:20万本
  • Android Market からインストールされたアプリケーション延べ数:45億本

すごいね。大勢の人がAndroid携帯を持っていて、Appleも安心していられなくなったはずだ。Googleは今週、Android Open AccessoryというAndroidプラットフォーム用アクセサリの製作を簡単にするために、Arduinoを使っていると発表した。素晴らしい。それなら我々もすぐに参入できる。彼らの発表を引用しよう。キーノートスピーチも見られる。

開発当初より、Androidはモバイルフォンを越えるものを目指してきました。それを念頭に、あらゆるAndroid機器上で使える新しいハードウェアアクセサリの開発を支援するAndroid Open Accessoryを開発しました。

ハードウェアの話は36:00のあたりから始まる。

ではなぜGoogleはArduinoを選んだのか?

30万ユニット以上ものArduinoが「野放し」状態になっているわけだが、学生から、Processingや教育などを通して、よくわかっていないで使っている人までを含めると、50万人以上の人が、なんらかの形でArduinoを使って何かをしていると思われる。前にも書いたとおり、マイクロコントローラプラットフォームとしては、Arduinoは勝利して生き延びている。コミュニティ、オープンなIDE、オープンハードウェア、ちゃんと動くドライバ、クロスプラットフォーム(非常に安価で、何かをしたいと思えば、今すぐにできる。実際、アナログセンサーのデータを読み取ったり、モーターを制御したりといったことを、Arduinoよりも簡単にできる方法はない)、重要なのはここだ。とくに、電話を使ってこれと同じことをしたいという場合はね。
世界中に何百万台という電話があり、Googleはアクセサリの開発をめちゃくちゃ簡単にしたくて、そのための、簡単に使えてセンサーに対応した、このパーティーを立ち上げる十分なパワーを持ったオープンソースプラットフォームを探していた。それがArduinoだ。これには異論があるだろうが、Arduino以外に候補は考えられないだろ?
ただし、今回Googleが発表したArduinoハードウェアには、まだそれを実現できるだけの力はない。Google I/Oでは参加者全員にこれを無料配布するという素晴らしい行動に出たわけだが、もうすぐ、もっと安くて(もっと高性能な)やつが出てくる。Googleは、最初にこれを実装するときに、いくつか、私が疑問に思う決断をしたはずだ。次にその話をしよう。

Android Open Accessory Kitって何だ?

Unboxing-1
こういうことだ

Android 3.1プラットフォームは、Android Open Accessory対応となります(Android 2.3.4にもバックポートされています)。これは、Android搭載デバイスと外部USBハードウェア(Android USBアクセサリ)を、専用の「アクセサリ」モードで通信できるようにするものです。接続されたアクセサリはUSBホストとして作動し (バスパワーでデバイスをエミュレート)、Android搭載デバイスは、そのデバイスとして作動します。Android USBアクセサリは、Android搭載デバイスに装着できる形をしており、シンプルなプロトコル(Androidアクセサリプロトコル)でしっかりと接続され、Android搭載デバイスがアクセサリモードに対応しているかどうかを確認できなければいけません。また、アクセサリは、5ボルト500ミリアンペアの充電用電源を供給できなければなりません。これまでに発売されたAndroid用デバイスの多くは、単にUSBデバイスとして作動するものであり、外部USBデバイスとの接続を開始する機能はありませんでした。Android Open Accessoryに対応していれば、さまざまな種類のAndroid搭載デバイスに、アクセサリ側から接続を開始できるように、アクセサリを作ることができます。
Mega2560とCircuits@Home USB Host ShieldをベースとするUSBマイクロコントローラボード(ADKボード)は、後にAndroid USBアクセサリとして実装されます。ADKボードには入出力ピンがあり、ここに「シールド」と呼ばれるアタッチメントを接続できます。C++で製作したファームウェアをボードに実装して、ボードの機能の定義とシールドや Android 搭載デバイスとの通信を行います。ボードのハードウェア設計ファイルは、hardwareディレクトリにあります。

早い話が、ADKは、USBホストのシールドを乗せたArduino Megaで、安定した5ボルト電源をAndroid携帯に外部から供給するというものだ。これはいいニュースだ(だけど、悪いニュースもある。Googleのやり方だ。少なくともベストじゃない)。

Android Open Accessory Kitのバッドニュースとは

Pt 101006
上の写真はIOIO for Android
AndroidとArduinoをつなぐ方法は前からあった、と言いたい人もいるだろう。MicroBridge、IOIO、Amarino、Cellbotsみたいなやつだ。ADKはIOIOの後退版だと言えないこともない。ADKは新型の携帯電話にしか対応しないからだ。これで作ったアクセサリは古いモデルには対応できなくなる。だけど、携帯電話って、そういうもんだろう。新しいモデルを売りたいために、新しい機能を盛り込むんだ。
Pt 101007
この他にも、数々の製品やプロジェクトがある。どれも素晴らしく、進化を続けている。だからと言って、Googleが劣っているわけではない(今のところ)。このまま行けば、IOIOみたいなものがGoogleから出てくるだろう。あくまで想像だけど。上の写真はOleg MazurovのUSBホストシールド(MicroBridgeを使用)

“Romfont” が詳しいコメントをくれた。多くの点で同意できる。

ADKチームは、ひどいプロトコルを作ることで、最新型の電話でしか使えないようにしてしまった。短期的に見ると、商業的価値はまったくない。ホビイストたちも、今持っているデバイスのROMを最新のものに更新するか、新しいスマートフォンを買うかしない限り、このお楽しみには参加できない。そのため、お粗末な設計の互換性のないデバイスでなんとかやるしかない。しかし、このなんとかやった方法が、Googleによって支援されたスタンダードとなった。
私はADKの信奉者になりたかった。正しい設計をしてくれていたら、今ごろ私は、Googleの素晴らしい業績を讃える最初の人間になっていたはずだ。新しいプロトコルを正しく追加できたはずだ。ADBを元に何かを作れたはずだ。それよりも、OTGに対応できたはずだ。今のところ、ADKは、未解決の問題を解決できずにいる。それどころか、浅はかな考えに基づく規格を追加したことで、事態はさらに悪くなってしまった。Androidにはもうこれ以上規格を増やさないでくれと、みんな思っている。

全体を読むと、鋭い指摘がいくつもある。だけど、GoogleはArduinoをAndroidに使うと宣言したことは大きいと思う。これから、もっとマシなものが作られるようになるはずだ。今、その仕事に取りかかっている連中を知っている。USBホストシールドとArduinoを今でも使えると伝えられているけど、電源の問題があるという。それが本当かどうか、確認をとっているところだ。
もうひとつ、Googleにはハードウェアの専門家がいないということがある。MegaとUSBホストシールドを合体させたのは、Google I/Oになんとか間に合わせようと急いだ結果だろう。Arduinoならすでに開発ベースができている。Googleは、プロトタイプやアクセサリの開発者に、または、ただ電話でLEDを点滅させたいだけの人に、KEILのコンパイラを買わせるようなことをしたくなかったのだ。と、Google寄りの言い方をすればこうなる。とにかく私は、次のバージョンに(そしてオープンソースコミュニティの出方に)期待している。
そうそう、もうひとつ言っておくべきことがあった。ADKファイルがここでダウンロードできる。ちなみに、Googleはオープンソースハードウェアの手続きをきちんとやっている。(うれしいね!

これはAppleの拘束的な「Made for iPod」(TM) の終焉なのか?

Pt 101008
iPod や iPhone で使える公認アクセサリを作るために必要な Apple の認証は、どうやったら受けられるか。

MFiライセンスプログラムへの参加により、iPod、iPhone、iPadに接続する電子アクセサリを開発できるようになります。ライセンスを取得したデベロッパは、技術資料、ハードウェアコンポーネント、テクニカルサポート、認定ロゴをご利用いただけます。デベロッパは、iPod、iPhone、iPadとの情報交信に使用される通信プロトコルである「iPodアクセサリプロトコル」について説明している技術仕様書を受け取ります。また、デベロッパは、iPod/iPhone/iPad用のアクセサリを製造するのに必要なハードウェアコネクタとコンポーネントをご利用いただけるようにもなります。

「ライセンスを取得したデベロッパ」というのは古い考え方だと思う。「オープンな仕様」じゃないと。Appleのやり方は、もうダメなのか? Androidアクセサリが今後どう出るかに大きく左右されるが、クールで素晴らしい製品がAndroidのほうにばかり出るようになれば、そうなるだろう。そうなればAppleもアクセサリを簡単に作れるようにするだろう。そうせざるを得なくなる。
Appleアクセサリの秘密保持契約はホントにホントに(どこよりも)キツいと聞いたことがある。Appleのアクセサリを作ったことのある知人が、こう話してくれた。「自分が作っているものをAppleが気に入ると、彼らはそれをパクる。そのことは肝に銘じておくべき」だと。これは何年も前のiPodしかなかった時代の話だが、考えさせられるものがある。自分が作りたいハードウェアをAppleが気に入らなかったら、彼らはすぐに関係を絶つ。App Storeからアプリを削除されるようにだ。Appleとの仕事は素晴らしかったという体験をお持ちの方は、ぜひ意見を聞かせてほしい(契約上許される範囲で)。
個人的にAppleのiOSのプログラムで痛い目に遭っているので、偏見があるかもしれない(どうしても私のアプリを承認してくれなかった。連絡を取る方法もなく、悪夢だった)。結局あきらめたのだが、大変な時間の無駄だった。それに、今はオープンソースハードウェアを中心にがんばっている企業を応援したいと考えているしね。
さらにもうひとつ…… Googleはアクセサリ開発を内部でやるようになるかも

HershensonとBritは、2000年にDangerを立ち上げた3人のうちの2人。3人目は、Android開発主任、Andy Rubinだ。この3人のエンジニアは、2000年に、当時セレブの必需品ともなったT-Mobile Sidekickなどの一般向けスマートフォンを他に先駆けて開発した。
その3人が再び手を握ったのだ。この12カ月の間、BrittとHershensonは密かにGoogleの Android部門の中の新部門、Android Hardwareを立ち上げていた。(中略)彼らはそこで、Android用周辺機器のリファレンスデザインとなるものを作っていた。Android Hardwareは、ホームオートメーションから運動ゲーム、ロボティクスまで、あらゆるものに手を付けた。GoogleブランドのAndroid用ハードウェアを今すぐ発売するというわけではないが、Britは、ゆくゆくはGoogle独自のAndroid周辺機器を出したいと考えているようだ。クパチーノの連中(編注:Apple)は気が気ではない。

ものすごいチームだ。びっくりするようなアクセサリを次々に生み出して、Googleからコンスタントに卒業していく人々と一緒に、またはその人たちに手渡して、新しい会社を作らせるという(で、後にまたGoogleに吸収される)ことになっても、驚きはしない。これはAppleとは正反対のやり方だ。昔のSidekickを今でも使いたいと思うよ。

Microsoft/NOKIA/Skypeは、どう対処すればよいのか?

Mknd01-2
Microsoftが、Googleと同じことをしたいと考えたらどうだろう。オープンソースの.NETプラットフォームなんて、あったっけ? ある! Netduinoだ。さあ、バルマーよ、急いでNetduinoの連中に会って、Windows Phone 7用の新しいアクセサリ開発プラットフォームについて話し合うのだ。冗談で言っているのではない。次の「Kinect」をどうするか、真剣に話し合ってほしい。だけど、Netduinoの会社を買収しようなんて考えないでくれよ。そんなことしたら、メチャクチャになる。彼らを表から支えるんだ(ないしょでもいい、なにせSecret Labsだからね)。そして、すべての .NET開発者にWindows Phone 7 phoneとNetduinoを配布してハッキングをさせるんだ。開発者が命だ。そうでしょ?

デベロッパーズ! デベロッパーズ! デベロッパーズ! と冗談はさておき、レッドモンドでこんな会合があってもおかしくない。お偉方のオーケーが出るといいんだけど。NetduinoとMicrosoft、やってくれ!

Android は次のキネクトとなって創造的ハッキングを引き起こすか?

朗報を待とう。Google I/Oに参加した何万人もの人たちが家に帰っていく。数日以内に、最初の「ハック」が現れて、数週間以内に最初のアプリケーションとアクセサリのプロトタイプが現れるだろう。そして数カ月以内にアクセサリが発売され、Kickstarterが出資を募り、忽然と新しいものが現れるかも知れない。我々全員にとって、次に何が起こるかを予測する最良の方法は、自分で作ることだ。今まで、Androidにはあまり関心がなかったんだけど、「脱獄」は面倒な手続きの必要がなく、そのあげくに拒否なんて目に遭うことなく、新しいものが作れると思うと、なんだか無性に作りたくなってきた。大好きで使い慣れたオープンソースの開発プラットフォームもある。Arduinoだ。GoogleがArduinoを選んだことが、どうして問題なのか? それは、今このときから、Googleに対抗して開発者を刺激してアクセサリを作ろうと思うと、オープンにしなければならなくなるということだ。そして、どうしてもArduinoが必要になるということだ。
– Phillip Torrone
訳者から:Apple のオープン化の話は出ては消えしてきたけど、もうホントにヤバくなってる感じだね。ボクもAppleデベロッパプログラムに1万円払ったけど、なんだか面倒くさくて、何もしてない。がんばってくれ、Apple。
原文