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.
См. мой пост и ссылку внутри для получения дополнительной информации.
Ответ 3
Вы можете использовать adk android или orroid ioio, подключенные к модулю xbee, как я сделал в этой статье . Я опубликовал код на моем github, и другой парень собирается реализовать gui в настоящее время.
Ответ 4
USB не прост в программировании, и было бы намного проще с ethernet или rs232. Однако, если вы настаиваете, то посмотрите V-USB (SW USB), LUFA (HW USB) и Lufaduino (HW USB). Если Android уже встроен в USB CDC-драйверы, это может быть самым простым путем для вас, если вы реализуете его в AVR. Медленная, дешевая и программная реализация AVR USB CDC здесь.