jumeaux-numeriques/volet_roulant/volrou_cmd-test.py

122 lines
4.7 KiB
Python
Raw Normal View History

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)
#
2023-02-16 02:17:55 +01:00
# Capteurs :
# - Capteur fin de course volet en haut : fdc_h() : valeur retournée = True ou False
# - Capteur fin de course volet en bas : fdc_b() : valeur retournée = True ou False
# - Capteur de luminosité (LDR) : lum() : valeur retournée = entre 0.0 et 1.0
#
# 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() (variante 1)
# - Bouton à glissière mode automatique : bg_auto() (variante 2)
#
# 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(['bg_auto', 'voy_auto'])
plot (['bg_auto', 'voy_auto'])
while True:
if bg_auto():
voy_auto(True) # Activer le voyant du mode automatique
else:
voy_auto(False)
daq(['mot_angle', 'mot_vitesse'])
plot (['mot_angle', 'mot_vitesse'])
# plot ([['mot_angle', 'mot_vitesse']])
# jumeau_mode(True,True, True, False)
# Init -> Descendre
while fdc_b() ==False :
mot_m(False)
mot_d(True)
mot_d(False)
print ("")
# Monter
# mot_vitesse (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_vitesse () # 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")
###############################################################################
# En: External call << DONT CHANGE THIS SECTION >>
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
#
# Variante 1 : Le mode automatique s'active avec le bouton poussoir bp_auto et se désactive avec l'appui sur bp_m, bp_a ou bp_d.
# Variante 2 : Le mode automatique s'active et se désactive avec le bouton à glissière bg_auto.
#
###############################################################################
def cycle():
commandes()
fin()
if __name__=='start':
start(cycle)
if __name__=='stop':
stop()
if __name__=='init':
variant(1) # Variante 1 de la maquette 3D du volet roulant