我目前正在使用 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"))
但它只返回写入的数据长度而不改变模式。
谢谢你的帮助!
答案 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