mirror of
https://forge.apps.education.fr/blender-edutech/jumeaux-numeriques.git
synced 2024-01-27 06:56:18 +01:00
122 lines
4.7 KiB
Python
122 lines
4.7 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 :
|
|
# - 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
|