mirror of
https://forge.apps.education.fr/blender-edutech/jumeaux-numeriques.git
synced 2024-01-27 06:56:18 +01:00
Mise en place du pilotage moteur par le shield moteur
This commit is contained in:
parent
7265897730
commit
a17496d7d4
@ -26,6 +26,8 @@ scene = bge.logic.getCurrentScene()
|
|||||||
# 'nom_variable_r' est la valeur réelle de la variable (valeur numérique) 'nom_variable' issue du jumelage numérique.
|
# 'nom_variable_r' est la valeur réelle de la variable (valeur numérique) 'nom_variable' issue du jumelage numérique.
|
||||||
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
||||||
# Ce distinguo ne concerne que les entrées, car les sorties sont pilotées par le numérique.
|
# Ce distinguo ne concerne que les entrées, car les sorties sont pilotées par le numérique.
|
||||||
|
#
|
||||||
|
# 'mot_s' et 'mot_v' ne concernent que la maquette Grove (variante 1)
|
||||||
|
|
||||||
public_vars = {
|
public_vars = {
|
||||||
't' : [['System','time','a'], [], []],
|
't' : [['System','time','a'], [], []],
|
||||||
@ -41,6 +43,8 @@ public_vars = {
|
|||||||
'ba_1_r' : [['Bp niveau 1','activated_real','d'], [], []],
|
'ba_1_r' : [['Bp niveau 1','activated_real','d'], [], []],
|
||||||
'mot_m' : [['Moteur','up','d'], ['pin_up', 'd','o'], []],
|
'mot_m' : [['Moteur','up','d'], ['pin_up', 'd','o'], []],
|
||||||
'mot_d' : [['Moteur','down','d'], ['pin_down', 'd','o'], []],
|
'mot_d' : [['Moteur','down','d'], ['pin_down', 'd','o'], []],
|
||||||
|
'mot_s' : [['Moteur','direction','d'],['pin_direction','d','o'], []],
|
||||||
|
'mot_v' : [['Moteur','speed_real','a'],['pin_speed','p','o'], []],
|
||||||
'mot_angle' : [['Moteur','alpha','a'], [], []],
|
'mot_angle' : [['Moteur','alpha','a'], [], []],
|
||||||
'mot_vitesse' : [['Moteur','speed','a'], [], []],
|
'mot_vitesse' : [['Moteur','speed','a'], [], []],
|
||||||
'mot_pas' : [['Moteur','step','a'], [], []],
|
'mot_pas' : [['Moteur','step','a'], [], []],
|
||||||
@ -122,6 +126,16 @@ def get_public_vars():
|
|||||||
# Actionneurs
|
# Actionneurs
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
##
|
||||||
|
# Pour la commande du moteur de la variante 1 version Grove , le brochage du shield moteur CC 4 x 1,2 A DRI0039 (DFROBOT) est fixe,
|
||||||
|
# il doit respecter le tableau suivant :
|
||||||
|
# Motor Direction(Forward/Backward) Speed Speed range
|
||||||
|
# M1 4 LOW HIGH 3 0-255
|
||||||
|
# M2 12 HIGH LOW 11 0-255
|
||||||
|
# M3 8 LOW HIGH 5 0-255
|
||||||
|
# M4 7 HIGH LOW 6 0-255
|
||||||
|
##
|
||||||
|
|
||||||
##
|
##
|
||||||
# Moteur et cabine
|
# Moteur et cabine
|
||||||
##
|
##
|
||||||
@ -162,10 +176,20 @@ def mot (cont):
|
|||||||
|
|
||||||
# Modele 3D -> Arduino
|
# Modele 3D -> Arduino
|
||||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||||
if scene.objects['Moteur']['pin_up'] is not None:
|
|
||||||
if scene.objects['Moteur']['pin_down'] is not None:
|
# Version Grove
|
||||||
scene.objects['Moteur']['pin_down'].write(0)
|
if scene.objects['System']['variant'] == 1:
|
||||||
scene.objects['Moteur']['pin_up'].write(1)
|
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(scene.objects['Moteur']['speed_real_setting']/255)
|
||||||
|
|
||||||
|
# Version AutoProg
|
||||||
|
if scene.objects['System']['variant'] == 2:
|
||||||
|
if scene.objects['Moteur']['pin_up'] is not None:
|
||||||
|
if scene.objects['Moteur']['pin_down'] is not None:
|
||||||
|
scene.objects['Moteur']['pin_down'].write(0)
|
||||||
|
scene.objects['Moteur']['pin_up'].write(1)
|
||||||
|
|
||||||
# Descendre
|
# Descendre
|
||||||
# else: # Pas de priorité
|
# else: # Pas de priorité
|
||||||
@ -187,10 +211,20 @@ def mot (cont):
|
|||||||
|
|
||||||
# Modele 3D -> Arduino
|
# Modele 3D -> Arduino
|
||||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||||
if scene.objects['Moteur']['pin_down'] is not None:
|
|
||||||
if scene.objects['Moteur']['pin_up'] is not None:
|
# Version Grove
|
||||||
scene.objects['Moteur']['pin_up'].write(0)
|
if scene.objects['System']['variant'] == 1:
|
||||||
scene.objects['Moteur']['pin_down'].write(1)
|
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(scene.objects['Moteur']['speed_real_setting']/255)
|
||||||
|
|
||||||
|
# Version AutoProg
|
||||||
|
if scene.objects['System']['variant'] == 2:
|
||||||
|
if scene.objects['Moteur']['pin_down'] is not None:
|
||||||
|
if scene.objects['Moteur']['pin_up'] is not None:
|
||||||
|
scene.objects['Moteur']['pin_up'].write(0)
|
||||||
|
scene.objects['Moteur']['pin_down'].write(1)
|
||||||
|
|
||||||
# Arrêter
|
# Arrêter
|
||||||
if obj['up']== False and obj['down'] == False :
|
if obj['up']== False and obj['down'] == False :
|
||||||
@ -203,11 +237,20 @@ def mot (cont):
|
|||||||
|
|
||||||
# Modele 3D -> Arduino
|
# Modele 3D -> Arduino
|
||||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||||
if scene.objects['Moteur']['pin_down'] is not None:
|
|
||||||
if scene.objects['Moteur']['pin_up'] is not None:
|
|
||||||
scene.objects['Moteur']['pin_up'].write(0)
|
|
||||||
scene.objects['Moteur']['pin_down'].write(0)
|
|
||||||
|
|
||||||
|
# Version Grove
|
||||||
|
if scene.objects['System']['variant'] == 1:
|
||||||
|
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(0)
|
||||||
|
|
||||||
|
# Version AutoProg
|
||||||
|
if scene.objects['System']['variant'] == 2:
|
||||||
|
if scene.objects['Moteur']['pin_down'] is not None:
|
||||||
|
if scene.objects['Moteur']['pin_up'] is not None:
|
||||||
|
scene.objects['Moteur']['pin_up'].write(0)
|
||||||
|
scene.objects['Moteur']['pin_down'].write(0)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Capteurs
|
# Capteurs
|
||||||
@ -320,6 +363,7 @@ 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']=31.4 # Vitesse du moteur numérique : 31,4 rad /s ( 5 tr / s )
|
scene.objects['Moteur']['speed_setting']=31.4 # Vitesse du moteur numérique : 31,4 rad /s ( 5 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
|
||||||
|
|
||||||
# Priorités activées
|
# Priorités activées
|
||||||
|
@ -101,6 +101,13 @@ def commandes():
|
|||||||
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
|
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
###
|
||||||
|
# Variante 1 : Maquette Grove
|
||||||
|
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||||
|
# Variante 2 : Maquette AutoProg
|
||||||
|
# - Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||||
|
###
|
||||||
|
|
||||||
def cycle():
|
def cycle():
|
||||||
commandes()
|
commandes()
|
||||||
fin()
|
fin()
|
||||||
@ -109,3 +116,5 @@ if __name__=='start':
|
|||||||
start(cycle)
|
start(cycle)
|
||||||
if __name__=='stop':
|
if __name__=='stop':
|
||||||
stop()
|
stop()
|
||||||
|
if __name__=='init':
|
||||||
|
variant(1) # Variante maquette Grove
|
||||||
|
@ -131,6 +131,26 @@ def reset_t ():
|
|||||||
def start(fct):
|
def start(fct):
|
||||||
twin_threading.start(threads_cmd, "commands", fct)
|
twin_threading.start(threads_cmd, "commands", fct)
|
||||||
|
|
||||||
|
##
|
||||||
|
# Variante
|
||||||
|
#
|
||||||
|
# La variante 1 appelée 'version Grove' : correspond à la maquette auto-construite basée sur des modules Grove
|
||||||
|
# La variante 2 appelée 'version AutoProg' : correspond à la maquette de 4A technologie basée sur des modules AutoProg
|
||||||
|
#
|
||||||
|
# Au niveau de la commande, la différence sur entre les deux variantes est uniquement sur la commande moteur :
|
||||||
|
# - variante 1 : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||||
|
# - variante 2 : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||||
|
#
|
||||||
|
# Configuration des variantes du modèle 3D -> variant_dict :
|
||||||
|
# 'nom de l'objet 3D' : liste des variantes où l'objet est présent.
|
||||||
|
# Les objets hors dictionnaire sont présent quelque soit la variante sélectionnée.
|
||||||
|
##
|
||||||
|
|
||||||
|
def variant(variant_num):
|
||||||
|
if variant_num != scene.objects['System']['variant']:
|
||||||
|
print ("Variante de la maquette numérique :", variant_num)
|
||||||
|
scene.objects['System']['variant']=variant_num
|
||||||
|
|
||||||
##
|
##
|
||||||
# Arrêt
|
# Arrêt
|
||||||
##
|
##
|
||||||
|
Binary file not shown.
@ -28,8 +28,7 @@ scene = bge.logic.getCurrentScene()
|
|||||||
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
||||||
# Ce distinguo ne concerne que les entrées, car les sorties sont pilotées par le numérique.
|
# Ce distinguo ne concerne que les entrées, car les sorties sont pilotées par le numérique.
|
||||||
#
|
#
|
||||||
# 'mot_s' et 'mot_v' ne concernent que la maquette Grove (variante 1, par défaut)
|
# 'mot_s' et 'mot_v' ne concernent que la maquette Grove (variante 1)
|
||||||
# 'mot_o' et 'mot_f' ne concernent que la maquette AutoProg (variante 2)
|
|
||||||
|
|
||||||
public_vars = {
|
public_vars = {
|
||||||
't' : [['System','time','a'],[],[]],
|
't' : [['System','time','a'],[],[]],
|
||||||
@ -122,6 +121,7 @@ def get_public_vars():
|
|||||||
# Actionneurs
|
# Actionneurs
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
##
|
||||||
# Pour la commande du moteur de la variante 1 version Grove , le brochage du shield moteur CC 4 x 1,2 A DRI0039 (DFROBOT) est fixe,
|
# Pour la commande du moteur de la variante 1 version Grove , le brochage du shield moteur CC 4 x 1,2 A DRI0039 (DFROBOT) est fixe,
|
||||||
# il doit respecter le tableau suivant :
|
# il doit respecter le tableau suivant :
|
||||||
# Motor Direction(Forward/Backward) Speed Speed range
|
# Motor Direction(Forward/Backward) Speed Speed range
|
||||||
@ -129,6 +129,7 @@ def get_public_vars():
|
|||||||
# M2 12 HIGH LOW 11 0-255
|
# M2 12 HIGH LOW 11 0-255
|
||||||
# M3 8 LOW HIGH 5 0-255
|
# M3 8 LOW HIGH 5 0-255
|
||||||
# M4 7 HIGH LOW 6 0-255
|
# M4 7 HIGH LOW 6 0-255
|
||||||
|
##
|
||||||
|
|
||||||
##
|
##
|
||||||
# Moteur et portail
|
# Moteur et portail
|
||||||
|
@ -140,12 +140,15 @@ def commandes():
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# En: External call << DONT CHANGE THIS SECTION >>
|
# En: External call << DONT CHANGE THIS SECTION >>
|
||||||
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
|
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
|
||||||
#
|
|
||||||
# Variante 1 (par défaut) : Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
|
||||||
# Variante 2 : Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
|
||||||
#
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
###
|
||||||
|
# Variante 1 : Maquette Grove
|
||||||
|
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||||
|
# Variante 2 : Maquette AutoProg
|
||||||
|
# - Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||||
|
###
|
||||||
|
|
||||||
def cycle():
|
def cycle():
|
||||||
commandes()
|
commandes()
|
||||||
fin()
|
fin()
|
||||||
|
@ -148,7 +148,7 @@ def start(fct):
|
|||||||
##
|
##
|
||||||
# Variante
|
# Variante
|
||||||
#
|
#
|
||||||
# La variante 1 (par défaut) appelée 'version Grove' : correspond à la maquette auto-construite basée sur des modules Grove
|
# La variante 1 appelée 'version Grove' : correspond à la maquette auto-construite basée sur des modules Grove
|
||||||
# La variante 2 appelée 'version AutoProg' : correspond à la maquette de 4A technologie basée sur des modules AutoProg
|
# La variante 2 appelée 'version AutoProg' : correspond à la maquette de 4A technologie basée sur des modules AutoProg
|
||||||
#
|
#
|
||||||
# Au niveau de la commande, la différence sur entre les deux variantes est uniquement sur la commande moteur :
|
# Au niveau de la commande, la différence sur entre les deux variantes est uniquement sur la commande moteur :
|
||||||
@ -165,17 +165,6 @@ def variant(variant_num):
|
|||||||
print ("Variante de la maquette numérique :", variant_num)
|
print ("Variante de la maquette numérique :", variant_num)
|
||||||
scene.objects['System']['variant']=variant_num
|
scene.objects['System']['variant']=variant_num
|
||||||
|
|
||||||
# FIXME : Affichage de la maquette Grove -> plus tards
|
|
||||||
# variant_dict = {'Bp auto':[1], 'Bg auto':[2], 'Bg auto-on':[2]}
|
|
||||||
# variant_list = list(variant_dict)
|
|
||||||
# for name in variant_list:
|
|
||||||
# if variant_num in variant_dict[name]:
|
|
||||||
# scene.objects[name].setVisible(True,True)
|
|
||||||
# scene.objects[name].restorePhysics()
|
|
||||||
# else:
|
|
||||||
# scene.objects[name].setVisible(False,True)
|
|
||||||
# scene.objects[name].suspendPhysics()
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Arrêt
|
# Arrêt
|
||||||
##
|
##
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -27,6 +27,8 @@ scene = bge.logic.getCurrentScene()
|
|||||||
# 'nom_variable_r' est la valeur réelle de la variable (valeur numérique) 'nom_variable' issue du jumelage numérique.
|
# 'nom_variable_r' est la valeur réelle de la variable (valeur numérique) 'nom_variable' issue du jumelage numérique.
|
||||||
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
||||||
# Ce distinguo ne concerne que les entrées, car les sorties sont pilotées par le numérique.
|
# Ce distinguo ne concerne que les entrées, car les sorties sont pilotées par le numérique.
|
||||||
|
#
|
||||||
|
# 'mot_s' et 'mot_v' ne concernent que la maquette Grove (variante 1 et 2)
|
||||||
|
|
||||||
public_vars = {
|
public_vars = {
|
||||||
't' : [['System','time','a'], [], []],
|
't' : [['System','time','a'], [], []],
|
||||||
@ -42,6 +44,8 @@ public_vars = {
|
|||||||
'bp_a_r' : [['Bp arret','activated_real','d'], [], []],
|
'bp_a_r' : [['Bp arret','activated_real','d'], [], []],
|
||||||
'mot_m' : [['Moteur','up','d'], ['pin_up', 'd','o'], []],
|
'mot_m' : [['Moteur','up','d'], ['pin_up', 'd','o'], []],
|
||||||
'mot_d' : [['Moteur','down','d'], ['pin_down', 'd','o'], []],
|
'mot_d' : [['Moteur','down','d'], ['pin_down', 'd','o'], []],
|
||||||
|
'mot_s' : [['Moteur','direction','d'],['pin_direction','d','o'], []],
|
||||||
|
'mot_v' : [['Moteur','speed_real','a'],['pin_speed','p','o'], []],
|
||||||
'mot_angle' : [['Moteur','alpha','a'], [], []],
|
'mot_angle' : [['Moteur','alpha','a'], [], []],
|
||||||
'mot_vitesse' : [['Moteur','speed','a'], [], []],
|
'mot_vitesse' : [['Moteur','speed','a'], [], []],
|
||||||
'mot_pas' : [['Moteur','step','a'], [], []],
|
'mot_pas' : [['Moteur','step','a'], [], []],
|
||||||
@ -116,6 +120,16 @@ def get_public_vars():
|
|||||||
# Actionneurs
|
# Actionneurs
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
##
|
||||||
|
# Pour la commande du moteur des variantes 1 et 2 version Grove , le brochage du shield moteur CC 4 x 1,2 A DRI0039 (DFROBOT) est fixe,
|
||||||
|
# il doit respecter le tableau suivant :
|
||||||
|
# Motor Direction(Forward/Backward) Speed Speed range
|
||||||
|
# M1 4 LOW HIGH 3 0-255
|
||||||
|
# M2 12 HIGH LOW 11 0-255
|
||||||
|
# M3 8 LOW HIGH 5 0-255
|
||||||
|
# M4 7 HIGH LOW 6 0-255
|
||||||
|
##
|
||||||
|
|
||||||
##
|
##
|
||||||
# Moteur et volet
|
# Moteur et volet
|
||||||
##
|
##
|
||||||
@ -210,10 +224,20 @@ def mot (cont):
|
|||||||
|
|
||||||
# Modele 3D -> Arduino
|
# Modele 3D -> Arduino
|
||||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||||
if scene.objects['Moteur']['pin_up'] is not None:
|
|
||||||
if scene.objects['Moteur']['pin_down'] is not None:
|
# Version Grove
|
||||||
scene.objects['Moteur']['pin_down'].write(0)
|
if scene.objects['System']['variant'] == 1 or scene.objects['System']['variant'] == 2:
|
||||||
scene.objects['Moteur']['pin_up'].write(1)
|
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(scene.objects['Moteur']['speed_real_setting']/255)
|
||||||
|
|
||||||
|
# Version AutoProg
|
||||||
|
if scene.objects['System']['variant'] == 3:
|
||||||
|
if scene.objects['Moteur']['pin_up'] is not None :
|
||||||
|
if scene.objects['Moteur']['pin_down'] is not None:
|
||||||
|
scene.objects['Moteur']['pin_down'].write(0)
|
||||||
|
scene.objects['Moteur']['pin_up'].write(1)
|
||||||
|
|
||||||
# Descendre
|
# Descendre
|
||||||
if obj['down']:
|
if obj['down']:
|
||||||
@ -305,10 +329,20 @@ def mot (cont):
|
|||||||
|
|
||||||
# Modele 3D -> Arduino
|
# Modele 3D -> Arduino
|
||||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||||
if scene.objects['Moteur']['pin_down'] is not None:
|
|
||||||
if scene.objects['Moteur']['pin_up'] is not None:
|
# Version Grove
|
||||||
scene.objects['Moteur']['pin_up'].write(0)
|
if scene.objects['System']['variant'] == 1 or scene.objects['System']['variant'] == 2:
|
||||||
scene.objects['Moteur']['pin_down'].write(1)
|
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(scene.objects['Moteur']['speed_real_setting']/255)
|
||||||
|
|
||||||
|
# Version AutoProg
|
||||||
|
if scene.objects['System']['variant'] == 3:
|
||||||
|
if scene.objects['Moteur']['pin_down'] is not None:
|
||||||
|
if scene.objects['Moteur']['pin_up'] is not None:
|
||||||
|
scene.objects['Moteur']['pin_up'].write(0)
|
||||||
|
scene.objects['Moteur']['pin_down'].write(1)
|
||||||
|
|
||||||
# Arrêt
|
# Arrêt
|
||||||
if obj['up'] == False and obj['down'] == False:
|
if obj['up'] == False and obj['down'] == False:
|
||||||
@ -340,10 +374,20 @@ def mot (cont):
|
|||||||
|
|
||||||
# Modele 3D -> Arduino
|
# Modele 3D -> Arduino
|
||||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||||
if scene.objects['Moteur']['pin_down'] is not None:
|
|
||||||
if scene.objects['Moteur']['pin_up'] is not None:
|
# Version Grove
|
||||||
scene.objects['Moteur']['pin_up'].write(0)
|
if scene.objects['System']['variant'] == 1 or scene.objects['System']['variant'] == 2:
|
||||||
scene.objects['Moteur']['pin_down'].write(0)
|
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(0)
|
||||||
|
|
||||||
|
# Version AutoProg
|
||||||
|
if scene.objects['System']['variant'] == 3:
|
||||||
|
if scene.objects['Moteur']['pin_down'] is not None:
|
||||||
|
if scene.objects['Moteur']['pin_up'] is not None:
|
||||||
|
scene.objects['Moteur']['pin_up'].write(0)
|
||||||
|
scene.objects['Moteur']['pin_down'].write(0)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Capteurs fin de course
|
# Capteurs fin de course
|
||||||
@ -457,6 +501,7 @@ def system_reset ():
|
|||||||
scene.objects['Moteur']['last_alpha']=0
|
scene.objects['Moteur']['last_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
|
||||||
scene.objects['Axe enrouleur']['last_alpha']=scene.objects['Axe enrouleur'].worldOrientation.to_euler().x
|
scene.objects['Axe enrouleur']['last_alpha']=scene.objects['Axe enrouleur'].worldOrientation.to_euler().x
|
||||||
obj = scene.objects['Moteur']
|
obj = scene.objects['Moteur']
|
||||||
|
@ -11,6 +11,8 @@ from volrou_lib import * # Bibliothèque volet roulant
|
|||||||
# Actions (ordre = True ou False) :
|
# Actions (ordre = True ou False) :
|
||||||
# - Monter le volet (moteur sens trigo) : mot_m(True | False)
|
# - Monter le volet (moteur sens trigo) : mot_m(True | False)
|
||||||
# - Descendre le volet (moteur sens horaire) : mot_d(True | False)
|
# - Descendre le volet (moteur sens horaire) : mot_d(True | False)
|
||||||
|
# - 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 (uniquement sur la maquette Grove)
|
||||||
#
|
#
|
||||||
# Capteurs :
|
# Capteurs :
|
||||||
# - Capteur fin de course volet en haut : fdc_h() : valeur retournée = True ou False
|
# - Capteur fin de course volet en haut : fdc_h() : valeur retournée = True ou False
|
||||||
@ -28,6 +30,17 @@ from volrou_lib import * # Bibliothèque volet roulant
|
|||||||
#
|
#
|
||||||
# Gestion du temps :
|
# Gestion du temps :
|
||||||
# - Temporisation en seconde : tempo(duree)
|
# - Temporisation en seconde : tempo(duree)
|
||||||
|
# - Réinitialisation de la valeur du temp (t) : reset_t()
|
||||||
|
#
|
||||||
|
# Acquisition de données :
|
||||||
|
# - Retourne la valeur de la variable à l'instant : get(variable)
|
||||||
|
# - Lancer l'enregistrement : daq([variable1, variable2, ... ])
|
||||||
|
# - Afficher les graphiques : plot([variable1, variable2, ... ])
|
||||||
|
|
||||||
|
# Jumelage :
|
||||||
|
# - Démarrer le jumelage : jumeau({brochage})
|
||||||
|
# - Arrêter le jumelage : jumeau_stop({brochage})
|
||||||
|
# - Définir les règles d'activation : jumeau_mode({brochage})
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@ -136,16 +149,23 @@ def commandes():
|
|||||||
mot_d(False)
|
mot_d(False)
|
||||||
presence_lum_tempo=0
|
presence_lum_tempo=0
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# En: External call << DONT CHANGE THIS SECTION >>
|
# En: External call << DONT CHANGE THIS SECTION >>
|
||||||
# Fr: Appel externe << NE PAS MODIFIER CETTE 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.
|
|
||||||
#
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
###
|
||||||
|
# Variante 1 : Maquette Grove + bouton auto à glissière :
|
||||||
|
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||||
|
# - Le mode automatique s'active et se désactive avec le bouton à glissière bg_auto
|
||||||
|
# Variante 2 : Maquette Grove + bouton auto poussoir :
|
||||||
|
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||||
|
# - 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 3 : Maquette AutoProg + bouton auto poussoir :
|
||||||
|
# - Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||||
|
# - 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.
|
||||||
|
###
|
||||||
|
|
||||||
def cycle():
|
def cycle():
|
||||||
commandes()
|
commandes()
|
||||||
fin()
|
fin()
|
||||||
@ -155,4 +175,4 @@ if __name__=='start':
|
|||||||
if __name__=='stop':
|
if __name__=='stop':
|
||||||
stop()
|
stop()
|
||||||
if __name__=='init':
|
if __name__=='init':
|
||||||
variant(1) # Variante 1 de la maquette 3D du volet roulant
|
variant(1) # Variante maquette Grove avec bouton à glissière
|
||||||
|
@ -156,10 +156,17 @@ def start(fct):
|
|||||||
# Variante
|
# Variante
|
||||||
#
|
#
|
||||||
# Variante 0 : valeur par défaut : boutons 'bp_auto' et 'bg_auto' absents -> il faut donc définir obligatoirement la variante.
|
# Variante 0 : valeur par défaut : boutons 'bp_auto' et 'bg_auto' absents -> il faut donc définir obligatoirement la variante.
|
||||||
# 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 1 : Maquette Grove + bouton auto à glissière :
|
||||||
# Variante 2 : Le mode automatique s'active et se désactive avec le bouton à glissière 'bg_auto'.
|
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||||
|
# - Le mode automatique s'active et se désactive avec le bouton à glissière bg_auto
|
||||||
|
# Variante 2 : Maquette Grove + bouton auto poussoir :
|
||||||
|
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||||
|
# - 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 3 : Maquette AutoProg + bouton auto poussoir :
|
||||||
|
# - Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||||
|
# - 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.
|
||||||
#
|
#
|
||||||
# La variante 1 correspond à la maquette de 4A technologie.
|
# La variante 3 correspond à la maquette de 4A technologie.
|
||||||
#
|
#
|
||||||
# Configuration des variantes du modèle 3D -> variant_dict :
|
# Configuration des variantes du modèle 3D -> variant_dict :
|
||||||
# 'nom de l'objet 3D' : liste des variantes où l'objet est présent.
|
# 'nom de l'objet 3D' : liste des variantes où l'objet est présent.
|
||||||
@ -170,7 +177,9 @@ def variant(variant_num):
|
|||||||
if variant_num != scene.objects['System']['variant']:
|
if variant_num != scene.objects['System']['variant']:
|
||||||
print ("Variante de la maquette numérique:", variant_num)
|
print ("Variante de la maquette numérique:", variant_num)
|
||||||
scene.objects['System']['variant']=variant_num
|
scene.objects['System']['variant']=variant_num
|
||||||
variant_dict = {'Bp auto':[1], 'Bg auto':[2], 'Bg auto-on':[2]}
|
|
||||||
|
# Affichage des éléments spécifiques de la variante
|
||||||
|
variant_dict = {'Bg auto':[1], 'Bg auto-on':[1], 'Bg auto':[2], 'Bg auto-on':[2], 'Bp auto':[3]}
|
||||||
variant_list = list(variant_dict)
|
variant_list = list(variant_dict)
|
||||||
for name in variant_list:
|
for name in variant_list:
|
||||||
if variant_num in variant_dict[name]:
|
if variant_num in variant_dict[name]:
|
||||||
|
Loading…
Reference in New Issue
Block a user