Radar de Detección
Codigo:
# Librerias
import random
from turtle import *
from time import sleep
import time
import random
from pygame import mixer as mix
##############################################
import RPi.GPIO as GPIO #Importamos la librería GPIO
import time #Importamos time (time.sleep)
GPIO.setmode(GPIO.BCM) #Ponemos la placa en modo BCM
GPIO_TRIGGER = 25 #Usamos el pin GPIO 25 como TRIGGER
GPIO_ECHO = 7 #Usamos el pin GPIO 7 como ECHO
GPIO.setup(GPIO_TRIGGER,GPIO.OUT) #Configuramos Trigger como salida
GPIO.setup(GPIO_ECHO,GPIO.IN) #Configuramos Echo como entrada
GPIO.output(GPIO_TRIGGER,False) #Ponemos el pin 25 como LOW
##############################################
bg = "background2.gif"
#instancias
t = Turtle()
screen = t.getscreen()
screen.setup(960,674)
screen.title("Radar de Deteccion - Grado Militar")
screen.bgcolor('black')
screen.bgpic(bg) #Fondo de la ventana
mix.init()
mix.music.load("countdown.wav")
#Variables importantes
CatchDistance = 450-25
MaxAnalysisdistance = 450
rDis = 0
#Configuracion inicial tortuga
t.penup()
t.right(90)
t.forward(275)
t.left(270)
t.pendown()
t.pensize(5)
t.speed(0)
t.ht()
t.color('#00EF00')
def readDistanceCm():
GPIO.output(GPIO_TRIGGER,True) #Enviamos un pulso de ultrasonidos
time.sleep(0.00001) #Una pequeñña pausa
GPIO.output(GPIO_TRIGGER,False) #Apagamos el pulso
start = time.time() #Guarda el tiempo actual mediante time.time()
while GPIO.input(GPIO_ECHO)==0: #Mientras el sensor no reciba señal...
start = time.time() #Mantenemos el tiempo actual mediante time.time()
while GPIO.input(GPIO_ECHO)==1: #Si el sensor recibe señal...
stop = time.time() #Guarda el tiempo actual mediante time.time() en otra variable
elapsed = stop-start #Obtenemos el tiempo transcurrido entre envío y recepción
distance = (elapsed * 34300)/2 #Distancia es igual a tiempo por velocidad partido por 2 D = (T x V)/2
return distance
#time.sleep(1) #Pequeña pausa para no saturar el procesador de la Raspberry
def getRand():
return random.randrange(2,450)
def BarridoClockWise(_t, angle):
rDis = readDistanceCm()
_t.right(angle)
_t.forward(rDis-10)
_t.color('blue')
_t.forward(450-rDis-10)
_t.penup()
_t.color('#00EF00')
_t.backward((rDis-10)+(450-rDis-10))
_t.left(angle)
_t.pendown()
def BarridoAntiClock(_t, angle):
rDis = readDistanceCm()
_t.left(angle)
_t.forward(rDis-10)
_t.color('blue')
_t.forward(450-rDis-10)
_t.penup()
_t.color('#00EF00')
_t.backward((rDis-10)+(450-rDis-10))
_t.right(angle)
_t.pendown()
def BarridoRadar(_t):
mix.music.play()
for i in range(180):
BarridoClockWise(_t, i)
_t.clear()
_t.right(180)
mix.music.play()
for i in range(180):
BarridoAntiClock(_t, i)
_t.clear()
_t.left(180)
ans = input('¿ Accionar ? ')
while True:
BarridoRadar(t)
screen.exitonclick()
Capturas:
Video:



Excelente proyecto, muy interesante y e código muy bien comentado.
ResponderEliminarFelicidades!