Guest User

Untitled

a guest
Jan 14th, 2016
53
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import RPi.GPIO as GPIO
  2. import time
  3. import os
  4. import sys
  5. import threading
  6.  
  7. GPIO_start_pin = "1"                                                                    #GPIO pin an dem die erste(1.) lichtscranke sitzt
  8. GPIO_end_pin = "1"                                                                      #GPIO pin an dem die letzte(2.) lichtschranke sitzt
  9. GPIO_button_pin = "1"                                                                   #GPIO pin des button
  10. t_out = "5.0"                                                                           #nach wie viel sekunden soll mesung abgebrochen werden falls nicht durch 2. lichtschranke
  11. waycm = "35.0"                                                                          #abstand lichtscranken in cm(bei nur einer der durchmesser vom ball)
  12. waykm = waycm / 100 / 1000                                                              #umrechnung in km
  13.  
  14.  
  15.  
  16.  
  17.  
  18. class button_detect(threading.Thread)
  19.     while true:                                                                         #endlosschelife
  20.         sleep(0.5)                                                                      #warte 0.5s ab(kostet dadurch weniger ressourcen die bei den lichtschranken mehr benötigt werden)
  21.         while GPIO.input(GPIO_button_pin) == False:                                     #wenn button gedrückt
  22.             me = sys.executable                                                         #schreib in variable "me" den pfad zu diesem script
  23.             print("restart in 5s")                                                      #meldung zum neustarten des scripts
  24.             time.sleep(5)                                                               #warte 5 sekunden
  25.             os.execl(me, me, * sys.argv)                                                #starte das script aus der variable "me"
  26.  
  27.  
  28. def calcSpeed():
  29.     timeH = timeS / 3600                                                                #/3600 = /60 / 60 (von sekunden in minuten in stunden, 60 * 60 = 3600)
  30.     kmH = waykm / timeH                                                                 #geschwindigkeit = weg / zeit (v = s/t)
  31.     s_time = 0
  32.     e_time = 0
  33.     setOutput()
  34.  
  35.  
  36. def setOutput():                                                                        #wird benötigt um diese funktion später wieder aufzurufen
  37.     i = os.system("clear")                                                              #alte geschwindigkeit entfernen
  38.     print (kmH, "km/h")                                                                 #neue geschwindigkeit anzeigen
  39.  
  40.  
  41. class getTimeS(threading.Thread):
  42.     s_time = 0                                                                          #startzeit zurücksetzen
  43.     while True:                                                                         #endlosschelife
  44.         while GPIO.input(GPIO_start_pin) == GPIO.LOW:                                   #solange 1. lichtscranke nicht unterbrochen
  45.             s_time = time.time()                                                        #setze startzeit auf aktuelle uhrzeit
  46.         time.sleep(t_out)                                                               #warte timeout ab
  47.  
  48.  
  49. class getTimeE(threading.Thread)
  50.     while True:
  51.         e_time = 0                                                                      #endzeit reset
  52.         while GPIO.input(GPIO_end_pin) != GPIO.LOW and time.time() - s_time < t_out:    #solange 2. lichtscranke nicht unterbrochen UND verstrichene zeit nciht > las tout
  53.             e_time = time.time()                                                        #setzt endzeit auf aktuelle uhrzeit
  54.             timeS = e_time - s_time                                                     #verstrichene_zeit = endzeit - startzeit
  55.         time.sleep(t_out / 2)                                                           #warte timeout/2
  56.         calcSpeed()                                                                     #geschwindigkeit berechnen und ausgeben
  57.  
  58.  
  59.  
  60.  
  61.  
  62. gts = getTimeS()
  63. gte = getTimeE()
  64. gts.start(), gte.start()                                                                #starte die prüfung ob eine lichtschranke unterbrochen wurde
  65.  
  66. while True:                                                                             #unendliche schleife
  67.     GPIO.setmode(GPIO.BCM)                                                              #modus für GPIO setzen
  68.     GPIO.setwarnings(False)                                                             #fehlermeldung deaktivieren
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×