gpt4 book ai didi

python - 使用 PySerial/Matplotlib 的微处理器到 RS-232 实时绘图?

转载 作者:行者123 更新时间:2023-11-28 21:30:42 26 4
gpt4 key购买 nike

我是 Python 世界的新手,我的编程技能相当差,但我正在尝试寻找一种方法来使用 Python 显示 EEG 电路的输出(使用 OpenEEG 电路 http://openeeg.sourceforge.net)

模拟输出通过 ADC(在 ATmega8 微 Controller 中)放大和处理,并由 MAX232 转换为 RS232。

RS232信号如下:

字节1:同步值0xa5
字节 2:同步值 0x5a
字节 3:版本
字节4:帧号
字节 5: channel 1 低字节
字节 6: channel 1 高字节
字节 7: channel 2 低字节
字节 8: channel 2 高字节
...
字节 9-16 用于额外的电极 channel ,但不需要数据,因为只使用前两个
...
字节 17:按钮状态 (b1-b4)

我有一些基本的 PySerial 功能,但我需要想出一种方法来利用传入的数据,方法是缓冲它并将有用的值绘制为 2 个实时 x-y 波形(时间与电压)

问题更新:

我正在使用 PySerial 的明显几行打印代码,但它是乱码。我正在尝试将数据分解为可以绘制的值格式。 17 字节的数据目前以 256 帧/秒的速度传入。 (两个) channel 分别由 10 位数据组成(其余 2 个字节由 6 个零组成)。它们是无符号的,给出了 0 到 1023 的可能值。这些对应于应绘制为正负值的值,因此二进制值 512 对应于零(微)伏图....

如何将传入流读取为 8 位二进制(去除不需要的数据),然后组合来自每个 channel 的两个相关字节(如有必要,可能删除多余的 6 个零)?

最佳答案

要处理复杂的二进制数据格式,您可以使用 structured arrays在 numpy 中(另请参阅 here 以获得很好的介绍)。定义数据结构后,应该很容易读取它。然后您可以使用 numpy 的功能将数据分解为您需要的内容。

关于python - 使用 PySerial/Matplotlib 的微处理器到 RS-232 实时绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1797249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com