Подтвердить что ты не робот

Использование режима 3.1 USB-хоста с Arduino

Есть ли хороший учебник по использованию Arduino с Android, где Android-устройство является USB-хостом? (Android-устройство имеет ОС версии 3.1 (Honeycomb) или более поздней версии). Единственная хост-программа на сайте разработчика - это ракетная установка, которая кажется намного проще, чем взаимодействие с Arduino.

Особенности: Я пытаюсь сделать хост Asus Transformer Arduino Uno, но поскольку информации о том, как Android режим хоста работает, я теряюсь с того, с чего начать. Мне просто нужно, чтобы Android мог читать данные из памяти Arduino. Arduino используется для подсчета частоты сигнала, это значение затем должно быть передано на Android. Если я пропустил какой-то простой способ сделать это, не стесняйтесь, дайте мне знать.

(Существует много информации о том, как использовать ADK, чтобы сделать Arduino хостом, но с Transformer, это не вариант - см. Stack вопрос о переполнении Возможно ли, что Android ADK работает на ASUS Eee Pad Transformer с запуском версии 3.1?.

Информация не обязательно должна быть Transformer или Uno specific, я просто не могу найти примеры людей, использующих новый режим хоста на своих планшетах.

4b9b3361

Ответ 1

Arduino uno сбрасывает FTDI или аналогичный чип usb-rs232, используемый в предыдущих проектах, в пользу перепрограммируемого интерфейса USB на основе LUFA.

С обычным linux вы будете использовать USB CDC-драйверы - так что вопрос будет, если сотовый планшет поставляется с этими.

Поддержка Honeycomb USB host, как представляется, предоставляет средства для написания низкоуровневых USB-драйверов в сторонних приложениях для Android-приложений, поэтому, предположительно, если функциональности еще нет в ядре, которое можно было бы добавить в пользовательском пространстве.

Еще одна идея - изменить установку LUFA на arduino, переконфигурировать ее в один из многих других режимов, поддерживаемых проектом LUFA, чтобы он выглядел как что-то, что немодифицированный сотовый планшет уже знает, как разговаривать, например накопитель большой емкости или клавиатуру или мышь и т.д. Однако, если вы хотите использовать низкоуровневый (особенно записываемый) доступ к этой периферийной системе, вам может потребоваться доступ на уровне корневого уровня на планшете сотовой связи.

Ответ 2

У нас есть FTDI-коммуникации, работающие без драйвера ядра, используя этот код: http://android.serverbox.ch/?p=370

Обратите внимание, что на Samsung Galaxy Tab 10.1 не хватает надлежащего USB-кода для обнаружения USB-устройств (помимо мыши, клавиатуры, концентратора и памяти, которые обнаруживаются ОС и не передаются приложениям).

Однако мы получили эту работу на Acer A500.

Ответ 3

Если вы просто хотите найти несколько примеров приложений, использующих функции USB Host, лучше всего использовать что-то вроде инструмента кодов поиска google и выполнить поиск некоторых классов/разрешений/намерений хоста usb

Например, поиск android.hardware.usb.action.USB_DEVICE_ATTACHED вызывает следующие приложения:

Ответ 4

Поскольку Arduino использует чип конвертера USB для RS232, для USB-порта режима хоста обычно требуется драйвер модуля ядра для реализации последовательного драйвера. Обычно используется чип FTDI, модуль может называться ftdi_sio. Поэтому на низком уровне, если включен режим USB-хоста, система может обеспечить устройство /dev/ttyUSB 0 с использованием этого модуля. Но это бесполезно, я думаю, поскольку он скрыт от приложения, если он не работает на корневом устройстве. Таким образом, абстракция ADK высокого уровня - это путь, который я думаю.