【发布时间】:2017-10-18 03:04:02
【问题描述】:
我使用的是 Python 3.5,但在尝试将实时数据打印到 CSV 以进行后期处理时遇到了一些麻烦。我正在使用 Arduino 从应变仪和光电传感器收集数据,以便为我的学校车队实时更新 Dyno。到目前为止,我已经设法将最后一行数据打印到 CSV,但这还不够。
我需要它在团队完成测试后打印所有这些数据,以查看他们对引擎所做的修改。我确实在串行监视器中显示了他们的所有相关数据,但如果他们能够拥有用于查看以前测试的数据,那对他们来说会很棒。
import serial
import csv
import time
import numpy as np
import warnings
import serial
import serial.tools.list_ports
arduino_ports = [
p.device
for p in serial.tools.list_ports.comports()
if 'Arduino' in p.description
]
if not arduino_ports:
raise IOError("No Arduino found")
if len(arduino_ports) > 1:
warnings.warn('Multiple Arduinos found - using the first')
Arduino = serial.Serial(arduino_ports[0])
Arduino.flush()
Arduino.reset_input_buffer()
start_time=time.time()
Distance = 0.5 # This is how long the lever arm is in feet
while True:
while (Arduino.inWaiting()==0):
pass
try:
data = Arduino.readline()
dataarray = data.decode().rstrip().split(',')
Arduino.reset_input_buffer()
Force = float(dataarray[0])
RPM = float (dataarray[1])
Torque = Force * Distance
HorsePower = Torque * RPM / 5252
Run_time = time.time()-start_time
print (Force , 'Grams',"," , RPM ,'RPMs',"," ,Torque,"ft-lbs",",", HorsePower, "hp", Run_time, "Time Elasped")
except (KeyboardInterrupt, SystemExit,IndexError,ValueError):
pass
with open('DynoData.csv', 'w') as outfile:
outfileWrite = csv.writer(outfile)
outfileWrite.writerow([Force, RPM])
outfile.close()
【问题讨论】:
标签: python python-3.x csv export-to-csv