如何判断Android设备是否具有开放附件模式

时间:2012-05-08 21:28:46

标签: android arduino adk

有谁知道如何检查这个?我刚买了三星Galaxy Tab 2(运行Android 4.0.3的7“版本),打算用它连接到我的Arduino Mega ADK板。但我不确定Galaxy标签是否具有此处列出的必要的开放附件模式: http://developer.android.com/guide/topics/usb/adk.html

似乎只是因为该软件是正确的并不意味着该设备是兼容的,并且这根据制造商而变化。由于这是一款新平板电脑,我找不到任何东西。有什么帮助吗?

5 个答案:

答案 0 :(得分:1)

我不知道你怎么知道你的设备是否具有这种ADK模式(我试图设置我的东西时没有尝试跟踪该线索。)但是这里有一些我想到的问题:

确保您使用的是Arduino IDE v1.0,我尝试了23次。但是你必须使用新的。

我还必须编辑草图才能使其正常工作。这是我的新设置方法。我刚刚添加了一些打印语句,因此我可以分辨出它失败的部分。事实证明,init_joystick ( 5 );电话就是它正在死去的地方。我评论说,一切顺利。

void setup()
{
    Serial.begin(115200);
    Serial.print("\r\nStart");

    init_leds();
        Serial.print("\r\nDone LED");
    init_relays();
        Serial.print("\r\nDone Relay");
    init_buttons();
        Serial.print("\r\nDone button");
    //init_joystick( 5 );


    // autocalibrate OFF
    touch_robot.set_CS_AutocaL_Millis(0xFFFFFFFF);

    servos[0].attach(SERVO1);
    servos[0].write(90);
    servos[1].attach(SERVO2);
    servos[1].write(90);
    servos[2].attach(SERVO3);
    servos[2].write(90);


    b1 = digitalRead(BUTTON1);
    b2 = digitalRead(BUTTON2);
    b3 = digitalRead(BUTTON3);
    //b4 = digitalRead(JOY_SWITCH);
    c = 0;

    acc.powerOn();
        Serial.print("\r\nDone Setup");
}

对ADK demokit sketch中的Setup方法的这一更改允许连接被注册,并且应用程序可以执行其他漂亮的操作。

但是,我只测试过我知道支持ADK的设备:

  • Galaxy Nexus
  • Nexus S
  • 摩托罗拉Xoom

您必须为ADK设备提供足够的电量 - 当ADK设备通过USB集线器供电时,至少Nexus S可能不稳定。 Telltale标志是ADK模式剥离没有明显原因。

答案 1 :(得分:1)

将Galaxy Nexus添加到列表中。

Nexus S ICS 4.0.4正常运行,4.0.3已损坏。

确保电量充足 - 如果主板+电话串联由USB集线器供电,至少Nexus S会剥落并间歇性地停止看到ADK板。

答案 2 :(得分:0)

我有一个三星Galaxy Tab 2(运行Android 4.0.3的7“版本)和一个Android配件,它可以与至少3个其他设备一起使用,但不在Tab上。也许是因为它在4.0.3中被破坏了(与Nexus S一样,其中4.0.3被破坏,但4.0.4没有被破坏)。此外,在其他三星设备上运行的2.3.4+已经剥离了USB附件库。

答案 3 :(得分:0)

我的三星Galaxy Tab 2配有7英寸屏幕。它运行Android 4.0.3,我可以使用Arduino Mega ADK!我正在运行Arduino 0023接口来编译代码。 Arduino 1.0界面打破了太多的库,所以我切换到旧的界面。注释掉“init_joystick(5);”行如果你没有盾牌。我可以使用示波器验证3个伺服系统的波形是否正确。

如果仍然无法使其工作,请尝试注释掉与操纵杆相关的任何代码,因为它可能挂在I2C通信上。否则,请访问dfrobot网站并订购ADK防护罩,价格约为60美元,以便正确读取操纵杆。这是我的下一步。

更新:注意到平板电脑的更新速度非常慢。如果您没有盾牌,修复就是注释掉这一行:

// touchcount = touch_robot.capSense(5);

触摸设备连接到串行线路,因此我假设没有一个因超时而导致长时间延迟。

答案 4 :(得分:0)

capsense 的问题是因为 capsense 不存在! 您需要将CapacitiveSensor.h添加到项目中,然后将所有referance更改为 capsense 更改为 CapacitiveSensor 以修复这些错误(arduino ide 1.5.2)。 仍然可以获得连接。(4.1.3)我想知道是否喜欢SExperia mini pro并需要一个扩展坞。