############################################################################### # montchg_doc.py # @title: Documentation du monte-charge # @project: Blender-EduTech # @lang: fr # @authors: Philippe Roy # @copyright: Copyright (C) 2022-2023 Philippe Roy # @license: GNU GPL ############################################################################### ################################################################################ # Documentation du système ################################################################################ system_card=["twins-card", "pin-card", "data-card", "plot-card", "movement-card", "board-card", "model-card", "firmata-card", "arduino-card"] system_card_description ={} # Jumeau numérique card_twins_title="Jumeau numérique" card_twins_text=""" jumeau(brochage) \n -> Active le jumeau réel.\n brochage permet de faire le lien entre les \n deux jumeaux (plus de précision sur la \n page "Brochage").\n jumeau_stop() \n -> Désactive le jumeau réel.\n Avec "carte=jumeau(brochage)", on peut \n utiliser l'objet "carte" pour communiquer \n directement avec le protocole Firmata.""" # jumeau_config(port, vitesse) \n -> Définit la configuration de la liaison \n série.\n # Si le port n'est pas spécifié, il sera \n recherché automatiquement (carte \n Arduino Uno ou Mega). \n # La vitesse par défaut est 115200 baud.""" card_twins_url=[] system_card_description.update({"twins-card" : [card_twins_title, card_twins_text, card_twins_url]}) # Brochage card_pin_title="Brochage" card_pin_text=""" Le brochage est un dictionnaire qui permet \n d'associer les objets 3D du jumeau \n numérique aux broches du jumeau réel, brochage = { nom:[type, broche, mode] } : - nom : nom de l'objet 3D, - type : a (analogique) ou d (numérique), - broche : numéro de la broche de carte, - mode : i (entrée), o (sortie) ou p (pwm). Par exemple : brochage = { 'voy_0':['d', 3, 'o'] }.\n Les objets numériques du jumeau sont : \n 'ba_0', 'ba_1', 'pc_0', 'pc_1', 'mot_m', 'mot_d', \n 'voy_0' et 'voy_1'.""" 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('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 : 'mot_angle', 'mot_vitesse', \n 'cabine_z'.""" card_data_url=[] system_card_description.update({"data-card" : [card_data_title, card_data_text, card_data_url]}) # Monitoring card_plot_title="Acquisition de données" card_plot_text=""" plot([variables]) \n -> Affiche le chronogramme des variables \n spécifiées. Par exemple : plot(['ba_0', 'cabine_z']).\n csv([variables]) \n -> Déclenche l'acquisition de données afin \n de génèrer un fichier de données CSV à \n l'arrêt du cycle.\n Les variables pouvant être suivies sont les \n mêmes que celles de la page "Données".""" # Blender étant cadencé à 60 fps, la fréquence \n d'acquisition est 16 ms.""" card_plot_url=[["Bibliothèque Matplotlib","https://matplotlib.org/"], ["Wikipedia Français : fichier CSV","https://fr.wikipedia.org/wiki/Comma-separated_values"]] system_card_description.update({"plot-card" : [card_plot_title, card_plot_text, card_plot_url]}) # Ouvrir et fermer card_movement_title="Monter et descendre" card_movement_text=""" mot_m(True | False) \n -> Monter la cabine (moteur sens trigo). \n mot_d(True | False) \n -> Descendre la cabine (mot. sens horaire). \n pc_0() \n -> Capteur présence cabine niveau 0.\n Retourne True si la cabine est au niveau 0. \n pc_1() \n -> 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]}) # Pupitre card_board_title="Pupitre" card_board_text= """ ba_0() \n -> Bouton poussoir d'appel niveau 0.\n Retourne True si le bouton est pressé.\n ba_1() \n -> Bouton poussoir d'appel niveau 1.\n Retourne True si le bouton est pressé.\n voy_0(True | False) \n -> Activer le voyant d'étage niveau 0.\n voy_1(True | False) \n -> Activer le voyant d'étage niveau 1.""" card_board_url=[] system_card_description.update({"board-card" : [card_board_title, card_board_text, card_board_url]}) # Maquette card_model_title="Maquette" card_model_text=""" Le modèle 3D est basé sur la maquette \n développée par l'entreprise A4 \n Technologie. \n Les documents techniques et \n pédagogiques signés A4 Technologie \n sont diffusés librement sous licence \n Creative Commons BY-NC-SA. \n Le pilotage de la maquette se fait par une \n carte Arduino (Uno ou Mega) reliée à \n l'ordinateur via la liaison série (USB) et le \n protocole Firmata.""" card_model_url=[["A4 Technologie","https://www.a4.fr"], ["Maquette A4 Technologie","https://www.a4.fr/wiki/index.php?title=Monte_charge_(BE-MCHA)"]] system_card_description.update({"model-card" : [card_model_title, card_model_text, card_model_url]}) # Firmata card_firmata_title="Protocole Firmata" card_firmata_text=""" Firmata est le protocole de \n communication entre les deux jumeaux.\n broche = carte.get_pin('type:numéro:mode') \n -> Créer une entrée/sortie (broche) \n - type : a (analogique) ou d (numérique) \n - mode : i (entrée) , o (sortie) ou p (pwm). \n broche.read() \n -> Retourne la valeur de la broche.\n broche.write(valeur) \n -> Écrire la valeur sur la broche.""" card_firmata_url=[["Protocole Firmata : pyFirmata","https://github.com/tino/pyFirmata"]] system_card_description.update({"firmata-card" : [card_firmata_title, card_firmata_text, card_firmata_url]}) # Arduino card_arduino_title="Arduino" card_arduino_text=""" Arduino une plateforme open-source de \n développement électronique basée sur le \n microcontrôleur de la famille ATmega. Elle est utilisée pour la création d'objets \n électroniques interactifs et connectés : \n IoT, domotique, robotique, ... Le langage de programmation est le C. Par \n la bibliothèque Arduino l'accès aux entrées \n et sorties de la carte est particulièrement aisé. Les platines permettent l'ajout \n d'extensions : relais, Grove, RFID, GPS, ... """ card_arduino_url=[["Plateforme Arduino","https://www.arduino.cc/"]] system_card_description.update({"arduino-card" : [card_arduino_title, card_arduino_text, card_arduino_url]}) ## # Envoi des données ## def get_system_card(): return system_card def get_system_card_description(): return system_card_description