Smartphone World Volume. 1, 3を見ながらJOYSTICK SHIELDを載せたArduino MEGA ADKとAndroid端末Google Nexus OneをつないでADKの動作テストを行った。
Arduino側はDemoKitとジョイスティックのサンプルスケッチを元に、AdkAppというスケッチを作りアップロード。
Android側もDemoKitを元に、AdkAppというアプリを作ってインストール。
Arduino側には電源のためにUSB出力のACアダプターをつないで起動後、AndroidからのUSBを接続。
すると、Androidの画面にUSBアクセサリーの接続確認のダイアログが出てくるので、OKをタップすると AdkAppアプリが起動した。
Arduino側のジョイスティック、ボタンの状態がAndroid側の画面に表示されるのを確認。
動作を動画に撮ってYouTubeにアップロードした。
チェックポイントは、Android側のAndroidManifest.xmlファイルにUSBアクセサリーに関係する部分を正しく書くことと、リソースのxml/accessory_filter.xmlとArduino側のAndroidAccessoryの記述を合わせること。
USBを通じての通信はすごく簡単。接続までは勝手にやってくれるし、通信内容は自分で勝手に決めていいみたい。
Androidのlayoutがよくわかってないので、画面のビューが右揃えになってしまっていて、中央に揃えられない。
あと、レイアウトエディターでJoystickViewを載せたらエラーが出てButtonViewを載せようにも編集できなくなったので、xmlを直接コピペして編集した。
プロジェクトのソースコード。
AdkApp-Android.zip
AdkApp-Arduino.zip
同様に Arduino MEGA ADK と Android端末(Galaxy Nexus)を用意し、Demokitをそのままテスト試みましたが、うまく動作していません。
1 Arduino-1.0 ではArduinoのIDEのベリファイでエラーが出ます。 海外のサイトにUSBHostShield0023 を使えと書いてあったので、そのとおりにしたらエラーはなくなった。
2 Demokitをビルドし、Android端末で動作させましたが、ADKボードを接続しても、please connect a Demokit board のままです。
ボードが認識できていないように見えます。
↓↓ のところ、もう少し具体的に教えていただけないでしょうか?
チェックポイントは、Android側のAndroidManifest.xmlファイルにUSBアクセサリーに関係する部分を正しく書くことと、リソースのxml/accessory_filter.xmlとArduino側のAndroidAccessoryの記述を合わせること。
adac5963さん、コメントありがとうございます。
コメント欄だと狭いので改めて記事として書きます。
二、三日のうちに書けると思います。
少々お待ちください。
是非、よろしくお願いします。
ピンバック: ADKでのチェックポイント « Physical Computingに挑戦!
adac5963さん
記事にしてみました。
いかがでしょうか?