我正在尝试从Arduino中获取数据,并使用matplotlib librarie绘制它。我完成了这个(获取数据)并绘制它。
绘图时出现问题。知道我用来发送数据的奈奎斯特频率约为20 [kHz],这太慢了。
这是我的代码:
class ViewWidget(QMainWindow):
live_data = []
cnt = 0
def __init__(self):
QMainWindow.__init__(self)
self.figure_canvas = FigureCanvas(Figure())
layout.addWidget(self.figure_canvas, 10)
self.axes = self.figure_canvas.figure.add_subplot(111)
self.x = ViewWidget.live_data
def seeData(self):
arduinoData = serial.Serial("com4", 9600)
while True:
if arduinoData.inWaiting()>0:
arduinoString = arduinoData.read(arduinoData.inWaiting())
ardString = map(ord, arduinoString)
for number in ardString:
numb = float(number/77.57)
ViewWidget.live_data.append(numb)
drawnow(self.makeFig)
else:
print "There is no data"
def makeFig(self):
self.axes.plot(self.x, picker = 5)
self.figure_canvas.draw()
我错过了什么吗?我该怎么做才能画“更快”。希望你能帮帮我。