$ Ultrasonic_graph.py
import RPi.GPIO as GPIO
from matplotlib import pyplot as plt
from matplotlib import animation
import numpy as np
import random
import time
GPIO.setmode(GPIO.BCM)
TRIG=13
ECHO=26
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
GPIO.output(TRIG, GPIO.LOW)
def distance_check() :
GPIO.output(TRIG, GPIO.HIGH)
time.sleep(0.001)
GPIO.output(TRIG, GPIO.LOW)
stop=0
start=0
while GPIO.input(ECHO)== GPIO.LOW :
start=time.time()
while GPIO.input(ECHO)== GPIO.HIGH :
stop=time.time()
duration=stop-start
distance=(duration*340*100)/2
return distance
fig = plt.figure()
ax = plt.axes(xlim=(0, 50), ylim=(4, 13))
line, = ax.plot([], [], lw=1, c='blue', marker='d',ms=2)
max_points = 50
line, = ax.plot(np.arange(max_points),
np.ones(max_points, dtype=np.float64)*np.nan, lw=1, c='blue',marker='d',ms=2)
def init():
return line
def animate(i):
y = distance_check()
old_y = line.get_ydata()
new_y = np.r_[old_y[1:], y]
line.set_ydata(new_y)
print(new_y)
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=200, interval=20, blit=False)
plt.show()