velocimetro con sensor ultrasonico
en este programa haremos un velocimetro con ayuda de un sensor ultrasonico usando un archivo externo (botbook) para poder usar algunos comandos
#hc-sr04.py - print distance to object in cm
#(c) BotBook.com - Karvinen, Karvinen, Valtokari
import time
import botbook_gpio as gpio
global tiempo
from turtle import*
t=Turtle()
screen=t.getscreen()
setup(900,900,0,0)
screensize(900,900)
colormode(255)
t.speed(0)
t.penup()
t.goto(-800,-800)
t.fillcolor("green")
t.begin_fill()
t.pendown()
t.goto(-800,200)
t.goto(800,200)
t.goto(800,-800)
t.goto(-800,-800)
t.end_fill()
t.fillcolor("black")
t.penup()
t.begin_fill()
t.goto(-800,-800)
t.pendown()
t.goto(-10,200)
t.goto(10,200)
t.goto(800,-800)
t.goto(-800,-800)
t.end_fill()
t.pencolor("yellow")
t.pensize(5)
t.penup()
t.goto(0,-800)
t.pendown()
t.goto(0,200)
t.pencolor("white")
t.pensize(2)
t.penup()
t.goto(-780,-800)
t.pendown()
t.goto(-5,200)
t.penup()
t.goto(780,-800)
t.pendown()
t.goto(5,200)
t.pencolor("blue")
t.pensize(1)
t.penup()
t.fillcolor(0,255,255)
t.begin_fill()
t.goto(-800,200)
t.pendown()
t.goto(-800,800)
t.goto(800,800)
t.goto(800,200)
t.goto(-800,200)
t.end_fill()
t.penup()
t.pensize(15)
t.pencolor("white")
t.goto(400,350)
t.dot(50,"white")
t.goto(420,320)
t.dot(50,"white")
t.goto(380,330)
t.dot(50,"white")
t.goto(370,350)
t.dot(50,"white")
t.goto(-320,400)
t.dot(50,"white")
t.goto(-330,420)
t.dot(50,"white")
t.goto(-350,410)
t.dot(50,"white")
t.goto(-370,420)
t.dot(50,"white")
t.goto(-390,410)
t.dot(50,"white")
t.pensize(1)
t.pencolor(104,138,8)
t.goto(-800,200)
t.pendown()
t.fillcolor(104,138,8)
t.begin_fill()
t.goto(-700,300)
t.goto(-600,250)
t.goto(-400,260)
t.goto(-380,270)
t.goto(-300,230)
t.goto(-250,280)
t.goto(-200,270)
t.goto(-130,240)
t.goto(-40,230)
t.goto(-10,200)
t.end_fill()
t.penup()
t.pensize(1)
t.pencolor(104,138,8)
t.goto(800,200)
t.pendown()
t.fillcolor(104,138,8)
t.begin_fill()
t.goto(700,300)
t.goto(600,250)
t.goto(400,260)
t.goto(380,258)
t.goto(300,230)
t.goto(250,260)
t.goto(200,250)
t.goto(130,280)
t.goto(70,250)
t.goto(40,220)
t.goto(10,200)
t.end_fill()
t.penup()
t.pensize(1)
t.pencolor("white")
t.fillcolor("white")
t.goto(-800,150)
t.begin_fill()
t.pendown()
t.goto(-800,170)
t.goto(800,170)
t.goto(800,150)
t.goto(-800,150)
t.end_fill()
t.pencolor(230,230,230)
t.fillcolor(230,230,230)
t.goto(-800,170)
t.begin_fill()
t.pendown()
t.goto(-800,180)
t.goto(800,180)
t.goto(800,170)
t.goto(-800,170)
t.end_fill()
t.penup()
t.pencolor("black")
t.pensize(5)
t.goto(-180,-50)
t.pendown()
t.fillcolor("white")
t.begin_fill()
t.goto(-180,185)
t.goto(180,185)
t.goto(180,-50)
t.goto(-180,-50)
t.end_fill()
t.penup()
t.goto(-170,150)
t.write("*SU VELOCIDAD ES DE*",font=("Arial",int(20),"bold"))
t.penup()
t.goto(-170,-30)
t.pendown()
t.fillcolor("black")
t.begin_fill()
t.goto(-170,120)
t.goto(80,120)
t.goto(80,-30)
t.goto(-170,-30)
t.end_fill()
t.penup()
t.color("red")
t.goto(-170,-30)
t.write("000",font=("Arial",int(90),"bold"))
t.color("black")
t.goto(100,50)
t.write("Cm",font=("Arial",int(30),"bold"))
t.goto(100,45)
t.pensize(5)
t.pendown()
t.goto(170,45)
t.penup()
t.color("black")
t.goto(120,0)
t.write("s",font=("Arial",int(30),"bold"))
colormode(255)
t.hideturtle()
def readDistanceCm():
triggerPin = 22 #<1>
echoPin = 27
v=(331.5+0.6*20) #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(1/1000.0/1000.0)
gpio.write(triggerPin, gpio.LOW)
t=gpio.pulseInHigh(echoPin) # s
d=t*v
d=d/2
return d*100# cm
while (True):
t.penup()
t.goto(-170,-30)
t.pendown()
t.fillcolor("black")
t.begin_fill()
t.goto(-170,120)
t.goto(80,120)
t.goto(80,-30)
t.goto(-170,-30)
t.end_fill()
t.penup()
t.color("red")
t.goto(-170,-30)
t.write("000",font=("Arial",int(90),"bold"))
tiempo=0
while (True):
def main():
d=readDistanceCm() #<2>
print("Distance is %.2f cm" % d)
#time.sleep(0.1)
return(d)
r=main()
if (r>=4)and(r<=100):
tiempo=tiempo+1
if tiempo==1:
d1=r
if r<4:
break
#~
#~ if __name__ == "__main__":
#~ main()
distanciareal=d1-4
tiemporeal=tiempo*.1
velocidad=int((distanciareal/tiemporeal)//1)
print (tiemporeal)
print (distanciareal)
print(velocidad)
t.penup()
t.goto(-170,-30)
t.pendown()
t.fillcolor("black")
t.begin_fill()
t.goto(-170,120)
t.goto(80,120)
t.goto(80,-30)
t.goto(-170,-30)
t.end_fill()
t.penup()
t.color("red")
t.goto(-170,-30)
t.write(str(velocidad),font=("Arial",int(90),"bold"))
time.sleep(2)
exitonclick()
#hc-sr04.py - print distance to object in cm
#(c) BotBook.com - Karvinen, Karvinen, Valtokari
import time
import botbook_gpio as gpio
global tiempo
from turtle import*
t=Turtle()
screen=t.getscreen()
setup(900,900,0,0)
screensize(900,900)
colormode(255)
t.speed(0)
t.penup()
t.goto(-800,-800)
t.fillcolor("green")
t.begin_fill()
t.pendown()
t.goto(-800,200)
t.goto(800,200)
t.goto(800,-800)
t.goto(-800,-800)
t.end_fill()
t.fillcolor("black")
t.penup()
t.begin_fill()
t.goto(-800,-800)
t.pendown()
t.goto(-10,200)
t.goto(10,200)
t.goto(800,-800)
t.goto(-800,-800)
t.end_fill()
t.pencolor("yellow")
t.pensize(5)
t.penup()
t.goto(0,-800)
t.pendown()
t.goto(0,200)
t.pencolor("white")
t.pensize(2)
t.penup()
t.goto(-780,-800)
t.pendown()
t.goto(-5,200)
t.penup()
t.goto(780,-800)
t.pendown()
t.goto(5,200)
t.pencolor("blue")
t.pensize(1)
t.penup()
t.fillcolor(0,255,255)
t.begin_fill()
t.goto(-800,200)
t.pendown()
t.goto(-800,800)
t.goto(800,800)
t.goto(800,200)
t.goto(-800,200)
t.end_fill()
t.penup()
t.pensize(15)
t.pencolor("white")
t.goto(400,350)
t.dot(50,"white")
t.goto(420,320)
t.dot(50,"white")
t.goto(380,330)
t.dot(50,"white")
t.goto(370,350)
t.dot(50,"white")
t.goto(-320,400)
t.dot(50,"white")
t.goto(-330,420)
t.dot(50,"white")
t.goto(-350,410)
t.dot(50,"white")
t.goto(-370,420)
t.dot(50,"white")
t.goto(-390,410)
t.dot(50,"white")
t.pensize(1)
t.pencolor(104,138,8)
t.goto(-800,200)
t.pendown()
t.fillcolor(104,138,8)
t.begin_fill()
t.goto(-700,300)
t.goto(-600,250)
t.goto(-400,260)
t.goto(-380,270)
t.goto(-300,230)
t.goto(-250,280)
t.goto(-200,270)
t.goto(-130,240)
t.goto(-40,230)
t.goto(-10,200)
t.end_fill()
t.penup()
t.pensize(1)
t.pencolor(104,138,8)
t.goto(800,200)
t.pendown()
t.fillcolor(104,138,8)
t.begin_fill()
t.goto(700,300)
t.goto(600,250)
t.goto(400,260)
t.goto(380,258)
t.goto(300,230)
t.goto(250,260)
t.goto(200,250)
t.goto(130,280)
t.goto(70,250)
t.goto(40,220)
t.goto(10,200)
t.end_fill()
t.penup()
t.pensize(1)
t.pencolor("white")
t.fillcolor("white")
t.goto(-800,150)
t.begin_fill()
t.pendown()
t.goto(-800,170)
t.goto(800,170)
t.goto(800,150)
t.goto(-800,150)
t.end_fill()
t.pencolor(230,230,230)
t.fillcolor(230,230,230)
t.goto(-800,170)
t.begin_fill()
t.pendown()
t.goto(-800,180)
t.goto(800,180)
t.goto(800,170)
t.goto(-800,170)
t.end_fill()
t.penup()
t.pencolor("black")
t.pensize(5)
t.goto(-180,-50)
t.pendown()
t.fillcolor("white")
t.begin_fill()
t.goto(-180,185)
t.goto(180,185)
t.goto(180,-50)
t.goto(-180,-50)
t.end_fill()
t.penup()
t.goto(-170,150)
t.write("*SU VELOCIDAD ES DE*",font=("Arial",int(20),"bold"))
t.penup()
t.goto(-170,-30)
t.pendown()
t.fillcolor("black")
t.begin_fill()
t.goto(-170,120)
t.goto(80,120)
t.goto(80,-30)
t.goto(-170,-30)
t.end_fill()
t.penup()
t.color("red")
t.goto(-170,-30)
t.write("000",font=("Arial",int(90),"bold"))
t.color("black")
t.goto(100,50)
t.write("Cm",font=("Arial",int(30),"bold"))
t.goto(100,45)
t.pensize(5)
t.pendown()
t.goto(170,45)
t.penup()
t.color("black")
t.goto(120,0)
t.write("s",font=("Arial",int(30),"bold"))
colormode(255)
t.hideturtle()
def readDistanceCm():
triggerPin = 22 #<1>
echoPin = 27
v=(331.5+0.6*20) #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(1/1000.0/1000.0)
gpio.write(triggerPin, gpio.LOW)
t=gpio.pulseInHigh(echoPin) # s
d=t*v
d=d/2
return d*100# cm
while (True):
t.penup()
t.goto(-170,-30)
t.pendown()
t.fillcolor("black")
t.begin_fill()
t.goto(-170,120)
t.goto(80,120)
t.goto(80,-30)
t.goto(-170,-30)
t.end_fill()
t.penup()
t.color("red")
t.goto(-170,-30)
t.write("000",font=("Arial",int(90),"bold"))
tiempo=0
while (True):
def main():
d=readDistanceCm() #<2>
print("Distance is %.2f cm" % d)
#time.sleep(0.1)
return(d)
r=main()
if (r>=4)and(r<=100):
tiempo=tiempo+1
if tiempo==1:
d1=r
if r<4:
break
#~
#~ if __name__ == "__main__":
#~ main()
distanciareal=d1-4
tiemporeal=tiempo*.1
velocidad=int((distanciareal/tiemporeal)//1)
print (tiemporeal)
print (distanciareal)
print(velocidad)
t.penup()
t.goto(-170,-30)
t.pendown()
t.fillcolor("black")
t.begin_fill()
t.goto(-170,120)
t.goto(80,120)
t.goto(80,-30)
t.goto(-170,-30)
t.end_fill()
t.penup()
t.color("red")
t.goto(-170,-30)
t.write(str(velocidad),font=("Arial",int(90),"bold"))
time.sleep(2)
exitonclick()
Comentarios
Publicar un comentario