ropy/README.md

104 lines
7.1 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/lien_video.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](https://www.phroy.org/ropy.html).
## 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, Pulsar, ...).
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.apps.education.fr/blender-edutech/blender-edutech-ressources-pedagogiques) :
- [Enseignements de la matière Sciences numériques et technologie (SNT)](https://forge.apps.education.fr/blender-edutech/blender-edutech-ressources-pedagogiques/-/tree/main/Lycee/Programmation%20Python/Ropy%20-%20SNT),
- [Enseignements de la spécialité Sciences de l'Ingénieur en application](https://forge.apps.education.fr/blender-edutech/blender-edutech-ressources-pedagogiques/-/tree/main/Lycee/Programmation%20Python/Ropy),
- [Enseignements technologiques I2D/2I2D en STI2D en activation](https://forge.apps.education.fr/blender-edutech/blender-edutech-ressources-pedagogiques/-/tree/main/Lycee/Programmation%20Python/Ropy%20-%20Activation),
- [Enseignements technologiques I2D/2I2D en STI2D en application](https://forge.apps.education.fr/blender-edutech/blender-edutech-ressources-pedagogiques/-/tree/main/Lycee/Programmation%20Python/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
<table>
<tr>
<td> <div> <a href="https://forge.apps.education.fr"> <img src="img/la_forge-brigit_et_komit-blanc.svg" alt="Brigit et Komit"> </a> </div> </td>
<td> <div> Les fichiers sources sont dans le projet <b>Blender-Edutech / Ropy</b> de La Forge des Communs Numériques Éducatifs :
https://forge.apps.education.fr/blender-edutech/ropy . </div> <div> &nbsp; </div> <div> L'environnement de développement est basé sur : la plateforme de
modélisation et d'animation 3D [Blender](https://blender.org), le moteur de jeu 3D [UPBGE](https://upbge.org) et le langage [Python](https://python.org).
</div> <div> &nbsp; </div> <div> La version de Blender/UPBGE utilisée pour le développement est la version 0.36.1 (20 août
2023). Etant trop lente sous Windows, la version utilisée pour le déploiement (mise en production) est la version 0.30 (3 décembre 2021).</td>
</tr>
</table>
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)
- [**pyQt6**](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.10 :
- Aller dans le répertoire local de Python de UPBGE: $ cd ~/upbge-0.36.1-linux-x86_64/3.6/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.10 get-pip.py
- Installer Pylint : $ ./pip install pylint
- Installer pySerial : $ ./pip install pyserial
- Installer pyFirmata : $ ./pip install pyfirmata
- Installer PyQt6 : $ ./pip install PyQt6
- **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.36.1-windows-x86_64\3.6\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.36.1-windows-x86_64\3.6\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
- Si l'installation des paquets Python ne se fait pas dans le bon répertoire ('site-packages' des bibliothèques du Python embarqué par UPBGE), il faut allors spécifier le répertoire cible avec
l'option '-t target' lors de la commande 'pip install'. Par exemple pour Pylint :
- **GNU/Linux** : $ ./pip install pylint -t ~/upbge-0.36.1-linux-x86_64/3.6/python/lib/python3.10/site-packages
- **Windows** : $ pip.exe install pylint -t C:\Users\prenom.nom\Desktop\upbge-0.36.1-windows-x86_64\3.6\python\lib\site-packages