我想我偶然发现了我生活中对嵌入式系统的需求。太棒了!而且有点吓人。我需要帮助。
背景:我受聘构建一个 GUI 应用程序,该应用程序从两台SICK LMS-291上进行扫描,并将它们与亚英寸精度的 GPS 集成,这样您就知道每次扫描发生在哪里。作为一个天真的网络程序员,我知道时机很重要,但没有意识到这也很困难!如果您不知道每个 GPS 点和每次扫描发生的时间,您就无法确定扫描发生的位置。哎呀。
他们指定了 windows 7 作为平台,并购买了一个SeaLevel RS422 转 USB盒来连接传感器和 GPS,很快我就发现了我的愚蠢。在传感器和我的计算机程序之间的某个地方,有些东西阻止了扫描及时到达。LMS 每秒输出 75 次扫描,或 13.32 毫秒/扫描。我的程序没有及时得到它们。它每 100 毫秒左右获取一次,以 7 或 8 或 10 组为一组。有时也没有足够的扫描显示,或者它们被破坏了。要么这个 SeaPort 适配器每秒只发送 10 次(这可能吗?我不知道 USB 是如何工作的),要么 Windows 没有检查缓冲区(一定有缓冲区,对吧?)几乎足够频繁。
现在:这会导致客户基本上可以接受的一些不准确之处。不过我不是,因为我有机会为客户做类似的工作(集成更多的传感器输入!),我想弄清楚如何正确地做,例如考虑到 GPS 的准确性,能够保证扫描位置的精度和准确性。
那看起来像什么?我需要一个 UI,并且能够每 13.32 毫秒检查一次来自这三个设备的输入。如果我将 FreeRTOS 与例如用于 GUI 的 Nano-X 一起使用,在他们提供的笔记本电脑上运行,这听起来像一个理智的解决方案吗?是否有可能是 RS-422 到 USB 适配器导致了这些延迟,而使用 Windows 实际上就可以达到这个目的?