protocolo de comunicación MilesTag IR

2

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

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

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

    
pregunta K.L.

1 respuesta

1

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

  

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

Sospecho que la decisión de diseño original fue elegir un método de codificación de bajo nivel que se sepa que es 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 en principio no veo una razón por la que la mayor velocidad de datos no funcione, pero es posible que se aplique lo siguiente:

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

Puede que solo sea 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 se pudiera cambiar fácilmente usando unos pocos botones y LCD, y en el extremo del receptor haga lo mismo. Luego, también puede 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 bajo diferentes condiciones.

Otra idea un tanto "fuera de la caja" es que si está codificando su propio protocolo, podría agregar un número de secuencia de rotación al paquete. Si recibió dos paquetes con números de secuencia consecutivos, podría suponer que en el modo "minigun" representó, por ejemplo, tres aciertos. Por supuesto, dependiendo de la longitud del número de secuencia, tendrías una cierta probabilidad de golpear el siguiente número de secuencia por casualidad en un momento posterior en lugar de ser un golpe consecutivo.

    
respondido por el PeterJ

Lea otras preguntas en las etiquetas