Paso 1: 99 problemas y una conexión de trabajo no es una
Hay un par de opciones para pasar señales de un teléfono celular a un motor. Estos son los que he probado y mis razones para usar (o no) ellos.
TL; dr: módulo BT
Núcleo de la chispa: habilitado para Wi-Fi, compatible con Arduino, pequeño tablero. Qué decir? Yo debería ser capaz de simplemente enviar una señal desde el teléfono a esta cosa directamente a través de UDP/TCP, pero a partir de abril de 2014 esto no fue posible. Mientras que el equipo de chispa está trabajando en una modificación al firmware, cuando probé esta tabla, sólo funcionó si estaba conectado a internet y al servidor de base de chispa. Sólo quería comunicación local, así que esto era nada bueno.
IOIO-OTG: se conecta directamente al teléfono mediante cable USB y permite la aplicación de teléfono tener un montón de pines GPIO. Impresionante! Esto habría sido perfecto si yo había tomado el tiempo para averiguar cómo escribir mi propio firmware. Como se trata, el firmware en el IOIO-OTG es prácticamente como una firmado. La lógica tiene que correr en el teléfono y lo único que hace es exponer algunos pines de I/O. Porque estoy usando motores simples con interruptores de límite, esto parecía una opción arriesgada. ¿Qué pasa si el teléfono pierde conexión con el tablero, o los impactos de la aplicación, mientras que uno de los motores? IOIO-OTG no podría obtener las señales del interruptor de límite para detener el motor.
Arduino ADK como anfitrión del USB: también parecía prometedor. Enviar directamente mensajes a un Arduino desde un teléfono, a través de un cable! ¿Ganar, derecho? Podría escribir mi propio código de Arduino para hacer frente a la carrera y motor logic, y el teléfono sólo enviaba comandos simples de STOP/GO a Arduino. En el mejor, perfecto, excepto el emparejamiento entre Arduino, el teléfono y la aplicación era cutre. El orden en el que tuve que encender el teléfono, el Arduino y la aplicación y conecte el cable, fue muy específico. Creo que era encender el teléfono, encender Arduino, conecte Arduino en teléfono, desconecte Arduino desde teléfono, conecte Arduino en teléfono, iniciar aproximadamente cosa que haría que el teléfono para no ser reconocido por el Arduino ADK y a veces le causa incluso el teléfono para restablecer. Muy exigente!!
Arduino ADK con dongle BlueTooth: trabaja bien con algunos dongles. Otros dongles de la misma marca y tipo, solo no pares. Podría han sido capaces de hacer que funcione mediante la adición de algunas demoras en el código de Arduino, pero en este momento estaba bastante decepcionado con el ADK y la biblioteca de Host USB.
Arduino con módulo BlueTooth: inicialmente no quería utilizar BT debido a que tiene para combinarse y a veces pierde su conexión/sincronización y algunos paquetes Haz caídos... pero al final, es la solución más sensata. No importa si los paquetes Haz caídos, solo estoy enviando una especie STOP/GO muy simple de señal y puedo añadir redundancia. También no importa si el teléfono se no apareado desde el módulo de BT. Sé que es allí, justo al lado del teléfono, así que puedo seguir intentando conectarse a él utilizando código en la aplicación para Android. Si bien esto puede parecer duro al principio, es mucho más fácil que lo que tenía que hacer para reestablecer el cable de conexión de ADK una vez que el teléfono perdido pista de Arduino (desenchufe, enchufe, vuelva a iniciar la aplicación, etc.).
En el extremo: BT para la victoria!