刚刚开始编程,但请欣赏python在收集和后处理数据方面的强大功能。所以我只是想把自己推过去。你知道吗
我只是用这个代码通过串口滴入数据,避免了任何缓冲区问题
void setup() {
Serial.begin (9600);
}
void loop() {
delay(1000);
int data = 0;
while (data<50){
data++;
Serial.println(data);
delay(1000);
}
}
然后我想用python读取这些数据,并在数据进入时将其保存到一个txt文件中,然后使用这个脚本进行一些简单的平均(只是为了提高我的理解力)
import serial
import time
ser = serial.Serial('COM7', baudrate= 9600, timeout = 1)
time.sleep(3)
numPoints = 50
dataList = [0]*numPoints
dataFile = open('SerialDataTest.txt', 'w')
numRowsCollect = 50
def getValues():
ser.write(b'g')
arduinoData = ser.readline().decode().split('\r\n')
return arduinoData[0]
def printToFile(arduinoData,index):
with open('SerialDataTest.txt', 'w') as dataFile:
dataFile.write(arduinoData)
def getAverage(dataSet,row):
dataAvg = sum(dataSet)/len(dataSet)
print('Average for ' + str(row) + ' is: ' +str(dataAvg))
while(1):
for row in range(0,numRowsCollect):
for i in range(0,numPoints):
data = getValues()
printToFile(data,i)
dataInt = int(data)
dataList[i] = dataInt
getAverage(dataList,row)
dataFile.close()
break
然而,数据似乎根本没有保存,我有点困惑为什么,我已经尽力使用正确的操作,根据我所读的,但脚本返回
Average for 0 is: 0
Average for 0 is: 0
Average for 0 is: 0
etc..
我的文本文件是空白的:/任何你的经验指导将不胜感激。你知道吗
非常感谢您的时间
目前没有回答
相关问题 更多 >
编程相关推荐