¿Cómo puedo leer una entrada digital (un interruptor abierto / cerrado) desde un teléfono inteligente sin una tarjeta de digitalización?

0

Tengo que leer una sola señal de entrada digital (un botón de circuito abierto / cerrado trivial) y usar esta señal en una aplicación de Android en un teléfono inteligente.

Por supuesto, podría conectar una pequeña placa similar a Arduino al puerto USB del teléfono inteligente, usar los pines de entrada digital de esta placa para leer la señal eléctrica y pasar un mensaje a la aplicación de Android, pero esta tarea es muy simple que me gustaría evitar el uso de cualquier tablero adictivo.

Por lo tanto, me pregunto si sería posible (ab) usar un cable de auricular normal para esta tarea.

Me gustaría conectar un auricular regular de 3.5 mm al teléfono inteligente, cortar los altavoces y el micrófono reales, conectar dos de los cables libres resultantes a mi botón y leer el cambio de estado abierto / cerrado del interruptor desde mi aplicación.

Mientras pueda ver, Android tiene una intención ACTION_HEADSET_PLUG y una función AudioManager.isWiredHeadsetOn (), por lo que probablemente sea posible.

¿Alguien tiene alguna idea sobre el cableado correcto que debo usar? En particular, ¿debo insertar una resistencia / condensador para proteger los circuitos internos de la placa de audio?

¿Alguna sugerencia sobre el lado del software?

Tenga en cuenta que solo me interesa leer el cambio del estado del conmutador de abierto a cerrado o viceversa. No necesito saber el estado actual del conmutador.

PS: No, no estoy dispuesto a destruir el teléfono inteligente y conectar el botón externo al teclado existente.

    
pregunta AlexBottoni

4 respuestas

2

Si tiene el tipo de auricular con controles de volumen incorporados, puede conectar su interruptor a los botones de silencio o volumen y detectar que se está presionando desde su aplicación. De hecho ... probablemente podrías usar el botón existente. Eso sería lo más fácil y confiable de detectar.

    
respondido por el Grant
2

No puede utilizar el interruptor de auriculares integrado en el teléfono, ya que se trata de un interruptor mecánico que se abre o se cierra dependiendo de si hay un conector enchufado. No hay acceso externo a los cables para este interruptor.

Yo usaría un 555 para crear un tono, digamos 1 kHz. Conecte la salida a la entrada MIC del conector para auriculares. Luego use el interruptor para activar o desactivar el tono. Debe haber una manera de determinar si hay audio o no hay audio en la entrada MIC. Sin embargo, tenga en cuenta que esto requeriría que encueste la entrada regularmente.

    
respondido por el tcrosley
2

Me estoy respondiendo para agregar más información.

El sistema de control de audífonos con Android puede leer hasta cuatro botones diferentes en la línea de micrófono estándar. Normalmente se utilizan para responder / rechazar, reproducir / pausar, escanear y otros comandos.

A cada botón se le asigna una resistencia diferente y se reconoce gracias a la resistencia resultante en la línea cuando el circuito está cerrado. Al micrófono se le asigna la resistencia más alta (5000 ohmios), al botón de reproducción / pausa se le asigna el más bajo (0 hms) y los otros botones están en el centro.

El software de la plataforma Android proporciona un intento de MEDIA_BUTTON para interceptar y manejar estos "eventos". Solo tiene que crear un único receptor de difusión y una función de manejo para cada evento.

Usando este material HW / SW es posible leer hasta cuatro líneas de entrada digital (1/0, abierto / cerrado) e incluso una analógica (el Mic, que se puede usar como un osciloscopio).

Por supuesto, tiene que usar un conector de auriculares estándar de 3,5 mm para crear su propio "tablero de digitalización".

Aquí algunas referencias y algunos enlaces útiles.

Lado del hardware Las especificaciones de Android proporcionan toda la información requerida aquí: Especificación de auriculares de audio con cable (v1.1)

(No sé si todos los dispositivos existentes cumplen con estas especificaciones.)

Lado del software

Hay algunas guías / tutoriales que explican cómo detectar y manejar los eventos provenientes de los botones de los auriculares (ambos con cable y Bluetooth):

Permitiendo que las aplicaciones jueguen bien (r) entre ellas: Manejo botones del control remoto

Agregue compatibilidad con el botón del auricular a su aplicación de Android

Y hay una aplicación de ejemplo completa en Github:

gauntface / Android-Headset-Example

Aquí hay una aplicación comercial que utiliza todo lo anterior para implementar un mejor control de los botones de los auriculares:

Controlador de botón de auricular (versión de prueba)

Cosas divertidas, de verdad.

    
respondido por el AlexBottoni
0

Aparte de las respuestas actuales sobre los botones de los auriculares, una forma simple sería también el botón azul. Sin cables, y fácilmente compatible con cualquier aplicación que crees. Son muy comunes en este momento, parte de la locura del palo autofoto.

Otra versión inalámbrica es nfc botones. Mismo concepto

    
respondido por el Passerby

Lea otras preguntas en las etiquetas