使用pyserial将数据发送到串行 - 使用Razor 9DOF IMU

时间:2013-12-01 19:33:11

标签: python linux arduino pyserial

我目前正在使用 IMU Razor 9DOF
我可以通过阅读 / dev / ttyUSB0 来读取数据。 (默认模式是YPR = IMU的角度)
我还可以通过Arduino的串行监视器将 #ot #osrt 发送到IMU来更改我收到的数据。

所以我试图在Python3中编写一个代码来通过相同的接口进行读取和更改模式(并使用python3来处理数据)。 以下是我的问题:
1。我正在使用pyserial从端口读取数据。这是我的代码:

    from serial import *
    usb = Serial('/dev/ttyUSB0', 57600)
    while True:
       usb.readline()

    print()

当我尝试通过python控制台运行此代码时,它运行得很好,但是当我尝试从脚本(python3 mycode.py)执行它时,它不起作用。
我不明白为什么。

2. 我尝试通过使用发送命令'#osrt'来更改模式

    usb.write(byte("#osrt", "utf8"))

但它只返回写入的数据长度而不改变模式。

谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

建议在使用readline时设置超时。 readline将一直等到收到\n

from serial import *
    usb = Serial('/dev/ttyUSB0', 57600)
    usb.timeout = 1
    while True:
       print(usb.readline()) # you need to print what you are reading in the script