VL53L0X 940nm
import matplotlib.pyplot as plt import numpy as np import serial import time from matplotlib import pyplot as plt s = serial.Serial(port='COM6', baudrate=9600) #data will come in 9 byte chunks every 500ms or so , byte 5 is distance in cm time.sleep(0.1) while s.in_waiting == 0: time.sleep(0.01) #wait for first byte to arrive while s.in_waiting != 0: #skip bytes until pause s.read(1) time.sleep(0.01) x = np.arange(100) y = np.zeros(100) plt.ion() fig = plt.figure(1) plt.ylim(ymax=250, ymin=0) ax = fig.add_subplot(111) line1, = ax.plot(x, y, 'r-') # Returns a tuple of line objects, thus the comma i = 0 while True: if not plt.fignum_exists(1): break buf = s.read(9) print("{:3} {} {}".format(i, buf.hex(), buf[5])) ii = i if ii >= 100: y = np.roll(y, -1) ii = 99 y[ii] = buf[5] line1.set_ydata(y) fig.canvas.draw() fig.canvas.flush_events() i = i + 1