Professional Documents
Culture Documents
New
New
import serial
import threading
import time
arduino_port = '/dev/ttyACM0'
baud_rate = 9600
time_values = []
data_values = []
def read_data():
ser.flush()
start_time = time.time()
try:
line = ser.readline().decode('utf-8').strip()
if line:
current_time = time.time() - start_time
time_values.append(current_time)
data_values.append(float(line))
except ValueError:
pass
def update_plot():
plt.xlabel('Time (s)')
plt.ylabel('Data Value')
canvas.draw()
root = tk.Tk()
frame = ttk.Frame(root)
frame.pack()
canvas_widget.pack()
data_thread = threading.Thread(target=read_data)
data_thread.start()
update_interval = 100
root.after(update_interval, update_plot)
root.mainloop()