如何使用 Python 读取高速串行数据?

Posted

技术标签:

【中文标题】如何使用 Python 读取高速串行数据?【英文标题】:How to read highspeed Serial-data using Python? 【发布时间】:2020-02-05 14:15:43 【问题描述】:

我正在开发一个在 Python GUI 上显示传感器数据的项目。传感器数据在使用 Arduino 的串行端口上以2kHz 的速率出现。我正在使用 pyserial(使用 readline())读取笔记本电脑上的传感器数据。经过数小时的调试,我发现 python 能够读取大约 400 个样本/秒,即读取频率约为 400Hz

有没有办法借助python以更高的速率读取串行数据?

提前致谢。

【问题讨论】:

您是否配置了正确的波特率? pythonhosted.org/pyserial/shortintro.html#opening-serial-ports 【参考方案1】:

假设传感器设计用于传输 2kHz 数据并且做得正确,我的猜测是您的 Python 代码读取数据样本、处理数据、更新绘图等所花费的时间是限制因素。您是否一次阅读和处理一个样本?有没有一种聪明的方法来读取大块中的所有可用数据,从而减少单个读取/处理步骤的数量?

您是否在“实时”绘制数据?如果是这样,情节更新很慢。

【讨论】:

以上是关于如何使用 Python 读取高速串行数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Qt5 读取串行数据

使用 Python 串行库处理从串口读取的原始数据?

如何从串行数据中提取特定序列

在 Python 中使用 Qt Designer 接口实时读取串行数据

如何在 python dash 应用程序中绘制来自传感器的串行信号?

如何使用 Python 优化实时绘制串行数据