13 activitées en Snap! pour ergo

Voici l’ensemble des projets sur lesquels j’ai pu travailler durant la fin d’année (scolaire) 2016

Pour le moment à l’état de draft, je pense qu’ils pourraient néanmoins servir à certaines personne dès à présent…

Ces 13 projets seront publiés prochainement dans une catégorie publique du forum, mais pour le moment un certain nombre de choses restent à corriger/ajouter, notamment:

  • la création et l’ajout de vidéos expliquant/montrant la construction des codes Snap!
  • une correction orthographique (et oui, Snap! n’a pas encore intégré la correction automatique, il doit y avoir un grand nombre de perles dans les commentaires de code qui feraient bouillir n’importe quel enseignant de français ^^ )
  • une traduction des readme pour une ouverture plus large à la communauté
  • finaliser certains codes

Chaque fichier .zip contient un fichier texte.md + un projet_Snap!.xml + les blocs.xml

Vous pouvez également télécharger la dernière version (8juin) du projet pypot-snap-blocks.xml.zip (9.8 KB) qui contient les blocs de base pour contrôler une créature poppy.


13_activitees_en_snap_pour_ergo.zip (869.7 KB)

#Automate vs Robot
Automate vs Robot.zip (15.4 KB)

Permet de poser les bases de la définition de robot, à savoir (selon moi) :

  • Automate: un automate est une machine qui exécute son programme via ses actionneurs, et ce, quelque soit l’environnement
  • Robot: c’est un automate muni de capteurs qui lui permettent (suivant sa programmation) de s’adapter à l’environnement

Vous trouverez également d’autres renseignements autour de cette idée sur les topics:

#Battle Ball
Battle Ball Game.zip (14.2 KB)

Petit jeu assez simple à réaliser où deux ergos s’affrontent: ils sont munis de leur embout crayon où y est attaché un ballon et une aiguille. Le but est simple: claquer le ballon de l’adversaire sans se faire éclater le sien.

#Catapult
Catapult.zip (15.9 KB)

Est à la base de l’activité Chamboule-tout qui peut être détournée de multiples façons (e.g. mini-basket)

Vous trouverez également d’autres renseignements autour de cette idée sur les topics:

#Chicken
Chicken.zip (22.0 KB)

Observer, comprendre, interpréter, détourner un comportement… l’exemple de la poule et du lien sensori-moteur!

#Control other
Control Other.zip (15.1 KB)

Comprendre les objets connectés, comment et à quelle vitesse circule l’information, qu’est ce qu’une requête url … des notions qui pourront facilement être intégrées à cette activité.

#Control Pas à Pas
Control PaP.zip (14.9 KB)

Bloc utilitaire très pratique qui permet de contrôler l’ergo avec les touches clavier ou autre actionneur ( cf Snap!_for_arduino )

#Maze
Maze.zip (260.4 KB)

Design ton labyrinthe, imprime le, fixe le à ton ergo, crée ton programme… prêt pour un défi ?

#Music
Music.zip (204.8 KB)

  • Découvre les notes au format MIDI
  • Transforme ton clavier en piano et fait danser l’ergo
  • Transforme ton ergo en instrument et crée tes musiques

#Nim Game
Nim Game.zip (17.2 KB)

Comment gagner à tous les coups? crée l’algorithme qui te rendra invincible contre les maîtres du temps!

#Puzzle Game
Puzzel Game.zip (18.1 KB)

Invente un jeu:
Chacun votre tour, enregistre une position gagnante, puis utilise le clavier ou simplement tes mains pour trouver celle de tes adversaires, si tu gagnes, l’ergo dansera pour toi :wink:

#Record and Play
Record and Play.zip (16.9 KB)

Petit programme pour mieux appréhender la programmation par démonstration et Snap!.

#Stubborn behavior
Stubborn Behavior.zip (23.1 KB)

Être têtu, c’est toujours revenir sur ses positions! voilà ce que l’ergo doit faire, toujours revenir sur sa position de départ, plusieurs variantes sont à construire et permettent de réfléchir sur l’interprétation d’un comportement et sur la vraie fausse intelligence des robots qui bien sur sont tout sauf têtus :slight_smile:

#TicTacToe (morpion)
TicTacToe.zip (18.4 KB)

19683 possibilités (3^9) et pourtant c’est l’un des jeux les plus simples à résoudre, beaucoup de variantes de cette résolution et de stratégies de jeu peuvent être développées, sans parler de l’interface permettant à l’ergo de jouer physiquement à ce jeu!
Dans la solution donnée ici on aborde l’aspect algorithmique avec la stratégie random, et l’évaluation du prochain pour arriver à l’algorithme min-max (TODO)

Vous trouverez également d’autres renseignements autour de cette idée sur ce topic (qui contient 4 liens supplémentaires vers les autres topics sur ce sujet):

5 Likes

Beau boulot, bravo Thibault !

1 Like

Une bonne synthèse pour l’équipe enseignante
merci

Merci Tibo pour les projets Snap! illustrant les activités.

je ne sais pas si tu dois encore faire des modifications, mais j’ai un projet Snap!, créé pour un “guide de démo”, qui reprend 3 activités que tu as cité.

J’avais repris ton code pour le sprite “Grincheux/stubben” et pour le sprite “Record and Play / Enregistrement par démonstration” en apportant des modifications et en ajoutant des commentaires sur le projet en mode “tutoriel” (+ une description - qui peut être utile pour faire un “readme”).

Voici le projet snap! à télécharger :

Je copie / colle les descriptions des 3 sprites ici (cela peut faire un peu redondance avec d’autres choses mais c’est en mode “résumé”):

###1. Explication d’une première séance : Contrôler Poppy Ergo Jr (défi chamboule-tout)

Il est possible d’expliquer une première séance de prise en main (en lien avec la première activité du livret pédagogique “contrôler Poppy Ergo Jr” (livret pédagogique - partie1) :

  • prise en main du robot : le contrôler et le faire bouger
  • notions de programmation séquentielle et programmation événementielle
  • Puis faire un petit défi (chamboule-tout) : Contrôler la position et la vitesse des moteurs du robot pour lancer la balle et faire tomber le chamboule-tout.

Le sprite “chamboule-tout” est composé :

  • de blocs permettant de contrôler le robot et de le faire bouger
  • Et un exemple de programme chamboule-tout
    ⇒ il est possible de modifier le programme chamboule-tout pour montrer des exemples qui fonctionnent et des exemples qui ne fonctionnent pas : comme varier la vitesse en modifiant la durée)

Vidéo : https://www.youtube.com/watch?v=Z8fkIhn5r-I
Sur la vidéo on peut voir que le robot donne un feedback immédiat et que l’erreur est vu ici comme quelque chose de positif et permettant d’améliorer le programme.

Projet snap! : sprite “chamboule-tout”
Activité sur le forum : A1 - Contrôler Poppy Ergo Jr (défi chamboule-tout) - Livret d'activités

2. Enregistrement par démonstration

Le robot Poppy Ergo Jr est capable de mesurer en temps réel la position de ses moteurs. Ainsi lorsqu’on les fait bouger manuellement, il peut enregistrer les mouvements effectués pour les reproduire ulterieurement (livret pédagogique - partie 2)

Pour cela il suffit de trois blocs :

  1. Créez et exécutez le bloc create & start pour commencer l’enregistrement

  2. Manipulez le robot pour créer un mouvement à reproduire

  3. Arrêtez l’enregistrement avec le bloc stop record

  4. Jouez le mouvement que vous avez créé avec le bloc play move

Il est possible de créer un petit programme avec les 3 blocs ci-dessus pour automatiser le processus et interagir avec l’utilisateur.

Vidéo : https://www.youtube.com/watch?v=DJHOopBgPqs&google_comment_id=z13pebpxqnimx5kee23hhpnizoilhdu2u&google_view_type#gpluscomments

(redondant avec la vidéo Poppy Ergo Jr)

Projet snap! : sprite “enregistrement”

Activité sur le forum : A2 - Programmer par démonstration (défi «Dessiner c’est gagner !») - Livret d'activités

###3. Poppy Ergo Jr Grincheux : exemple d’une boucle sensori-motrice

Une boucle sensori-motrice en robotique peut être défini comme l’interaction entre un robot et son environnement. Ce que détecte le robot (grâce aux capteurs) va déclencher une action motrice spécifique.

Une boucle sensori-motrice fonctionne sur le schéma :
Si… [le robot détecte….] alors… [activer une action motrice]

Avec l’exemple du projet “grincheux”, l’objectif est de :
Créer un programme qui détecte la position du robot Ergo Jr et qui le remet dans sa position initiale dès qu’une personne le manipule pour changer sa position.

On donne comme instruction au robot :

Si… le robot détecte que la position des moteurs n’est pas la même que sa position de départ alors… remettre les moteurs dans leur position de départ

⇒ il est aussi possible de donner d’autres instructions (comme dans l’exemple snap! : changer les leds de couleurs et se remettre en compliant)

Vidéo : https://www.youtube.com/watch?v=66T1e9p-bG0&list=PLT6NsCw8bf8QKBb8jXg0gYWQ220e1gcP5&index=5

Projet snap! : sprite “grincheux”

Activité sur le forum : A7 - Les variables (défi Ergo-Jr est grincheux !) - Livret d'activités

Une petite vidéo sur le chamboule tout qui a bien plus aux élèves…

2 Likes

Non mais Christophe, y’a le M2 qui chauffe, tu ne les as pas félicités j’espère !
Sinon c’est super pour un 20 septembre :astonished:
C’est par démonstration ou bien ils ont tout fait à la main ?

Edit : ah ok on voit le code au début. bravo !

1 Like

Merci, je n’ai pas fait grand chose, je me suis servi du livret pédagogique et franchement il est très bien fait. Je me contente à chaque séance de faire le point sur la notion abordée dans l’activité.
Pas de problème gênant avec les robots, ça avance plutôt bien.
La semaine prochaine je donne un défi noté.
Pour les moteurs c’est souvent qu’ils se mettent à clignoter et je n’ai pas trouvé comment éteindre la diode sans être obligé de tout redémarrer…

1 Like