Yaoadkライブラリ集の使い方(Windows7) - ADKstudyGroupTokyo/Yaoadk GitHub Wiki

1. Yaoadk(ADK/MicroBridgeのためのArduinoライブラリ集)のダウンロード

 以下のgithubサイトにアクセスします。

 【URL】 https://github.com/ADKstudyGroupTokyo/Yaoadk/

 「ZIP」のボタンをクリックしてダウンロードします。

 github site
 図1 Yaoadkライブラリ集をzipファイルでダウンロード

 ダウンロードするZIPファイルは、長々としたファイル名になりますが、気にせずそのまま保存しください。

2. ZIPファイルの解凍

 ZIPファイルを解凍すると、以下のようにArduinoライブラリのフォルダが並びます。すべてのフォルダを選んでコピーしてください。

 github site
 図2 解凍したArduinoライブラリのフォルダ

3. ライブラリファイルの配置

 パソコンに配置した「arduino-1.0」フォルダ(ここではC:ドライブ直下)の中にある「Libraries」フォルダに貼り付けてください。

 github site
 図3 「C:\Arduino-1.0\Libraries」フォルダ

 コピーが完了したら「Libraries」フォルダを閉じて、Arduino IDEを起動してください。すでにArduinoIDEを起動している場合ライブラリの反映がされていませんので、いったんArduinoを終了する必要があります。

4. ADK接続の確認

 Androidに接続するにあたり、ArduinoからAndroid側にADKの接続が可能か確認するスケッチを作ります。

 Androidに接続すると、以下のようなダイアログが表示されます。

 github site
 図4 外部インテントによるダイアログ

 USBデバイスとなるAndroidでADKを使える状態をAndroidアクセサリモードといい、アクセサリモードとの接続が可能か問い合わせるスケッチです。

 リスト1 AdkIsConnect.ino

#include <Max3421e.h> //ADKを利用するための3つのライブラリを読み込む(1)
#include <Usb.h>
#include <AndroidAccessory.h>
//外部インテントのための指定(2)
AndroidAccessory acc("ADKstudyGroupTokyo ",          //第1引数:組織名
"AdkNoSuchAppTitle",                                 //第2引数:存在しないアプリのタイトル名
"このAndroidはADKが使えます ADK Connection Test",       //第3引数:ダイアログ表示メッセージ
"1.0",                                               //第4引数:バージョン
"http://accessories.android.com/",                   //第5引数:ジャンプ先URL
"0000000012345678");                                 //第6引数:シリアル番号

void setup() //最初に一度だけ実行される部分
{
  Serial.begin(115200);
  Serial.print("\r\nStart");
  //USBホスト機能を有効にする
  acc.powerOn();
}

void loop() //繰り返し実行される部分
{
  if (acc.isConnected()) { //Androidを起動・接続する命令を送る(3)
    //communicate with Android application(4)
  } else {
    //set the accessory to its default state(5)
  }
  delay(10); //10ミリ秒処理を停止(10ミリ秒おきにloop()を繰り返す) (6)
}

 ソースコードの解説

 (1)コピーしたライブラリを指定し読み込むコードです。ADKを使う場合必ずこの3行をスケッチの先頭に入れておく必要があります。

 (2)外部インテントのための指定を行う部分です。外部インテントとはAndroidの外部(ここではArduino)から起動するアプリの指定のことです。第2引数に"AdkNoSuchAppTitle"という存在しないAndroidアプリ名を指定し、第5引数に「表示」ボタンをタップしたときにジャンプするサイトのURLを入れます。

 (3)Androidと接続を確認する処理です。ADKに対応したAndroidは存在しないアプリを起動しようとしますが、通常"AdkNoSuchAppTitle"というアプリ名は存在しないため図4のダイアログを表示します。

 (4)このスケッチでは何も書かれていませんが、実際にADKのためのAndroidアプリと通信を行い、データのやり取りを行う部分になります。

 (5)ADKが接続されていない際に処理する部分です。接続されていない際のピンの状態などを記述します(省略される場合もあります)。

 (6)delay()関数はミリ秒単位で処理を停止し、loop部分の繰り返しタイミングを決めます。ここではloop部分が10ミリ秒おきに繰り返されます。

⚠️ **GitHub.com Fallback** ⚠️