Cargo-Bot Tangible

Apprenez les bases de l'algorithmique et de la programmation

Quel est le principe de ce jeu ?

Le Cargo-Bot Tangible est un jeu conçu pour apprendre les bases de l'algorithmique et de la programmation. Un robot virtuel déplace des blocs de couleur entre une disposition de départ et un but. Le principe du jeu est d'écrire un programme sur une grille physique, tangible, qui sera transmis pour commander le robot virtuel.

Comment jouer ?

1
Écrire un programme

Commencez par choisir le niveau que vous voulez réaliser dans l'interface :
Ou bien à l'aide d'une carte de niveau à placer sur la grille de programmation.
Vous pouvez voir la disposition de départ des blocs dans la partie « exécution du programme » et la disposition finale à atteindre dans la partie « but ». Vous pouvez maintenant écrire votre programme en plaçant les cartes d'instructions sur la grille. En savoir plus sur les règles de programmation.

2
Transférer le programme

La transmission du programme, réalisé sur feuille, jusqu'à l'ordinateur se fait grâce à une photo de la grille. Pour cela trois moyens s'offrent à vous :
Prendre une photo à l'aide d'une webcam.
Utiliser une image existante sur l'ordinateur.
Prendre une photo à l'aide d'un téléphone, connecté à l'ordinateur grâce à un QR Code.
Quand toutes les instructions sont détéctées, cliquez sur le bouton vert pour transmettre le programme.
Pour assurer une bonne détéction, prenez la photo bien en face de la feuille, évitez les flashs et les ombres.

3
Exécuter le programme

Commandez le robot en exécutant votre programme à l'aide des boutons de lecture et de la règle de vitesse.
Une aide est disponible si vous ne parvenez pas à résoudre le niveau.
Vous avez la possibilité de sauvegarder des programmes tant que la page web reste ouverte :
Sauvegarder le programme en cours.
Charger un programme sauvegardé.

Comment écrire un programme ?

L'écriture d'un programme se fait en remplissant la grille avec des cartes d'instructions. Le remplissage se fait en partant de la gauche et sans laisser de case vide. Le robot commencera par exécuter le programme P0. Il existe trois types d'instructions :

1 - Déplacements

Aller à droite d'un pas.
Aller à gauche d'un pas.
Descendre et remonter la pince du robot. S'il y a un bloc dans la pince, il est déposé, sinon la pince prend le bloc situé en dessous.

2 - Appel de programme / procédure

Il existe quatre programmes (P0, P1, P2, P3), qui peuvent être appelés les uns par les autres. Quand un programme est appelé, il s'exécute entièrement, puis le programme qui a fait l'appel continue de s'exécuter.

3 - Conditions

Les cartes de condition peuvent être placées au dessus d'une commande de déplacement ou d'appel de programme. La commande ne sera exécutée que si la condition est vérifiée :
La commande est exécutée si la pince est vide.
La commande est exécutée si la pince contient un bloc.
La commande est exécutée si la pince contient un bloc jaune (ou bleu, rouge, vert, selon la carte choisie).

Comment préparer le matériel ?

Il vous faut :
  • Un ordinateur, eventuellement connecté à un vidéoprojecteur.
  • Un webcam ou un smartphone.
  • Des grilles et des cartes d'instruction imprimées (pdf ci-dessous).

A propos du projet

Ce projet a été réalisé dans le cadre d'un stage à l'université de Strasbourg, encadré par Julien Narboux et Basile Sauvage, en collaboration avec l'IREM de Strasbourg. La programmation tangible se fait à l'aide d'objets physiques à la place des habituels programmes numériques. La motivation première est de proposé un dispositif accessible à tous et facile à déployer en classe. Avec notre dispositif, le matériel informatique nécessaire est seulement composé d'un ordinateur central, pour lancer le programme, ainsi qu'un téléphone ou une webcam pour réaliser des photos.

Crédits

Le Cargo-Bot est un jeu de Rui Viana, trademark of Two Lives Left (Cargo-Bot).
L'adaptation en Javascript a été réalisée par Joe Tessler (GitHub).
Des niveaux supplémentaires sont tirés du site de Benjamin Wack.
La librairie TopCodes est réalisée par TIDAL-Lab (GitHub).
Modifications pour la création de cette version tangible par Salwa El Fatini et Benjamin Gliech (GitHub).