Protocolo de comunicación MilesTag IR

Estoy haciendo mi propia etiqueta láser y estaba revisando las soluciones de código abierto existentes.

El protocolo MilesTag utiliza 600us como longitud de pulso básica. Sin embargo, esto limita las rondas máximas por minuto a menos de 2000 RPM, mientras que las ametralladoras alcanzan las 6000 RPM (100 rondas por segundo). ¿Hay alguna razón que desconozco para el pulso de 600us?

¿Mi propia solución será menos confiable si elijo, digamos, pulsos de 300us? Más bajo no funcionará con el receptor IR con el que estoy trabajando, porque necesita al menos 10 ciclos en una ráfaga con una frecuencia de modulación de 40kHz, pero un pulso de 300us me permitiría duplicar mis RPM.

@Tut Edité la pregunta para aclarar e incluir mis últimos hallazgos
Probablemente se apliquen restricciones de hardware, pero sin circuitos esto es imposible de decir.
Ya puedo encontrar mi fuente, por lo que no ingresaré esto como respuesta, pero recuerdo haber leído que el ancho de pulso más largo hace que el sistema sea más confiable en escenarios donde una gran cantidad de reflexión es un problema (como pasillos interiores con paredes reflectantes .) Cuando un objeto siempre se está moviendo (tanto el blaster como el sensor), un sensor puede recibir reflejos de muchas fuentes, pero estos reflejos se pueden ver más como ecos rápidos que rebotan en todas las direcciones. el ancho de pulso más largo requiere una ráfaga más directa y sostenida.
Tenga en cuenta que en una situación de este tipo (varias personas disparando de forma sostenida en una sala) puede crear lecturas de reflexión de bajo nivel prácticamente infinitas. En tal situación, el sensor debe ser menos sensible, lo que en parte significa que requiere ráfagas más largas.
La versión original del protocolo MILESTAG II https://openlasertag.org/language/en/milestag-2-protocol/

Respuestas (1)

Lo siguiente se menciona en la página del protocolo de datos de MilesTag (la versión original del protocolo) que también usa el mismo tiempo:

El paquete de datos MilesTag consta de un pulso de encabezado seguido de 16 bits de datos (dos bytes de datos de 8 bits) y 1 bit de paridad. El pulso de encabezado y los bits de datos se codifican en una señal portadora infrarroja de 40 kHz usando modulación de longitud de pulso. Esta modulación es idéntica al formato utilizado en los controles remotos IR de Sony y otros.

Así que sospecho que la decisión de diseño original fue elegir un método de codificación de bajo nivel conocido por ser compatible con una amplia gama de receptores IR. Parece que ha determinado que el receptor que está utilizando puede demodular una señal en diez ciclos, por lo que no veo una razón, en principio, la velocidad de datos más alta no funcionará, pero podría aplicarse lo siguiente:

  • Puede ser menos confiable en un aspecto porque le está dando al receptor menos tiempo para demodular la señal.
  • En otro sentido, podría ser más confiable porque la longitud más corta del paquete permitirá menos tiempo para que los movimientos del jugador y las obstrucciones interfieran con el paquete.

Puede ser una de esas cosas que tienes que probar y ver qué diferencia hace en la práctica. Si fuera yo, para empezar, escribiría un código para que la duración del pulso del transmisor pudiera cambiarse fácilmente usando unos pocos botones y una pantalla LCD, y en el extremo del receptor haría lo mismo. Luego, también podría usar la pantalla LCD para mostrar la cantidad de paquetes recibidos durante un período de tiempo conocido para determinar el porcentaje de pérdida de paquetes a varias velocidades de datos y en diferentes condiciones.

Otra idea algo "fuera de la caja" es que si está codificando su propio protocolo, entonces podría agregar un número de secuencia móvil al paquete. Si recibió dos paquetes con números de secuencia consecutivos, podría suponer cuando estaba en modo "minigun" que representaba, digamos, tres hits. Por supuesto, dependiendo de la longitud del número de secuencia, tendría una cierta probabilidad de acertar el siguiente número de secuencia por casualidad en un punto posterior en lugar de que sea un acierto consecutivo.

Gran respuesta y buenas ideas para resolver el problema. Candidato de respuesta aceptado. ¡Gracias!