2022-12-18 22:46:19 +01:00
###############################################################################
2022-12-19 17:28:29 +01:00
# volrou_doc.py
2022-12-18 22:46:19 +01:00
# @title: Documentation du volet roulant
# @project: Blender-EduTech
# @lang: fr
# @authors: Philippe Roy <philippe.roy@ac-grenoble.fr>
2023-01-01 17:34:01 +01:00
# @copyright: Copyright (C) 2022-2023 Philippe Roy
2022-12-18 22:46:19 +01:00
# @license: GNU GPL
###############################################################################
################################################################################
# Documentation du système
################################################################################
2023-01-14 23:13:22 +01:00
system_card = [ " twins-card " , " pin-card " , " firmata-card " , " plot-card " , " movement-card " , " sensor-card " , " board-card " , " model-card " , " arduino-card " ]
2023-01-09 02:35:00 +01:00
system_card_description = { }
2022-12-18 22:46:19 +01:00
# Jumeau numérique
card_twins_title = " Jumeau numérique "
2023-01-09 05:54:31 +01:00
card_twins_text = """ jumeau(brochage) \n -> Active le jumeau réel. \n
2023-01-14 21:38:18 +01:00
brochage permet de faire le lien entre les \n deux jumeaux ( plus de précision sur la \n page " Brochage " ) . \n
2023-01-09 05:54:31 +01:00
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."""
2022-12-18 22:46:19 +01:00
card_twins_url = [ ]
2023-01-09 02:35:00 +01:00
system_card_description . update ( { " twins-card " : [ card_twins_title , card_twins_text , card_twins_url ] } )
2022-12-18 22:46:19 +01:00
2023-01-14 21:38:18 +01:00
# 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,
2023-01-14 23:13:22 +01:00
brochage = { nom : [ type , broche , mode ] } :
2023-01-14 21:38:18 +01:00
- 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 ) .
2023-01-14 23:13:22 +01:00
Par exemple : brochage = { ' led ' : [ ' d ' , 3 , ' o ' ] } . \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 ' . """
2023-01-14 21:38:18 +01:00
card_pin_url = [ ]
system_card_description . update ( { " pin-card " : [ card_pin_title , card_pin_text , card_pin_url ] } )
2023-01-09 05:54:31 +01:00
# Firmata
card_firmata_title = " Protocole Firmata "
2023-01-14 21:38:18 +01:00
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
2023-01-09 05:54:31 +01:00
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 ] } )
2022-12-18 22:46:19 +01:00
2023-01-14 23:13:22 +01:00
# Monitoring
card_plot_title = " Chronogramme "
2023-01-15 16:56:46 +01:00
card_plot_text = """ plot([valeurs]) \n -> Affiche le chronogramme des valeurs \n spécifiées. Blender étant cadencé à 60 fps, \n la fréquence d ' acquisition est 16 ms.
2023-01-14 23:13:22 +01:00
Par exemple : plot ( [ ' bp_m ' , ' moteur_angle ' ] ) . \n
Les entrées / sorties peuvent être suivies : \n ' bp_m ' , ' bp_a ' , ' bp_d ' , ' mot_m ' , ' mot_d ' , \n ' fdc_h ' , ' fdc_b ' , ' bp_auto ' , ' voy_auto ' et ' lum ' . \n
Les autres valeurs pouvant être suivies : \n ' moteur_angle ' , ' moteur_vitesse ' . """
card_plot_url = [ [ " Bibliothèque Matplotlib " , " https://matplotlib.org/ " ] ]
system_card_description . update ( { " plot-card " : [ card_plot_title , card_plot_text , card_plot_url ] } )
2022-12-18 22:46:19 +01:00
# Ouvrir et fermer
2022-12-24 03:10:30 +01:00
card_movement_title = " Monter et descendre "
card_movement_text = """ mot_m(True | False) \n -> Monter le volet (moteur sens trigo). \n
2022-12-31 03:37:23 +01:00
mot_d ( True | False ) \n - > Descendre le volet ( sens horaire ) . \n
2022-12-24 03:10:30 +01:00
fdc_h ( ) \n - > Capteur fin de course volet en haut . \n Retourne True si volet est en haut . \n
fdc_b ( ) \n - > Capteur fin de course volet en bas . \n Retourne True si le volet est en bas . """
2022-12-18 22:46:19 +01:00
card_movement_url = [ ]
2023-01-09 02:35:00 +01:00
system_card_description . update ( { " movement-card " : [ card_movement_title , card_movement_text , card_movement_url ] } )
2022-12-18 22:46:19 +01:00
# Capteurs
2022-12-24 03:10:30 +01:00
card_sensor_title = " Capteur "
2022-12-31 03:37:23 +01:00
card_sensor_text = """ lum(True | False) \n -> Capteur de luminosité (LDR). \n Retourne True s ' il y a de la lumière \n importante. """
2022-12-18 22:46:19 +01:00
card_sensor_url = [ ]
2023-01-09 02:35:00 +01:00
system_card_description . update ( { " sensor-card " : [ card_sensor_title , card_sensor_text , card_sensor_url ] } )
2022-12-18 22:46:19 +01:00
# Pupitre
card_board_title = " Pupitre "
2022-12-24 03:10:30 +01:00
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
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 . """
2022-12-18 22:46:19 +01:00
card_board_url = [ ]
2023-01-09 02:35:00 +01:00
system_card_description . update ( { " board-card " : [ card_board_title , card_board_text , card_board_url ] } )
2022-12-18 22:46:19 +01:00
# Maquette
card_model_title = " Maquette "
2022-12-31 03:37:23 +01:00
card_model_text = """ Le modèle 3D est basé sur la maquette \n développée par l ' entreprise A4 \n Technologie. \n
2022-12-18 22:46:19 +01:00
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
2022-12-31 03:37:23 +01:00
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. " " "
2022-12-18 22:46:19 +01:00
card_model_url = [ [ " A4 Technologie " , " https://www.a4.fr " ] ,
2022-12-24 03:10:30 +01:00
[ " Maquette A4 Technologie " , " https://www.a4.fr/wiki/index.php?title=Volet_roulant " ] ]
2023-01-09 02:35:00 +01:00
system_card_description . update ( { " model-card " : [ card_model_title , card_model_text , card_model_url ] } )
2022-12-18 22:46:19 +01:00
# Arduino
card_arduino_title = " Arduino "
2023-01-01 17:34:01 +01:00
card_arduino_text = """ Arduino une plateforme open-source de \n développement électronique basée sur le \n microcontrôleur de la famille ATmega.
2022-12-18 22:46:19 +01:00
2023-01-01 17:34:01 +01:00
Elle est utilisée pour la création d ' objets \n électroniques interactifs et connectés : \n IoT, domotique, robotique, ...
2022-12-18 22:46:19 +01:00
2022-12-31 03:37:23 +01:00
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 , . . . """
2022-12-18 22:46:19 +01:00
card_arduino_url = [ [ " Plateforme Arduino " , " https://www.arduino.cc/ " ] ]
2023-01-09 02:35:00 +01:00
system_card_description . update ( { " arduino-card " : [ card_arduino_title , card_arduino_text , card_arduino_url ] } )
2022-12-18 22:46:19 +01:00
##
# Envoi des données
##
def get_system_card ( ) :
return system_card
2023-01-09 02:35:00 +01:00
def get_system_card_description ( ) :
return system_card_description