Creo que descubrí accidentalmente una necesidad en mi vida de sistemas embebidos. ¡Lo cual es genial! Y un poco de miedo. Y necesito ayuda.
Antecedentes : me contrataron para crear una aplicación GUI que toma escaneos de dos SICK LMS-291 y los integra con un GPS de precisión de menos de una pulgada, para que sepa dónde ocurrió cada escaneo. Como ingenuo programador web que soy, entendí que el tiempo sería importante, ¡pero no me di cuenta de que también sería difícil! Si no sabe cuándo se produjo cada punto GPS y cada escaneo, no puede averiguar dónde ocurren los escaneos. Ups
Habían especificado Windows 7 como plataforma, así como compraron una caja SeaLevel RS422 a USB para conectar los sensores y el GPS, y en poco tiempo descubrí mi locura. En algún lugar entre los sensores y mi programa de computadora, algo impedía que los escaneos llegaran a tiempo. El LMS escupe 75 escaneos por segundo, o a 13.32 ms / escaneo. Mi programa no los recibe de manera oportuna. Los recibe cada 100 milésimas de segundo, en grupos de 7 u 8 o 10 o algo así. Además, a veces no aparecen suficientes escaneos, o están destrozados. O este adaptador SeaPort solo envía diez veces por segundo (¿es posible? No sé cómo funciona el USB) o Windows no está comprobando el búfer (debe haber un búfer en algún lugar, ¿verdad?) Con la suficiente frecuencia.
Actualidad : Esto lleva a algunas imprecisiones con las que el cliente está básicamente de acuerdo. Sin embargo, no lo soy, y dado que tengo la oportunidad de hacer un trabajo similar para el cliente (¡integrando más entradas de sensores!), Me gustaría descubrir cómo hacerlo correctamente, por ejemplo, dada la precisión del GPS , podrá brindar garantías sobre la precisión y exactitud de las ubicaciones de escaneo.
¿Cómo se ve eso? Necesito una IU y poder verificar la entrada de estos tres dispositivos cada 13,32 milisegundos. Si usara FreeRTOS con, digamos, Nano-X para la GUI, ejecute en una computadora portátil que proporcionan, ¿eso sonaría como una solución sensata? ¿Es posible que el adaptador RS-422 a USB esté causando estos retrasos, y el uso de Windows en realidad está bien para este propósito?