¿Cuál es la forma más económica de que dos dispositivos separados por menos de 10 pies se comuniquen de forma inalámbrica entre sí?

Estoy construyendo un instrumento musical que se compone de dos dispositivos separados... un dispositivo es el maestro... tiene un acelerómetro y un altavoz. El dispositivo compañero del maestro también tiene un acelerómetro.

Cuando el compañero se inclina, el dispositivo compañero interpreta los datos del acelerómetro y luego envía una nota al maestro. El maestro toca la nota usando la voz de instrumento 1.

El maestro, al mismo tiempo, está procesando su propia información del acelerómetro. Según los datos del acelerómetro, reproducirá otras notas utilizando la voz de instrumento 2.

Si el usuario mueve el dispositivo uno y luego mueve el dispositivo dos de formas especiales, se reproducirá una floritura.

Mi pregunta es... teniendo en cuenta el tipo/cantidad de datos que estoy enviando... bytes de control esencialmente cortos, ¿cuál sería la forma más económica para que los dos se comuniquen de forma inalámbrica?

--ACLARACIÓN-- Idealmente, estos dispositivos serían inalámbricos y no conectados entre sí. Además, estos dispositivos se moverán libremente, por lo que cualquier método de línea de visión es menos que ideal.

La forma más barata es unos pocos cables. ¿Puede aclarar si desea que esta comunicación sea inalámbrica?
Tres cables: conexión a tierra, recepción y transmisión, utilizando UART en cada extremo es la respuesta obvia. Puede eliminar uno de los cables si la comunicación solo necesita ser en una dirección. Nada en su especificación dice que esta no es una solución válida.

Respuestas (5)

Asumiré que desea hacer esto de forma inalámbrica, de lo contrario, la solución es obvia.

Yo iría por infrarrojos . El transmisor puede ser un pequeño microcontrolador que envía un par de bytes a un módulo receptor de infrarrojos .

Estos módulos receptores están sintonizados con un protocolo particular. Puede utilizar un módulo RC-5; RC-5 transmite 14 bits a la vez utilizando la codificación Manchester. Puede agregarle fácilmente un par de bits y definir sus propios códigos.

Un alcance de 3 m no debería ser un problema. He usado receptores Vishay RC-5 a 15 m de alcance. A distancias más cortas, probablemente ni siquiera tendrá que dirigir el LED al receptor. En una habitación de tamaño normal, la señal se reflejará en las paredes.

Una solución RF barata es el RFM70:

ingrese la descripción de la imagen aquí

Menos de 5 dólares en Digikey. Eso es mucho menos que un Xbee.

+1 para rec de transmisor de RF barato ... Si IR, el emisor y el receptor deben estar alineados, ¿verdad? Debo aclarar que los dispositivos deben moverse libremente, por lo que no puedo contar con la alineación de la línea de visión.
@milesmeow: el RF funcionará de manera más confiable entonces, pero el IR no necesariamente tiene que estar alineado. Como dije, también rebota en las paredes, pero para algunos ángulos puede perder un código. Así que RF es probablemente mejor aquí.

Lo más barato son los cables.

La conexión inalámbrica más barata es probablemente la de infrarrojos. No dice cuál es la distancia física, pero el IR sin apuntar puede funcionar a más de 10 pies / digamos 10 metros dentro de una habitación debido a que el IR rebota felizmente en superficies que visualmente no reflejan. Esto puede volverse poco confiable y si es posible un rango más bajo y/o un grado de puntería aproximada, es probable que IR sea una buena opción.

La transmisión IR puede ser digital o analógica. Las velocidades de datos analógicos de algunos kilobaudios son bastante fáciles [tm] con los módulos tx/rx disponibles que funcionan a una frecuencia portadora de aproximadamente 30 kHz y son posibles velocidades más altas.

Un paquete de datos con, digamos, 8 bits de datos y algo de inicio + parada + verificación de errores para, digamos, 20 bits en total, tardará 20 mS en enviarse a 1 kb/s (1000 bits/segundo) y 2 mS a 10 kb/s. Si esto se recibe correctamente en la primera transmisión, existe una "latencia" de aproximadamente el tiempo de transmisión del paquete. Puedes juzgar si esto es lo suficientemente rápido. Esto supone que el enlace de datos está sincronizado y no necesita que se envíe un "preámbulo" para persuadir al cortador de datos del receptor para que encuentre los niveles de CC adecuados de la señal que se aproxima. Esto puede llevar mucho tiempo, pero se soluciona murmurando en voz baja al otro usuario cuando no hay nada útil que enviar (el sistema permanece sincronizado) o usando algún otro sistema. No dificil. Comúnmente hecho. Existen circuitos integrados que hacen la mayor parte del trabajo.

Existen módulos RF TX y RF de muy bajo costo que cuestan mucho menos que XBEE y son más fáciles de usar. Estos carecen de la sofisticación de direccionamiento y seguridad general de XBEE, pero es probable que funcionen bien. Los costos pueden ser alrededor de $US5/final y tal vez menos. Más y mucho más si aceptas pagarlo.

También puede probar la tecnología inalámbrica de 2,4 GHz. Es bastante barato y tendrá un alcance excelente. Acabo de comprar un par de transceptores por unos $2,00 cada uno en eBay .

El NRF24L01 también es bastante popular, por lo que estoy seguro de que podrá encontrar algunos tutoriales realmente geniales para seguir.

Por ejemplo, si está utilizando Arduino, consulte este enlace .

Si está usando un MSP430, github.com/spirilis/msprf24 es una gran biblioteca que he usado (con MSP430G2553s en mi caso). No puedo hablar de velocidad de datos máxima, pero en mi proyecto estaba enviando 32 bytes alrededor de 100 veces por segundo y no tuve problemas. Sin embargo, ¡tuve que vaciar el búfer de transmisión después de cada envío (flush_tx())!

El Xbee es genial, pero es relativamente caro ($30 por unidad?) También es un transceptor, lo que significa que transmite y recibe. Parece que solo necesita un extremo para transmitir y un extremo para recibir. Nunca los he usado, pero he considerado seriamente usarlos en varios proyectos debido a lo simples que son.

https://www.sparkfun.com/products/10534 https://www.sparkfun.com/products/10532

La forma en que entiendo que funcionan es que cualquier señal (digital) que ingrese en uno, se verá en el otro. Entonces, también son realmente simples en comparación con el Xbee.

¿Quieres que sea inalámbrico? Si es así, buscaría un Xbee . Ese es un enlace al tutorial introductorio de Sparkfun y la guía de compra sobre ellos. Xbee proporciona una configuración sencilla punto a punto que parece ideal para su aplicación.

Si no necesita ser inalámbrico, simplemente use algún tipo de protocolo en serie. Algunos de los más simples con mucha documentación en la red incluyen UART, SPI e I2C. Buscar en Google cualquiera de esos términos combinados con el microcontrolador de su elección definitivamente lo encontrará como un buen punto de partida.

Toda la suerte.