W867716395 2017-10-29 05:23 采纳率: 0%
浏览 2020

python读取Arduino数据并绘图,无显示。

以下是我的代码,运行时也没有报错,但没有图形显示出来,怎么回事呢?
import serial, argparse
from collections import deque
import matplotlib.pyplot as plt
import matplotlib.animation as animation
class AnalogPlot:
def init(self, strPort, maxLen):
strPort='COM6'
self.ser = serial.Serial(strPort, 9600)
self.a0Vals = deque([0.0]*maxLen)
self.a1Vals = deque([0.0]*maxLen)
self.maxLen =maxLen
def add(self, data):
assert(len(data)==2)
self.addToDeq(self.a0Vals, data[0])
self.addToDeq(self.a1Vals, data[1])

def addToDeq(self, buf, val):
    buf.pop()
    buf.appendleft(val)
def update(self, frameNum, a0, a1):
    try:
        line=self.ser.readline()
        data=[float(val) for val in line.split]
        if(len(data)==2):
            self.add(data)
            a0.set_data(range(self.maxLen), self.a0Vals)
            a1.set_data(range(self.maxLen), self.a1Vals)
    except:
        pass
    return a0, a1
def close(self):
    self.ser.flush()
    self.ser.close()

def main():
parser= argparse.ArgumentParser(description="LDR serial")
parser.add_argument('--port', dest='port', required=True)
parser.add_argument('--N', dest='maxLen', required=False)
args=parser.parse_args()
strPort=args.port

print('reading from serial port %s...' %strPort)

maxLen=100
if args.maxLen:
    maxLen=int(args.maxLen)
analogPlot=AnalogPlot(strPort, maxLen)

print('plotting data...')

fig=plt.figure()
ax=plt.axes(xlim=(0,maxLen),ylim=(0, 1023))
a0,=ax.plot([],[])
a1,=ax.plot([],[])
anim=animation.FuncAnimation(fig, analogPlot.update,fargs=(a0,a1),interval=20)

plt.show()

analogPlot.close()

print("exiting.")

if name=='_main_':
main()

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-10-29 08:45
    关注

    这个你可以分两步调试,一个是数据有没有正常接收,一个是python画图有没有问题。
    比如说,先不接收数据,而是用静态的数据,能不能出图像。如果可以,再排查数据接收的代码。否则排查画图的代码。

    评论

报告相同问题?

悬赏问题

  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了