USB-связь с Android/Arduino

Я работаю над этим Android-приложением, которому необходимо обмениваться данными через USB. У меня есть планшет Archos 101 (характеристики здесь: http://www.archos.com/products/ta/archos_101it/specs.html?country=us&lang=en). Он имеет полный порт USB-хоста. Я могу установить USB-накопитель на USB-порт и скопировать файлы на флэш-накопитель и обратно с него на внутреннее хранилище.

У меня есть эта доска Arduino Fio с прикрепленным к ней XBee. У меня есть XBee Explorer Dongle с другим XBee, который я планирую подключить к планшету Archos 101 в порт USB.

Как сейчас, я могу поместить XBee Explorer Dongle в свой компьютер и отправлять/получать данные в Arduino Fio и без проблем.

Есть ли способ для Android разговаривать по USB? Я знаю, что там должны быть драйверы где-то в планшете, поддерживающие USB-связь, но я не могу найти способ получить к ним доступ или использовать их.

Я вижу, как Android распознает XBee Explorer Dongle. Я загрузил эмулятор терминала, и я могу набрать "dmesg" и увидеть, что он видит, что ключ подключен. Но я ничего не могу с этим сделать.

Мне кажется, нужен драйвер FTDI для Android.

Я был бы очень признателен за любую помощь в том, чтобы мой планшет мог общаться с XBee Explorer Dongle.

Ответ 1

Если у вас есть root и вы можете взломать ядро, FTDI предлагает свой драйвер D2XX для ОС Android. Проверьте его сайт, пожалуйста.

Если ваше Android-устройство равно 3.1+, вы можете использовать хост Android USB для общения с Arduino. Однако я встретил некоторые проблемы.

Если у вас есть ADK/UHS, ваш Arduino может выступать в качестве USB-хоста и разговаривать с устройством Android Android. Даже в том же оборудовании, если ваша ОС Android довольно старая, как 1.5/1.6, вам нужно использовать интерфейс ADB, а не ADK (Accessory Developer Kit).

Если у вас Bluetooth, вы можете написать свой собственный Bluetooth SPP в своем приложении.

Если вы можете обрабатывать WiFi, вы можете написать приложение для связи с сокетом или через самый последний прямой режим WiFi в Android.

Связь различна. Однако это зависит от вашего оборудования.

Ответ 2

Существует решение Inopiaaardbei с использованием Arduino и экрана USB-хоста с мостом Android Debug, работающим на Arduino.
Используя это решение, вы можете использовать последовательную связь между телефоном Android и платой Arduino.
См. мой пост и ссылку внутри для получения дополнительной информации.

Ответ 4

USB не прост в программировании, и было бы намного проще с ethernet или rs232. Однако, если вы настаиваете, то посмотрите V-USB (SW USB), LUFA (HW USB) и Lufaduino (HW USB). Если Android уже встроен в USB CDC-драйверы, это может быть самым простым путем для вас, если вы реализуете его в AVR. Медленная, дешевая и программная реализация AVR USB CDC здесь.