mirror of
https://forge.apps.education.fr/blender-edutech/jumeaux-numeriques.git
synced 2024-01-27 06:56:18 +01:00
Bugfix : variante, configuration de broche et documentation
This commit is contained in:
parent
39bb9c1f98
commit
f85393bd28
@ -46,7 +46,7 @@ L'environnement de développement est basé sur : la plateforme de modélisation
|
||||
Les fichiers sources sont dans le groupe Blender-Edutech de la forge de l'AEIF : https://forge.aeif.fr/blender-edutech/jumeau-numerique .
|
||||
|
||||
Les bibliothèques suivantes ne sont pas incluses par défaut dans l'environnement UPBGE :
|
||||
- [**Pylint**](https://pylint.pycqa.org) : vérificateur du code Python
|
||||
- [**Pylint**](https://pylint.pycqa.org) : vérificateur de code Python
|
||||
- [**pySerial**](https://pyserial.readthedocs.io) : communication sur le port série
|
||||
- [**pyFirmata**](https://pyfirmata.readthedocs.io) : protocole Firmata (protocole générique de communication entre un logiciel et un microcontrôleur)
|
||||
- [**Matplotlib**](https://matplotlib.org) : grapheur (visualisation de données)
|
||||
|
@ -162,10 +162,10 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
if scene.objects['Moteur']['pin_m'] is not None:
|
||||
if scene.objects['Moteur']['pin_d'] is not None:
|
||||
scene.objects['Moteur']['pin_d'].write(0)
|
||||
scene.objects['Moteur']['pin_m'].write(1)
|
||||
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
|
||||
# else: # Pas de priorité
|
||||
@ -187,10 +187,10 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
if scene.objects['Moteur']['pin_d'] is not None:
|
||||
if scene.objects['Moteur']['pin_m'] is not None:
|
||||
scene.objects['Moteur']['pin_m'].write(0)
|
||||
scene.objects['Moteur']['pin_d'].write(1)
|
||||
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
|
||||
if obj['up']== False and obj['down'] == False :
|
||||
@ -203,10 +203,10 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
if scene.objects['Moteur']['pin_d'] is not None:
|
||||
if scene.objects['Moteur']['pin_m'] is not None:
|
||||
scene.objects['Moteur']['pin_m'].write(0)
|
||||
scene.objects['Moteur']['pin_d'].write(0)
|
||||
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)
|
||||
|
||||
|
||||
###############################################################################
|
||||
|
@ -122,7 +122,7 @@ def plot_draw(plt, var, xdata, ydata, plot_config):
|
||||
if plot_config_get(plot_config, var, 'type') =='d':
|
||||
plt.plot(xdata, ydata, label=var, drawstyle='steps-post', color=plot_config_get(plot_config, var, 'color'), linewidth=plot_config_get(plot_config, var, 'linewidth'),
|
||||
linestyle=plot_config_get(plot_config, var, 'linestyle'), marker=plot_config_get(plot_config, var, 'marker'))
|
||||
plt.set_ylim(0,1) # niveau 0 et niveau 1
|
||||
plt.set_ylim(0,1.1) # niveau 0 et niveau 1
|
||||
|
||||
# Courbe d'une variable numérique (discret)
|
||||
if plot_config_get(plot_config, var, 'type') =='n':
|
||||
|
Binary file not shown.
@ -210,10 +210,10 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
if scene.objects['Moteur']['pin_m'] is not None:
|
||||
if scene.objects['Moteur']['pin_d'] is not None:
|
||||
scene.objects['Moteur']['pin_d'].write(0)
|
||||
scene.objects['Moteur']['pin_m'].write(1)
|
||||
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
|
||||
if obj['down']:
|
||||
@ -305,10 +305,10 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
if scene.objects['Moteur']['pin_d'] is not None:
|
||||
if scene.objects['Moteur']['pin_m'] is not None:
|
||||
scene.objects['Moteur']['pin_m'].write(0)
|
||||
scene.objects['Moteur']['pin_d'].write(1)
|
||||
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
|
||||
if obj['up'] == False and obj['down'] == False:
|
||||
@ -340,10 +340,10 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
if scene.objects['Moteur']['pin_d'] is not None:
|
||||
if scene.objects['Moteur']['pin_m'] is not None:
|
||||
scene.objects['Moteur']['pin_m'].write(0)
|
||||
scene.objects['Moteur']['pin_d'].write(0)
|
||||
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
|
||||
@ -431,7 +431,6 @@ def system_init ():
|
||||
##
|
||||
# Réinitialisation du système
|
||||
##
|
||||
|
||||
def system_reset ():
|
||||
|
||||
# Mise en place de la variante
|
||||
|
@ -37,7 +37,7 @@ brochage={
|
||||
'bp_m' : [],'bp_a' : [],'bp_d' : [],
|
||||
'fdc_h' : [],'fdc_b' : [],
|
||||
'mot_m' : [],'mot_d' : [],
|
||||
'bp_auto' : [],'voy_auto' : [],'lum' : []}
|
||||
'bp_auto' : [],'bg_auto' : [], 'voy_auto' : [],'lum' : []}
|
||||
|
||||
###############################################################################
|
||||
# Fonctions
|
||||
|
@ -38,15 +38,15 @@ card_pin_text=""" Le brochage est un dictionnaire qui permet \n d'associer les o
|
||||
- broche : numéro de la broche de carte,
|
||||
- mode : i (entrée), o (sortie) ou p (pwm).
|
||||
Par exemple : brochage = { 'bp_m':['d',2,'i'] }.\n
|
||||
Les objets numériques du jumeau sont : \n 'bp_m', 'bp_a', 'bp_d', 'mot_m', 'mot_d', \n 'fdc_h', 'fdc_b', 'bp_auto', 'voy_auto' et 'lum'."""
|
||||
Les objets numériques sont : 'bp_m', 'bp_a', \n 'bp_d', 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', \n 'bp_auto', 'bg_auto', 'voy_auto' et 'lum'."""
|
||||
card_pin_url=[]
|
||||
system_card_description.update({"pin-card" : [card_pin_title, card_pin_text, card_pin_url]})
|
||||
|
||||
# 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 '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
|
||||
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
|
||||
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]})
|
||||
@ -70,7 +70,7 @@ card_movement_text=""" mot_m(True | False) \n -> Monter le volet (moteur sens tr
|
||||
mot_d(True | False) \n -> Descendre le volet (sens horaire). \n
|
||||
fdc_h() \n -> Capteur fin de course volet en haut.
|
||||
fdc_b() \n -> Capteur fin de course volet en bas.\n
|
||||
mot_digitset(vitesse) -> Change la vitesse \n du moteur numérique en rad/s. Si 'vitesse' \n est ommis, elle sera réinitialisée."""
|
||||
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s. Si 'vitesse' \n est ommis, elle sera réinitialisée."""
|
||||
card_movement_url=[]
|
||||
system_card_description.update({"movement-card" : [card_movement_title, card_movement_text, card_movement_url]})
|
||||
|
||||
@ -82,11 +82,12 @@ system_card_description.update({"sensor-card" : [card_sensor_title, card_sensor_
|
||||
|
||||
# Pupitre
|
||||
card_board_title="Pupitre"
|
||||
card_board_text= """ bp_m() \n -> Bouton poussoir monter le volet.\n Retourne True si le bouton est pressé.\n
|
||||
bp_a() -> Bouton arrêt du volet.\n
|
||||
card_board_text= """ bp_m() -> Bouton monter le volet.
|
||||
bp_a() -> Bouton arrêter le volet.
|
||||
bp_d() -> Bouton descendre le volet.\n
|
||||
bp_auto() -> Bouton mode automatique.\n
|
||||
voy_auto(True | False) \n -> Activer le voyant témoin du mode\n automatique."""
|
||||
bp_auto() -> Bouton poussoir d'activation \n du mode automatique.\n
|
||||
bg_auto() -> Bouton à glissière pour changer \n de mode (manuel/automatique).\n
|
||||
voy_auto(True | False) \n -> Allumer le voyant témoin du mode\n automatique."""
|
||||
card_board_url=[]
|
||||
system_card_description.update({"board-card" : [card_board_title, card_board_text, card_board_url]})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user