Использование 3.1 хост-режима USB с Arduino - PullRequest
13 голосов
/ 02 августа 2011

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 18 ноября 2011

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

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

Однако у нас это работает на Acer A500.

2 голосов
/ 10 августа 2011

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

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

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

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

1 голос
/ 02 сентября 2011

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

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

0 голосов
/ 09 августа 2011

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

...