Blender/UPBGE + Python + Arduino = jumeau numérique

Bonjour à tous,

Avec l’environnement de développement open source Blender/UPBGE + Python + Arduino, j’ai développé des jumeaux numériques sur trois maquettes : portail coulissant, monte-charge et volet roulant.

L’intérêt de cet environnement de développement est de s’appuyer sur des écosystèmes généralistes, riches et actifs. Python est au cœur, il sert à définir le comportement des jumeaux (numérique et réel) et il sert aussi de liant avec les bibliothèques utilisées (Blender, Matplotlib, pySerial, Qt5, …).

Je suis enseignant et j’utilise ces jumeaux avec mes élèves (Lycée option Sciences de l’Ingénieur) pour découvrir la programmation de système physique (entrée/sortie, machine à états, …).

Philippe Roy

6 « J'aime »

Superbe boulot dis donc !

Merci.

Le combo Blender/UPBGE + Python + Arduino est très stimulant. A la demande de collègues, je suis en train de monter deux tutoriels : Blender-EduTech / Blender-EduTech - Tutoriels · GitLab .

Philippe Roy

Tout à fait génial.
Êtes - vous dans un établissement d’enseignement professionnel ou généraliste ?
Merci
Marc Antoine

Je suis enseignant en SII ( Sciences Industrielles pour l’Ingénieur) en Lycée général (spécialité SI) et technologique (filière STI2D).

J’adore.

Comme j’ai fais une expérience similaire mais beaucoup + simpliste avec Harfang3D voici ce que j’ai retenu en “vraiment pas cher qu’on peut faire soi même à la maison” ( mais pas dans une pyconfr sans plus de temps pour se préparer :smiley: ):

Pour éviter les fils (!!!) l’astuce c’est d’utiliser Telemetrix-aio sur arduino/esp8266 ( marche aussi sur esp32 mais c’est + cher ). En wifi ça permet aussi a plusieurs étudiants de partager le meme prototype sans délai de branchement ni déplacement difficile du matériel.

Pour pouvoir lancer un environnement de pilotage sans installer quoi que ce soit utiliser python-wasm dans une page web ( par example avec pygbag).
Hélas upbge n’a pas l’air d’avoir déjà de port webassembly :frowning: mais déjà
dispo pour l’interface il y a pygame / Panda3D / Harfang3D / Matplotlib-numpy etc ( et pourquoi pas un blockpy custom re-orienté hardware ? )

Pour le distanciel retour caméra + websockets ! (esp32cam avec psram)

Telemetrix Esp826 // Telemetrix Esp32 + la partie python de Telemetrix

Un example web de bras robot pour un jumeau numérique

Pour telemetrix, c’est très intéressant ; j’avais identifié cette solution il y a deux ans quand je cherchais à remplacer firmata (où je ne trouvais pas de documentation simple sur les ports I2C à l’instar des broches binaires et analogiques). Je vais donc plus approfondir cette voie : avoir plusieurs clients sur un même système physique est une piste qui ouvre pas mal de possibilités → le jumeau numérique MMO :wink:

L’idée de UPBGE par rapport aux autres solutions est de s’appuyer sur un outil fortement intégré, qui a fait ses preuves et vivant (Open source étant un pré-requis). Dans l’enseignement, nous sommes des généralistes il faut donc limiter les environnements avec des éco-systèmes très complets et extensibles comme Python, Arduino, Matlab, …

C’est vrai que le runtime de UPBGE est lourd (même si c’est sans installation et clé en main), disons que pour la visu en HTML5 je me dit que c’est dans les cartons de Blender (après la migration OpenGL → Vulkan prévue pour fin 2023). Une autre solution pour rester sous Blender c’est Armory3D et lui qui fait du WASM.

En wifi ça permet aussi a plusieurs étudiants de partager le meme prototype sans délai de branchement ni déplacement difficile du matériel.

Pour cela on peut partager le port USB sur lequel est branché le jumeau numérique mais ce n’est pas MMO.