jumeaux-numeriques/portail_coulissant/README.md

86 lines
4.0 KiB
Markdown
Raw Normal View History

# Jumeau numérique d'un portail coulissant
2022-12-05 14:07:17 +01:00
Ce jumeau numérique permet la programmation en Python d'une maquette réelle d'un portail coulissant.
2022-12-05 14:07:17 +01:00
2023-09-20 11:11:46 +02:00
## Maquette réelle
Il y a 3 déclinaisons de la maquette réelle :
2023-09-20 11:16:55 +02:00
- [Version auto-construite avec des modules Grove réalisable à partir de plaque de 3 mm (découpe laser) et d'impression 3D](https://forge.aeif.fr/blender-edutech/blender-edutech-modeles3d/-/tree/main/portail_coulissant)
- [Version auto-construite avec des modules Grove réalisable à partir de plaque de 10 mm (découpe laser) et d'impression 3D](https://forge.aeif.fr/blender-edutech/blender-edutech-modeles3d/-/tree/main/portail_coulissant)
- [Version avec des modules AutoProg fournie par l'entreprise A4 technologie](https://www.a4.fr/robotique-programmation/maquettes-automatisees/portail-coulissant-automatise.html)
2023-09-20 11:18:25 +02:00
![Capture écran FreeCAD](img/portail_coulissant-grove-plaque-3mm.jpg)
2023-09-20 11:11:46 +02:00
## Maquette numérique
2023-09-20 11:11:46 +02:00
La maquette numérique est basée sur le modèle 3D de la maquette développée par l'entreprise A4 technologie. Les documents techniques et pédagogiques signés A4 Technologie sont diffusés librement sous licence Creative Commons BY-NC-SA.
2022-12-05 14:07:17 +01:00
Site internet de la maquette A4 Technologie : https://www.a4.fr/wiki/index.php?title=Portail_coulissant_(BE-APORT-COUL)
2023-01-02 02:17:07 +01:00
## Téléchargement
2024-01-06 10:02:04 +01:00
Les binaires (Game Engine Runtime) sont hébergés sur [phroy.org](https://www.phroy.org/twin.html).
2023-01-02 02:17:07 +01:00
## Instructions
2022-12-11 16:38:08 +01:00
2023-09-20 12:26:38 +02:00
Le script Python qui permet la commande du portail est le fichier **'porcou_cmd.py'**. Il est éditable avec tout éditeur (Spyder, Emacs, Pulsar, ...).
2022-12-11 16:38:08 +01:00
2022-12-11 16:39:48 +01:00
#### Actions
2022-12-05 14:07:17 +01:00
Les actions (ordre = True ou False) sont :
2022-12-22 08:17:47 +01:00
- Gyrophare : **gyr(True | False)**
- Ouvrir le portail (moteur sens trigo) : **mot_o (True | False)**
- Fermer le portail (moteur sens horaire) : **mot_f (True | False)**
- Emetteur pour le capteur barrage IR : **ir_emet(True | False)**
2022-12-11 16:38:08 +01:00
2022-12-11 16:39:48 +01:00
#### Capteurs
2022-12-05 14:07:17 +01:00
Les compte-rendus (valeur retournée = True ou False) des capteurs sont :
- Capteur fin de course portail ouvert : **fdc_o()**
- Capteur fin de course portail fermé : **fdc_f()**
2022-12-11 16:38:08 +01:00
- Capteur barrage IR (absence d'obstacle) : **ir_recep()**
#### Pupitre
2022-12-05 14:07:17 +01:00
Les consignes (valeur retournée = True ou False) du pupitre sont :
2022-12-11 16:38:08 +01:00
- Bouton poussoir coté rue : **bp_ext()**
- Bouton poussoir coté cour : **bp_int()**
2022-12-05 14:07:17 +01:00
2022-12-11 16:39:48 +01:00
#### Gestion du temps
2023-02-04 14:08:20 +01:00
- Temporisation : **tempo(duree)** avec la durée en seconde.
- Réinitialiser la valeur du temps : **reset_t()**.
2023-02-04 14:20:55 +01:00
- Obtenir la valeur du temps en seconde depuis le démarrage du cycle : **get_t()**.
- Définir la valeur (x) du temps en seconde : **set_t(x)**.
2023-02-04 14:08:20 +01:00
2023-02-04 14:19:05 +01:00
## Accès aux données
2023-02-04 14:08:20 +01:00
2023-02-04 14:17:21 +01:00
- Retourne la valeur de la variable à \n l'instant : **get(variable)**.
- Enregistre les données et génére un fichier de données CSV à l'arrêt du cycle : **daq([variables])**.
- Affiche, à l'arrêt du cycle, le chronogramme des données enregristrées : **plot([variables])**.
2023-02-04 14:19:05 +01:00
#### Variables publiques :
2023-02-04 21:26:37 +01:00
- Entrées/sorties : 'bp_ext', 'bp_int', 'fdc_o', 'fdc_f', 'mot_o', 'mot_f', 'gyr', 'ir_emet' et 'ir_recep'.
- Variables réels (si il y a jumelage) : 'bp_ext_r', 'bp_int_r', 'fdc_o_r', 'fdc_f_r' et 'ir_recep_r'.
- Autres variables : 't' (temps), 'mot_angle', 'mot_vitesse', 'portail_x' et 'portail_vitesse'.
2023-02-04 14:08:20 +01:00
2023-02-04 14:19:05 +01:00
## Jumelage
2023-02-04 14:08:20 +01:00
2023-02-04 14:17:21 +01:00
- Démarrer le jumelage : **jumeau(brochage)**.
- Arrêter le jumelage : **jumeau_stop()**.
- Définit les modes d'activation des entrées/sorties (True ou False) : **jumeau_mode(entrées réelles, entrées numériques, sorties réelles, sorties numériques)**.
2023-02-04 14:19:05 +01:00
#### Brochage
2023-02-04 14:22:23 +01:00
Le brochage est un dictionnaire qui permet d'associer les objets 3D du jumeau numérique aux broches du jumeau réel.
2023-02-04 14:23:04 +01:00
Son format est le suivant : **brochage = { nom:[type, broche, mode] }** :
2023-02-04 14:24:11 +01:00
- nom : nom de l'objet 3D du jumeau numérique,
2023-02-04 14:17:21 +01:00
- type : a (analogique) ou d (binaire),
2023-02-04 14:24:11 +01:00
- broche : numéro de la broche de carte (Arduino, ...),
2023-02-04 14:17:21 +01:00
- mode : i (entrée), o (sortie) ou p (pwm).
2023-02-04 14:24:11 +01:00
#### Objets 3D du jumeau numérique :
2023-02-04 21:26:37 +01:00
- Entrées/sorties : 'bp_ext', 'bp_int', 'fdc_o', 'fdc_f', 'mot_o', 'mot_f', 'gyr', 'ir_emet' et 'ir_recep'.