6 votos

Accesorios para dispositivos Android con USB host

El Android Accesorio SDK se basa en el accesorio que tenga USB host. Sin embargo, a mi entender, es que las nuevas versiones de Android (3.1, 2.4?) tiene USB host soporte en el kernel. Y sé que muchos de los actuales dispositivos Android tiene soporte de hardware para el host (la mayoría de las tablets sin duda, el Moto Droid, HTC Droid Incredible, etc.).

Así que mi pregunta es, dado un dispositivo Android que tiene USB host, lo que va a ser el más simple y más barata manera de interfaz con un micro? La primera cosa que viene a la mente es el uso de un FTDI USB->serial del chip y un micro con UART. Pero no sé si los drivers FTDI se puede poner en los dispositivos Android. De todos modos, probablemente, hay una solución mucho mejor.

Yo preferiría una solución que no requiere de un dispositivo Android arraigada, pero estaría interesado en escuchar algunas de estas opciones también.

4voto

user4245 Puntos 324

La manera más barata? El uso de un µC con USB incorporado. Muchos de los pic18 y hacia arriba la tienen. Lo hacen muchas otras marcas de la µC.

La manera más sencilla? Como usted ya ha estado convertirlo a RS-232 a niveles TTL con alguna forma de conversión de chip como el FTDI.

Sí, bien podría haber problemas con los drivers para ambas soluciones, pero es más probable que el FTDI será apoyado fuera de la caja. Sin embargo, la primera solución tiene la ventaja de que puede hacer que el µC parecerse a cualquier dispositivo que usted quiere que se vea como.

Ah, y por otro lado, algunos de los altos final PICs (por ejemplo, algunos de los pic32 chips), USB host, construido en el así. Sólo pensé que mencionar...

4voto

kender Puntos 18446

No soy experto en Android, pero FTDI lanzó una aplicación nota que detalla cómo se puede construir en el soporte del controlador para su USB a Serie IC en el kernel de android.

No sé si esto es posible hacerlo en una producción de teléfono, o si cualquiera de los teléfonos de este controlador ya incorporado (lo dudo). En mi opinión, Google ha establecido una buena especificación para Abrir Accesorio que probablemente estará disponible en esta generación de dispositivos Android y el siguiente, dado que todos la actualización a las nuevas versiones de sistema operativo Android.

En el Abierto Accesorio caso, el teléfono cambia a un dispositivo y el accesorio es el host. La implementación de un integrado de Host USB es un poco más complicado que el uso de un FTDI USB a Serie IC, pero hay algunos muy buenos específicos de la aplicación micros que han salido con soporte de hardware para la pila USB y hay algunos ejemplos de Abrir el Accesorio protocolo implementado en algunos de estos micros. Dado que el soporte ya está en el sistema operativo para Abrir Accesorio (o será en el futuro cercano para todos los dispositivos), creo que este es el camino a seguir.

4voto

UK Visa Works Puntos 29

Actualización: he cambiado esto a la comunidad de la wiki

Parece que Android va a apoyar Host USB en el kernel. Android 3.1 ya tiene esto, creo que Android 2.4 tendrá de nuevo portado, y seguramente Android 4. Por lo tanto, si usted tiene un micro que puede emular a un USB dispositivo esclavo, usted debe ser capaz de comunicarse con Android de una manera bastante simple y barato como el tiempo que su dispositivo Android es un hardware capaz de Host USB. La mayoría de los dispositivos más antiguos (por ejemplo, Droid, Droid Inc) son hardware capaz, y los nuevos dispositivos debe ser.

No sé exactamente qué esclavo USB son dispositivos de fácil interactuar con los de Android (he aquí una lista de los actuales tipos de dispositivo), pero sin duda el teclado (es decir, HID) es fácil de tratar.

Edit: La de Android USB host Api se basa en la idea de tener en el modo de usuario el código contenido dentro de las aplicaciones de raw transferencias USB para periféricos. Así que en lugar de el "controlador del núcleo" del modelo, esto es la "aplicación comprende periférica detalles de" un conceptualmente muy similar a los programas de escritorio que uso libusb o similar para hablar con un periférico. Las excepciones serían HID dispositivos tales como teclados y ratones que Android se habla a sí mismo y se utiliza en la espera de la moda para proporcionar la entrada al sistema en general. También vale la pena señalar que (con la excepción de un par de dispositivos donde el vendedor ha hecho de otra manera) de almacenamiento masivo USB no está implementado el sistema, de modo que una aplicación que se quiere utilizar un dispositivo de este tipo tiene que implementar sistema de archivos de código y el protocolo de almacenamiento masivo USB, contra el raw android USB Api.

Hay un AVR biblioteca que proporciona una pila USB: http://fourwalledcubicle.com/LUFA.php. Con esto, usted debería ser capaz de hacer el teclado u otro dispositivo de emulación de un puerto USB habilitado AVR. Incluyendo esto en tu genérico AVR firmware construir no es demasiado difícil. Como Mihailo señala en los comentarios, asegúrese de que utiliza un oscilador de frecuencia compatible con USB (8 o 16 MHz). No estoy seguro de si es posible conseguir este trabajo en el estándar de hardware de Arduino.

Parece que la manera más fácil de acercarse a este puede ser el nuevo Arduino Leonardo de la junta: http://arduino.cc/blog/2011/09/17/arduino-launches-new-products-in-maker-faire/

Estoy seguro que más barato/más simple más pequeños/Leonardo clones va a salir pronto, o rollo de su propio!

-1voto

Magus Puntos 861

Han considerado que la Arduino ADK de la junta? Explota Google ADK para lograr la comunicación con Android.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X