我已将Arduino UNO连接到我的raspberry pi,并希望使用Python脚本从已连接的Sensor中读取。 当我尝试从Arduino IDE读取传感器数据时,它可以非常快速地工作,但是使用Python它确实很慢。
这是我的代码:
import serial
from subprocess import call
from time import sleep
ser = serial.Serial('/dev/ttyACM0')
ser.baudrate = 9600
a = 0
stop = False
file = open("PulseData/MasterArrayData.txt","w")
if(ser.isOpen() == False):
ser.open()
print("Start scanning")
while stop == False:
test = ser.readline()
try:
testInt = int(test)
if testInt > 100 and testInt < 800:
print test
file.write(str(testInt))
file.write("\n")
a = a+1
except ValueError:
print "Not an integer"
if(a == 400):
stop = True
sleep(0.1)
file.close()
call(["./main", "PulseData/MasterArrayData.txt"])
我已经尝试使用更高的波特率或更短的睡眠时间,但没有成功。
我已经读过使用PyTTY可以提高速度,但不幸的是我没有找到任何关于它的文档。
我感谢任何帮助。
答案 0 :(得分:0)
在读数之间休息十分之一秒是绝对的保证,你每秒的读数会少于10。当串口缓冲区不可避免地溢出并且字符丢失时,偶尔会发生垃圾值。