Files
ODrive/tools/liveplotter.py
T
2017-11-10 12:39:59 -08:00

41 lines
696 B
Python

#!/usr/bin/env python3
"""
Liveplotter
"""
import time
import odrive.core
import matplotlib.pyplot as plt
import numpy as np
import threading
data_rate = 100
plot_rate = 10
num_samples = 1000
my_odrive = odrive.core.find_any()
plt.ion()
global vals
vals = []
def fetch_data():
global vals
while True:
vals.append(my_odrive.motor0.encoder.pll_pos)
if len(vals) > num_samples:
vals = vals[-num_samples:]
time.sleep(1/data_rate)
def plot_data():
global vals
while True:
plt.clf()
plt.plot(vals)
plt.pause(1/plot_rate)
fetch_thread = threading.Thread(target=fetch_data, daemon=True)
fetch_thread.start()
plot_data()