jumeaux-numeriques/volet_roulant/volrou_cmd.py

100 lines
3.9 KiB
Python

from volrou_lib import * # Bibliothèque utilisateur du volet roulant
###############################################################################
# volrou_cmd.py
# @title: Commandes du volet roulant
###############################################################################
###############################################################################
# Instructions élémentaires pour le volet roulant
#
# Actions (ordre = True ou False) :
# - Monter le volet (moteur sens trigo) : mot_m(True | False)
# - Descendre le volet (moteur sens horaire) : mot_d(True | False)
#
# Capteurs (valeur retournée = True ou False) :
# - Capteur fin de course volet en haut : fdc_h()
# - Capteur fin de course volet en bas : fdc_b()
# - Capteur de luminosité (LDR) : lum()
#
# Consignes du pupitre (valeur retournée = True ou False) :
# - Bouton poussoir monter volet : bp_m()
# - Bouton poussoir arrêt volet : bp_a()
# - Bouton poussoir descendre volet : bp_d()
# - Bouton poussoir mode automatique : bp_auto()
#
# Retour d'information du pupitre (allumer = True ou False) :
# - Voyant témoin mode automatique : voy_auto(True | False)
#
# Gestion du temps :
# - Temporisation en seconde : tempo(duree)
#
###############################################################################
###############################################################################
# Fonctions
###############################################################################
###############################################################################
# Commandes
###############################################################################
def commandes():
daq(['mot_angle'])
# Init -> Descendre
while fdc_b() ==False :
mot_m(False)
mot_d(True)
mot_d(False)
print ("")
# Monter
mot_digitset (500)
t0, a0= get('t'), get('mot_angle')
print ("Début monter : mot_angle : " + str(round(a0, 3)))
while fdc_h() ==False :
mot_d(False)
mot_m(True)
mot_angle, mot_pas, mot_vitesse = get('mot_angle'), get('mot_pas'), get('mot_vitesse')
# if abs(mot_vitesse)>0:
# print ("Monter : mot_angle : "+ str(round(mot_angle, 3)) + " rad - mot_vitesse : "+ str(round(mot_vitesse, 3)) + " rad/s - moteur_pas : " +str(round(mot_pas, 3))+" rad/impulsion")
mot_m(False)
t1, a1= get('t'), get('mot_angle')
print ("Fin monter : mot_angle : " + str(round(a1, 3)))
print ("")
print ("Monter : "+str(round(t1-t0, 3)) +" s - angle : " +str(round(a1-a0, 3)) + " rad - moteur_vitesse : " +str(round(mot_vitesse, 3))+
" rad/s - moteur_pas : " +str(round(mot_pas, 3))+" rad/impulsion")
print ("")
# Descendre
mot_digitset () # 20 tr/s
t0, a0= get('t'), get('mot_angle')
print ("Début descendre : mot_angle : " + str(round(a0, 3)))
while fdc_b() ==False :
mot_m(False)
mot_d(True)
mot_angle, mot_pas, mot_vitesse = get('mot_angle'), get('mot_pas'), get('mot_vitesse')
# if abs(mot_vitesse)>0:
# print ("Monter : mot_angle : "+ str(round(mot_angle, 3)) + " rad - mot_vitesse : "+ str(round(mot_vitesse, 3)) + " rad/s - moteur_pas : " +str(round(mot_pas, 3))+" rad/impulsion")
mot_d(False)
t1, a1= get('t'), get('mot_angle')
print ("Fin descendre : mot_angle : " + str(round(a1, 3)))
print ("")
print ("Descendre : "+str(round(t1-t0, 3)) +" s - angle : " +str(round(a1-a0, 3)) + " rad - moteur_vitesse : " +str(round(mot_vitesse, 3))+
" rad/s - moteur_pas : " +str(round(mot_pas, 3))+" rad/impulsion")
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':
stop()