Как определить, есть ли на Android-устройстве режим открытых аксессуаров

Кто-нибудь знает, как это проверить? Я только что купил Samsung Galaxy Tab 2 (7"версия под Android 4.0.3) с намерением использовать его для подключения к моей плате Arduino Mega ADK. Но я не уверен, есть ли на вкладке galaxy необходимый режим Open Accessory, указанный здесь: http://developer.android.com/guide/topics/usb/adk.html

Кажется, только то, что программное обеспечение правильно, не означает, что устройство совместимо, и это зависит от производителя. Так как это новый планшет я ничего не нахожу. Любая помощь?

5 ответов

Добавьте Galaxy Nexus в список.

Nexus S ICS 4.0.4 работает, 4.0.3 сломан.

Убедитесь, что питания достаточно - по крайней мере, Nexus S вылетит и периодически перестанет видеть плату ADK, если на тандем "плата + телефон" подается питание от USB-концентратора.

Я не знаю, как вы можете узнать, имеет ли ваше устройство этот режим 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 позволило зарегистрировать соединение и сделать приложение еще более интересным.

Однако я тестировал только те устройства, которые, как я знал, поддерживали ADK:

  • Galaxy Nexus
  • Nexus S
  • Motorola Xoom

Вам нужно будет обеспечить достаточное питание для устройства ADK - по крайней мере, Nexus S может работать нестабильно, когда устройство ADK получает питание от USB-концентратора. Контрольные признаки - это режим ADK, исчезающий без видимой причины.

У меня есть Samsung Galaxy Tab 2 (7"версия под управлением Android 4.0.3) и аксессуар Android, который работает как минимум с 3 другими устройствами, но не на вкладке. Возможно, это связано с тем, что в 4.0.3 он поврежден (как и в случае с Nexus S, в котором 4.0.3 не работает, а 4.0.4 нет). Кроме того, 2.3.4+, работающий на других устройствах Samsung, лишен библиотеки USB-аксессуаров.

Проблема с capsense заключается в том, что capsense не существует! Вам нужно добавить CapacitiveSensor.h в проект, а затем изменить все ссылки на capsense на CapacitiveSensor для устранения этих ошибок (arduino ide 1.5.2). Все еще могу получить соединение.(4.1.3), и я задаюсь вопросом, нравится ли SExperia mini pro и нужна ли док-станция.

Я только что получил свой Samsung 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);

Сенсорное устройство подключено к последовательным линиям, поэтому я предполагаю, что его отсутствие вызывает длительную задержку из-за тайм-аута.

Другие вопросы по тегам