mirror of
https://forge.apps.education.fr/blender-edutech/ropy.git
synced 2024-01-27 08:23:20 +01:00
92 lines
5.7 KiB
Markdown
92 lines
5.7 KiB
Markdown
# Ropy
|
|
**Découvre le Python avec Ropy (code ton aventure)**
|
|
<!-- **Discover Python with Ropy (coding adventure)**<br/> -->
|
|
|
|
Ropy est un rover martien qui se programme en Python. Les aventures de Ropy permettent la découverte de la programmation procédurale et du language Python. A
|
|
travers les différents missions, donc de manière graduée, les élèves vont apprendre à manipuler les structures algorithmiques et à les coder en Python.
|
|
|
|
[![Ropy présentation](img/ropy-v2-presentation.png)](https://tube-sciences-technologies.apps.education.fr/w/b11be555-bd05-462b-8ff6-177ec18c1830)
|
|
|
|
![Poster](img/poster.png)
|
|
|
|
Ropy a fortement été inpiré par [RobotProg](http://www.physicsbox.com/indexrobotprogfr.html) et [Light Bot](https://lightbot.com/).
|
|
|
|
## Téléchargement
|
|
|
|
Les binaires (Game Engine Runtime) sont hébergés sur [phroy.org](http://www.phroy.org/cloud/index.php/s/6K2g6sPLAoK8rj5).
|
|
|
|
## Instructions et missions
|
|
|
|
Le script Python qui permet la commande du robot est le fichier **'rp_cmd.py'**. Il est éditable avec tout éditeur (Spyder, Emacs, Atom, ...).
|
|
|
|
Les instructions de base sont :
|
|
- Avancer : **rp_avancer()**
|
|
- Reculer : **rp_reculer()**
|
|
- Tourner à gauche : **rp_gauche()**
|
|
- Tourner à droite : **rp_droite()**
|
|
- Marquer la case : **rp_marquer()**
|
|
- Détecter la présence d'un mur devant à un pas : **rp_detect()** -> retourne True en présence d'un mur et False en absence de mur
|
|
|
|
Il y a 6 missions :
|
|
- Mission 1 : Les premiers pas de Ropy
|
|
- Mission 2 : Ma première fonction
|
|
- Mission 3 : Sécuriser Ropy
|
|
- Mission 4 : Partir au bout du monde
|
|
- Mission 5 : Faire face à l'inconnu
|
|
- Mission 6 : Se rendre utile
|
|
|
|
Du niveau 1 au niveau 5, chaque niveau donne lieu à la découverte d'une nouvelle structure algorithmique. Le niveau 6 correspond à la mission principale,
|
|
il faudra mobiliser l'ensemble de structures vues précédement.
|
|
|
|
Par son interface sur le port série, Ropy peut devenir le jumeau numérique d'un robot réel. Trois missions sont proposées sur son **jumelage avec le robot
|
|
Maqueen** (carte micro:bit) présentes dans les documents pédagogiques.
|
|
|
|
Deux vidéos :
|
|
- [Mise en place et présentation (version longue) de Ropy](https://tube-sciences-technologies.apps.education.fr/w/aGrLM2tkG356hMQWzsvqtd),
|
|
- [Jumelage de Ropy avec Maqueen](https://tube-sciences-technologies.apps.education.fr/w/2cekcqLFWgLHWidYPS4ZFb).
|
|
|
|
## Ressources pédagogiques
|
|
|
|
Les applications pédagogique se trouvent dans le [dépôt des ressources pédagogiques du projet Blender-EduTech](https://forge.aeif.fr/blender-edutech/blender-edutech-peda) :
|
|
- [Enseignements de la matière Sciences numériques et technologie (SNT)](https://forge.aeif.fr/blender-edutech/blender-edutech-peda/-/tree/main/Lycee/programmation_python/snt),
|
|
- [Enseignements de la spécialité Sciences de l'Ingénieur](https://forge.aeif.fr/blender-edutech/blender-edutech-peda/-/tree/main/Lycee/programmation_python/si/ropy),
|
|
- [Enseignements technologiques I2D/2I2D en STI2D](https://forge.aeif.fr/blender-edutech/blender-edutech-peda/-/tree/main/Lycee/programmation_python/sti2d/ropy).
|
|
|
|
Ropy est une plateforme pédagogique où d'autres missions pouvent être dévelopées pour mettre en oeuvre des concepts comme la programmation objet, le
|
|
multithreading ou encore le machine learning.
|
|
|
|
## Développement
|
|
|
|
L'environnement de développement est basé sur : la plateforme de modélisation et d'animation 3D Blender ( https://blender.org ), le langage Python
|
|
(https://python.org ) et le moteur de jeu 3D UPBGE ( https://upbge.org ).
|
|
|
|
Les fichiers sources sont dans le groupe Blender-Edutech de la forge de l'AEIF : https://forge.aeif.fr/blender-edutech/ropy .
|
|
|
|
Les bibliothèques suivantes ne sont pas incluses par défaut dans l'environnement UPBGE :
|
|
- [**Pylint**](https://pylint.pycqa.org) : vérificateur du code Python
|
|
- [**pySerial**](https://pyserial.readthedocs.io) : communication sur le port série
|
|
- [**pyFirmata**](https://pyfirmata.readthedocs.io) : protocole Firmata (protocole générique de communication entre un logiciel et un microcontrôleur)
|
|
- [**wxPython**](https://www.wxpython.org/) : interface graphique utilisateur (GUI, utilisé ici pour Windows)
|
|
- [**pyQt5**](https://www.riverbankcomputing.com/software/pyqt/) : interface graphique utilisateur (GUI, utilisé ici pour GNU/Linux)
|
|
|
|
Il faut donc les installer localement (dans UPBGE), les étapes sont :
|
|
- **GNU/Linux** : La configuration ici présente est UPBGE installé sur ~ avec Python 3.9 :
|
|
- Aller dans le répertoire local de Python de UPBGE: $ cd ~/UPBGE-0.30-linux-x86_64/3.0/python/bin
|
|
- Télécharger le script ['get-pip.py'](https://bootstrap.pypa.io/get-pip.py) pour installer le gestionnaire de paquet [**Pip**](https://pip.pypa.io)
|
|
- Installer le gestionnaire de paquet Pip : $ ./python3.9 get-pip.py
|
|
- Installer Pylint : $ ./pip install pylint
|
|
- Installer pySerial : $ ./pip install pyserial
|
|
- Installer pyFirmata : $ ./pip install pyfirmata
|
|
- Installer PyQt5 : $ ./pip install PyQt5
|
|
|
|
- **Windows** : La configuration ici présente est UPBGE installé sur le bureau utilisateur (prenom.nom) :
|
|
- Ouvrir un terminal Powershell (éventuellement en passant par Anaconda Navigator)
|
|
- Aller dans le répertoire local de Python de UPBGE: cd C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\bin
|
|
- Télécharger le script ['get-pip.py'](https://bootstrap.pypa.io/get-pip.py) pour installer le gestionnaire de paquet [**Pip**](https://pip.pypa.io)
|
|
- Installer le gestionnaire de paquet Pip : python.exe get-pip.py
|
|
- Aller dans le répertoire 'Scripts' : cd C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\Scripts
|
|
- Installer Pylint : pip.exe install pylint
|
|
- Installer pySerial : pip.exe install pyserial
|
|
- Installer pyFirmata : pip.exe install pyfirmata
|
|
- Installer wxPython : pip.exe install wxpython
|