| Module_00_default | ||
| Module_10_rfid | ||
| Module_11_rfid | ||
| Module_12_sol | ||
| Module_13_laser | ||
| Module_14_mega | ||
| Raspberry | ||
| Schema | ||
| LICENSE | ||
| README.md | ||
Escape_from_Boring
English:
Proof of concept for an interview in order to work for an Escape Game (and it worked :p).
Sorry, but the schema and explanations that follow will be in French, for the moment.
Français:
Réalisation d'une maquette pour un entretien pour un job dans une Escape Room (et je l'ai eu :p ).
L'idée était de reconstituer un couloir avec des "épreuves".

Zone Verte: Coffre Zone Rouge: laser Zone Grise: Sol à pression Zone Blanche: Vestibule Zone Bleue: Entrée
Description de la maquette
Le joueur arrive à l'entrée et doit présenter deux statuette contenant des puces RFID simultanément (avec une marge d'erreur assez large tout de même). Cela active l’énigme suivante ce qui allume un écran dans la partie vestibule donnant, plus ou moins clairement, le passage a suivre sur les dalles de pression (c'est une maquette, on test les concepts). Il doit alors passer les dalles de pression, puis passer les lasers. C'est en marchant sur une dernière dalle de pression large (dans la maquette un laser, faute de matériel suffisant), que l’énigme suivante est activé a condition que tout se soit correctement passé pour le sol a pression et les laser. Si une erreur est commise pendant la traversé, ils doivent reprendre du début et un autre chemin est généré pour le sol à pression. La partie du coffre comporte deux "énigmes". La première est un jeux ou il faut appuyer sur des boutons dans un ordre précis (générer a chaque redémarrage). On peut suivre la validation des boutons avec un panneau de led qui nous tiens au courant de l'avancé. Une fois validé, un mail est envoyé au joueur (a condition d'avoir internet et son adresse mail) contenant un code à taper sur le dernier écran afin de valider l'ouverture du coffre. Fin de l'épreuve.
Description Technique
Trois aspect technique sur cette maquette.
- La partie Hardware, composé essentiellement d'Arduino et de composant électronique.
- La partie Orchestrateur, un script python qui s'occupe de remonter les informations de la partie hardware et de valider les énigmes au fur et à mesure de l'avancé du joueur.
- La partie Management, un serveur node.js qui communique avec le script python pour délivrer les informations en quasi temps réel (push) via une interface web au game master chargé du suivi de l’énigme.
Ici j'ai utilisé des Arduino Nano et un Arduino Mega qui communiquent via le protocole i2C avec pour master un raspberry (3b+). C'est l'Orchestrateur qui gère la communication i2C avec les Arduino.
Tous les Arduino ont en commun une trame de donnée qui contient leur état et les informations nécessaire. Ce sont ces données qui vont partir de l'Arduino pour aller jusqu’à la page web qui s'occupera de les mettre en page. Mais qui sert également a la partie validation de l'orchestrateur pour savoir quand activer ou non les énigmes suivantes.
Du bit 0 à 6, les données sont communes a tous les Arduinos, le 7eme est toujours égale a 255 (facilité a la lecture pour le dé-bug). Les bits suivants sont les données personnalisés de chaques épreuves. On en trouve une description détaillé dans chacune des sources des modules.
Le game master aurait du pouvoir influer ou forcer des états sur le board, mais cette partie ne fut pas réaliser faute de temps. Le projet a été effectué sur un peu moins d'un mois et demi. Comprenant le temps d’étude et de réalisation mais aussi d'apprentissage de chacune des technos et de la présentation finale. Le code est normalement lisible mais peu commenté.

