mirror of
https://forge.apps.education.fr/blender-edutech/jumeaux-numeriques.git
synced 2024-01-27 06:56:18 +01:00
Documentation contextualisée par rapport à la variante de la maquette numérique et réelle
This commit is contained in:
parent
a6af5b269e
commit
c80d766878
@ -42,25 +42,32 @@ card_pin_text_grove=""" Le brochage est un dictionnaire d'association \n des obj
|
||||
Les objets numériques sont : 'ba_0', 'ba_1', \n 'pc_0', 'pc_1', 'voy_0' et 'voy_1'.
|
||||
Pour le moteur (maquette Grove) : 'mot_s' \n (sens, 0 ou 1) et 'mot_v' (vitesse, 0 à 255)."""
|
||||
|
||||
card_pin_text_autoprog=""" Le brochage est un dictionnaire qui permet \n d'associer les objets 3D du jumeau \n numérique aux broches du jumeau réel,
|
||||
card_pin_text_autoprog=""" Le brochage est un dictionnaire d'association \n des objets numériques aux broches réelles.
|
||||
brochage = { nom:[type, broche, mode] } :
|
||||
- nom : nom de l'objet 3D,
|
||||
- type : a (analogique) ou d (binaire),
|
||||
- broche : numéro de la broche de carte,
|
||||
- mode : i (entrée), o (sortie) ou p (pwm).
|
||||
Par exemple : brochage = { 'ba_0':['d',2,'i'] }.\n
|
||||
Les objets numériques du jumeau sont : \n 'ba_0', 'ba_1', 'pc_0', 'pc_1', 'mot_m', \n 'mot_d', 'voy_0' et 'voy_1'."""
|
||||
Les objets numériques sont : 'ba_0', 'ba_1', \n 'pc_0', 'pc_1', 'voy_0' et 'voy_1'.
|
||||
Pour le moteur (maquette AutoProg) : \n 'mot_m' et 'mot_d'."""
|
||||
card_pin_url=[]
|
||||
system_card_description.update({"pin-card" : [card_pin_title, [card_pin_text_grove, card_pin_text_autoprog] , card_pin_url]}) # Deux descriptions
|
||||
|
||||
# Données
|
||||
card_data_title="Accès aux données"
|
||||
card_data_text=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('ba_0').\n
|
||||
card_data_text_grove=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('ba_0').\n
|
||||
Entrées/sorties : 'ba_0', 'ba_1', 'pc_0', 'pc_1', \n 'mot_m', 'mot_d', 'voy_0' et 'voy_1'.\n
|
||||
Variables réels (si il y a jumelage) : 'ba_0_r', \n 'ba_1_r', 'pc_0_r', 'pc_1_r', 'mot_v', 'mot_s' \n et 'mot_vitesse_r'.\n
|
||||
Autres variables : 't' (temps), 'mot_angle', \n 'mot_vitesse', 'cabine_z'."""
|
||||
|
||||
card_data_text_autoprog=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('ba_0').\n
|
||||
Entrées/sorties : 'ba_0', 'ba_1', 'pc_0', 'pc_1', \n 'mot_m', 'mot_d', 'voy_0' et 'voy_1'.\n
|
||||
Variables réels (si il y a jumelage) : 'ba_0_r', \n 'ba_1_r', 'pc_0_r', 'pc_1_r'.\n
|
||||
Autres variables : 't' (temps), 'mot_angle', \n 'mot_vitesse', 'cabine_z'."""
|
||||
|
||||
card_data_url=[]
|
||||
system_card_description.update({"data-card" : [card_data_title, card_data_text, card_data_url]})
|
||||
system_card_description.update({"data-card" : [card_data_title, [card_data_text_grove, card_data_text_autoprog], card_data_url]}) # Deux descriptions
|
||||
|
||||
# Monitoring
|
||||
card_daq_title="Acquisition de données"
|
||||
@ -77,15 +84,22 @@ system_card_description.update({"daq-card" : [card_daq_title, card_daq_text, car
|
||||
|
||||
# Ouvrir et fermer
|
||||
card_movement_title="Monter et descendre"
|
||||
card_movement_text=""" mot_m(True | False) -> Monter la cabine.
|
||||
card_movement_text_grove=""" mot_m(True | False) -> Monter la cabine.
|
||||
mot_d(True | False) -> Descendre la cabine. \n
|
||||
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
|
||||
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255).
|
||||
Si 'vitesse' est ommis, elle sera réinitialisée.\n
|
||||
pc_0() -> Capteur présence cabine niveau 0.\n Retourne True si la cabine est au niveau 0.
|
||||
pc_1() -> Capteur présence cabine niveau 1.\n Retourne True si la cabine est au niveau 1."""
|
||||
|
||||
card_movement_text_autoprog=""" mot_m(True | False) -> Monter la cabine.
|
||||
mot_d(True | False) -> Descendre la cabine. \n
|
||||
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
|
||||
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255) (maquette Grove).
|
||||
Si 'vitesse' est ommis, elle sera réinitialisée.\n
|
||||
pc_0() -> Capteur présence cabine niveau 0.\n Retourne True si la cabine est au niveau 0.
|
||||
pc_1() -> Capteur présence cabine niveau 1.\n Retourne True si la cabine est au niveau 1."""
|
||||
card_movement_url=[]
|
||||
system_card_description.update({"movement-card" : [card_movement_title, card_movement_text, card_movement_url]})
|
||||
system_card_description.update({"movement-card" : [card_movement_title, [card_movement_text_grove, card_movement_text_autoprog], card_movement_url]})
|
||||
|
||||
# Pupitre
|
||||
card_board_title="Pupitre"
|
||||
|
@ -152,8 +152,11 @@ def start(fct):
|
||||
##
|
||||
|
||||
def variant(variant_num):
|
||||
var_txt = [
|
||||
"variante 1 : maquette Grove",
|
||||
"variante 2 : maquette AutoProg"]
|
||||
if variant_num != scene.objects['System']['variant']:
|
||||
print ("Variante de la maquette numérique :", variant_num)
|
||||
print ("Variante des maquettes numérique et réelle :", var_txt[variant_num-1])
|
||||
scene.objects['System']['variant']=variant_num
|
||||
|
||||
##
|
||||
|
@ -60,17 +60,22 @@ card_pin_text_autoprog=""" Le brochage est un dictionnaire d'association \n des
|
||||
Pour le moteur (maquette AutoProg) : \n 'mot_o' (ouvrir) et 'mot_f' (fermer) """
|
||||
|
||||
card_pin_url=[]
|
||||
system_card_description.update({"pin-card" : [card_pin_title, [card_pin_text_grove, card_pin_text_autoprog] , card_pin_url]}) # Deux descriptions
|
||||
system_card_description.update({"pin-card" : [card_pin_title, [card_pin_text_grove, card_pin_text_autoprog], card_pin_url]}) # Deux descriptions
|
||||
|
||||
# Données
|
||||
card_data_title="Accès aux données"
|
||||
card_data_text=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_ext').\n
|
||||
Entrées/sorties : 'bp_ext', 'bp_int', 'fdc_o', \n 'fdc_f', 'mot_o', 'mot_f', 'gyr', 'ir_emet' et
|
||||
'ir_recep'. Maquette Grove (en +) : 'mot_s' \n (sens, 0 ou 1) et 'mot_v' (vitesse, 0-255). \n
|
||||
Entrées réels (si il y a jumelage) : 'bp_ext_r', \n 'bp_int_r', 'fdc_o_r', 'fdc_f_r', 'ir_recep_r'.
|
||||
card_data_text_grove=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_ext').\n
|
||||
Entrées/sorties : 'bp_ext', 'bp_int', 'fdc_o', \n 'fdc_f', 'mot_o', 'mot_f', 'gyr', 'ir_emet' et \n 'ir_recep'.
|
||||
Entrées réels (si il y a jumelage) : 'bp_ext_r', \n 'bp_int_r', 'fdc_o_r', 'fdc_f_r', 'ir_recep_r', \n 'mot_v', 'mot_s' et 'mot_vitesse_r'.\n
|
||||
Autres variables : 't' (temps), 'mot_angle', \n 'mot_vitesse', 'portail_x', 'portail_vitesse'."""
|
||||
|
||||
card_data_text_autoprog=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_ext').\n
|
||||
Entrées/sorties : 'bp_ext', 'bp_int', 'fdc_o', \n 'fdc_f', 'mot_o', 'mot_f', 'gyr', 'ir_emet' et \n 'ir_recep'.\n
|
||||
Entrées réels (si il y a jumelage) : 'bp_ext_r', \n 'bp_int_r', 'fdc_o_r', 'fdc_f_r', 'ir_recep_r'.\n
|
||||
Autres variables : 't' (temps), 'mot_angle', \n 'mot_vitesse', 'portail_x', 'portail_vitesse'."""
|
||||
|
||||
card_data_url=[]
|
||||
system_card_description.update({"data-card" : [card_data_title, card_data_text, card_data_url]})
|
||||
system_card_description.update({"data-card" : [card_data_title, [card_data_text_grove, card_data_text_autoprog], card_data_url]}) # Deux descriptions
|
||||
|
||||
# Monitoring
|
||||
card_daq_title="Acquisition de données"
|
||||
@ -87,19 +92,26 @@ system_card_description.update({"daq-card" : [card_daq_title, card_daq_text, car
|
||||
|
||||
# Ouvrir et fermer
|
||||
card_movement_title="Ouvrir et fermer"
|
||||
card_movement_text=""" mot_o(True | False) -> Ouvrir le portail.
|
||||
card_movement_text_grove=""" mot_o(True | False) -> Ouvrir le portail.
|
||||
mot_f(True | False) -> Fermer le portail.\n
|
||||
fdc_o() \n -> Capteur fin de course portail ouvert.
|
||||
fdc_f() \n -> Capteur fin de course portail fermé.\n
|
||||
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
|
||||
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255).
|
||||
Si 'vitesse' est ommis, elle sera réinitialisée."""
|
||||
|
||||
card_movement_text_autoprog=""" mot_o(True | False) -> Ouvrir le portail.
|
||||
mot_f(True | False) -> Fermer le portail.\n
|
||||
fdc_o() \n -> Capteur fin de course portail ouvert.
|
||||
fdc_f() \n -> Capteur fin de course portail fermé.\n
|
||||
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
|
||||
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255) (maquette Grove).
|
||||
Si 'vitesse' est ommis, elle sera réinitialisée."""
|
||||
|
||||
# fdc_o() \n -> Capteur fin de course portail ouvert.\n Retourne True si le portail est ouvert. \n
|
||||
# fdc_f() \n -> Capteur fin de course portail fermé.\n Retourne True si le portail est fermé.\n
|
||||
|
||||
card_movement_url=[]
|
||||
system_card_description.update({"movement-card" : [card_movement_title, card_movement_text, card_movement_url]})
|
||||
system_card_description.update({"movement-card" : [card_movement_title, [card_movement_text_grove, card_movement_text_autoprog], card_movement_url]})
|
||||
|
||||
# Capteurs
|
||||
card_sensor_title="Capteur"
|
||||
@ -162,15 +174,3 @@ def get_system_card():
|
||||
|
||||
def get_system_card_description():
|
||||
return system_card_description
|
||||
|
||||
# # Mise en place de la variante
|
||||
# print ("aa")
|
||||
# print (scene.objects['System']['script'])
|
||||
# print ("bb")
|
||||
# # runpy.run_path(scene.objects['System']['script'], run_name='init')
|
||||
# # if scene.objects['System']['variant'] ==2:
|
||||
# # system_card_description.update({"pin-card" : [card_pin_title, card_pin_text_autoprog, card_pin_url]})
|
||||
# # else:
|
||||
# # system_card_description.update({"pin-card" : [card_pin_title, card_pin_text_grove, card_pin_url]})
|
||||
|
||||
# return system_card_description
|
||||
|
@ -160,8 +160,12 @@ def start(fct):
|
||||
##
|
||||
|
||||
def variant(variant_num):
|
||||
var_txt = [
|
||||
"variante 1 : maquette Grove",
|
||||
"variante 2 : maquette AutoProg"]
|
||||
|
||||
if variant_num != scene.objects['System']['variant']:
|
||||
print ("Variante de la maquette numérique :", variant_num)
|
||||
print ("Variante des maquettes numérique et réelle :", var_txt[variant_num-1])
|
||||
scene.objects['System']['variant']=variant_num
|
||||
|
||||
##
|
||||
|
@ -1,7 +1,7 @@
|
||||
<data>
|
||||
<screen>
|
||||
<width>1590</width>
|
||||
<height>895</height>
|
||||
<width>1568</width>
|
||||
<height>882</height>
|
||||
<quality>4</quality>
|
||||
</screen>
|
||||
<plot>
|
||||
|
Binary file not shown.
@ -31,7 +31,6 @@ system_card_description.update({"twins-card" : [card_twins_title, card_twins_tex
|
||||
|
||||
# Brochage
|
||||
card_pin_title="Brochage"
|
||||
|
||||
card_pin_text_grove_bg_auto=""" Le brochage est un dictionnaire d'association \n des objets numériques aux broches réelles.
|
||||
brochage = { nom:[type, broche, mode] } :
|
||||
- nom : nom de l'objet 3D,
|
||||
@ -63,12 +62,23 @@ system_card_description.update({"pin-card" : [card_pin_title, [card_pin_text_gro
|
||||
|
||||
# Données
|
||||
card_data_title="Accès aux données"
|
||||
card_data_text=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_m').\n
|
||||
Entrées/sorties : 'bp_m', 'bp_a', 'bp_d', \n 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', 'bp_auto', \n 'bg_auto', 'voy_auto', 'lum'.\n
|
||||
Variables réels (si il y a jumelage) : 'bp_m_r', \n 'bp_a_r', 'bp_d_r', 'fdc_h_r', 'fdc_b_r', \n 'bp_auto_r', 'bg_auto_r', 'lum_r'.\n
|
||||
card_data_text_grove_bg_auto=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_m').\n
|
||||
Entrées/sorties : 'bp_m', 'bp_a', 'bp_d', \n 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', 'bg_auto', \n 'voy_auto', 'lum'.\n
|
||||
Variables réels (si il y a jumelage) : 'bp_m_r', \n 'bp_a_r', 'bp_d_r', 'fdc_h_r', 'fdc_b_r', 'lum_r', \n 'bg_auto_r', 'mot_v', 'mot_s', 'mot_vitesse_r'.\n
|
||||
Autres : 't' (temps), 'mot_angle', 'mot_vitesse'."""
|
||||
|
||||
card_data_text_grove_bp_auto=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_m').\n
|
||||
Entrées/sorties : 'bp_m', 'bp_a', 'bp_d', \n 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', 'bp_auto', \n 'voy_auto', 'lum'.\n
|
||||
Variables réels (si il y a jumelage) : 'bp_m_r', \n 'bp_a_r', 'bp_d_r', 'fdc_h_r', 'fdc_b_r', 'lum_r', \n 'bp_auto_r', 'mot_v', 'mot_s', 'mot_vitesse_r'.\n
|
||||
Autres : 't' (temps), 'mot_angle', 'mot_vitesse'."""
|
||||
|
||||
card_data_text_autoprog=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_m').\n
|
||||
Entrées/sorties : 'bp_m', 'bp_a', 'bp_d', \n 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', 'bp_auto', \n 'voy_auto', 'lum'.\n
|
||||
Variables réels (si il y a jumelage) : 'bp_m_r', \n 'bp_a_r', 'bp_d_r', 'fdc_h_r', 'fdc_b_r', \n 'bp_auto_r', 'lum_r'.\n
|
||||
Autres : 't' (temps), 'mot_angle', 'mot_vitesse'."""
|
||||
|
||||
card_data_url=[]
|
||||
system_card_description.update({"data-card" : [card_data_title, card_data_text, card_data_url]})
|
||||
system_card_description.update({"data-card" : [card_data_title, [card_data_text_grove_bg_auto, card_data_text_grove_bp_auto, card_data_text_autoprog], card_data_url]})
|
||||
|
||||
# Monitoring
|
||||
card_daq_title="Acquisition de données"
|
||||
@ -85,15 +95,23 @@ system_card_description.update({"daq-card" : [card_daq_title, card_daq_text, car
|
||||
|
||||
# Monter et descendre
|
||||
card_movement_title="Monter et descendre"
|
||||
card_movement_text=""" mot_m(True | False) -> Monter le volet.
|
||||
card_movement_text_grove=""" mot_m(True | False) -> Monter le volet.
|
||||
mot_d(True | False) -> Descendre le volet. \n
|
||||
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
|
||||
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255) (maquette Grove).
|
||||
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255).
|
||||
Si 'vitesse' est ommis, elle sera réinitialisée.\n
|
||||
fdc_h() \n -> Capteur fin de course volet en haut.
|
||||
fdc_b() \n -> Capteur fin de course volet en bas."""
|
||||
|
||||
card_movement_text_autoprog=""" mot_m(True | False) -> Monter le volet.
|
||||
mot_d(True | False) -> Descendre le volet. \n
|
||||
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
|
||||
Si 'vitesse' est ommis, elle sera réinitialisée.\n
|
||||
fdc_h() \n -> Capteur fin de course volet en haut.
|
||||
fdc_b() \n -> Capteur fin de course volet en bas."""
|
||||
|
||||
card_movement_url=[]
|
||||
system_card_description.update({"movement-card" : [card_movement_title, card_movement_text, card_movement_url]})
|
||||
system_card_description.update({"movement-card" : [card_movement_title, [card_movement_text_grove, card_movement_text_grove, card_movement_text_autoprog], card_movement_url]}) # 2 descriptions
|
||||
|
||||
# Capteurs
|
||||
card_sensor_title="Capteur"
|
||||
|
@ -161,13 +161,13 @@ def start(fct):
|
||||
# Variante
|
||||
#
|
||||
# Variante 0 : valeur par défaut : boutons 'bp_auto' et 'bg_auto' absents -> il faut donc définir obligatoirement la variante.
|
||||
# Variante 1 : Maquette Grove + bouton auto à glissière :
|
||||
# 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 :
|
||||
# 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 :
|
||||
# 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.
|
||||
#
|
||||
@ -179,12 +179,17 @@ def start(fct):
|
||||
##
|
||||
|
||||
def variant(variant_num):
|
||||
var_txt = [
|
||||
"variante 1 : maquette Grove + bouton auto à glissière",
|
||||
"variante 2 : maquette Grove + bouton auto poussoir",
|
||||
"variante 3 : maquette AutoProg + bouton auto poussoir"]
|
||||
|
||||
if variant_num != scene.objects['System']['variant']:
|
||||
print ("Variante de la maquette numérique:", variant_num)
|
||||
print ("Variante des maquettes numérique et réelle :", var_txt[variant_num-1])
|
||||
scene.objects['System']['variant']=variant_num
|
||||
|
||||
# Affichage des éléments spécifiques de la variante
|
||||
variant_dict = {'Bg auto':[1,2], 'Bg auto-on':[1,2], 'Bp auto':[3]}
|
||||
variant_dict = {'Bg auto':[1], 'Bg auto-on':[1], 'Bp auto':[2,3]}
|
||||
variant_list = list(variant_dict)
|
||||
for name in variant_list:
|
||||
if variant_num in variant_dict[name]:
|
||||
|
Loading…
Reference in New Issue
Block a user