¿Cómo escribo un boceto Arduino y una aplicación de Android para hablar entre ellos a través de un cable USB estándar?

Respuestas:

6

Los dispositivos Android generalmente no tienen un host USB: esperan estar conectados a algún dispositivo más inteligente como su computadora. Lo mismo ocurre con Arduino. Por esta razón, Arduino creó el Mega ADK (que significa Kit de desarrollo de accesorios ).

Mega ADK y Due actúan como hosts USB y se pueden conectar directamente a su teléfono Android. Si ya tiene una placa, otra opción es obtener un escudo de host USB para agregar capacidades de host USB.

Su boceto le dirá al teléfono qué tipo de aplicación accesoria es y su teléfono descargará la aplicación correspondiente de la tienda.

Hay un libro sobre cómo conectar Arduino a Android .

Federico Fissore
fuente
Hay convertidores de mini USB a host USB-A.
apnorton
@anorton Sí: esos son cables OTG ... mira mi publicación.
Anonymous Penguin
La premisa de esta respuesta estaba desactualizada años antes de su publicación: la mayoría de los dispositivos Android contemporáneos tenían la intención de tener soporte de host USB, aunque hay casos en los que alguna peculiaridad del diseño lo deja roto.
Chris Stratton
3

Nunca mencionaste tu modelo de tableta ... o el modelo Arduino

Hay algunas tabletas diseñadas para funcionar con unidades flash USB e impresoras. Esto se llama OTG (sobre la marcha.

Necesitas:

  • Una tableta compatible con OTG
  • Un adaptador OTG que se adapta a la ranura USB de su tableta y es compatible
  • La aplicación del comunicador Arduino Uno
  • Arduino Uno (o clon) [Nota: dice que funciona con Atmega16U2 o Atmega8U2 programado como un convertidor de USB a serie, por lo que supongo que eso cubriría algunas placas más que el Uno.)

Otra alternativa es buscar en Bluetooth (Nota: acabo de elegir un enlace aleatorio pero hay cientos de adaptadores BT similares)

Pingüino anónimo
fuente
Tenga en cuenta que el modo de host USB estándar de Android no admite unidades flash con ninguna funcionalidad del sistema operativo (aunque algunas compilaciones de proveedores lo hacen), sino que expone una API de host USB bastante sin procesar al código de la aplicación.
Chris Stratton
2

El protocolo USB requiere que un extremo sea un "host" y el otro extremo sea un "periférico", y no funciona si los dispositivos en ambos extremos del cable son "periféricos". Por desgracia, la mayoría de los Arduinos y muchos de los primeros dispositivos Android son "periféricos", por lo que no funciona conectar dichos dispositivos con un cable USB estándar.

Algunos dispositivos Android modernos admiten "OTG", por lo que, en teoría, uno podría hacer que el extremo del cable de Android sea el "host". ¿Alguien ha conseguido que esto funcione?

Otro enfoque consiste en hacer que el extremo del cable Arduino sea el "host" y el extremo del cable de Android el "periférico". Ese es el enfoque adoptado por

  • Microbridge (a) (b)
  • La placa IOIO (a) (b)
  • El kit de desarrollo de accesorios de Android (ADK) (a) (b) (c)

(El Amarino (a) y Cellbots (a) (b) toman otro enfoque completamente diferente).

David Cary
fuente
1

El procesamiento es un excelente lugar para comenzar con la comunicación de dispositivo a dispositivo.

La interfaz y el lenguaje son muy similares a Arduino y hay muchos ejemplos para comenzar.

http://playground.arduino.cc/Interfacing/Processing

80HD
fuente
2
¿Funciona eso en Android?
Anonymous Penguin
@AnnonomusPerson Sí, procesamiento para Android
Faux_Clef
@Faux_Clef Hmm no lo sabía. Todavía no sé si es lo mejor para Android, ese enlace que publicaste no parecía ser muy estable ... Sé que el procesamiento tiene soporte USB pero no sé si puedes hacerlo en Android ...
Anonymous Penguin