График синусоиды из последовательных данных и значения с плавающей точкой

import sys
import serial
import numpy as np
import matplotlib.pyplot as plt
from collections import deque

port = "COM11"
baud = 9600
timeout=1

ser = serial.Serial()
ser.port = port
ser.baudrate = baud
ser.timeout = timeout


a1 = deque([0.0]*100)
#ax = plt.axes(xlim=(0, 100), ylim=(0, 1000))



line, = plt.plot(a1)
plt.ion()
plt.ylim([0,1000])

try:
  ser.open()
except:
  sys.stderr.write("Error opening serial port %s\n" % (ser.portstr) )
  sys.exit(1)

#ser.setRtsCts(0)

while 1:
     # Read from serial port, blocking
     data = ser.read(1)

     # If there is more than 1 byte, read the rest
     n = ser.inWaiting()
     data = data + ser.read(n)
     #sys.stdout.write(data)
     print(a1)

     a1.appendleft((data))
     datatoplot = a1.pop()
     line.set_ydata(a1)
     plt.draw()

Я получаю график последовательных данных во временной области, но я хочу преобразовать данные, которые я получаю от последовательного порта, в синусоидальную волну, а затем выполнить анализ. Есть ли что-нибудь, что можно сделать? Спасибо

Еще один вопрос: я хотел построить значения с плавающей запятой, поэтому я умножил данные на 0.000714285714, а затем попытался построить график, но я получил эту ошибку. Traceback (последний вызов был последним): файл "C:\Python27\time andquenide domain.py", строка 70, в a1.appendleft(float(data*0.000714285714)) TypeError: невозможно умножить последовательность на не-int из введите 'float' Пожалуйста, посмотрите на этот вопрос, он даже важнее первого.

0 ответов

Другие вопросы по тегам