Un Escape Game sonore 👂

Un Escape Game sonore 👂
  • Par Gilles Gonon
  • May 18, 2021

Pour l’anniversaire de ma fille, en mode confinĂ©, nous avons fait un escape game. Un escape game tout prĂȘt pour “libĂ©rer le village du terrible dragon”. Sympa, mais pas trĂšs personnalisĂ©. J’ai donc rajoutĂ© deux Ă©preuves de ma crĂ©ation Ă  base de son :

  • un indice de combinaison Ă  base de samples alĂ©atoires.
  • le Gueulomaton pour dĂ©coincer une clef accrochĂ©e au plafond, et accessoirement faire des photos des invitĂ©s. Voir les explications plus bas

Ces Ă©preuves permettaient de trouver une combinaison et une clef pour rĂ©compenser les aventuriers par un trĂ©sor de pots de caramels au beurre salĂ© 😋.

Voici comment j’ai procĂ©dĂ© 🧐. Avant de commencer, il est encore temps de vous dire que le tout m’a pris une aprĂšs-midi 😓. L’Ă©preuve de l’indice cachĂ© dans les samples sonores Ă©tait un peu complexe et mĂ©rite d’ĂȘtre retravaillĂ©e, đŸ€Ż, mais le fait d’avoir des phrases personnalisĂ©es a beaucoup amusĂ© les enfants đŸ„ł.

Si vous ĂȘtes entre Rennes et Saint Malo et que vous souhaitez rĂ©cupĂ©rer ou mettre en place ce systĂšme pour un Ă©vĂšnement, contactez-moi !

Les indices s’emmĂȘlent

J’utilise pour ce projet une Sound Board d’Adafruit qui permet de dĂ©clencher des samples audio avec diffĂ©rents modes : alĂ©atoires, en boucle, en ordre Ă©tabli. L’utilisation est trĂšs simple, il suffit de :

  • associer des sons Ă  chaque trigger de la carte (11 triggers pouvant recevoir jusqu’Ă  99 sons chacun, mais la mĂ©moire est limitĂ©e … ça serait trop beau).
  • connecter des interrupteurs pour dĂ©clencher les sons
  • alimenter la carte avec un chargeur de tĂ©lĂ©phone
  • relier la sortie une enceinte audio par cable mini-jack

Si la connectique est plutĂŽt simple et efficace, c’est dans le choix des sons et des interrupteurs que se crĂ©Ă© l’Ă©nigme. Dans mon cas, j’ai rĂ©cupĂ©rĂ© 8 interrupteurs de fortune que j’ai mis en scĂšne sur une vieille boĂźte Ă  chaussure.

Dans les photos ci-dessous, on voit la boĂźte Ă  sons, extĂ©rieur / intĂ©rieur, le cĂąblage sur une mini breadboard et mĂȘme mes notes papiers pour organiser les sons. Il y a aussi une photo d’une Ă©preuve de l’escape game de plateau, Ă  laquelle l’indice sonore fait rĂ©fĂ©rence pour trouver la combinaision du cadenas Ă  3 chiffres 🔐 (dans l’oeuf gris).

1 escape-001.jpg
2 escape-002.jpg
3 escape-003.jpg
4 escape-004.jpg
5 escape-005.jpg
6 escape-006.jpg
7 escape-007.jpg
8 escape-008.jpg
9 escape-009.jpg
10 escape-010.jpg

Voici comment les sons sont organisés :

  • Les 2 boutons type arcade (jaune et bleu) sont reliĂ©s au mĂȘme trigger (n°2): il s’agit de phrases d’explications qui sont lues dans un ordre sĂ©quentiel

    • T02NEXT00.ogg : “Bonjour”
    • T02NEXT01.ogg : “Les boutons renferment l’indice pour trouver la combinaison”
    • T02NEXT02.ogg : “Si vous entendez des mots, un conseil : Notez les !”
    • T02NEXT03.ogg : “Presque tous les boutons disent la vĂ©ritĂ©”
    • T02NEXT04.ogg : “Il y a des boutons farceurs”
    • T02NEXT05.ogg : “Bisous”
  • Certains boutons donnent des indices de maniĂšre alĂ©atoire sur l’endroit oĂč trouver la combinaison

    • T03RAND00.ogg : “Le bouton carrĂ© est un gros mentueur "
    • T03RAND01.ogg : “La combinaison au carrĂ© vaut 82809”
    • T03RAND02.ogg : “L’indice est Ă  ma droite”
    • T03RAND03.ogg : “Un bouton contient une phrase mĂ©langĂ© : c’est ça l’indice !”
    • T03RAND04.ogg : “La vie est belle souriez”
    • T04NEXT00.ogg : “L’indice est Ă  ma droite”
    • T04NEXT01.ogg : “Enfin je dis ça, je dis rien moi”
    • T04NEXT02.ogg : “Et toi qu’est-ce t’en dis ?”
  • Un des boutons contient l’indice, sous forme d’une phrase dont les mots sont sĂ©parĂ©s et lu alĂ©atoirement : il faut donc que les enfants les notent pour remettre en ordre la phrase : “la combinaison est sur un oeuf gris”.

    • T01RAND00 → T01RAND06.ogg
  • D’autres boutons contiennent juste des phrases en rapport avec l’Ă©vĂšnement et les invitĂ©s :

    • Le petit bouton rond contient une version curieuse de la chanson “bon anniversaire” :
      • T05LATCH00.ogg : il est jouĂ© en mode On/Off (Latch): quand appuie sur ce bouton le son joue en boucle en continu,les autres boutons sont dĂ©sactivĂ©s, et il faut rĂ©appuyer pour l’arrĂȘter.
    • Un des boutons contient des phrases en mode “radio londres” sur les invitĂ©s :
      • T09RAND00.ogg : “Lucie in the Sky regarde la planĂšte terre”
      • T09RAND01.ogg : “HĂ©loise chevauche des licornes Ă  la tombĂ©e du soir”
      • T09RAND02.ogg : “La Sybille nous prĂ©dit de bien belles lectures”
  • Enfin un des boutons (le tout carrĂ©) contient des faux indices

    • T07RAND00.ogg : “La combinaison a au moins 2 chiffres identiques”
    • T07RAND01.ogg : “La combinaison est 007”
    • T07RAND02.ogg : “ChicorĂ©e”
    • T07RAND03.ogg : “Bleu”
    • T07RAND04.ogg : “Verte”

📯 Vous pouvez tĂ©lĂ©charger l’ensemble des sons utilisĂ©s ici

Et voici une vidĂ©o d’illustration de l’ensemble et des sons et boutons.

La clef du cri

Pour libĂ©rer la clef par le cri, j’ai rĂ©alisĂ© un montage trĂšs simple Ă  base d’arduino et d’un servo-moteur que j’ai reliĂ© en USB Ă  la borne du Gueulomaton. De base dans le Gueulomaton, chaque cri dĂ©clenche un batch pour “habiller” la photo prise avec le cadre de l’Ă©vĂšnement et envoyer la photo sur la borne oĂč elle peut ĂȘtre imprimĂ©e. Dans ce cas, j’ai donc ajoutĂ© l’envoi d’une commande sĂ©rie au batch pour activer le servo d’un angle fixe (et retour Ă  0 lorsque l’angle atteint 180°).

Voici le principe en vidĂ©o 🔐 :

Voici le code Arduino :

/* L'envoi de données sur le port série entraine une petite rotation du servo moteur */

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
int pos = 180;    // variable to store the servo position

void setup() {
  // initialize serial:
  Serial.begin(9600);
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  myservo.write(pos); 
}

void loop() {
  if (pos <= 0) {
    // Reset position et replace
    pos = 180;
    myservo.write(pos);
  }
  delay(500);
}

/* SerialEvent occurs whenever a new data comes in the hardware serial RX. This
  routine is run between each time loop() runs, so using delay inside loop can
  delay response. Multiple bytes of data may be available. */
void serialEvent() {
  pos -= 21;
  myservo.write(pos);
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
  }
}

Et la commande en ligne, qui peut ĂȘtre dĂ©clenchĂ©e par n’importe quel programme. Dans mon cas, le PC du nouveau Gueulomaton est sous Windows 10 et j’ai utilisĂ© une commande Powershell :

$port= new-Object System.IO.Ports.SerialPort COM9,9600,None,8,one
$port.open()
$port.WriteLine("Turn")
$port.Close()

Si vous ĂȘtes entre Rennes et Saint Malo et que vous souhaitez rĂ©cupĂ©rer ou mettre en place ce systĂšme pour un Ă©vĂšnement, contactez-moi !

Ressources