Medidor de velocidad con sensor ultrasonico

Para implementar este medidor de velocidad se uso un sensor ultrasonico, que lo que hace es que con el efecto doopler, cuando la onda del sonido rebota con un onjeto, marca la distancia de donde se encuentra el objeto. Ya solo con la formula de velocidad v=d/t, el tiempo se iba sacando cuando media dos distancias y el tiempo en que tardaba en llegar a una distancia determinada.

  • Código:

from turtle import *
import time
import botbook_gpio as gpio
import RPi.GPIO as GPIO

t=Turtle()
l=Turtle()
med=Turtle()
bgpic('ff.png')
setup(640,590,600,0)

l.hideturtle()
t.hideturtle()
med.hideturtle()
t.pensize(5)

#----------------------------------------------dibujo de letrero
t.pu()
l.pu()
t.fillcolor('white')
t.goto(-5,-180)
t.backward(150)
t.begin_fill()
t.pd()
t.lt(90)
t.fd(130)
t.rt(90)
t.fd(350)
t.rt(90)
t.fd(140)
t.backward(260)
t.rt(90)
t.fd(350)
t.lt(90)
t.fd(150)
t.end_fill()
l.goto(-20,0)
l.pd()
l.pensize(60)
l.fd(85)
l.pu()
l.goto(-80,40)
l.write("SU VELOCIDAD ES:",False, "left",("courier",16,"bold"))
l.goto(105,0)
l.pencolor('black')
l.write('cm',False, "left",("courier",18,"bold"))
l.pd()
l.pensize(2)
l.fd(30)
l.pu()
l.goto(113,-25)
l.write('s',False, "left",("courier",18,"bold"))

#----------------------------------------------Medida de vel en letrero

def readDistanceCm():
triggerPin = 22 #<1>
echoPin = 27

v=(343.5) #m/s
gpio.mode(triggerPin, "out")
gpio.mode(echoPin, "in")
gpio.interruptMode(echoPin, "both")

gpio.write(triggerPin, gpio.LOW)
time.sleep(0.1)

gpio.write(triggerPin, gpio.HIGH)
time.sleep(0.00001)
gpio.write(triggerPin, gpio.LOW)

t=gpio.pulseInHigh(echoPin) # s
d=t*v
d=(d/2) *100
print(d)
time.sleep(0.1)
gpio.write(triggerPin, gpio.HIGH)
time.sleep(0.00001)
gpio.write(triggerPin, gpio.LOW)

t=gpio.pulseInHigh(echoPin) # s
d2=t*v
d2=(d2/2) *100

return d,d2

def main():
cont=0
while True:
d,d2=readDistanceCm() 
if(d<=11.3 and d>10.0):
print("d1 is %0.2f cm" % d)
cont+=0.1
if(d2<3.5):
print("d2 is %0.2f cm"% d2)
break
return d,d2,cont
try:
for i in range(10000):
d,d2,cont=main()
dist=7.5
l.goto(-20,0)
l.pd()
l.pensize(60)
l.fd(85)
l.pu()
print("la dist es: %0.2f",dist)
print("cont: ",cont)
print("vel = ",dist/cont)
velo=str(dist/cont)
med.pencolor('red')
med.pu()
med.goto(-30,-25)
med.write(str(velo[:4]),False, "left",("Helvic",30,"bold"))
time.sleep(0.15)

except KeyboardInterrupt:
print('FIN')


exitonclick()



  • Ejecución:




    • Ultima entrada ingresada

      SISTEMA DE RIEGO AUTOMÁTICO CON MÚSICA

      El objetivo era hacer un programa que pueda activar una bomba de agua en la noche, y que por las mañanas reproduzca música para las plantas....