Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import GPIO library
- import RPi.GPIO as GPIO
- import time
- from tkinter import *
- import sys
- import PIL
- from tkinter.font import Font
- import sys
- try:
- import Tkinter as tk
- except ImportError:
- import tkinter as tk
- try:
- import ttk
- py3 = False
- except ImportError:
- import tkinter.ttk as ttk
- py3 = True
- import DOVGUI_support
- import os.path
- try:
- import Tkinter as tk
- except ImportError:
- import tkinter as tk
- try:
- import ttk
- py3 = False
- except ImportError:
- import tkinter.ttk as ttk
- py3 = True
- import DOVGUI_support
- import os.path
- sys.setrecursionlimit(15000) # maximální pořet opakování smyčky pro výpočet bodů
- ddd = 10
- pin0 = 16
- skok = 22
- run = 0
- startTime = 0
- speed = 0
- jmp = 0
- maxspeed = 0
- sedum = 0
- body = 999
- sedlo = 36
- maxpoint = 0
- sedumsec = 0
- gold = 0
- silver = 0
- bronz = 0
- Bodygold = 0
- Bodysilver = 0
- Bodybronz = 0
- GPIO.setwarnings (False)
- GPIO.setmode(GPIO.BOARD)
- GPIO.setup(16,GPIO.IN,GPIO.PUD_DOWN)
- GPIO.setup(18,GPIO.IN,GPIO.PUD_DOWN) #pin je připojený k 0 - slouží jen pro vypnutí detekce.
- GPIO.setup(22,GPIO.OUT)
- GPIO.setup(sedlo,GPIO.IN,GPIO.PUD_DOWN)
- GPIO.setup(12,GPIO.IN,GPIO.PUD_DOWN)
- def vp_start_gui():
- '''Starting point when module is the main routine.'''
- global val, w, root
- global prog_location
- prog_call = sys.argv[0]
- prog_location = os.path.split(prog_call)[0]
- root = tk.Tk()
- top = Toplevel1 (root)
- DOVGUI_support.init(root, top)
- main()
- root.mainloop()
- w = None
- def create_Toplevel1(rt, *args, **kwargs):
- '''Starting point when module is imported by another module.
- Correct form of call: 'create_Toplevel1(root, *args, **kwargs)' .'''
- global w, w_win, root
- global prog_location
- prog_call = sys.argv[0]
- prog_location = os.path.split(prog_call)[0]
- #rt = root
- root = rt
- w = tk.Toplevel (root)
- top = Toplevel1 (w)
- DOVGUI_support.init(w, top, *args, **kwargs)
- return (w, top)
- def destroy_Toplevel1():
- global w
- w.destroy()
- w = None
- class Toplevel1:
- def __init__(self, top=None):
- '''This class configures and populates the toplevel window.
- top is the toplevel containing window.'''
- _bgcolor = '#d9d9d9' # X11 color: 'gray85'
- _fgcolor = '#000000' # X11 color: 'black'
- _compcolor = '#d9d9d9' # X11 color: 'gray85'
- _ana1color = '#d9d9d9' # X11 color: 'gray85'
- _ana2color = '#ececec' # Closest X11 color: 'gray92'
- top.geometry("1920x1065+400+250")
- top.minsize(120, 1)
- top.maxsize(3460, 1181)
- top.resizable(0, 0)
- top.title("DOV2020")
- top.configure(background="#d9d9d9")
- top.configure(highlightbackground="#d9d9d9")
- top.configure(highlightcolor="black")
- self.Pozadi = tk.Canvas(top)
- self.Pozadi.place(relx=0.0, rely=0.0, relheight=2.4, relwidth=2.253)
- self.Pozadi.configure(background="#2df4ef")
- self.Pozadi.configure(borderwidth="2")
- self.Pozadi.configure(highlightbackground="#d9d9d9")
- self.Pozadi.configure(highlightcolor="black")
- self.Pozadi.configure(insertbackground="black")
- self.Pozadi.configure(relief="ridge")
- self.Pozadi.configure(selectbackground="#c4c4c4")
- self.Pozadi.configure(selectforeground="#bcbcbc")
- self.Label1 = tk.Label(self.Pozadi)
- self.Label1.place(relx=-0.129, rely=-0.141, height=1789, width=3028)
- self.Label1.configure(activebackground="#f9f9f9")
- self.Label1.configure(activeforeground="black")
- self.Label1.configure(background="#d9d9d9")
- self.Label1.configure(disabledforeground="#a3a3a3")
- self.Label1.configure(foreground="#000000")
- self.Label1.configure(highlightbackground="#d9d9d9")
- self.Label1.configure(highlightcolor="black")
- photo_location = os.path.join(prog_location,"/home/pi/Desktop/DOV/back.png")
- global _img0
- _img0 = tk.PhotoImage(file=photo_location)
- self.Label1.configure(image=_img0)
- self.Label1.configure(text='''Label''')
- self.LBLSpeed = tk.Label(self.Pozadi)
- self.LBLSpeed.place(relx=0.194, rely=0.145, height=131, width=244)
- self.LBLSpeed.configure(activebackground="#f9f9f9")
- self.LBLSpeed.configure(activeforeground="black")
- self.LBLSpeed.configure(background="#dcddf2")
- self.LBLSpeed.configure(disabledforeground="#a3a3a3")
- self.LBLSpeed.configure(font="-family {Digital-7} -size 24")
- self.LBLSpeed.configure(foreground="#000000")
- self.LBLSpeed.configure(highlightbackground="#d9d9d9")
- self.LBLSpeed.configure(highlightcolor="black")
- self.LBLSpeed.configure(padx="0")
- self.LBLSpeed.configure(text=maxspeed)
- self.LBLGoldspeed_1 = tk.Label(self.Pozadi)
- self.LBLGoldspeed_1.place(relx=0.097, rely=0.203, height=41, width=144)
- self.LBLGoldspeed_1.configure(activebackground="#f9f9f9")
- self.LBLGoldspeed_1.configure(activeforeground="black")
- self.LBLGoldspeed_1.configure(background="#000000")
- self.LBLGoldspeed_1.configure(disabledforeground="#a3a3a3")
- self.LBLGoldspeed_1.configure(font="-family {Digital-7} -size 9")
- self.LBLGoldspeed_1.configure(foreground="#ffffff")
- self.LBLGoldspeed_1.configure(highlightbackground="#d9d9d9")
- self.LBLGoldspeed_1.configure(highlightcolor="black")
- self.LBLGoldspeed_1.configure(text='''Zlato rychlost''')
- self.LBLsilerspeed = tk.Label(self.Pozadi)
- self.LBLsilerspeed.place(relx=0.079, rely=0.227, height=31, width=106)
- self.LBLsilerspeed.configure(activebackground="#f9f9f9")
- self.LBLsilerspeed.configure(activeforeground="black")
- self.LBLsilerspeed.configure(background="#000000")
- self.LBLsilerspeed.configure(disabledforeground="#a3a3a3")
- self.LBLsilerspeed.configure(font="-family {Digital-7} -size 15")
- self.LBLsilerspeed.configure(foreground="#ffffff")
- self.LBLsilerspeed.configure(highlightbackground="#d9d9d9")
- self.LBLsilerspeed.configure(highlightcolor="black")
- self.LBLsilerspeed.configure(text='''Stribro rychlost''')
- self.LBLbronzspeed = tk.Label(self.Pozadi)
- self.LBLbronzspeed.place(relx=0.095, rely=0.243, height=31, width=101)
- self.LBLbronzspeed.configure(activebackground="#f9f9f9")
- self.LBLbronzspeed.configure(activeforeground="#000000")
- self.LBLbronzspeed.configure(background="#000000")
- self.LBLbronzspeed.configure(disabledforeground="#a3a3a3")
- self.LBLbronzspeed.configure(font="-family {Digital-7} -size 15")
- self.LBLbronzspeed.configure(foreground="#ffffff")
- self.LBLbronzspeed.configure(highlightbackground="#d9d9d9")
- self.LBLbronzspeed.configure(highlightcolor="black")
- self.LBLbronzspeed.configure(text='''Bronz rychlost''')
- self.LBLGoldpoint = tk.Label(self.Pozadi)
- self.LBLGoldpoint.place(relx=0.319, rely=0.196, height=21, width=63)
- self.LBLGoldpoint.configure(activebackground="#f9f9f9")
- self.LBLGoldpoint.configure(activeforeground="#000000")
- self.LBLGoldpoint.configure(background="#000000")
- self.LBLGoldpoint.configure(disabledforeground="#a3a3a3")
- self.LBLGoldpoint.configure(font="-family {Digital-7} -size 15")
- self.LBLGoldpoint.configure(foreground="#ffffff")
- self.LBLGoldpoint.configure(highlightbackground="#d9d9d9")
- self.LBLGoldpoint.configure(highlightcolor="black")
- self.LBLGoldpoint.configure(text='''Zlato body''')
- self.LBLsilverpoint_2 = tk.Label(self.Pozadi)
- self.LBLsilverpoint_2.place(relx=0.333, rely=0.215, height=21, width=71)
- self.LBLsilverpoint_2.configure(activebackground="#f9f9f9")
- self.LBLsilverpoint_2.configure(activeforeground="black")
- self.LBLsilverpoint_2.configure(background="#000000")
- self.LBLsilverpoint_2.configure(disabledforeground="#a3a3a3")
- self.LBLsilverpoint_2.configure(font="-family {Digital-7} -size 15")
- self.LBLsilverpoint_2.configure(foreground="#ffffff")
- self.LBLsilverpoint_2.configure(highlightbackground="#d9d9d9")
- self.LBLsilverpoint_2.configure(highlightcolor="black")
- self.LBLsilverpoint_2.configure(text='''Stribro body''')
- self.LBLbronzbody = tk.Label(self.Pozadi)
- self.LBLbronzbody.place(relx=0.317, rely=0.235, height=21, width=66)
- self.LBLbronzbody.configure(activebackground="#f9f9f9")
- self.LBLbronzbody.configure(activeforeground="black")
- self.LBLbronzbody.configure(background="#000000")
- self.LBLbronzbody.configure(disabledforeground="#a3a3a3")
- self.LBLbronzbody.configure(font="-family {Digital-7} -size 15")
- self.LBLbronzbody.configure(foreground="#ffffff")
- self.LBLbronzbody.configure(highlightbackground="#d9d9d9")
- self.LBLbronzbody.configure(highlightcolor="black")
- self.LBLbronzbody.configure(text='''Bronz body''')
- def rychlost():
- print("rychlost")
- global pin0
- global run
- global speed
- global startTime
- global jmp
- global maxspeed
- global sedum
- global sedumsec
- global body
- obvod = 120 # nutno zadat podle skutečnsoti
- pin0 = 18
- while run == 0:
- tik = GPIO.wait_for_edge(16, GPIO.RISING, timeout=4000)
- if tik is None:
- print('Už se netočí, vracím se na bednu a počítám')
- pin0 = 16
- speed = 0
- bedna()
- else:
- if ((time.time() - sedum) < 7):
- print("merim")
- if jmp == 0:
- startTime = time.time()
- jmp = 1
- sedumsec = 0
- rychlost()
- else:
- jmp = 0
- speed = obvod / (time.time() - startTime)
- print("Rychlost je",round(speed,2),"cm/s")
- if speed >= maxspeed:
- maxspeed = speed
- pin0 = 16
- else:
- pass
- else:
- GPIO.output(22, True)
- time.sleep(0.1)
- GPIO.output(22, False)
- print("naskoč")
- body = round(maxspeed * 10,0)
- sedumsec = 1
- score()
- else: pass
- return
- def score():
- global body
- global sedlo
- global maxpoint
- global maxspeed
- sedlo = 36
- pin0 = 18
- while run == 0:
- hups = GPIO.wait_for_edge(sedlo, GPIO.RISING,timeout=25)
- while hups is None:
- print("Jel jsi maximální rychlostí",round(maxspeed,2),"m/s")
- print ("Naskakuj, běží body")
- while body > 0:
- body = body - 1
- print("body",body)
- score()
- else:
- print ("Nenaskočil jsi včas!!!")
- main()
- print (body)
- score()
- else:
- print("Naskočil jsi, tvoje skóre je ", body, "bodů")
- print(body)
- pin0 = 16
- maxpoint = body
- bedna2()
- else:
- pass
- #def point():
- def bedna2():
- global maxpoint
- print("Počítám body")
- print("Tvůj výkon je", round(maxpoint,2),"bodů")
- global Bodygold
- global Bodysilver
- global Bodybronz
- global body
- if maxpoint >= Bodygold:
- Bodybronz = Bodysilver
- Bodysilver = Bodygold
- Bodygold = maxpoint
- print("Bodyzlato", round(Bodygold,2))
- print("Bodystribro", round(Bodysilver,2))
- print("Bodybronz", round(Bodybronz,2))
- maxpoint = 0
- bedna()
- elif maxpoint>= Bodysilver:
- Bodybronz = Bodysilver
- Bodysilver = maxpoint
- Bodygold = Bodygold
- print("Bodyzlato", round(Bodygold,2))
- print("Bodystribro", round(Bodysilver,2))
- print("Bodybronz", round(Bodybronz,2))
- maxpoint = 0
- bedna()
- elif maxpoint> Bodybronz:
- Bodybronz = maxpoint
- print("Bodyzlato", round(Bodygold,2))
- print("Bodystribro", round(Bodysilver,2))
- print("Bodybronz", round(Bodybronz,2))
- maxpoint = 0
- bedna()
- def bedna():
- global maxspeed
- print("počítám vítěze")
- print("maximum je", round(maxspeed,2),"cm/s")
- global gold
- global silver
- global bronz
- global sedumsec
- if sedumsec == 0:
- print("netlačil jsi 7 sekund")
- main()
- else:
- pass
- if maxspeed >= gold:
- bronz = silver
- silver = gold
- gold = maxspeed
- print("zlato", round(gold,2))
- print("stribro", round(silver,2))
- print("bronz", round(bronz,2))
- maxspeed = 0
- main()
- elif maxspeed>= silver:
- bronz = silver
- silver = maxspeed
- gold = gold
- print("zlato", round(gold,2))
- print("stribro", round(silver,2))
- print("bronz", round(bronz,2))
- maxspeed = 0
- main()
- elif maxspeed> bronz:
- bronz = maxspeed
- print("zlato", round(gold,2))
- print("stribro", round(silver,2))
- print("bronz", round(bronz,2))
- maxspeed = 0
- main()
- def main():
- pin0 = 16
- global sedum
- while run == 0:
- channel = GPIO.wait_for_edge(pin0, GPIO.RISING, timeout=2000)
- if channel is None:
- print('Nikdo nejede, tak nic nedělám.')
- top.after(200, vp_start_gui)
- else:
- print("Kolo se točí, přijímám signál a měřím")
- sedum = time.time()
- rychlost()
- while __name__ == '__main__':
- vp_start_gui()
Add Comment
Please, Sign In to add comment