46 lines
3.4 KiB
ReStructuredText
46 lines
3.4 KiB
ReStructuredText
*******************
|
|
escape-room ithamar
|
|
*******************
|
|
Documentatie voor ithamar's escaperoom.
|
|
|
|
Voor jaar 1 periode 2 van de studie Internet of Things moeten de studenten in een groepje een escaperoom maken met arduino's. deze escaperoom
|
|
moet gemaakt worden via de kennis die is opgedaan met de opdrachten van de periode bij het vak 'werkplaats arduino' om creativiteit en affiniteit te demonstreren binnen het vak.
|
|
|
|
Het groepje waarbij ik zat heeft als thema: horror, het denkproces achter dit thema is om een authentieke escaperoom te imiteren door de puzzels op een logische manier op elkaar te laten
|
|
aansluiten. Het concept achter de escaperoom was om een doos te bouwen uit plywood en de 4 horizontale zijdes te gebruiken om de puzzels in te bouwen en zo klokwijs op elkaar aan te sluiten.
|
|
|
|
De puzzel die ik heb gemaakt is afgeleid van de `oneshot color puzzle <https://www.youtube.com/watch?v=VaPQGiTq8Bc>`_ van de 2014 console game 'oneshot'. Bij deze puzzel moet de speler aan de hand
|
|
van 5 knoppen de juiste kleur op eenp positie krijgen zonder te weten in welke volgorde deze moet.
|
|
|
|
.. image:: escape_room/design.png
|
|
|
|
.. image:: escape_room/nwsketch.png
|
|
|
|
Bij de eerste sketch waren RGB leds gekozen om de lampjes te representeren, om ruimte en praktische redenen werden de lampjes later vervangen met led-strips om bekabeling en troubleshooting
|
|
een simpler process te maken. Dit liet ook toe dat de hele puzzel op een breakboard kon worden gesoldeerd voor een meer robust resultaat om goed in hout te kunnen worden gezet.
|
|
|
|
.. image:: escape_room/nanobuild.jpg
|
|
.. image:: escape-room/oneshot_illustration.png
|
|
|
|
****
|
|
code
|
|
****
|
|
|
|
De code van dit prototype was geschreven in arduino/C++. Om de context van de code goed te begrijpen moet het spel ook begrepen worden: wanneer de puzzel opstart wordt er een willekeurige code
|
|
gegenereerd van 5 cijfers tussen 1 en 5. Elk cijfer staat paralel met een kleur van led strips. Wanneer de gebruiker op de 6e knop drukt om de kleurcode te controleren krijgt deze feedback over
|
|
hoeveel kleuren er correct zijn maar niet welke. De gebruiker kan dus alleen uitmaken welke kleur er correct is door af te leiden of er meer of minder correcte antwoorden zijn op basis van de feedback.
|
|
Voor de gebruiker wordt de code dus een kwestie vane de kleuren blijven aanpassen op basis van welke score deze krijgt net zoals het raden van een cijfercombinatie van een slot.
|
|
|
|
De led-strips worden indvidueel aangestuurd door de knoppen. Elke keer dat de konp word ingedrukt wordt een waarde van de knop aangepast om overeen te komen met een kleur. Denk dus rood 1, groen 2 etc.
|
|
.. image:: escape-room/oneshot_ledset.png
|
|
|
|
De waardes van de voorgenoemde led-strips worden hergebruikt voor het spel: De code die gegenereerd wordt heeft een vaste positie in een array. Als de gebruiker een lichtje veranderd via de knoppen dan wordt
|
|
achter de schermen door de gebruiker een eigen code gebouwd met de waardes van de lichtjes. dus denk een combinatie van groen, geel, blauw en rood als 3, 4, 1 en 5. Wanneer de gebruiker de code controleerd word
|
|
de array van de puzzel vergeleken met de array van de gebruiker. voor elk deel van de array's die niet overkomen word een fout waarde opgeteld, op basis van deze waarde krijgt de gebruiker te zien hoeveel er fout en goed waren.
|
|
.. image:: escape-room/oneshot_arraycheck.png
|
|
|
|
.. image:: escape_room/oneshot_pwdgen.png
|
|
|
|
.. image:: escape_room/flowchart.png
|
|
|