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).
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â
- âŠ
- Le petit bouton rond contient une version curieuse de la chanson âbon anniversaireâ :
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
- Arduino examples : Using Serial Monitor to Control Servo Motor
- Powershell Team : Writing and Reading info from Serial Ports
- Audio FX Sound Board dâAdafruit : une carte sampleur tout intĂ©grĂ© Ă ~20âŹ