Estoy trabajando en un proyecto de robótica que requiere lo que probablemente sea un requisito de intercambio de datos un tanto extraño. Esperaba que alguien tuviera ideas sobre qué tecnologías serían las mejores para implementarlo. El problema es el siguiente:
Tengo muchos sistemas integrados (nodos) separados que necesitan mantener un reloj coordinado extremadamente preciso. La precisión absoluta no importa, pero deben coincidir entre sí en al menos 10us (ojalá sea mejor). También deben enviar y recibir datos a / desde una computadora central. El requerimiento de datos es muy pequeño. Algo así como un par de bytes a unos 100Hz. Por lo tanto, un total de ~ 1KB / s por nodo.
Estaba pensando que podría hacer esto utilizando la computadora portátil para enviar paquetes de coordinación de reloj y un pequeño microprocesador WiFi (como el esp8266) en cada nodo para recibir los paquetes. Digamos que cada 10 ms, la computadora portátil transmite un paquete UDP. Si configuro todos los nodos para que tengan la misma dirección IP, recibirán el paquete esencialmente al mismo tiempo. La única incertidumbre en el ping de coordinación de reloj que llega a los nodos al mismo tiempo será la incertidumbre en la cantidad de tiempo que le lleva al esp8266 procesar el paquete. Sin embargo, también necesito el esp8266 para enviar datos a la computadora portátil. Pero entiendo que esto es problemático si todos los dispositivos tienen la misma dirección IP ...
Otros pensamientos:
-
Lo ideal sería poder hacer todo esto directamente desde los nodos a la computadora portátil (red ad-hoc). Si tengo que hacerlo, puedo usar un punto de acceso inalámbrico conectado a la computadora portátil.
-
Sé que hay esquemas de coordinación de reloj que utilizan TCP / IP. Simplemente no creo que ninguno de ellos sea lo suficientemente bueno para obtener el tipo de precisión de reloj que quiero. Podría equivocarme al respecto (bueno, técnicamente, hay algo que se llama Wi-Fi TimeSync pero aún no parece estar disponible comercialmente).
-
Aunque no sería muy elegante, podría vivir con tener 2 módulos esp8266 en cada sistema integrado. 1 podría compartir la misma dirección IP con todos los demás nodos y usar el esquema de coordinación de paquetes UDP descrito anteriormente. El segundo usaría TCP / IP con una dirección única para comunicarse con la computadora portátil.
-
Hay 433 mhz y 900 mhz módulos como este: enlace Eso sería muy simple y rápido. Simplemente coloque un reloj en la línea de datos del transmisor y lea el reloj del receptor en todos los nodos. Sin embargo, no creo que esto sea legal bajo las regulaciones de la FCC: enlace
edit:
Gracias a todos por los comentarios. GPS es en realidad una gran solución. No sabía que tuvieran relojes PPS que fueran tan precisos. Creo que usaré eso además del esp8266. @analogsystemsrf, tienes razón. Esto es para un sistema de posicionamiento ultrasónico.