2023-09-06 17:23:56 +02:00
## Labyrinthe à bille : **Créer une scène 3D interactive et interfacée avec un microcontroleur**
2023-04-21 01:04:31 +02:00
2023-09-06 17:23:56 +02:00
L'objectif de ce tutoriel est de créer une scène 3D interactive numériquement (éléments sensibles de la scène 3D) et physiquement par des capteurs (via une
interface avec un microcontroleur). Le support est le labyrinthe à bille ; le principe est faire tourner le plateau sur 2 axes afin d'amener la bille du départ
à l'arrivée.
2023-04-21 01:04:31 +02:00
Ce tutoriel est une déclinaison pour UPBGE du projet n°1 du livre ["Créez vos propres jeux 3D comme les pros" (Éditions Graziel) ](https://graziel.com/fr/livres/8-creez-vos-propres-jeux-3d-comme-les-pros-avec-le-blender-game-engine-9791093846002.html ) de Grégory Gossellin De Bénicourt.
2023-09-10 15:32:23 +02:00
La version de Blender/UPBGE utilisée lors du développement de ce tutoriel est la version 0.36.1 (20 août 2023). Le modèle CAO (SolidWorks, FreeCAD et STEP) est
2023-09-10 15:30:27 +02:00
présent dans le dépot des modèles 3D : https://forge.aeif.fr/blender-edutech/blender-edutech-modeles3d/-/tree/main/table_equilibre
2023-08-23 01:28:17 +02:00
2023-09-20 12:37:20 +02:00
Le tutoriel se décompose en 6 parties (les deux premières sont obligatoires et séquentielles) :
2023-06-20 15:41:33 +02:00
2023-09-05 18:15:37 +02:00
![titres ](img/labyrinthe-titres.jpg )
2023-04-21 01:04:31 +02:00
2023-09-06 17:23:56 +02:00
### [Tutoriel 1 : Ma première scène](https://forge.aeif.fr/blender-edutech/blender-edutech-tuto/-/tree/main/labyrinthe/1-scene3D)
2023-04-21 01:04:31 +02:00
- Installer Blender/UPBGE
- Modéliser les objets 3D et définir leurs materiaux et leur physique
- Gérer la scène avec la lumière et la caméra
- Programmer le comportement des objets et le gameplay les briques logiques
- Créer une zone cliquable
- Créer une animation par images-clé
- Produire un exécutable (GNU/Linux, Windows, macOS)
2023-04-29 11:00:48 +02:00
- **Fichier résultat : 1-labyrinthe.blend**
2023-04-21 01:04:31 +02:00
2023-09-06 17:23:56 +02:00
### [Tutoriel 2 : Passage au Python](https://forge.aeif.fr/blender-edutech/blender-edutech-tuto/-/tree/main/labyrinthe/2-python)
2023-04-21 01:04:31 +02:00
- Installer un éditeur de code (Emacs, Spyder)
- Sustituer la programmation par briques logiques avec des modules codés en Python
2023-05-10 09:54:37 +02:00
- Créer un bouton cliquable à partir une icône SVG
2023-04-21 01:04:31 +02:00
- Inclure les scripts Python avec l'exécutable
2023-04-29 11:01:50 +02:00
- **Fichier de départ : 2-labyrinthe-debut.blend**
2023-04-29 11:47:16 +02:00
- **Fichier ressource : asset/icon_close.svg**
2023-04-29 11:01:50 +02:00
- **Fichiers résultats : 2-labyrinthe.blend, 2-labyrinthe.py**
2023-04-21 01:04:31 +02:00
2023-09-06 17:23:56 +02:00
### [Tutoriel 3 : Interfacer la scène 3D avec une carte Arduino par pyFirmata](https://forge.aeif.fr/blender-edutech/blender-edutech-tuto/-/tree/main/labyrinthe/3-arduino_pyfirmata)
2023-04-29 10:53:59 +02:00
- Installer la bibliothèque pyFirmata
- Déplacer le plateau avec une manette : 4 boutons binaires et/ou un joystick analogique
2023-05-10 09:52:34 +02:00
- Allumer une led quand le plateau est en mouvement
2023-04-29 10:53:59 +02:00
- Inclure la bibliothèque pyFirmata avec l'exécutable
2023-04-29 14:34:08 +02:00
- **Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py**
2023-04-29 11:47:16 +02:00
- **Documents techniques : Carte de référence pyFirmata et interface Grove pour Arduino**
2023-05-14 06:17:15 +02:00
- **Fichiers résultats : 3-labyrinthe.blend, 3-labyrinthe.py, labyrinthe_carte.py**
2023-04-21 01:04:31 +02:00
2023-09-06 17:23:56 +02:00
### [Tutoriel 4 : Interfacer la scène 3D avec une carte Arduino par pySerial](https://forge.aeif.fr/blender-edutech/blender-edutech-tuto/-/tree/main/labyrinthe/4-arduino_pyserial)
2023-04-21 01:04:31 +02:00
- Installer la bibliothèque pySerial
2023-04-29 10:53:59 +02:00
- Déplacer le plateau avec une centrale inertielle (capteur IMU sur broche I2C)
2023-05-10 09:52:34 +02:00
- Afficher la position de la bille sur une matrice de leds (broche I2C)
2023-04-29 10:53:59 +02:00
- Inclure la bibliothèque pySerial avec l'exécutable
2023-04-29 14:34:08 +02:00
- **Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py**
2023-04-29 11:47:16 +02:00
- **Document technique : Interface Grove pour Arduino**
2023-05-14 06:17:15 +02:00
- **Fichiers résultats : 4-labyrinthe.blend, 4-labyrinthe.py, 4-labyrinthe-imu.ino, labyrinthe_carte.py**
2023-04-29 10:53:59 +02:00
<!-- - Déplacer le plateau avec un détecteur de geste ; fichiers résultats : 3 - labyrinthe - gest.blend, 3 - labyrinthe - gest.py, 3 - labyrinthe - gest.ino -->
2023-09-06 17:23:56 +02:00
### [Tutoriel 5 : Interfacer la scène 3D avec une carte micro:bit](https://forge.aeif.fr/blender-edutech/blender-edutech-tuto/-/tree/main/labyrinthe/5-microbit)
2023-04-29 10:53:59 +02:00
- Installer la bibliothèque pySerial
- Déplacer le plateau avec la centrale inertielle de la carte microbit
2023-05-14 06:17:15 +02:00
- Afficher la position de la bille sur la matrice de leds
2023-04-29 10:53:59 +02:00
- Inclure la bibliothèque pySerial avec l'exécutable
2023-04-29 14:34:08 +02:00
- **Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py**
2023-04-29 11:53:31 +02:00
- **Document technique : Carte de référence carte micro:bit**
2023-05-14 06:17:15 +02:00
- **Fichiers résultats : 5-labyrinthe.blend, 5-labyrinthe.py, 5-labyrinthe-microbit.py, labyrinthe_carte.py**
2023-03-07 22:12:46 +01:00
2023-09-06 17:23:56 +02:00
### [Tutoriel 6 : Développer le jumeau numérique du labyrinthe (en cours d'écriture)](https://forge.aeif.fr/blender-edutech/blender-edutech-tuto/-/tree/main/labyrinthe/6-jumeaux)
2023-05-20 19:41:22 +02:00
- Imprimer et assembler le labyrinthe
- Commander manuellemet le labyrinthe physique
- Suivre la bille réelle par OpenCV (par vision)
- Caler le moteur physique Bullet avec le labyrinthe physique
2023-06-20 15:48:27 +02:00
- Commander le labyrinthe physique par pathfinding + vision le labyrinthe physique
2023-05-20 19:41:22 +02:00
- **Fichiers de départ : 4-labyrinthe.blend, 4-labyrinthe.py, 4-labyrinthe-imu.ino, labyrinthe_carte.py**
- **Fichiers résultats : 6-labyrinthe.blend, 6-labyrinthe.py, 6-labyrinthe-arduino.ino, labyrinthe_carte.py**