2011-08-02 22 views
13

¿Existe un buen tutorial para usar un Arduino con un Android donde el dispositivo Android es el host USB? (El dispositivo Android tiene una versión de sistema operativo 3.1 (Honeycomb) o posterior). El único programa de host en el sitio del desarrollador es el lanzador de misiles, que parece mucho más simple que la interfaz con un Arduino.Usando el modo de host USB 3.1 con Arduino

Específicos: Estoy tratando de hacer un host de un transformador de Asus Arduino Uno, pero ya que hay muy poca información sobre cómo funciona el Android modo host, me pierden de por dónde empezar. Solo necesito que el Android pueda leer valores de datos de la memoria de Arduino. El Arduino se usa para contar la frecuencia de una señal, ese valor luego debe pasarse a Android. Si me perdí una forma simple de hacerlo, no dude en hacérmelo saber.

(Hay una gran cantidad de información flotando sobre el uso del ADK para hacer el Arduino el anfitrión, pero con el transformador, que no es una opción -.   ver Stack Overflow pregunta Is it possible to get the Android ADK working on an ASUS Eee Pad Transformer running 3.1?

El la información realmente no necesita ser específica de Transformer o Uno, simplemente no puedo encontrar ejemplos de personas que usan el nuevo modo de host en sus tabletas.

+0

En la perspectiva general ... tal vez es posible implementar el protocolo Android Debug Bridge en el lado Arduino. El Arduino podría enviar datos usando un puerto UDP o TCP reenviado que es recibido por un socket dentro de la aplicación. De esta forma, el dispositivo permanece en modo esclavo USB, que también está disponible para dispositivos antiguos. – dronus

+1

@dronus: la desventaja del método ADK/ADB incluso para una tableta que quizás no espera la alimentación del bus es que el accesorio requiere una interfaz de host USB más cara. –

Respuesta

0

Como el Arduino usa un convertidor de USB a RS232, el El puerto USB del modo host usualmente necesita un controlador de módulo kernel para la implementación del controlador serial. Generalmente un FTD Se usa el chip, el módulo podría llamarse ftdi_sio. Entonces, en el nivel bajo, si el modo de host USB está habilitado, el sistema tal vez proporcione un dispositivo/dev/ttyUSB0 usando este módulo. Pero esto es inútil, creo que está oculto de la aplicación a menos que se ejecute en un dispositivo rooteado. Entonces, la abstracción de alto nivel de ADK es el camino a seguir, creo.

2

El arduino uno suelta el chip FTDI o similar usb-rs232 utilizado en diseños anteriores a favor de una interfaz USB reprogramable basada en la pila LUFA.

Con un linux normal, utilizaría controladores USB CDC, por lo que una pregunta sería si la tableta en panal se incluye con estos.

El Honeycomb USB host support parece proporcionar un medio para escribir controladores usb de bajo nivel en aplicaciones de Android de espacio de usuario de terceros, así que presumiblemente si la funcionalidad no está ya en el núcleo, podría agregarse en el espacio de usuario.

Otra idea sería cambiar la instalación de LUFA en el Arduino, reconfigurándola a uno de los muchos modos compatibles con el proyecto LUFA para que parezca algo que una tableta Honeycomb sin modificar ya sabe cómo hablar, como una unidad de almacenamiento masivo, o un teclado, o un mouse, etc. Sin embargo, es posible que necesite acceso de nivel raíz en la tableta honeycomb si desea hacer acceso de bajo nivel (especialmente escritura) a este periférico del sistema.

1

Si lo que desea es encontrar algunos ejemplos de aplicaciones que utilizan la funcionalidad USB Host, lo mejor es usar algo como herramienta CodeSearch de Google, y la búsqueda de algunos de los host USB clases/permisos/intenciones específicas

por ejemplo, una búsqueda de android.hardware.usb.action.USB_DEVICE_ATTACHED nos lleva a las siguientes aplicaciones:

2

Nos dieron Communcations FTDI de trabajo, sin controlador del núcleo, utilizando este código: http://android.serverbox.ch/?p=370

Tenga en cuenta que el Samsung Galaxy Tab 10.1 parece que falta el código USB adecuado para detectar incluso los dispositivos USB (aparte de ratón, teclado, hub y almacenamiento, que el sistema operativo detecta y no se pasan a las aplicaciones).

Sin embargo, tenemos esto trabajando en un Acer A500.

Cuestiones relacionadas