diff --git a/Lycee/programmation_python/si/portail_coulissant/porcou_cmd-correction-secu.py b/Lycee/programmation_python/si/portail_coulissant/porcou_cmd-correction-secu.py new file mode 100644 index 0000000..e16fbca --- /dev/null +++ b/Lycee/programmation_python/si/portail_coulissant/porcou_cmd-correction-secu.py @@ -0,0 +1,112 @@ +from porcou_lib import * # Bibliothèque portail coulissant + +############################################################################### +# porcou_cmd.py +# @title: Commandes du portail coulissant +############################################################################### + +############################################################################### +# Instructions élémentaires pour le portail coulissant +# +# Actions (ordre = True ou False) : +# - Gyrophare : gyr(True | False) +# - Ouvrir le portail (moteur sens trigo) : mot_o(True | False) +# - Fermer le portail (moteur sens horaire) : mot_f(True | False) +# - Emetteur pour le capteur barrage IR : ir_emet(True | False) +# +# Capteurs (valeur retournée = True ou False) : +# - Capteur fin de course portail ouvert : fdc_o() +# - Capteur fin de course portail fermé : fdc_f() +# - Capteur barrage IR (absence d'obstacle) : ir_recep() +# +# Consignes du pupitre (valeur retournée = True ou False) : +# - Bouton poussoir coté rue : bp_ext() +# - Bouton poussoir coté cour : bp_int() +# +# Gestion du temps : +# - Temporisation en seconde : tempo(duree) +# +############################################################################### + +# Brochage du portail coulissant +brochage={ + 'bp_ext' : [2,'d','i'], + 'ebp_int' : [3,'d','i'], + 'fdc_o' : [4,'d','i'], + 'fdc_f' : [5,'d','i'], + 'mot_o' : [6,'d','o'], + 'mot_f' : [7,'d','o'], + 'gyr' : [8,'d','o'], + 'ir_emett' : [9,'d','o'], + 'ir_recept' : [10,'d','i']} + +############################################################################### +# Fonctions +############################################################################### + +# Fermer le portail +def fermer(): + print ("Fermeture") + ir_emet(True) + while fdc_f() ==False: + gyr(True) + mot_o(False) + mot_f(True) + if ir_recep()==False or bp_int() or bp_ext() : # Ouverture en cas présence d'obstacle ou boutons + ouvrir() + print ("Temporisation") + tempo(2) # Temporisation 2s + gyr(False) + mot_f(False) + ir_emet(False) + +# Ouvrir le portail +def ouvrir(): + print ("Ouverture") + while fdc_o() ==False: + gyr(True) + mot_f(False) + mot_o(True) + gyr(False) + mot_o(False) + +############################################################################### +# Commandes +############################################################################### + +def commandes(): + + # jumeau(brochage) + + # Mise en place : Fermeture + print ("Version avec sécurité : avec réouverture si bouton ou capteur barrage") + print ("Mise en place : Fermeture") + fermer() + + # Fonctionnement normal + print ("Attente") + while True : + + # Ouverture + if bp_int() or bp_ext() : + ouvrir() + + print ("Temporisation") + tempo(2) # Temporisation 2s + + # Fermeture + fermer() + print ("Attente") + + fin() # A garder + + +############################################################################### +# En: External call << DONT CHANGE THIS SECTION >> +# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >> +############################################################################### + +if __name__=='start': + thread_cmd_start(commandes) +if __name__=='stop': + thread_cmd_stop() diff --git a/Lycee/programmation_python/si/portail_coulissant/porcou_cmd-correction.py b/Lycee/programmation_python/si/portail_coulissant/porcou_cmd-correction.py new file mode 100644 index 0000000..f75340f --- /dev/null +++ b/Lycee/programmation_python/si/portail_coulissant/porcou_cmd-correction.py @@ -0,0 +1,100 @@ +from porcou_lib import * # Bibliothèque portail coulissant + +############################################################################### +# porcou_cmd.py +# @title: Commandes du portail coulissant +############################################################################### + +############################################################################### +# Instructions élémentaires pour le portail coulissant +# +# Actions (ordre = True ou False) : +# - Gyrophare : gyr(True | False) +# - Ouvrir le portail (moteur sens trigo) : mot_o(True | False) +# - Fermer le portail (moteur sens horaire) : mot_f(True | False) +# - Emetteur pour le capteur barrage IR : ir_emet(True | False) +# +# Capteurs (valeur retournée = True ou False) : +# - Capteur fin de course portail ouvert : fdc_o() +# - Capteur fin de course portail fermé : fdc_f() +# - Capteur barrage IR (absence d'obstacle) : ir_recep() +# +# Consignes du pupitre (valeur retournée = True ou False) : +# - Bouton poussoir coté rue : bp_ext() +# - Bouton poussoir coté cour : bp_int() +# +# Gestion du temps : +# - Temporisation en seconde : tempo(duree) +# +############################################################################### + +# Brochage du portail coulissant +brochage={ + 'bp_ext' : [2,'d','i'], + 'ebp_int' : [3,'d','i'], + 'fdc_o' : [4,'d','i'], + 'fdc_f' : [5,'d','i'], + 'mot_o' : [6,'d','o'], + 'mot_f' : [7,'d','o'], + 'gyr' : [8,'d','o'], + 'ir_emett' : [9,'d','o'], + 'ir_recept' : [10,'d','i']} + +############################################################################### +# Fonctions +############################################################################### + +############################################################################### +# Commandes +############################################################################### + +def commandes(): + + # jumeau(brochage) + + # Mise en place : Fermeture + print ("Version sans sécurité : sans réouverture") + print ("Mise en place : Fermeture") + while fdc_f() ==False : + gyr(True) + mot_f(True) + mot_f(False) + gyr(False) + + # Fonctionnement normal + print ("Attente") + while True : + + # Ouverture + if bp_int() or bp_ext() : + print ("Ouverture") + while fdc_o() ==False: + gyr(True) + mot_o(True) + gyr(False) + mot_o(False) + + print ("Temporisation") + tempo(2) # Temporisation + + # Fermeture + print ("Fermeture") + while fdc_f() ==False: + gyr(True) + mot_f(True) + gyr(False) + mot_f(False) + print ("Attente") + + fin() # A garder + + +############################################################################### +# En: External call << DONT CHANGE THIS SECTION >> +# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >> +############################################################################### + +if __name__=='start': + thread_cmd_start(commandes) +if __name__=='stop': + thread_cmd_stop()