¿Usar audio para transmitir datos?

La idea

El sonido no es más que ondas mecánicas propagándose a través de la materia. Los seres humanos utilizamos este tipo de comunicación todo el tiempo mediante el habla, ¿por qué no podrían hacerlo las máquinas entre ellas?. Solo que en este caso no serían palabras sino señales digitales, es decir, bits de información.

Para esto, la empresa británica Chirp desarrolló una serie de librerías mediante las cuales los dispositivos pueden comunicarse a través de altavoces y micrófonos.

Cómo funciona

Básicamente se trata de codificar una señal acústica, emitirla mediante un altavoz, captarla con un micrófono, decodificarla y obtener los datos.

Fuente: chirp.io

Chirp utiliza Frequency Shift Keying (FSK) para modular la onda de sonido. Este tipo de modulación tiene la ventaja de ser robusta en escenarios de propagación de múltiples caminos, como sucede generalmente en la práctica.

Cada símbolo es modulado por una envolvente de amplitud para prevenir discontinuidades e introduciendo intervalos entre símbolos para reducir el impacto de reflexiones o reverberaciones en la etapa de decodificación.

Como en otras tecnologías de comunicación, el mensaje puede incluir secuencias para indicar el comienzo de un mensaje y su longitud esperada, como también bytes para corrección y detección de errores (FEC, CRC). La codificación de una señal mediante este método utiliza poco CPU y solo requiere la generación de símbolos de corrección y la síntesis de ondas sinusoidales.

¡Suscribete al newsletter!
Fuente: chirp.io

Una vez codificados, los mensajes son transmitidos por algún medio (generalmente el aire, aunque también se pueden utilizar líneas telefónicas u otros medios).

La tecnología de Chirp puede ser utilizada aun en ambientes con altos niveles de sonido de fondo: espacios públicos, lugares con música alta, etc.

Los desarrolladores también han tenido en cuenta factores complejos, como la reverberación, la resonancia, la cancelación por fase, etc.

Finalmente, la recepción del mensaje involucra tres aspectos: 

  • La demodulación del mensaje en símbolos.
  • Métodos de cálculo para filtrar efectos acústicos.
  • Detección de errores (CRC) y corrección de los mismos (FEC).

El SDK provee opciones específicas para varias plataformas, aunque el núcleo de las librerías está escrito en C.

Hay SDKs para iOS, Android, C, Javascript, Python, macOS, Windows y WebAssembly.

Para poder bajar los SDKs debes registrate en este sitio.

Usos, ventajas y limitaciones

Dadas las características de esta tecnología, la misma es apta para transmitir pequeños volúmenes de datos. Es útil entonces en aplicaciones de IoT para enviar datos de sensores o comandos a actuadores.

Las velocidades de transmisión máximas son las siguientes:

  • 1000bps a 30cm.
  • 150bps a 3m.
  • 15bps a 100m.

Como se ve, las velocidades son extermadamente bajas comparadas con tecnologías como WiFi.

La utilización de esta tecnología en dispositivos IoT tiene algunas ventajas:

  • Las interfaces de comunicación son extremadamente sencillas y económicas. Solo hay que contar con un sintetizador de audio para generar la señal y un receptor del otro lado (un micrófono o una entrada de audio). La transmisión del audio se puede hacer por el aire, mediante un pequeño altavoz o directamente por cable. Dado que muchos dispositivos cuentan con estas interfaces, la implementación es inmediata y se puede agregar a equipos ya instalados.
  • No se requiere establecer conexiones y mantenerlas activas, como en el caso de WiFi o Bluetooth. Solo es necesario realizar la transmisión y detectar la presencia del mensaje del lado receptor.

Chirp se puede utilizar tanto en frecuencias audibles como no audibles

  • Las frecuencias audibles son recomendadas para canales que tienen una frecuencia de muestreo limitada, como líneas telefónicas o hardware de bajo costo.
  • Las frecuencias cercanas al ultrasonido pueden ser utilizadas cuando se desean evitar perturbaciones por ruido ambiente.  En este caso, las frecuencias entre 17 Khz y 20kHz pueden reproducirse o capturarse en casi todos los smartphones o PCs y son prácticamente inaudibles para el ser humano. En verdad los humanos podemos llegar a escuchas frecuencias de hasta 20 Khz, pero con una sensibilidad muy baja. Esto quiere decir que a bajo volumen y considerando el sonido ambiente, es poco probable escuchar los mensajes.

Si se tiene más de un dispositivo es posible utilizar varias bandas de frecuencia para que se puedan comunicar de manera simultánea. Chirp permite utilizar hasta 8 canales de broadcast.

Espero que te haya gustado este artículo. No olvides compartirlo con tus contactos.

¿Te quedaron dudas?,

¿Te gustaría que publicara algún tutorial de uso?.

Escribe tus comentarios y consultas aquí abajo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.