#region Hauptfunktionen def ElBlaso(kammer): #Methode: Der Kammer [kammer] wird Luft zugeführt, bzw. Ventile vom Blasen sind auf (stromlos offen) und Ventil vom Saugen zu #print("blaso "+str(kammer)) #zum debuggen, um in der Konsole zu sehen, was grade passiert if(kammer ==1): #wir pusten in Kammer 1 gpio.output(22, 1) #ventil zu gpio.output(21, 0) #ventil offen else: #wir pusten in Kammer 2 gpio.output(12, 0) #ventil offen gpio.output(11, 1) #ventil zu def ElSaugo(kammer): #Methode: Der Kammer [kammer] wird Luft abgezogen, bzw. Ventile vom Saugen sind offen und vom Blasen zu #print("saugo "+str(kammer)) #zum debuggen, um in der Konsole zu sehen, was grade passiert if(kammer==1): #Kammer 1 wird angesprochen gpio.output(22, 0) #ventil offen gpio.output(21, 1) #ventil zu else: #Kammer 2 wird angesprochen gpio.output(12, 1) #ventil zu gpio.output(11, 0) #ventil offen def ElHalto(kammer): #Methode: Die Ventile zu Kammer [kammer] halten die Luft, bzw. Ventile sind zu #print("halto "+str(kammer)) #zum debuggen, um in der Konsole zu sehen, was grade passiert #gpio.output(36, 0) #Motoren aus if(kammer==1): #Kammer 1 wird angesprochen gpio.output(22, 1) #ventil zu gpio.output(21, 1) #ventil zu else: #Kammer 2 wird angesprochen gpio.output(12, 1) #ventil zu gpio.output(11, 1) #ventil zu def reicht(): #Methode: Motor aus, ventile offen --> Luft geht raus gpio.output(36, 0) #Motoren aus gpio.output(11, 0) #ventil offen gpio.output(22, 0) #offen gpio.output(21, 0) #offen gpio.output(12, 0) #offen gpio.cleanup() #räumt uff def Motörchen(state): #Methode: setzt die Motoren auf [state] --> 1 oder 0 #print("Motor "+str(state)) #zum debuggen, um in der Konsole zu sehen, was grade passiert gpio.output(36, state) #Motoren werden auf [state] gestellt --> 1 oder 0 def KritischeAbbruchfrage(): #Methode: Bricht ab wenn der Ende-Knoppek gedrückt wird if knoppekEnde.isPressed(): #Ist der Ende-Knoppek gedrückt? reicht() #Motoren aus, Ventile auf exit() #Programm wird beendet def DruckVerstello(input): #Methode: verstellt einen bestimmten Kammerdruck für 10 Sekunden, Definiert als 1: Links rein; 2: Links raus, 3: Rechts rein; 4: Rechts raus horst.keepAlive() #verhindert, dass pygame-Bibliothek abstürtzt und sucht nach gerade gedrückten Knöpfen time.sleep(0.2) zeitpunkt = time.time() #neue variable [zeitpunkt] wird mit der aktuellen zeit in sekunden seit 1970 belegt if(input ==1): #wenn input = 1 ElBlaso(1) #Luft in linke kammer rein ElHalto(2) #luft bleibt in rechter kammer drin if(input == 2): #wenn input = 2 ElSaugo(1) #luft aus kammer links raus ElHalto(2) #luft bleibt in kammer rechts drin if(input == 3): #wenn input=3 ElBlaso(2) #luft in kammer rechts rein ElHalto(1) #luft bleibt in kammer links drin if(input == 4): #wenn input = 4 ElSaugo(2) #luft aus rechter kammer raus ElHalto(1) #luft bleibt in kammer links drin Motörchen(1) #motor wird angeschaltet while time.time()-zeitpunkt < 10: #zeit - jetzigem zeitpunkt kleiner 10 --> while schleife läuft 10sek horst.keepAlive() #verhindert absturz des programmes und sucht nach gedrückten knöpfen time.sleep(0.2) KritischeAbbruchfrage() #wenn ende knopf gedrückt wird, wird alles beendet --> Methode wird aufgerufen if (knoppekDruckrehoch.isPressed()or knoppekDruckrerunter.isPressed()or knoppekDrucklihoch.isPressed()or knoppekDrucklirunter.isPressed()): #wenn irgendein Druckregulationsknopf gedrückt wird,... break #... dann brich ab --> 10sek werden nicht abgewartet, sondern bricht ab Motörchen(0) #motoren aus def MannoProgram(): #manuelles Programm while 1: #endlosschleife horst.keepAlive() #verhindert absturz des programmes und sucht nach gedrückten knöpfen if knoppekDruckrehoch.isPressed(): #wenn Knopf rehoch gedrückt,... DruckVerstello(3) #... dann luft rechts rein if knoppekDruckrerunter.isPressed(): DruckVerstello(4) #... dann luft rechts raus if knoppekDrucklihoch.isPressed(): DruckVerstello(1) #... dann luft links rein if knoppekDrucklirunter.isPressed(): DruckVerstello(2) #... dann luft links raus KritischeAbbruchfrage() #wenn ende knopf gedrückt wird, wird alles beendet --> Methode wird aufgerufen if knoppekPause.isPressed():break #wenn knopf pause gedrückt wird, break time.sleep(0.2) def GroßKnoppeksWech(): #Methode: grüne Knöpfe weg knoppekAutomatisch.setActive(False) #Knopf automatisch nicht aktiv knoppekAutomatisch.setVisible(False) #knopf automatisch nicht sichtbar knoppekManuell.setActive(False) #knopf manuell nicht aktiv knoppekManuell.setVisible(False) #knopf manuell nicht sichtbar bildschenAutomatisch.setVisible(False) #bild automatisch unsichtbar bildschenManuell.setVisible(False) #bild manuell unsichtbar def KleineKnoppeksHer(): #methode: kleine knöpfe sichtbar machen und aktivieren knoppekZeitprogramm.setActive(True) #knopf zeitprogramm aktiv knoppekZeitprogramm.setVisible(True) #knopf zeitprogramm sichtbar knoppekStart.setActive(True) #knopf start aktiv knoppekStart.setVisible(True) #knopf start sichtbar knoppekPause.setActive(True) #knopf pause aktiv knoppekPause.setVisible(True) #knopf pause sichtbar knoppekEnde.setActive(True) #knopf ende aktiv knoppekEnde.setVisible(True) #knopf ende sichtbar knoppekDrucklihoch.setActive(True) #knopf drucklihoch aktiv knoppekDrucklihoch.setVisible(True) #knopf drucklihoch sichtbar knoppekDrucklirunter.setActive(True) #knopf drucklirunter aktiv knoppekDrucklirunter.setVisible(True) #knopf drucklirunter sichtbar knoppekDruckrehoch.setActive(True) #knopf druckrehoch aktiv knoppekDruckrehoch.setVisible(True) #knopf druckrehoch sichtbar knoppekDruckrerunter.setActive(True) #knopf druckrerunter aktiv knoppekDruckrerunter.setVisible(True) #knopf druckrerunter sichtbar slider.setVisible(True) #slider sichtbar Kammerli.setVisible(True) #feld kammerli sichtbar Kammerre.setVisible(True) #feld kammerre sichtbar def bildschenWech(): #methode: bilder ausblenden bildschenDrucklihoch.setVisible(False) #pfeil drucklihoch unsichtbar bildschenDrucklirunter.setVisible(False) #pfeil drucklirunter unsichtbar bildschenDruckrehoch.setVisible(False) #pfeil druckrehoch unsichtbar bildschenDruckrerunter.setVisible(False) #pfeil druckrerunter unsichtbar def bildschenHer(): #methode: bilder anzeigen bildschenDrucklihoch.setVisible(True) #pfeil drucklihoch sichtbar bildschenDrucklirunter.setVisible(True) #pfeil drucklirunter sichtbar bildschenDruckrehoch.setVisible(True) #pfeil druckrehoch sichtbar bildschenDruckrerunter.setVisible(True) #pfeil druckrerunter sichtbar def textWech(): #methode: text unsichtbar machen schriftKammerli.setVisible(False) #schrift kammerli unsichtbar schriftKammerre.setVisible(False) #schrift kammerre unsichtbar schriftStart.setVisible(False) #schrift start unsichtbar schriftZeitprogramm.setVisible(False) #schrift zeitprogramm unsichtbar schriftPause.setVisible(False) #schrift pause unsichtbar schriftEnde.setVisible(False) #schrift ende unsichtbar def textHer(): #methode: text sichtbar machen schriftKammerli.setVisible(True) #schrift kammerli sichtbar schriftKammerre.setVisible(True) #schrift kammerre sichtbar schriftStart.setVisible(True) #schrift start sichtbar schriftZeitprogramm.setVisible(True) #schrift zeitprogramm sichtbar schriftPause.setVisible(True) #schrift pause sichtbar schriftEnde.setVisible(True) #schrift ende sichtbar #endregion