Google Open Accessories で遊んでいます。
Arduino Mega ADK での簡単な実装と
.NET MF チップ (c#) での実装をテストしました。
いずれかのデバイスを ONDA V712
( http://www.onda-sale.com/onda-v712-dual-core-7-inch-16gb.html )などの安価なタブレットに接続すると
、タブレットはアクセサリを検出します必要な APK をインストールするように求められます。
ただし、いずれかのデバイスを Samsung Galaxy S3、Note II、または Note 8 に接続すると、機能しません。
Galaxy は単に「USB メディア デバイスとして接続されています」と言っています。
Galaxy の範囲のデバイスが #android オープン アクセサリと互換性がないとは信じがたいので、おそらくそれらのデバイスには何らかの設定の微調整が必要ですか? 参考までに、Arduino Mega ADK のコードは WROX のサンプルから引用しています。
#include <AndroidAccessory.h>
#include <ch9.h>
#include <Max3421e.h>
#include <Max3421e_constants.h>
#include <UsbHost.h>
char application [] = "wrox_temperature_sensor";
char accessory [] = "wrox_temperature_sensor";
char company [] = "Wiley";
char versionNbr[] = "1.0";
char serialNbr[] = "1";
char url[] = "http://media.wiley.com/product_ancillary/66/11184547/DOWNLOAD/t.apk";
int sensorPin = 0;
long timer = millis();
AndroidAccessory usb(company, application, accessory, versionNbr, url,serialNbr);
void setup()
{
usb.begin();
}
void loop()
{
if (usb.isConnected())
{
if( millis() - timer > 10 )
{
int val = analogRead( sensorPin );
float voltage = (val * 5.0) / 1024.0;
float tempCelcius = voltage * 100;
float tempKelvin = tempCelcius + 273.15;
byte * b = (byte *) &tempKelvin;
usb.write(b, 4);
timer = millis();
}
}
}
しかし、Arduino/NetMF デバイスは問題ではないと思います。
また、Galaxy デバイスに電力を供給/充電するのに十分な電力が得られるように、12v アダプターで Arduino に電力を供給しました
。
Galaxy デバイスに接続したときの Arduino 出力:
デバイスのアドレス指定... デバイス記述子を要求しています。可能性のある
デバイスが見つかりました。
シリアル モードへの切り替えで、デバイスのプロトコルバージョンを読み取れませんでした
Onda デバイスに接続したときの Arduino 出力:
デバイスのアドレス指定...
デバイス記述子を要求しています。android
acessory device
config desc interface desc
1
2が見つかりました
また、各 Galaxy デバイスに AOA サポートを示すファイルがあるかどうかも確認しました。「/etc/permissions/android.hardware.usb.accessory.xml」
<permissions>
<feature name="android.hardware.usb.accessory" />
<library name="com.android.future.usb.accessory"
file="/system/framework/com.android.future.usb.accessory.jar" />
</permissions>
ノート:
Arduino 側では
、ADK サイトからダウンロードしたUsbHost
ライブラリを使用しています。ArduinoADK-beta-001.zip
このアーカイブには、バージョン 1 とバージョン 2 の 2 つのバージョンが含まれていますが、バージョン 2 を使用すると、コードとサンプルはコンパイルされません。
各 Galaxy デバイスは Android 4.1.1 以降を使用しています。