Imiter les lucioles

Thématiques

  • Principe d’émergence
  • Programmation en Scratch
  • Cartes Micro:bit
  • Art numérique

Participants 8

Durée 1h30

Public Enfants entre 9 et 11 ans

Prérequis Maîtrise de base de l’ordinateur

Matériel

  • 8 postes informatiques (un par participant) avec une connexion internet
  • 8 cartes Micro:bit (une par participant), avec câble USB, et porte-piles
  • 1 carte Micro:bit pour faire les démonstrations
  • Piles
  • Vidéoprojecteur
  • Matériel pour captation vidéo : caméra ou téléphone (l’application OpenCamera pour Android permet de bien régler l’exposition d’une vidéo), éventuellement un pied, une salle sombre

Préparation

  • Charger les piles des cartes
  • Installer un raccourci vers l’éditeur MakeCode pour Micro:bit sur ces postes
  • Imprimer le plateau de démonstration de la synchronisation (ressources), prévoir également quatre pions (si possible de différentes couleurs)
  • Préparer la carte Micro:bit de démonstration avec un programme affichant une icône lorsqu’un bouton est pressé

Déroulé

Introduction (10 min)

Présenter le lieu, le(s) animateur(s).

Connaissez-vous les cartes Micro:bit ? Si oui, quelqu’un explique. Sinon, expliquer le principe : un genre d’ordinateur portable miniature, avec des composants embarqués.

Chaque participant prend une carte, un câble USB, et un porte-clé.

Demander d’identifier et le rôle des boutons A et B. C’est comme sur une manette de jeux vidéo, on peut appuyer dessus pour provoquer quelque chose. Demander d’identifier et le rôle de la matrice de LED. Ce sont des lumières, que l’on peut allumer ou éteindre.

Montrer une carte avec un programme simple déjà chargé, qui allume l’écran pendant un certain temps lorsque l’on appuie sur le bouton. Les cartes sont programmables, on peut écrire le programme qu’il y a dedans. Demander ce qu’est un programme. Si oui, quelqu’un explique. Sinon, expliquer le principe d’une recette : une liste d’instructions, d’ordres, que la machine exécute les unes après les autres, en boucle. Par exemple : est-ce que le bouton A est appuyé ? Non. Et là ? Non. Et là ? Non. … Et là ? Oui. Allume la LED 1. Allume la LED 2. Allume la led 17. Attends 2 secondes. Efface l'écran. Est-ce que le bouton A est appuyé ? …

Savez-vous comment écrit-on un programme ? Montrer la vue Scratch du programme précédent.

Dans le cadre du festival Yes We Code : sachez que nous ne sommes pas les seuls à faire des ateliers avec ces cartes cette semaine, la thématique commune est de faire quelque-chose de graphique, de visuel, qui soit si possible joli.

On va s'inspirer de ceci.

Présenter le fonctionnement des lucioles (15 min)

Présenter une photo de luciole (en ressources). Savez-vous ce que c’est ? Connaissez-vous la différence entre un ver luisant et une luciole ? (Chez les vers luisants, seuls les mâles volent, mais ce n’est pas ce qui nous intéresse ici). Le ver luisant émet de la lumière en continu, la luciole clignote.

Présenter des vidéos de lucioles clignotant (en ressources). Pourquoi clignotent-elles ? Il s’agit d’une parade nuptiale. Les mâles volent et clignotent. Les femelles vont se rapprocher des mâles de leur espèce, selon leur clignotement. Le motif de clignotement diffère selon l’espèce de luciole.

Afficher et lire le tableau des différents motifs de clignotement (en ressources). Possible explication avec le code morse, selon la connaissance des participants.

Montrer une simulation où les lucioles clignotent rapidement et ne sont pas synchronisées (lien en ressources). De quelle espèce sont-elles ? Difficile à dire.

Dans la simulation, activer la synchronisation des lucioles, de façon instantanée. Et maintenant ? il devient beaucoup plus facile de trouver l’espèce. Qu’est-ce qui a changé ? Elles sont synchronisées. Dans la nature, ça se passe comme ceci également. Les femelles ont besoin que les mâles se synchronisent pour identifier correctement l’espèce.

Remarque : d’un point de vue scientifique, la question n’est toujours pas tranchée. L’hypothèse que la synchronisation facilite la reconnaissance entre pairs semble la plus probable, mais il convient de rester prudent. Source : Firefly synchrony : a behavioral strategy to minimize visual clutter ( Moiseff et al., 2010).

Mais comment font-elles ? Avez-vous une idée ? Laisser les participants deviner. Pour aiguiller les réflexions :

  • Comment une luciole peut-elle se synchroniser avec une luciole très lointaine ?
  • S’il y a un chef d’orchestre, comment est-il choisi ? pourquoi pas un autre ? son clignotement se distingue-t-il des autres ? comment une luciole lointaine peut-elle pour savoir qui a été choisi comme chef ? si, pour une raison ou pour une autre, le chef rate un temps ou s’arrête, que se passe-t-il ?
  • Comment le groupe peut-il réajuster les petits décalages qui apparaissent ci et là ?

Eh bien, il n’y a pas de chef. Les lucioles ne s’inspirent que des lucioles les plus proches autour d’elles. Petit à petit, l’information se propage dans tout le groupe, et le phénomène d’unisson se produit. C’est un exemple d’émergence. Si les participants sont intéressés, en expliquer rapidement le principe :

Maintenant, si on ne prend que quelques lucioles voisines, comment font-elles pour se synchroniser ? Comment savent-elles quand faut-il clignoter ? Eh bien, elles ne le savent pas vraiment, elles ne font que corriger un peu les choses si ça ne va pas.

Se mettre autour d’une table, sortir le plateau et les pions. L’objectif est de donner une représentation concrète d’une modélisation abstraite du fonctionnement de la luciole. Nous allons rentrer dans le cerveau de la luciole. Dans son cerveau, il y a une horloge, symbolisée ici par le plateau circulaire. L’horloge tourne tout le temps, pour cela on déplace un pion sur l’horloge dans le sens horaire. Lorsque le pion est sur la case « midi », la luciole clignote. Faire une démonstration toute simple. Autres phénomènes biologiques cycliques : rythme cardiaque, respiration, etc.

Rajouter une seconde luciole, un second pion. Pour l’instant, les deux sont indépendantes. L’idée de base pour les synchroniser, c’est que si une luciole voit sa voisine clignoter, elle va essayer de clignoter un peu plus tôt. Cela revient à avancer son horloge, ce qui se traduit sur notre plateau en avançant d’une case. Faire la démonstration pour deux lucioles.

On rencontre un petit problème : le premier clignotement rapproche les deux lucioles, mais le second les éloigne à nouveau. Donc il faut ruser. Si la luciole est loin de clignoter, on avance peu l’horloge (on voudrait presque la faire reculer, mais pour garder un système simple, on ne s’autorise que d’avancer). Si elle est proche de clignoter, on avance beaucoup l’horloge. Ainsi, lorsque qu’un pion arrive sur la case « clignotement », on bouge les autres pions de la façon suivante :

  • Case « clignotement » : ne pas bouger
  • Cases 1 à 5 : avancer d’une case
  • Cases 6 à 10 : avancer de deux cases
  • Cases 11 à 15 : avancer de trois cases
  • Cases 16 à 19 : avancer de quatre cases, sans dépasser la case de clignotement (ce qui revient à aller directement sur la case « clignotement »).

Refaire la démonstration avec les deux lucioles pour bien montrer ces règles, puis refaire une démonstration avec quatre lucioles, en partant des cases 2, 6, 11 et 15 : il suffit d’une vingtaine de tours pour atteindre la synchronisation (bien penser à comptabiliser chaque clignotement).

À nous de jouer !

Prise en main des cartes (15 min)

Installer les participants sur les postes informatiques. Brancher les cartes sur les postes. Ouvrir le raccourci MakeCode. Créer un nouveau projet.

Guider les participants pour utiliser leurs premiers blocs, pour afficher une icône et réagir à la pression d’un bouton. Pour cela, suivre par exemple les instructions de notre animation d’introduction générale à Micro:bit.

Programmation de la luciole (30 min)

Exercice de morse. (si le temps presse, passer cette section) Guider les participants pour implémenter un premier clignotement des LED. Dans la boucle pour toujours, utiliser les blocs pause et effacer l’écran pour faire un clignotement régulier toutes les secondes. Recommencer en implémentant une séquence de clignotement, par exemple court – long – court (lettre R en morse) puis une longue pause de 3 secondes. Voici un exemple de programme :

  • Affiche l’icône
  • Pause 100 ms
  • Effacer l’écran
  • Pause 100 ms
  • Affiche l’icône
  • Pause 300 ms
  • Effacer l’écran
  • Pause 100 ms
  • Afficher l’icône
  • Pause 100 ms
  • Effacer l’écran
  • Pause 3000 ms

Ajouter l’extension personnalisée. Cliquer sur le menu « Extensions », rechercher « ychalier-rlv/luciole », puis cliquer sur l’extension proposée. Cela ajoute une nouvelle rubrique « Luciole » orange au menu Micro:bit.

Faire clignoter la luciole. Faire choisir ou inventer une espèce aux participants. Quelle séquence de clignotement choisir ? Utiliser les blocs spéciaux dans la rubrique « Luciole » :

  • utiliser le bloc d’initialisation de la luciole (l’animateur utilise plutôt le bloc d’initialisation de la télécommande, pour la dernière partie de l’animation, disponible dans le sous-menu « plus »), ce bloc permet en réalité de définir les paramètres de communication en radio
  • utiliser le bloc pour définir la vitesse de l’horloge (le principe devrait être clair avec la démonstration sur plateau et l’exercice de clignotement précédent)
  • ajouter le bloc pour donner des instructions lorsque l’horloge sonne midi, et guider les participants pour utiliser les blocs spéciaux de clignotement de LED.

Nous ne décrirons pas ici le fonctionnement interne de ces blocs, l’idée est la même que lors de l’exercice précédent, mais sans avoir besoin d’utiliser de bloc pour effacer ou pour attendre, tout ceci est automatique. Il faut simplement définir la durée et le délai (relatif au début du clignotement) de chaque partie de la séquence.

Activer la synchronisation. Ajouter enfin le bloc « activer la synchronisation » et le bloc pour gérer lorsqu’une luciole voisine clignote. À l’intérieur, utiliser le bloc qui avance l’horloge d’un certain pourcentage, et choisir une valeur entre 5 et 10. Une valeur trop petite donnera une synchronisation très lente, une valeur trop grande donnera une synchronisation trop rapide et peut entraîner des problèmes de double clignotement ou de désynchronisation. Mais après tout, il faut essayer pour s’en rendre compte. Demander à tous les participants de s’accorder sur une même valeur.

Test. Tester les lucioles, qui devraient se synchroniser si les bureaux sont assez proches. Utiliser le bouton B de la télécommande (carte de démonstration) pour artificiellement désynchroniser toutes les cartes, pour voir l’effet de synchronisation apparaître.

Mise en scène (20 min)

L’objectif final est de mettre en scène ces cartes dans une petite vidéo. Inviter les participants à débrancher leurs cartes de l’ordinateur puis à brancher le porte-pile (pour l’instant sur OFF). Les participants vont porter leur carte et se déplacer pour reproduire des mouvements de lucioles. Le tout doit se faire dans une pièce sombre : le clignotement des lucioles sera bien visible, les détails électroniques seront cachés, et les visages des participants ne seront pas visibles.

Mise en place (en amont). Placer deux chaises (ou meubles, ou ruban adhésif au sol) espacées de cinq ou six mètres le long d’un mur. Placer la caméra sur un pied, à hauteur d’œil, à cinq ou six mètres de la ligne entre les chaises, de façon à l’avoir bien dans le cadre.

Installation des participants. Arranger les participants en ligne entre les chaises, sur plusieurs rangées, avec les petits devant et les grands derrière, de façon à ce qu’il n’aient pas trop à s’éviter lors des déplacements. Donner les consignes suivantes aux participants :

  • Déplacez-vous de gauche à droite, entre les deux chaises
  • Tenez votre carte de façon à ce que les LEDs pointent toujours vers la caméra
  • Vous n’avez pas besoin de regarder la caméra, regardez plutôt devant vous, faites attention à ne pas vous rentrer dedans et à garder la carte tournée vers la caméra
  • Vous pouvez bouger un peu votre bras de haut en bas (sur une quarantaine de centimètres environ)

Mise en scène. Faire le point sur les participants. Éteindre la lumière. Régler l’exposition. Commencer avec les participants qui se déplacent rapidement d’un bord à l’autre, en faisant des allers retours, avec les cartes désynchronisées au préalable (utiliser la télécommande pour cela). Continuer pendant une vingtaine de secondes. Activer la synchronisation à l’aide de la télécommande. Au fur et à mesure que la synchronisation avance, demander aux participants de ralentir. À la fin, demander aux participants de s’aligner, et de mettre toutes les cartes au même niveau. Remarque : il est possible de parler durant l’enregistrement de la vidéo, puisque le son sera coupé par la suite.

Rendu. Montrer aux participants le rendu sur la caméra, et refaire une prise si le temps le permet. Pour ajouter un effet de traînée (similaire à une longue exposition), il est possible d’utiliser le logiciel FFmpeg :

ffmpeg -i .\Video.mp4 -ss 00:00:00 -t 00:00:00 -an RenduOriginal.mp4
ffmpeg -i .\RenduOriginal.mp4 -vf "format=gbrp,lagfun=decay=0.98:planes=4" RenduTraînéeGbrp.mp4
ffmpeg -i .\RenduTraînéeGbrp.mp4 -vf format=yuv420p .\RenduTraînée.mp4

Ressources

Ressources en ligne