Arduino ADK用のADKライブラリを公開しました

初めての技術ネタで(^^;

Arduino ADK(旧Mega ADK)用のADKのライブラリをGithubで公開しました。 @itog さんのライブラリを修正しています。目的としては、一般に入手しやすいArduino ADKで最低限の動作確認ができるようにしたものです。初心者向けに出来るだけフレームワーク側で処理を行うように設計しています。おそらくもっとリファクタリングできると思いますが、そこは目的ではないので適当です。またADKをすでにわかっていてもっと活用したいという方は対象になりません。高いArduino ADKを買うより、Harpyとかの互換機でちゃっちゃと動かしてしまう方がいいでしょう。

 構成

(ネーミングが旧のままですが直すの面倒なのでそのままです)

サンプルを組み合わせると、AndroidのトグルスイッチでArduino ADKの13pinに接続されているオンボードのオレンジ色のLEDをON/OFFします。
(基板上に抵抗が接続されているため過大電流は流れません)

f:id:tomo_watanabe:20120407120914p:plain

全体のクラス構成

緑色がライブラリに含まれます。赤色がアプリで実装するクラスコードになります。出力、入力ともに接続するセンサーをクラスとして設計できるようにしています。USBのADKを認識するUSBAccessoryActivityとメインとなるConcreteActivityがあり、出力用にはOutputDataクラス、入力用にはInputDataクラスを継承しインスタンス化して使用します。

f:id:tomo_watanabe:20120406144937p:plain

このサンプルでは、ConcreteOutputを利用した「ADKへの出力」しか実装されていませんが、こちらのアプリでは「ADKからの入力」を実装していますので、入力サンプルを作る時の参考になると思います。(こちらはタクトスイッチを2pinに接続する想定。Arduinoのコードはarduinoディレクトリ以下に配置)もちろん入出力の混在も可能です。

 注意

  1. 全体的に説明不足ですがとりあえず公開します。より詳細はどこかで作らないといけなくなるはず(謎
  2. 動作はArduino Mega ADK(R2版)で確認しています、最新版はArduino ADKと名称が変更されR3版に変わっているようです。
  3. ConcreteActivityから別のActivityを起動してもUSBデバイスを離さないようにしています。(onPause()で離すようにしたら、onResume()で再接続してくれなくて困ったので) 
  4. アプリの終了時は「メニュー」キー「Quit」で終わるようにしてください(そうしないとUSBデバイスを握りっぱなしになってしまう)

 おまけ

Android Bazaar and Conference 2012 Springに行って来ました

ABC 2012 Springに(今回は)一般参加者として参加してきました。

運営の方々お疲れ様でした&ありがとうございました。

回を重ねるにしたがい、当たり前ですがAndroidが普及したなーと思わせる盛況ぶりでした。特に女性の参加者が増えているのが普及期が来たなと感じました。講演内容も割りと高度な内容が多くなってきて、マネタイズやプロジェクト運営の話など、Androidを利用した場合の課題や問題点が浮上してきているのが興味深かったです。

さて、今回参加してちょっと気になったことがありました。

1. 開発者とマネジメントの齟齬

講演では、開発者とデザイナー、マネージャの関係について、こうすべき、こうしたほうが良くなる。といった講演では満員の聴衆が頷く場面が多くありました。しかし、聴衆のほとんどは開発者側の人たちであり、この内容は本当は経営層やマネージメント層に訴求すべき内容なのです。しかしそういった方々の多くは、こういったイベントには参加しない側の人たちだったりします。ここに技術とマネジメントの齟齬が発生しているように思います。ジャーナリストの多くがiPhoneに拍手を送ることで、ビジネスとしてカッコいい、スマートなイメージがあり、そちらへ向かいがちな点。そして同じモデルをAndroidにも求めていることに違和感を感じます。Androidでマネタイズしたいのであれば、こういった場所にマネジメント層が来て拝聴し、iPhoneとの違いを認識しなければならないと思います(相当泥臭いプロジェクト運営になる可能性はあります)なんとなくですが、

「楽して」儲けたいマネジメント層 VS 「楽しく」開発したい開発者

という構図が浮かび上がって見えてきました。これだけ多くの開発者がいるにもかかわらず、儲からないというのはマネジメント層と開発者の齟齬に問題があるような気がします。開発のディレクションの問題なのか、企画の問題なのか、しばらくは混沌としそうですが、いち早くノウハウを持ったところがマネタイズできる可能性がありそうです。

2. メーカ関係者(開発者)はいずこ?

ABCはアプリ開発を中心としたIT企業系の参加者が多いです。メーカ系は端末を製造するメーカの講演はあるのですが、参加者にメーカ関係者がどれくらい来ていたのか気になりました(某社は過去最大の人数が参加したそうです。GJ)コンシューマエレクトロニクスの向かう先に、モバイルテクノロジーはもはや避けて通れません。高木先生の個人情報の取り扱いについての講演は、今後重要な意味を持つことになるでしょう。デバイス関連ではFXI社のCotton Candyのような発想が可能性を感じさせます。日本でもこういったデバイスを発売するメーカが出てきて欲しいです。ESECやETは、今ある課題を解決するための展示会ですが、ABCはこれから何が起こるか、何を創るのか、を想像し次世代を創造するイベントです。

メーカ関係者はESECとかETとかだけじゃなくて、ABCとかMakeにこそ参加した方が良い

1つ前のエントリで、製造業系の平均年齢を調べましたが、こういったイベントに参加する人が少ない要因の一つになっているのではないでしょうか。若い技術者はどんどんと外へ出る習慣を付けて欲しいと思います。この習慣を付ける・付けないとでは3〜5年後の自分の市場価値で大きな差が開くことになるでしょう。

最後に

総裁スゲー!!