Innehållsförteckning:

A Quarantine Escape (the Boredom) Box: 7 Steg (med bilder)
A Quarantine Escape (the Boredom) Box: 7 Steg (med bilder)

Video: A Quarantine Escape (the Boredom) Box: 7 Steg (med bilder)

Video: A Quarantine Escape (the Boredom) Box: 7 Steg (med bilder)
Video: Camping in the Rain - Elevated Tent - Diesel Heating 2024, Juli
Anonim
A Quarantine Escape (the Boredom) Box
A Quarantine Escape (the Boredom) Box
A Quarantine Escape (the Boredom) Box
A Quarantine Escape (the Boredom) Box

Detta projekt har varit mitt personliga Arduino Quarantine Project. Jag arbetade konstant med det under de första veckorna i karantän, men sedan stötte jag på några problem med att använda servomotorer som jag inte lätt kunde lösa, så jag lade det åt sidan i några veckor. Men nu när vår stat började öppna sig igen bestämde jag mig för: Inget mer förhalande; dags att jag gör klart det här!

Jag är datorprogrammerare och databankonsult om dagen, men jag har en fascination av utrymningsrum och pussel. Även om jag inte har något intresse av att bygga Arduino -projekt som uppfyller behov som redan har hanterats kommersiellt (Varför skulle jag bygga ett ljussensor nattlampa när jag kan köpa en för ett par dollar i butiken?), När jag bestämde mig för att bygga ett eget hemodlad flyktrum för vänner i slutet av förra året, att lära sig att använda en Arduino i anpassade flyktpussel blev plötsligt något som jag var intresserad av. Som sagt, jag är inte alls en elingenjör och lär mig att lödda och använda elektriska komponenter korrekt har ofta varit en utmaning! Tack och lov för mängden Arduino -exempel och dokumentation på internet!

Så ungefär en vecka innan South Carolina stängdes in. Jag trollade gångarna i min lokala Goodwill -butik och jag stötte på ett trälådföremål med hyllor och en dörr och några krokar. Det var inte direkt klart för mig vad lådan var avsedd för, men jag trodde att med en Arduino i den kan det vara en bra rekvisita i det hemlagade flyktrummet som jag planerade för några vänner inom en snar framtid. Men efter att jag fick hem den kände jag äntligen igen vad den var: en överdimensionerad laddnings- / post- / nyckelstation. Inom en vecka efter den shoppingresan fick vi beskedet att "stanna hemma" och jag tittade på boxen igen. Jag tänkte att det kanske skulle kunna bli mer än jag ursprungligen trodde. Jag tänkte med alla sidor och separata fack, kanske skulle det kunna förvandlas till en pusselåda i flera steg som kan delas med vänner eller barn under karantän i stället för ett verkligt, nära kontaktflyktrum. Eftersom själva lådan i grunden är spånskiva med en vacker finish, ville jag designa något som krävde minimala ändringar i lådan så att den inte behövde touch-ups eller färg för att täcka hål eller repor. Därför behövde jag mina pussel för att arbeta med den befintliga arkitekturen på lådans sidor. Jag ville också utforma tillräckligt med pussel för att känna att varje sida av lådan var inblandad i minst ett pussel. Så jag tittade på det i ett par dagar och brainstormade … I varje avsnitt nedan delar jag med mig av mina första tankar, planer och ultimata lösningar för de olika sidorna av lådan. Det sista avsnittet summerar uppspelningssekvensen från början till slut och ger min Arduino -kod. I slutändan kunde jag klämma in 8 olika pussel på lådan, vilket jag tyckte var ett anständigt antal för en liten låda.

Förhoppningsvis om det är den typen av saker du är intresserad av, kan mina anteckningar och bilder ge dig några idéer för att designa dina egna.

Tillbehör

Olika Arduino -komponenter inklusive:

ELEGOO MEGA 2560 R3 Board (Arduino Mega utanför märket)

6 Volt solonoidlås

2 eller 3 icke-låsande hallsensorer

3 10 mm UV LED -lampor

2 röda lasrar

VISDOLL WS2801 Pixel LED-strängljus (kan adresseras individuellt)

3 tryckknappsbrytare (12/17mm vattentäta låslösa omkopplare)

HiLetgo mp3 -spelare Mini (DFPlayer)

Billig högtalare

6 fotoresistorer / ljusberoende resistorer 5 mm

Tolako 5 Volt relämodul

AuBreey digital lastcellsviktssensor 5 kg

Anker PowerCore -laddare (för att driva lampor och arduino)

9 Volt batteri (för att driva solonoid)

Tråd (efter behov)

Adapter (efter behov)

Jumper Wires (efter behov)

PCB -kort (efter behov)

Olika motstånd (efter behov)

Andra tillbehör:

Små kombinationslås

Små dragkedjor (som kan låsas med lås ovanför)

Plastfilm i olika färger eller mörker

Små tandläkartyp, teleskopiska och svängbara speglar

Brickor och muttrar

UV -penna (osynligt bläck)

Liten symbol eller karaktär som används för att hålla magnet (jag använde en tom läppbalsambehållare formad som en räv)

Snöre

Sällsynta jordartsmagneter

Papper

Tygskrot

Träskrot

Steg 1: Hooks -sidan av lådan

Hooks -sidan av lådan
Hooks -sidan av lådan
Hooks -sidan av lådan
Hooks -sidan av lådan
Hooks -sidan av lådan
Hooks -sidan av lådan

Min låda innehöll en sida med två krokar. Jag kunde ha tagit bort dem helt, men som nämnts var själva lådan spånskiva, och jag försökte hålla den så ärrfri som möjligt. Så vad kan krokarna på sidan användas till? Det uppenbara svaret var att hänga något från dem. Men hur kunde hängande något från dem förvandlas till ett pussel? Jag bestämde mig för att det kan vara något slags viktpussel. Ursprungligen planerade jag att fästa varje krok i en individuell skala, men efter att ha undersökt vikt- och töjningssensorer insåg jag att jag förmodligen inte hade plats för två sensorer i lådan och att bara använda en skulle göra programmeringen och elarbetet mycket enklare. Så även om jag visste att bara en av krokarna faktiskt skulle fungera, ville jag inte att spelaren skulle inse det själv. Jag planerade att göra flera föremål i olika vikter. Spelaren måste använda lite logik eller gissningar för att ta reda på hur man delar dessa föremål jämnt mellan de två krokarna. Det hade varit trevligt att ha söta men viktiga små metallkaraktärer eller föremål på halsband, men jag gick en billig väg och nöjde mig med olika brickor och nötter på garn. Varje garnslinga med hårdvara är märkt med en vikt i gram. Spelaren måste dela hårdvaran i två jämna uppsättningar och hänga varje uppsättning på en separat krok för att lösa pusslet. Viktgivaren jag använde är en 5 kg HX711 lastcellsviktssensor. Dess viktintervall är förmodligen för stort för jobbet, men det fungerar tillräckligt bra när det kalibreras. Det tog mig ett bra tag att ta reda på hur jag skulle sätta in viktgivaren i lådan så att en krok kunde dra i sensorn och den kunde registrera vikt. Slutligen kom jag på den konfigurerade bilden. Sensorns statiska sida är ansluten till ett block som skruvas in i lådans insida. Den andra sidan av sensorn har ett mindre block fäst på toppen som kroken från utsidan av lådan skruvas fast i (hela vägen genom lådsidan). Detta krävde att man använde en längre skruv och gjorde hålet som kroken ursprungligen skruvades tätt i från utsidan mycket större för att ge krokens skruv lite ge så att belastningen på den kunde avkännas av viktsensorn.

Från utsidan ser kroken normal ut, men den rör sig tillräckligt för att sätta lite tryck på den inre viktsensorn och ge en exakt avläsning (när den är kalibrerad).

Steg 2: Den höga postfickans sida av lådan

Den höga postfickans sida av lådan
Den höga postfickans sida av lådan
Den höga postfickans sida av lådan
Den höga postfickans sida av lådan
Den höga postfickans sida av lådan
Den höga postfickans sida av lådan
Den höga postfickans sida av lådan
Den höga postfickans sida av lådan

För sidan av lådan som innehåller en hög postficka gick jag igenom ett antal idéer. Slutligen bestämde jag mig för att jag ville använda lasrar någonstans på lådan, och det var här de äntligen placerades. Eftersom det höga facket är infällt kunde jag lägga till två lasrar överst och två fotoresistorer på vänster sida. Spelaren måste bestämma att han måste hitta ett sätt (med speglar) att rikta en laser mot varje sensor samtidigt. Förutom att bara ge spelare två handhållna speglar, ville jag att spelarna skulle kunna hitta ett sätt att placera speglar individuellt som inte krävde att använda båda händerna för att hålla speglarna. Jag funderade länge på vad som kan fungera för att göra detta. Slutligen insåg jag att svängande tandläkarspeglar kan göra vad jag ville. Jag trodde att om deras axlar kunde hållas stilla kunde deras teleskop- och svängningsfunktioner användas för att rikta laserstrålarna mot sensorn oberoende av varandra.

Jag borrade en träbit med en borr precis knappt över spegelaxelns diameter i ett träskrot som jag satte i botten på sidofickan. Således stöds speglarna upprätt medan spelaren justerar huvudet för att rikta lasrarna.

De små teleskopspeglarna har också fördelen att de är tillräckligt korta för att passa horisontellt under fickans ovansida, så det är inte direkt uppenbart att det finns speglar i sidan.

Steg 3: Lådans främre hyllsida

Lådans främre hyllsida
Lådans främre hyllsida
Lådans främre hyllsida
Lådans främre hyllsida
Lådans främre hyllsida
Lådans främre hyllsida

Lådans framsida hade två sluttande hyllor. Jag visste att jag ville använda de två hyllorna för olika pussel.

Jag bestämde mig för att ett pussel skulle använda ett svart ljus för att belysa osynligt UV -bläck, och det andra pusslet skulle använda flera ljussensorer (fotoresistorer) i rad. Efter att ha experimenterat med en enda UV -lampa som kom från slutet av en osynlig bläckpenna, tyckte jag att dess ljusstråle var otillfredsställande. Istället beställde jag större glödlampor (10 mm) och använde tre av dem för att belysa den översta hyllan som jag hade ritat en traditionell tangrampusseldesign i UV -bläck. Jag kopplade varje lampa individuellt till en Arduino -utgångsstift med ett 100K -motstånd (seriekopplat skulle ha krävt mer än de 5 volt jag försåg min Arduino med). Okänd för spelaren, en hallsensor (som känner av närvaron av en stark magnet) är ansluten till ett motstånd och varmlimmad på en viss plats bakom bakpanelen. När de svarta lamporna lyser måste spelaren använda tangrambitar av trä som han har levererats för att slutföra tangramdesignen. Den fyrkantiga tangrambiten har en inbäddad sällsynt jordartsmagnet i den, och när den placeras på rätt plats (ovanpå) är pusslet klart. I slutändan var jag nöjd med hur detta pussel blev. För den nedre hyllan hade jag tanken på att skapa ett pussel som skulle kräva att en spelare läste några ledtrådar och från dem placerade fyra tecken i rätt ordning från vänster till höger. Jag trodde att jag kunde skapa karaktärer (utskurna med min Silhouette Cameo) som hade transparenta filmfönster i olika nyanser.

Eftersom jag inte visste för mycket om fotoresistorer trodde jag att om karaktärerna placerades i rätt ordning skulle deras filmer på ett tillförlitligt sätt påverka ljusavläsningarna på var och en av ljussensorerna. Jag hittade flera olikfärgade plastfilmer och jag testade dem för att avgöra vilka fyra filmfärger som skiljde sig mest från varandra. Men denna idé fungerade bättre i teorin än i verkligheten.

Ljussensorer är i slutändan inte så tillförlitliga, och jag fann att den minsta skillnaden i installerade vinklar också påverkade avläsningen av varje sensor mycket, även om ljuset som lyser på dem alla var exakt samma. Med detta sagt var jag fast besluten att få detta att fungera, och jag hittade ett sätt att beställa karaktärerna och deras filmer över sensorerna som 1) aldrig skulle tillåta att pusslet skulle lösas av en slump och 2) på ett tillförlitligt sätt kunde lösas i ett rum med tillräckligt ljus varje gång. Dessa ljussensorer är anslutna exakt på samma sätt som sensorerna som används med lasrarna på den långa postsidan (med ett motstånd som delar upp det icke-positiva ena benet till ett negativt och inmatningsstift). Det finns gott om dokumentation om hur man kopplar dessa saker där ute.

Eftersom jag inte visste hur mycket ljus som skulle finnas när spelare försökte detta pussel, istället för att leta efter specifika värden eller skillnader mellan mätningarna, kontrollerar jag bara att min lättaste film hade högre avläsning än nästa lättaste film, och det filmen hade en högre läsning än nästa, och så vidare.

Mina beställnings ledtrådar, med covid-19 referenser för skojs skull, är avbildade. En annan sak som jag ursprungligen hade sett fram emot att göra med den här lådan var att ha några dolda fack ovanför hyllorna som automatiskt öppnades när en spelare löste ett pussel för att ge honom tillbehör till nästa pussel. Det finns en betydande mängd utrymme ovanför varje hylla för att göra detta. Så jag installerade två gångjärnspaneler och experimenterade med att försöka använda små servomotorer för att skjuta upp panelerna, men jag är ingen maskiningenjör och jag kunde bara inte få det att fungera bra. Jag lade projektet åt sidan i några veckor i frustration.

Efter några veckor bestämde jag mig för att jag skulle avsluta det här projektet, det var bäst att skrota tanken på att flytta dörrar. För att lösa problemet med att skaffa leveranser till spelaren kom jag på en mycket enkel lösning som beskrivs i The Top of the Box Step nedan.

Steg 4: Överst på lådan

Toppen av lådan
Toppen av lådan
Toppen av lådan
Toppen av lådan
Toppen av lådan
Toppen av lådan

Överst på lådan har ett lock som öppnas. Ursprungligen planerade jag att låsa locket och låta locket bara låsa upp och öppna när något pussel lyckades. Men efter att min hemöppnade fackidé öppnades automatiskt visade det mig för svårt att implementera på en rimlig tid, och jag insåg att jag behövde en enklare lösning. Jag bestämde mig för att låta toppen vara olåst och bara använda den för att lagra de "förnödenheter" som spelaren skulle tilldelas när han slutför varje pussel. Men hur kunde jag begränsa spelarna till bara de förnödenheter som de skulle få när de slutförde varje pussel? Mitt enkla svar var att ha små påsar med hänglås. Varje gång en spelare löser ett pussel som har en belöning, meddelas kombinationen av motsvarande lås och spelaren kan testa låsen för att ta reda på vilken väska han kan öppna.

Detta var en enkel lösning, och det förenklade kraftigt lådans mekanik utan att kompromissa med pussellösningen för mycket. Och det gjorde det möjligt för mig att äntligen få lådan färdig! Ultimate på toppen av lådan hamnade också en hel del elektriska komponenter från lamporna, knapparna och lasrarna.

Steg 5: Bakdörrens sida av lådan

Bakdörrssidan av lådan
Bakdörrssidan av lådan
Bakdörrssidan av lådan
Bakdörrssidan av lådan
Bakdörrssidan av lådan
Bakdörrssidan av lådan
Bakdörrssidan av lådan
Bakdörrssidan av lådan

Jag har alltid trott att lådans bakdörr skulle innehålla "priset" för att lösa alla pussel i lådan. Som det visade sig finns det dock SÅ många ledningar och laddare och andra elektriska komponenter där inne att det inte finns mycket utrymme för mycket annat. För pusslet på den här sidan trodde jag inledningsvis att jag skulle vilja ha ett plywoodgaller som passar över baksidan av dörren genom vilken en token med en magnet i basen skulle ta sig runt en labyrint, men jag hade inget sätt av att klippa ett trägaller, och jag bestämde mig för att en labyrint på ett papper eller tyg kan fungera lika bra även om det inte var lika coolt. I slutändan gjorde jag inte ens en verklig labyrint. Jag gjorde bara en enkel väg med strykjärn på vinyl på ett linnetyg. Tyget fästs på dörren med magneter (infälld på baksidan av dörren). Spelaren flyttar sin token (som innehåller en magnet i basen) från "start" till "slut" och utlöser i processen en hallsensor för att framgångsrikt slutföra pusslet och låsa upp magnetlåset på dörren. (För att göra det lite svårare att "fuska" vid [eller gå direkt till slutet], tänkte jag lägga till en andra hallsensor någonstans på rutten, men eftersom vägen är så enkel i alla fall verkade det som överkillning.) Min "token" är bara en gammal läppbalsambehållare som passar en sällsynt jordmagnet i basen.

Magnetventilen drivs av ett 9 volts batteri och ansluts till Arduino via ett 5 volts relä.

Även om pusslet är enkelt är förhoppningen för vissa spelare förhoppningsvis att det inte är direkt uppenbart vad som ska göras med tyget, symbolen och magneterna när de finns i leveranspåsen.

Steg 6: Ljus, knappar och ljud

Ljus, knappar och ljud
Ljus, knappar och ljud
Ljus, knappar och ljud
Ljus, knappar och ljud
Ljus, knappar och ljud
Ljus, knappar och ljud
Ljus, knappar och ljud
Ljus, knappar och ljud

Jag visste att jag ville att pusselådan skulle ha ljus och ljud. Jag trodde också att om jag hade knappar skulle jag ha mycket mer flexibilitet med de pussel jag kunde skapa. Jag bestämmer mig för att lägga till knapparna och lamporna runt lådans överkant för att hålla det så snyggt som möjligt. Jag borrade 4 hål på varje sida. Lamporna som används är 9 individuellt adresserbara, mångfärgade lysdioder på en enda sträng. De kräver ytterligare batterikraft utanför Arduino, men de är lätta att programmera. Detta var mitt första experiment med Arduino -knappar. Knapparna krävde också motstånd kopplade till dem. Det finns gott om dokumentation om knappar där ute. Ljudet levererades av en DFPlayer mp3 -spelare ansluten till en billig enda högtalare som jag tog ur en billig dockningshögtalare. Jag hade några problem med att referera filerna med namn eller till och med nummer (se kod), men i slutändan var det inte så svårt att ta reda på hur det skulle fungera. Med tre lampor och en knapp på var och en av tre sidor (vänster, höger och framsida) försökte jag komma med idéer för pussel. Slutligen bestämde jag mig för ett färgpussel, ett blinkande ljuspussel och ett pussel med lyssnande. För färgpusslet är de två yttre lamporna på varje sida inställda på primära färger. Det inre ljuset är inledningsvis släckt. Spelaren trycker på knappen för att slå på och ändra ljusets färg till rätt sekundärfärg. Till exempel, om de två utsidan är röd och blå, måste det inre ljuset ställas in på lila. För det blinkande pusslet har jag de två yttre lamporna på varje sida av lådan blinkande antalet gånger som motsvarar deras position. Från vänster till höger, 1, 3, 4, 6, 7, 9. Mittljuset på varje sida måste synkroniseras med sin position genom att trycka på knappen så många gånger. I slutändan vinns pusslet genom att ljuset vid position 1 blinkar en gång, ljuset i position 2 blinkar två gånger, hela vägen upp till ljuset i position 9 som blinkar 9 gånger. För lyssningspusslet läses en inspelad historia upp. Berättelsen innehåller orden VÄNSTER och HÖGER flera gånger. Vänster och höger knapp måste tryckas i samma ordning som historien för att slutföra pusslet. Dessutom används både ljus och ljud för att beteckna att spelaren framgångsrikt har slutfört vissa pussel, för att ge spelaren kombinationerna till leveransväskorna och för att låta honom veta att han har löst hela rutan.

Steg 7: Spelsekvensen och koden

Spelsekvensen och koden
Spelsekvensen och koden
Spelsekvensen och koden
Spelsekvensen och koden

Boxspelet är sekventiellt. De 8 gåtorna måste lösas i ordning. Och även om det finns många möjligheter att beställa pusslen, så här slutade jag med: Pusselboxen startar genom att spelaren (eller boxguiden, AKA me) trycker på vänster och höger knapp samtidigt. Färgpusselljusen lyser och spelaren måste bestämma att han måste ställa in mittlamporna på var och en av de tre sidorna med rätt sekundärfärg (orange, grönt, lila).

Efter att ha ställt in färgerna korrekt, slås lasrarna över postfickan på, och spelaren måste hitta de utom synhållsspeglarna och använda dem för att rikta laserstrålarna mot lasersensorerna.

Därefter startar blinkande pussel. Spelaren trycker på knappen så att mittljuset på varje sida blinkar rätt antal gånger, och efter avslutad, 1) läses ett nummer för kombinationen av en av tillbehörspåsarna och 2) UV -lamporna tänds.

Den första påsen innehåller tangrambitarna i trä. Spelaren ser tangrampusselets UV-belysta kontur och kompletterar formen med träbitarna. När den övre biten är placerad är pusslet löst, och ett meddelande spelas i princip som säger till spelaren att trycka på den främre knappen för att fortsätta.

När spelaren trycker på den främre knappen startar pusslet den VÄNSTER-HÖGRE historien. Han kan spela upp historien igen genom att trycka på den främre knappen igen. Så småningom inser han att han måste trycka på vänster eller höger knapp varje gång berättelsen säger en av riktningarna.

När han har slutfört vänster-höger-knappsekvensen korrekt, meddelas ytterligare ett meddelande med kombinationen av en annan tillbehörspåse. Den här gången innehåller väskan de viktade garnslingorna. Siffrorna på slingorna ger spelaren tips om att han behöver dela dem i lika högar. När samma vikt läggs på varje krok (faktiskt är det bara rätt krok som mäter), tillkännages en annan kombination.

Den här gången innehåller tillbehörspåsen karaktärerna med färgad film och ledtrådar för att instruera spelaren hur man beställer karaktärerna. Spelaren placerar dem i rätt ordning, och slutligen meddelas den sista kombinationen av leveranspåse.

Den sista påsen innehåller linnetyg med start-> slutlinje, 5 små magneter och en symbol med en magnet gömd i basen. Spelaren flyttar token från början till slut, och bakdörren låses slutligen upp och ljus och ljud meddelar att spelaren är den stora vinnaren.

Med så många ingångssensorer och utgångar behövde jag fler stift än Arduino Uno eller Nano kunde ge. Ultimate Jag använde en Mega utanför märket. Jag använde en kombination av 1) lödning direkt till sensorer och positiva och negativa trådar och 2) bygelstiften som skjuts direkt in i Mega. Jag gillade inte speciellt hur bygeln känns i Mega (typ av lösa), så jag använde lite hett lim för att ge dem lite mer stöd. Och för tillfället fungerar det, och jag ser fram emot att få fler att spela det!

Låt mig veta om du har några specifika frågor om leveranser eller metoder som jag använde för att fylla i den här rutan, så ska jag göra mitt bästa för att svara.

Om du gillar tanken på att använda en Arduino för att skapa pussel av Escape Room -typ, rekommenderar jag att du prenumererar på Playful Technology på YouTube. Värden, Alastair, är min Arduino -hjälte!

Om du tyckte att detta var intressant eller användbart, vänligen rösta på mig i tävlingen Slutför det redan. Tack för att du läser!

Rekommenderad: