Python 如何使用通过串行端口(每100-200毫秒)发送的周期性信息更新绘图?我需要RTOS吗?

Python 如何使用通过串行端口(每100-200毫秒)发送的周期性信息更新绘图?我需要RTOS吗?,python,plot,serial-port,embedded,microcontroller,Python,Plot,Serial Port,Embedded,Microcontroller,我通过串行通信接口(SCI)从微控制器发送定位信息(双数据类型的x、y、z坐标)。我希望使用一个程序来接收此信息,并在每次收到新坐标时更新此坐标,最好使用Python 什么是好的图书馆?我需要实时操作系统吗(为什么?)?我应该使用不同的通信接口吗(为什么?)不,不需要RTOS。任何现代系统都应该能够很容易地处理每100ms读取一次串行数据 只需开始从串行端口读取数据,并处理数据 但我担心的是策划。我知道我可以用pySerial接收数据。但是,一旦我绘制了这些数据,如何在仍然试图读取更多数据的

我通过串行通信接口(SCI)从微控制器发送定位信息(双数据类型的x、y、z坐标)。我希望使用一个程序来接收此信息,并在每次收到新坐标时更新此坐标,最好使用Python


什么是好的图书馆?我需要实时操作系统吗(为什么?)?我应该使用不同的通信接口吗(为什么?)

不,不需要RTOS。任何现代系统都应该能够很容易地处理每100ms读取一次串行数据

只需开始从串行端口读取数据,并处理数据


但我担心的是策划。我知道我可以用pySerial接收数据。但是,一旦我绘制了这些数据,如何在仍然试图读取更多数据的情况下将数据添加到该绘图中?我看到的绘图功能有一个名为“保持”的选项,但我无法保持并接收更多数据。您可能不希望每次获得另一个样本时都更新绘图。一种设计可能包括一个后台线程,该线程从串行端口收集数据并将其排队,而GUI线程定期提取最新的一批数据并更新plot.Ok。这就是我现在真正在做的。我有一个脚本可以收集数据并将其保存到文件中。然后另一个脚本在文件中绘制数据。我人为地延迟了系统,这样我就能看到每个点(我现在正试图测试坐标的质量)。但你是对的。当我全速运行系统时,可能不需要显示所有结果。是否有一个高效的图形用户界面,我可以使用它而不是绘图功能?@user2525288有无数的库用于绘制图形用户界面。这一切都取决于你想要的功能、便携性、灵活性、速度、易用性等。通常,你只能选择其中的几个特征。通过
“Plot function”
我假设您谈论的是matplotlib,这对“实时”来说不是很好GUI。@user2525288从一个线程写入数据并从另一个线程读取数据几乎是有史以来最糟糕的线程间通信方式。除了在配置良好的桌面操作系统的能力范围内平均100-200毫秒之外,听起来很像你的设置中的采样时间是由远程嵌入式系统决定的。因此,桌面上的延迟很可能只会导致数据绘制稍晚,但在测量时间上没有实际的抖动。这通常会很好地结束工作——系统从嵌入式端进行硬计时,即使有时观看屏幕的人被通知晚了几分之一秒(有时甚至更晚)。