Академический Документы
Профессиональный Документы
Культура Документы
/usr/bin/python
# Importe de las librerias requeridas.
import sys
import time
from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
StepCount = len(Seq)
StepDir = 1 # Setear el ciclo de reloj a 1 o 2
def puente_arriba():
# Inicializacion de variables
StepCounter = 0
contador=0;
# Loop
while int(sys.argv[2])>=contador:
print StepCounter,
print Seq[StepCounter]
StepCounter += StepDir
def puente_abajo():
# stepper de regreso
StepDir = -1 # Set to -1 or -2 for anti-clockwise
# inicializar variables.
StepCounter = 0
contador=0;
print StepCounter,
print Seq[StepCounter]
StepCounter += StepDir
try:
while True: #Iniciamos un loop infinito
GPIO.output(GPIO_TRIGGER,True) #Enviamos un pulso de ultrasonidos
time.sleep(0.00001) #Una pequenia 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 senial...
start = time.time() #Mantenemos el tiempo actual mediante
time.time()
while GPIO.input(GPIO_ECHO)==1: #Si el sensor recibe senial...
stop = time.time() #Guarda el tiempo actual mediante
time.time() en otra variable
elapsed = stop-start #Obtenemos el tiempo transcurrido entre
envio y recepcion
distance = (elapsed * 34300)/2 #Distancia es igual a tiempo por velocidad
partido por 2 D = (T x V)/2
if distance>40 and validador>0:
validador=0
if distance<=50:
validador+=1
print validador
if distance<=40 and validador==3:
print "Se activa puente"
print "Distancia: "+str(distance)+" stop: "+str(stop)+" start:
"+str(start)+" elapsed: "+str(elapsed) #Devolvemos la distancia
(en centimetros) por pantalla
GPIO.output(verde,0)
GPIO.setup(amarillo,GPIO.OUT)
GPIO.output(amarillo,0)
GPIO.output(amarillo,1)
time.sleep(0.5)
GPIO.output(amarillo,0)
time.sleep(0.5)
GPIO.output(amarillo,1)
time.sleep(0.5)
GPIO.output(amarillo,0)
time.sleep(0.5)
GPIO.output(amarillo,1)
time.sleep(0.5)
GPIO.output(amarillo,0)
time.sleep(0.5)
GPIO.output(amarillo,1)
time.sleep(0.5)
GPIO.output(amarillo,0)
GPIO.setup(rojo,GPIO.OUT)
GPIO.output(rojo,0)
GPIO.output(rojo,1)
#Se cierra la talanquera
p.ChangeDutyCycle(7.0) #Enviamos un pulso del 7.0% para girar el
servo hacia la izquierda
puente_arriba() #Se sube el puente
time.sleep(10) #Se hace una espera para que pase el puente
puente_abajo() #Se baja el puente
GPIO.output(rojo,0)
GPIO.output(verde,1)
#Se abre talanquera
p.ChangeDutyCycle(2.5) #Enviamos un pulso del 2.5% para centrar
el servo de nuevo
time.sleep(3)
validador=0
time.sleep(1) #Pequena pausa para no saturar el
procesador de la Raspberry
except KeyboardInterrupt: #Si el usuario pulsa CONTROL+C...
print "quit" #Avisamos del cierre al usuario
GPIO.cleanup() #Limpiamos los pines GPIO y salimos