Android USB-хост-последовательное соединение?
Очевидно, с Android 2.3.4 и 3.1 теперь можно получить доступ к аксессуарам USB.
У меня есть плата Ardupilot Mega (на основе Arduino) с USB-кабелем, подключенная к моему ноутбуку, и я могу подключиться к ней с помощью простой программы последовательной связи через COM7 и 115 200 бод. Это позволяет мне войти в интерфейс командной строки, и я могу выдавать команды и получать логи.
Можно ли написать приложение для Android, которое будет связываться через USB с моей платой Ardupilot Mega?
Я видел много похожих тем, но большинство из них были до USB-хоста.
4 ответа
http://code.google.com/p/usb-serial-for-android/ - моя библиотека с открытым исходным кодом, написанная именно для этого. Он поддерживает USB-устройства FTDI и CDC-ACM с поддержкой USB-хоста Android; Нет необходимости в корне или ADK. Это может говорить большинство Arduinos.
Проект все еще находится на начальном этапе, но базовая поддержка работала достаточно хорошо для нескольких проектов. Существует также список обсуждений, где вы можете получить помощь.
К сожалению, библиотека из ответа mik3y (см. Здесь: https://github.com/mik3y/usb-serial-for-android), похоже, давно мертва. У него много проблем и ожидающих запросов на включение. Кроме того, лицензия LGPL запрещает кому-либо разветвлять и поддерживать его.
Но не теряйте надежды, есть работающая замена, и она под лицензией MIT. felHR85 / UsbSerial.
РЕДАКТИРОВАТЬ: я нашел поддерживаемую вилку библиотеки mik3y. Но лицензия или файл readme не обновляются, поэтому я полагаю, что владелец не имеет связи с mik3y и просто взял его и улучшил. Надеюсь, у него не будет проблем из-за лицензии, ведь эта библиотека нам нужна. См. https://github.com/kai-morich/usb-serial-for-android
EDIT2: кажется, что все эти библиотеки снова поддерживаются, mik3y объединил усилия с kai-morich, и теперь они работают вместе.
Может быть. Проверьте объявление об открытых аксессуарах Android в блоге разработчиков Android. Arduino Mega ADK совместим. Не уверен насчет Ardupilot Mega.
Со своей страницы:
Платформа Android 3.1 (также перенесена на Android 2.3.4) представляет поддержку Android Open Accessory, которая позволяет внешнему USB-оборудованию (USB-аксессуар Android) взаимодействовать с устройством на платформе Android в специальном режиме "аксессуар". Когда устройство с питанием от Android находится в режиме аксессуара, подключенный аксессуар выступает в качестве USB-хоста (питает шину и перечисляет устройства), а устройство с Android работает как USB-устройство. USB-аксессуары для Android специально разработаны для подключения к устройствам на базе Android и придерживаются простого протокола (протокол аксессуаров Android), который позволяет обнаруживать устройства на базе Android, поддерживающие режим аксессуаров. Аксессуары также должны обеспечивать 500 мА при 5 В для зарядки. Многие ранее выпущенные устройства на базе Android способны работать только как USB-устройства и не могут устанавливать соединения с внешними USB-устройствами. Поддержка Android Open Accessory преодолевает это ограничение и позволяет создавать аксессуары, которые могут взаимодействовать с целым рядом устройств на платформе Android, позволяя аксессуару инициировать соединение.
Примечание. Режим аксессуаров в конечном итоге зависит от аппаратного обеспечения устройства, и не все устройства будут поддерживать режим аксессуаров. Устройства, поддерживающие режим аксессуаров, могут быть отфильтрованы с помощью элемента "Use-Feature" в манифесте Android вашего приложения. Для получения дополнительной информации см. Руководство разработчика USB-аксессуаров.
Следующий список распространителей в настоящее время производит совместимые с Android Open Accessory платы разработки:
Магазин Arduino предоставляет Arduino Mega ADK (в странах ЕС или не входящих в ЕС), который основан на ATmega2560 и поддерживает встроенное программное обеспечение ADK. DIY Drones предоставляет Arduino-совместимую плату, предназначенную для энтузиастов RC (радиоуправление) и UAV (беспилотный летательный аппарат). Microchip обеспечивает плату микроконтроллера USB на основе PIC. Modern Device предоставляет Arduino-совместимую плату, которая поддерживает прошивку ADK. RT Corp предлагает Arduino-совместимую плату, основанную на дизайне платы Android ADK. Seeed Studio предоставляет Arduino-совместимую плату, которая поддерживает прошивку ADK. На плате SparkFun IOIO теперь есть бета-версия прошивки ADK.
В настоящее время я использую библиотеку в своем собственном приложении, но я думаю, что вы можете выбрать именно то приложение, которое есть на рынке. Есть два бесплатных приложения, и одно является "про" версией одного из бесплатных; поиск слик usb в Google Play.
Он использует режим HOST, и вы можете изменить скорость передачи данных на любую, что вам нужно.
Вы можете проверить библиотеку, описанную в Slick USB 2 Serial Library.
Он позволяет обычным адаптерам USB-последовательный порт работать с устройствами Android, которые имеют режим USB-хоста, без необходимости рутирования.