import serial #import the serial library
from vpython import * #import all the vpython library
cube =box(pos=vector(0,0,0),axis=vector(2,0,0),size = vector(2,2,3))
arduinoSerialData = serial.Serial('com5',9600) #create an object to read serial port
while True: #Loop forever
rate(10) #20 time per second
if (arduinoSerialData.inWaiting()>0): #check to see fi data is on serial port
myData = arduinoSerialData.readline() #if data is there,then read it
myData = str(myData,encoding='utf-8')
distance = float(myData) #convert string myData to floating point number and hold in distance variable
print(myData)
cube.pos.x = distance
就是特别慢,在注释掉转换为字符串和浮点数前速度能稍微快点,在arduino的串口监视器中速度就很快,应该是代码问题,可是不理解原因。
以及偶尔程序会出错,显示无法将数据转换成浮点数,但有时候又可以,