mirror of
https://forge.apps.education.fr/blender-edutech/jumeaux-numeriques.git
synced 2024-01-27 06:56:18 +01:00
Portail coulissant : programmation de la vitesse réelle
This commit is contained in:
parent
c13cb9af85
commit
e113cb8dff
@ -174,7 +174,7 @@ def mot (cont):
|
|||||||
if scene.objects['Moteur']['pin_direction'] is not None:
|
if scene.objects['Moteur']['pin_direction'] is not None:
|
||||||
if scene.objects['Moteur']['pin_speed'] is not None:
|
if scene.objects['Moteur']['pin_speed'] is not None:
|
||||||
scene.objects['Moteur']['pin_direction'].write(1)
|
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
|
# Version AutoProg
|
||||||
if scene.objects['System']['variant'] == 2:
|
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_direction'] is not None:
|
||||||
if scene.objects['Moteur']['pin_speed'] is not None:
|
if scene.objects['Moteur']['pin_speed'] is not None:
|
||||||
scene.objects['Moteur']['pin_direction'].write(0)
|
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
|
# Version AutoProg
|
||||||
if scene.objects['System']['variant'] == 2:
|
if scene.objects['System']['variant'] == 2:
|
||||||
@ -458,9 +458,10 @@ def system_reset ():
|
|||||||
scene.objects['Moteur']['alpha']=0
|
scene.objects['Moteur']['alpha']=0
|
||||||
scene.objects['Moteur']['speed']=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_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
|
scene.objects['Moteur']['step']=0
|
||||||
|
|
||||||
rres=0.001 # resolution rotation
|
rres=0.001 # Resolution rotation
|
||||||
obj1=scene.objects['Engrenage']
|
obj1=scene.objects['Engrenage']
|
||||||
while (obj1.localOrientation.to_euler().y) > 1.1*rres :
|
while (obj1.localOrientation.to_euler().y) > 1.1*rres :
|
||||||
obj1.applyRotation((0, 0, -rres), True)
|
obj1.applyRotation((0, 0, -rres), True)
|
||||||
|
@ -12,7 +12,8 @@ from porcou_lib import * # Bibliothèque utilisateur du portail coulissant
|
|||||||
# - Gyrophare : gyr(True | False)
|
# - Gyrophare : gyr(True | False)
|
||||||
# - Ouvrir le portail (moteur sens trigo) : mot_o(True | False)
|
# - Ouvrir le portail (moteur sens trigo) : mot_o(True | False)
|
||||||
# - Fermer le portail (moteur sens horaire) : mot_f(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)
|
# - Emetteur pour le capteur barrage IR : ir_emet(True | False)
|
||||||
#
|
#
|
||||||
# Capteurs (valeur retournée = True ou 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 du portail coulissant (AutoProgUno)
|
||||||
# brochage={
|
# brochage={
|
||||||
# 'bp_ext' : ['d',2,'i'],'bp_int' : ['d',3,'i'],
|
# 'bp_ext' : ['d',2,'i'],'bp_int' : ['d',3,'i'],
|
||||||
# 'fdc_o' : ['d',7,'i'],'fdc_f' : ['d',8,'i'],
|
# 'fdc_o' : ['d',7,'i'],'fdc_f' : ['d',8,'i'],
|
||||||
# 'mot_o' : ['d',5,'o'],'mot_f' : ['d',6,'o'],
|
# 'mot_o' : ['d',5,'o'],'mot_f' : ['d',6,'o'],
|
||||||
# 'gyr' : ['d',4,'o'],
|
# 'gyr' : ['d',4,'o'],
|
||||||
# 'ir_emet' : ['d',9,'o'],'ir_recep' : ['d',10,'i']}
|
# 'ir_emet' : ['d',9,'o'],'ir_recep' : ['d',10,'i']}
|
||||||
|
|
||||||
# Brochage du portail coulissant (Grove)
|
# Brochage du portail coulissant (Grove)
|
||||||
brochage={
|
brochage={
|
||||||
'bp_ext' : ['d',6,'i'],'bp_int' : ['d',5,'i'],
|
'bp_ext' : ['d',6,'i'],'bp_int' : ['d',5,'i'],
|
||||||
'fdc_o' : ['a',1,'i'],'fdc_f' : ['a',0,'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'],
|
'gyr' : ['d',2,'o'],
|
||||||
'ir_emet' : ['d',7,'o'],'ir_recep' : ['d',8,'i']}
|
'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
|
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 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
|
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()
|
ouvrir()
|
||||||
print ("Temporisation")
|
print ("Temporisation")
|
||||||
tempo(2) # Temporisation 2s
|
tempo(2) # Temporisation 2s
|
||||||
@ -84,17 +87,18 @@ def fermer():
|
|||||||
gyr(False)
|
gyr(False)
|
||||||
mot_f(False)
|
mot_f(False)
|
||||||
ir_emet(False)
|
ir_emet(False)
|
||||||
|
tempo(0.1) # Donne du temps à communication avec le jumeau réel
|
||||||
|
|
||||||
# Ouvrir le portail
|
# Ouvrir le portail
|
||||||
def ouvrir():
|
def ouvrir():
|
||||||
print ("Ouverture")
|
print ("Ouverture")
|
||||||
while fdc_o() ==False:
|
while fdc_o() ==False:
|
||||||
gyr(True)
|
gyr(True)
|
||||||
mot_f(False)
|
|
||||||
mot_o(True)
|
mot_o(True)
|
||||||
tempo(0.1) # Donne du temps à communication avec le jumeau réel
|
tempo(0.1) # Donne du temps à communication avec le jumeau réel
|
||||||
gyr(False)
|
gyr(False)
|
||||||
mot_o(False)
|
mot_o(False)
|
||||||
|
tempo(0.1) # Donne du temps à communication avec le jumeau réel
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Commandes
|
# Commandes
|
||||||
@ -106,6 +110,7 @@ def commandes():
|
|||||||
print ("Version avec sécurité : avec réouverture si bouton ou capteur barrage")
|
print ("Version avec sécurité : avec réouverture si bouton ou capteur barrage")
|
||||||
print ("Mise en place : Fermeture")
|
print ("Mise en place : Fermeture")
|
||||||
mot_vitesse(1000)
|
mot_vitesse(1000)
|
||||||
|
mot_vitesse_r(100)
|
||||||
fermer()
|
fermer()
|
||||||
|
|
||||||
# Jumelage
|
# Jumelage
|
||||||
@ -118,12 +123,14 @@ def commandes():
|
|||||||
|
|
||||||
# Ouverture
|
# Ouverture
|
||||||
if bp_int() or bp_ext() :
|
if bp_int() or bp_ext() :
|
||||||
|
mot_vitesse_r(200)
|
||||||
ouvrir()
|
ouvrir()
|
||||||
|
|
||||||
print ("Temporisation")
|
print ("Temporisation")
|
||||||
tempo(2) # Temporisation 2s
|
tempo(2) # Temporisation 2s
|
||||||
|
|
||||||
# Fermeture
|
# Fermeture
|
||||||
|
mot_vitesse_r(100)
|
||||||
fermer()
|
fermer()
|
||||||
print ("Attente")
|
print ("Attente")
|
||||||
|
|
||||||
@ -145,4 +152,4 @@ if __name__=='start':
|
|||||||
if __name__=='stop':
|
if __name__=='stop':
|
||||||
stop()
|
stop()
|
||||||
if __name__=='init':
|
if __name__=='init':
|
||||||
variant(2) # Variante 1 de la maquette 3D du portail coulissant
|
variant(1) # Variante Grove
|
||||||
|
@ -51,12 +51,14 @@ def mot_f (order):
|
|||||||
scene.objects['Moteur']['close']=order
|
scene.objects['Moteur']['close']=order
|
||||||
|
|
||||||
# Réglage de la vitesse du moteur numérique
|
# 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):
|
def mot_vitesse (speed=125.6):
|
||||||
scene.objects['Moteur']['speed_setting']=speed # Vitesse du moteur numérique : 125.6 rad /s ( 20 tr / s )
|
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
|
# Réglage de la vitesse du moteur réel (uniquement sur la maquette Grove, de 0 à 255)
|
||||||
def mot_vitesse_r (speed):
|
# Valeur par défaut est 255
|
||||||
scene.objects['Moteur']['speed_real_setting']=speed # Vitesse du moteur numérique : 125.6 rad /s ( 20 tr / s )
|
def mot_vitesse_r (speed=255):
|
||||||
|
scene.objects['Moteur']['speed_real_setting']=speed
|
||||||
|
|
||||||
# Ordre pour le capteur barrage IR
|
# Ordre pour le capteur barrage IR
|
||||||
def ir_emet(order):
|
def ir_emet(order):
|
||||||
|
Loading…
Reference in New Issue
Block a user