Raspberry Pi零串行端口破坏了性能

时间:2019-02-05 21:42:03

标签: python raspberry-pi serial-port pyserial

我正在尝试从Arduino读取传感器数据到Pi Zero,以进行自动驾驶汽车项目。由于串行通信,我已经停留了一个多星期。我无法以可接受的速度使Pi通过pyserial从USB读取。

我的第一个猜测是USB通信本身就是瓶颈。但是在运行了许多测试之后,我的结论是,打开串行端口后,Pi就会快要死了。

脚本一旦运行:ser = serial.Serial('/dev/ttyUSB0', 74880, timeout=None),Pi的运行速度将降低50倍。

我的最后一次测试是最基本的代码。我有两个脚本运行一个循环,打印一个字符1000次。一个包含ser = serial.Serial('/dev/ttyUSB0', 74880, timeout=None),第二个包含注释掉的行,还有一个额外的sleep(1)来估计运行该行所花费的时间(来自近似手动测量)。

在Arduino方面,几乎没有任何东西。我设置序列并在循环中打印“ hello world”。对于Arduino而言,这似乎不是一个问题,因为它在连接到Mac或从Pi运行C语言的串行程序时都能完美运行。

这是我的两个测试脚本:

使用序列号测试1:

import serial
from time import sleep

ser = serial.Serial('/dev/ttyUSB0', 74880, timeout=None)
sleep(2)
for i in range(0, 1000):
  print("x", end="")

不带序列号的测试2:

import serial
from time import sleep

#ser = serial.Serial('/dev/ttyUSB0', 74880, timeout=None)
sleep(3)
for i in range(0, 1000):
  print("x", end="")

每项运行time python3时,我得到:

  • 测试1:大约30秒
  • 测试2:大约4秒

希望正在消失。到目前为止,我在网上找不到任何成功的解决方案。

0 个答案:

没有答案