¿La mejor práctica para reenviar una señal mediante el uso de un módulo de 2,4 GHz?

Quiero controlar la velocidad de un motor usando un receptor de 2.4 GHz. Regulo la velocidad enviando un PWM-Info al motor.

Funciona muy bien, si uso un arduiono y muchos cables. Pero tengo que separar el arduino y el motor, porque el motor tiene que ser portátil. Entonces quiero usar un módulo transmisor de 2.4GHz para arduino para controlar el motor.

Me gustaría usar este módulo para recibir la frecuencia actual del arduino y reenviarla al puerto pwm: https://www.sparkfun.com/products/152

¿Es esto posible como lo imagino? ¿Hay algo más que necesite? Cuando pudiera usar un arduino, esto sería muy fácil, pero mi solución tiene que ser pequeña. Cuanto más pequeño se vuelve, mejor.

En otro escenario, uso el arduino para controlar varios motores al mismo tiempo, cada motor tiene su propio receptor. ¿Cómo puedo identificar los módulos, para poder configurar la frecuencia de cada motor?

Respuestas (1)

Ese módulo le brinda acceso de bajo nivel a la radio, por ejemplo, no va a enviar datos de protocolo de alto nivel. Sí, es trivial para usted enviar cualquier mensaje arbitrario a la radio y hacer que su arduino interprete el mensaje como desee (establezca el ciclo de trabajo de pwm, etc.). No debería necesitar hacer mucho más para obtener una prueba de concepto. Si necesita un rango súper largo, 0 dBm podría no ser suficiente, pero definitivamente está bien para varios metros.

Con respecto a tu segunda pregunta: hay un millón de formas de identificar las diferentes radios. La forma más cara y peor es tener un transmisor diferente para cada receptor. Es obvio por qué esta es una mala solución. Todas sus otras soluciones requerirán que implemente algún tipo de protocolo de nivel superior. Hay montones, montones, montones de opciones aquí (esta es un área completa de investigación académica). Usé una radio nórdica similar hace varios años y tenía diferentes canales que podías utilizar. Eso puede ayudarlo (por ejemplo, coloque un receptor en un canal), pero obviamente no escala bien (por ejemplo, si tiene más dispositivos que canales, vuelve al punto de partida. Igualmente importante, es posible que no desee usar ciertos canales: - pueden ser ruidosos, tener PRR pobre, etc.). uno sencillo, pero no particularmente robusto (desde la perspectiva de la red) es inventar un protocolo en el que envía un mensaje y, según el contenido de ese mensaje, responde un solo receptor. Su arduino tendrá que implementar cualquier protocolo que desee, por lo que obviamente no puede volverse loco con la complejidad (por ejemplo, probablemente no desee implementar tomas posix). Para algunos motores (menos de 10) probablemente estará bien haciendo algo como esto siempre que no tenga requisitos estrictos de latencia.

gracias por tu respuesta. No quiero interpretar los datos en mi arduino, solo está transmitiendo la frecuencia actual. Necesito encontrar una manera de recibir esta información y enviarla al motor. ¿Tienes algún tutorial que pueda usar?
Vas a necesitar un transmisor y un receptor. Cada lado del enlace requerirá un módulo de radio y un microcontrolador (o algún otro tipo de lógica). El módulo de radio tiene una interfaz SPI, lo que significa que debes interpretar los datos en tu arduino. Después de todo, necesita su arduino para codificar la frecuencia en algún tipo de paquete de datos que envía la radio transmisora. Necesitará la transformación inversa en el lado de recepción. Esto podría ser tan simple como enviar una cadena ASCII o tan complicado como... bueno, mucho más complicado. No tengo un tutorial para ti, pero me di cuenta de que
alguien hizo una biblioteca de arduino para ello: playground.arduino.cc/InterfacingWithHardware/Nrf2401T . Eso realmente debería facilitarle las cosas y permitirle realizar una comunicación ASCII simple entre algunos nodos diferentes.
¿Puede recomendar una buena manera de implementar la lógica en el lado receptor? No tengo mucha experiencia con microcontroladores y necesito una placa muy compacta, por lo que no puedo usar un arduino como receptor :(
Acepto tu respuesta, gracias. De todos modos, todavía estoy agradecido por cada consejo que me puedas dar :-)
Puedes hacer girar tu propia placa con un microcontrolador atmega (el que se usa en arduino) y hacerla extremadamente pequeña. Si tienes limitaciones de espacio, eso es lo que haría. Necesita comunicarse con ese módulo usando SPI. Si bien podría hacer eso con lógica discreta, sería muy doloroso y ocuparía mucho más espacio que cualquier microcontrolador. Su otra opción es un FPGA/CPLD. Eso es súper exagerado y definitivamente será demasiado grande. Puede obtener un atmega compatible con arduino en un paquete QFN de 28 pines: 4 mm x 4 mm.
Por cierto, acabo de buscar en Google "arudino súper pequeño" y encontré a estos tipos: tiny-circuits.com/products/tinyduino . Estoy seguro de que hay varias otras opciones disponibles con arduinos pequeños listos para usar.