Общение с Arduino из Android - PullRequest
       27

Общение с Arduino из Android

1 голос
/ 19 марта 2012

Я пытаюсь связаться с платой Arduino (Duemilanove) с устройства Android 3.1 с поддержкой USB-хоста с помощью Android USB Host API.

Цель состоит в том, чтобы общаться с платой так же, как черезSerial.

Я следую этому руководству (http://android.serverbox.ch/?p=427), но у меня есть несколько проблем (например, не удалось получить интерфейс) и грубое руководство разработчика (http://developer.android.com/reference/android/hardware/usb/package-summary.html), но не повезло.

Вопросы:

  1. как подготовить плату arduino (изменить прошивку) - перерывы или что-то в этом роде?
  2. как проверить, нормально ли это с платой arduino (например, перечислить интерфейсы USB иубедитесь, что он поддерживает необходимые. какие инструменты можно использовать?
  3. как найти необходимый интерфейс (что такое класс интерфейса / протокол / подкласс)
  4. в чем может быть причина, когда интерфейс не может быть востребован?(столкнулся с этим)

1 Ответ

0 голосов
/ 21 мая 2012
  1. Плата arduino Duemilanove имеет только встроенный последовательный преобразователь FTDI FT232RL USB.Таким образом, вам не нужно иметь дело со стороной USB-устройства.С точки зрения контроллера AVR это просто асинхронный последовательный порт.Узнайте, к какому UART он подключен, и используйте его.Может быть, вы хотите реализовать простое эхо (снова передать все полученные символы) в качестве первого теста.

  2. Используйте команду lsusb под linux, чтобы проверить дескриптор устройства usb,

  3. Узнайте о USB в USB в двух словах или в официальной спецификации , чтобы узнать, как это работает (особенно глава 9).Без этого вы не сможете продолжать.Вы бы ничего не поняли.Затем перейдите и прочитайте об устройствах класса CDC в разделе класса usb .

  4. Может не существовать (если вы используете индекс интерфейса без проверки дескриптора устройства) или ядро ​​Android заявило интерфейс, потому что есть собственный драйвер для этого интерфейса.В этом случае вы можете вызвать UsbDeviceConnection.claimInterface со значением true в качестве второго аргумента, чтобы сначала отключить драйвер ядра.

...