# Ropy **Discover Python with Ropy (coding adventure)**
**Découvre le Python avec Ropy (code ton aventure)** 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)](http://www.phroy.org/cloud/index.php/s/Axx4cQdbkaX6mPP) ![Poster](img/poster.png) Ropy a fortement été inpiré par [RobotProg](http://www.physicsbox.com/indexrobotprogfr.html) et [Light Bot](https://lightbot.com/). Ce jeu sérieux fait partie du projet open source [Blender-EduTech (Blender/UPBGE pour l'Enseignement Technologique)](https://gitlab.com/blender-edutech). ## 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, Atoms, ...). 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. ## Jumeau numérique Ropy par son interface sur le port série peut devenir le jumeau numérique d'un robot réel. Ci-dessous vous trouverez le pilotage du robot Maqueen (carte micro:bit) par Ropy. [![Ropy et Maqueen](img/ropy-jumeau_numerique.png)](http://www.phroy.org/cloud/index.php/s/6zrXAPqWwxNpXHy) ## Documents pédagogiques Les applications pédagogique se trouvent dans le [dépôt des documents pédagogiques du projet Blender-EduTech](https://gitlab.com/blender-edutech/blender-edutech-oer-french) . 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 ). Le code source, les fichiers blender et les assets sont hébergés sur le dépôt [gitlab](https://gitlab.com/blender-edutech/ropy). La bibliothèque **serial** utilisée pour la communication sur le port série (jumeau numérique) n'est pas incluse par défaut dans l'environnement UPGE. Il faut donc l'installer localement, les étapes sont : - La configuration ici présente est UPBGE installé sous GNU-Linux 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 - Installer localement (UPBGE) le gestionnaire de paquet pip : $ ./python3.9 -m ensurepip --default-pip - Installer localement (UPBGE) la bibliothèque serial : $ ./pip install serial -t ~/UPBGE-0.30-linux-x86_64/3.0/python/lib/python3.9/site-packages