From e113cb8dfffcd5e8c7afc60ede676801a778db9f Mon Sep 17 00:00:00 2001 From: Philippe Roy Date: Sun, 14 Jan 2024 19:06:41 +0100 Subject: [PATCH] =?UTF-8?q?Portail=20coulissant=20:=20programmation=20de?= =?UTF-8?q?=20la=20vitesse=20r=C3=A9elle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- portail_coulissant/porcou.py | 7 ++++--- portail_coulissant/porcou_cmd.py | 25 ++++++++++++++++--------- portail_coulissant/porcou_lib.py | 8 +++++--- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/portail_coulissant/porcou.py b/portail_coulissant/porcou.py index 02d0de7..e84a651 100644 --- a/portail_coulissant/porcou.py +++ b/portail_coulissant/porcou.py @@ -174,7 +174,7 @@ def mot (cont): if scene.objects['Moteur']['pin_direction'] is not None: if scene.objects['Moteur']['pin_speed'] is not None: scene.objects['Moteur']['pin_direction'].write(1) - scene.objects['Moteur']['pin_speed'].write(1) + scene.objects['Moteur']['pin_speed'].write(scene.objects['Moteur']['speed_real_setting']/255) # Version AutoProg if scene.objects['System']['variant'] == 2: @@ -207,7 +207,7 @@ def mot (cont): if scene.objects['Moteur']['pin_direction'] is not None: if scene.objects['Moteur']['pin_speed'] is not None: scene.objects['Moteur']['pin_direction'].write(0) - scene.objects['Moteur']['pin_speed'].write(1) + scene.objects['Moteur']['pin_speed'].write(scene.objects['Moteur']['speed_real_setting']/255) # Version AutoProg if scene.objects['System']['variant'] == 2: @@ -458,9 +458,10 @@ def system_reset (): scene.objects['Moteur']['alpha']=0 scene.objects['Moteur']['speed']=0 scene.objects['Moteur']['speed_setting']=125.6 # Vitesse du moteur numérique : 125.6 rad /s ( 20 tr / s ) + scene.objects['Moteur']['speed_real_setting']=255 # Vitesse du moteur réel sur maquette Grove scene.objects['Moteur']['step']=0 - rres=0.001 # resolution rotation + rres=0.001 # Resolution rotation obj1=scene.objects['Engrenage'] while (obj1.localOrientation.to_euler().y) > 1.1*rres : obj1.applyRotation((0, 0, -rres), True) diff --git a/portail_coulissant/porcou_cmd.py b/portail_coulissant/porcou_cmd.py index 5821f48..49bb6e2 100644 --- a/portail_coulissant/porcou_cmd.py +++ b/portail_coulissant/porcou_cmd.py @@ -12,7 +12,8 @@ from porcou_lib import * # Bibliothèque utilisateur du portail coulissant # - Gyrophare : gyr(True | False) # - Ouvrir le portail (moteur sens trigo) : mot_o(True | False) # - Fermer le portail (moteur sens horaire) : mot_f(True | False) -# - Définir la vitesse du moteur : mot_vitesse (vitesse) , vitesse en rad / s, si vitesse est omis la valeur par défaut est 125.6 rad /s ( 20 tr / s )) +# - Définir la vitesse du moteur jumeau numérique : mot_vitesse (vitesse) , vitesse en rad / s, si vitesse est omis la valeur par défaut est 125.6 rad /s ( 20 tr / s )) +# - Définir la vitesse du moteur jumeau réel : mot_vitesse_r (vitesse) , vitesse de 0 à 255, la valeur par défaut est 255 # - Emetteur pour le capteur barrage IR : ir_emet(True | False) # # Capteurs (valeur retournée = True ou False) : @@ -42,17 +43,17 @@ from porcou_lib import * # Bibliothèque utilisateur du portail coulissant # Brochage du portail coulissant (AutoProgUno) # brochage={ - # 'bp_ext' : ['d',2,'i'],'bp_int' : ['d',3,'i'], - # 'fdc_o' : ['d',7,'i'],'fdc_f' : ['d',8,'i'], - # 'mot_o' : ['d',5,'o'],'mot_f' : ['d',6,'o'], - # 'gyr' : ['d',4,'o'], - # 'ir_emet' : ['d',9,'o'],'ir_recep' : ['d',10,'i']} +# 'bp_ext' : ['d',2,'i'],'bp_int' : ['d',3,'i'], +# 'fdc_o' : ['d',7,'i'],'fdc_f' : ['d',8,'i'], +# 'mot_o' : ['d',5,'o'],'mot_f' : ['d',6,'o'], +# 'gyr' : ['d',4,'o'], +# 'ir_emet' : ['d',9,'o'],'ir_recep' : ['d',10,'i']} # Brochage du portail coulissant (Grove) brochage={ 'bp_ext' : ['d',6,'i'],'bp_int' : ['d',5,'i'], 'fdc_o' : ['a',1,'i'],'fdc_f' : ['a',0,'i'], - 'mot_v' : ['d',3,'o'], 'mot_s' : ['d',4,'o'], + 'mot_v' : ['d',3,'p'], 'mot_s' : ['d',4,'o'], 'gyr' : ['d',2,'o'], 'ir_emet' : ['d',7,'o'],'ir_recep' : ['d',8,'i']} @@ -77,6 +78,8 @@ def fermer(): tempo(0.1) # Donne du temps à communication avec le jumeau réel # if ir_recep()==False or bp_int() or bp_ext() : # Ouverture en cas présence d'obstacle ou boutons if bp_int() or bp_ext() : # Ouverture en cas présence d'obstacle ou boutons + mot_f(False) + tempo(0.1) # Donne du temps à communication avec le jumeau réel ouvrir() print ("Temporisation") tempo(2) # Temporisation 2s @@ -84,17 +87,18 @@ def fermer(): gyr(False) mot_f(False) ir_emet(False) + tempo(0.1) # Donne du temps à communication avec le jumeau réel # Ouvrir le portail def ouvrir(): print ("Ouverture") while fdc_o() ==False: gyr(True) - mot_f(False) mot_o(True) tempo(0.1) # Donne du temps à communication avec le jumeau réel gyr(False) mot_o(False) + tempo(0.1) # Donne du temps à communication avec le jumeau réel ############################################################################### # Commandes @@ -106,6 +110,7 @@ def commandes(): print ("Version avec sécurité : avec réouverture si bouton ou capteur barrage") print ("Mise en place : Fermeture") mot_vitesse(1000) + mot_vitesse_r(100) fermer() # Jumelage @@ -118,12 +123,14 @@ def commandes(): # Ouverture if bp_int() or bp_ext() : + mot_vitesse_r(200) ouvrir() print ("Temporisation") tempo(2) # Temporisation 2s # Fermeture + mot_vitesse_r(100) fermer() print ("Attente") @@ -145,4 +152,4 @@ if __name__=='start': if __name__=='stop': stop() if __name__=='init': - variant(2) # Variante 1 de la maquette 3D du portail coulissant + variant(1) # Variante Grove diff --git a/portail_coulissant/porcou_lib.py b/portail_coulissant/porcou_lib.py index c3bb2f6..991f2ed 100644 --- a/portail_coulissant/porcou_lib.py +++ b/portail_coulissant/porcou_lib.py @@ -51,12 +51,14 @@ def mot_f (order): scene.objects['Moteur']['close']=order # Réglage de la vitesse du moteur numérique +# Valeur par défaut est 125.6 rad /s soit 20 tr / s def mot_vitesse (speed=125.6): scene.objects['Moteur']['speed_setting']=speed # Vitesse du moteur numérique : 125.6 rad /s ( 20 tr / s ) -# Réglage de la vitesse du moteur réel : Maquette Grove de 0 à 255 -def mot_vitesse_r (speed): - scene.objects['Moteur']['speed_real_setting']=speed # Vitesse du moteur numérique : 125.6 rad /s ( 20 tr / s ) +# Réglage de la vitesse du moteur réel (uniquement sur la maquette Grove, de 0 à 255) +# Valeur par défaut est 255 +def mot_vitesse_r (speed=255): + scene.objects['Moteur']['speed_real_setting']=speed # Ordre pour le capteur barrage IR def ir_emet(order):