blender-edutech-tutoriels/labyrinthe
2023-09-02 21:48:00 +02:00
..
1-scene3D Readme update 2023-08-23 01:28:17 +02:00
2-python Readme update 2023-08-23 01:28:17 +02:00
3-arduino_pyfirmata Correction de coquille 2023-05-18 07:13:26 +02:00
4-arduino_pyserial Correction de coquille 2023-05-18 07:13:26 +02:00
5-microbit Ajout page de titre tutoriel 6 2023-06-20 15:36:43 +02:00
6-jumeaux Ajout de la modélisation CAO de la table d'équilibre 2023-09-02 21:48:00 +02:00
img README update 2023-06-20 15:41:33 +02:00
README.md Readme update 2023-08-23 01:28:17 +02:00

Labyrinthe à bille : Créer une scène 3D interactive

L'objectif de ce tutoriel est de créer une scène animée et interactive. 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.

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) de Grégory Gossellin De Bénicourt.

La version de Blender/UPBGE utilisée lors du développement de ce tutoriel est la version 0.36.1 (20 août 2023).

Il se décompose en 6 parties :

titres

Tutoriel 1 : Ma première scène

  • 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)
  • Fichier résultat : 1-labyrinthe.blend

Tutoriel 2 : Passage au Python

  • Installer un éditeur de code (Emacs, Spyder)
  • Sustituer la programmation par briques logiques avec des modules codés en Python
  • Créer un bouton cliquable à partir une icône SVG
  • Inclure les scripts Python avec l'exécutable
  • Fichier de départ : 2-labyrinthe-debut.blend
  • Fichier ressource : asset/icon_close.svg
  • Fichiers résultats : 2-labyrinthe.blend, 2-labyrinthe.py

Tutoriel 3 : Interfacer la scène 3D avec une carte Arduino par pyFirmata

  • Installer la bibliothèque pyFirmata
  • Déplacer le plateau avec une manette : 4 boutons binaires et/ou un joystick analogique
  • Allumer une led quand le plateau est en mouvement
  • Inclure la bibliothèque pyFirmata avec l'exécutable
  • Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py
  • Documents techniques : Carte de référence pyFirmata et interface Grove pour Arduino
  • Fichiers résultats : 3-labyrinthe.blend, 3-labyrinthe.py, labyrinthe_carte.py

Tutoriel 4 : Interfacer la scène 3D avec une carte Arduino par pySerial

  • Installer la bibliothèque pySerial
  • Déplacer le plateau avec une centrale inertielle (capteur IMU sur broche I2C)
  • Afficher la position de la bille sur une matrice de leds (broche I2C)
  • Inclure la bibliothèque pySerial avec l'exécutable
  • Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py
  • Document technique : Interface Grove pour Arduino
  • Fichiers résultats : 4-labyrinthe.blend, 4-labyrinthe.py, 4-labyrinthe-imu.ino, labyrinthe_carte.py

Tutoriel 5 : Interfacer la scène 3D avec une carte micro:bit

  • Installer la bibliothèque pySerial
  • Déplacer le plateau avec la centrale inertielle de la carte microbit
  • Afficher la position de la bille sur la matrice de leds
  • Inclure la bibliothèque pySerial avec l'exécutable
  • Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py
  • Document technique : Carte de référence carte micro:bit
  • Fichiers résultats : 5-labyrinthe.blend, 5-labyrinthe.py, 5-labyrinthe-microbit.py, labyrinthe_carte.py

Tutoriel 6 : Développer le jumeau numérique du labyrinthe (en cours d'écriture)

  • 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
  • Commander le labyrinthe physique par pathfinding + vision le labyrinthe physique
  • 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