Innehållsförteckning:

Crack the Code Game, Arduino Based Puzzle Box: 4 Steg (med bilder)
Crack the Code Game, Arduino Based Puzzle Box: 4 Steg (med bilder)

Video: Crack the Code Game, Arduino Based Puzzle Box: 4 Steg (med bilder)

Video: Crack the Code Game, Arduino Based Puzzle Box: 4 Steg (med bilder)
Video: Cicada 3301: An Internet Mystery 2024, November
Anonim
Image
Image
Crack the Code Game, Arduino Based Puzzle Box
Crack the Code Game, Arduino Based Puzzle Box
Crack the Code Game, Arduino Based Puzzle Box
Crack the Code Game, Arduino Based Puzzle Box

Tinkercad -projekt »

I den här instruktionsboken kommer jag att visa dig hur du bygger ditt eget crack -kodspel där du använder en roterande kodare för att gissa den slumpmässigt genererade koden till kassaskåpet. Det finns 8 lysdioder på framsidan av kassaskåpet för att berätta hur många siffror du har gissat är korrekta och hur många som är på rätt plats också.

Kassaskåpet är initialt öppet, så att du kan stoppa in något i det inre facket. Arduino och batteri finns i ett separat fack på baksidan. Du trycker sedan på ratten för att låsa kassaskåpet, vilket görs med en servo på insidan av dörren. Du måste sedan mata in koden genom att vrida på ratten för att välja siffror och trycka på ratten för att bekräfta varje siffra. När din fjärde siffra har valts visar kassaskåpet hur många av dina siffror som är korrekta och hur många av dem är på rätt plats med de röda och gröna lysdioderna på dörren.

En röd lysdiod indikerar en korrekt siffra och en grön lysdiod indikerar att den också är på rätt plats. Så du måste tända alla fyra röda och gröna lysdioderna för att knäcka koden och öppna kassaskåpet.

Skåpet håller reda på hur många gissningar du har gjort för att knäcka koden och detta visas när du har lyckats knäcka den. Det kan låta komplicerat till en början men det är faktiskt inte så svårt, du behöver bara komma ihåg och bygga vidare på dina tidigare gissningar. För det mesta borde du kunna knäcka koden i 5 till 10 gissningar, beroende på hur lyckliga dina första gissningar är.

Om du gillar denna instruktionsbara, överväg att rösta på den i Arduino -tävlingen.

Tillbehör

För att bygga denna Crack The Code -kassaskåp behöver du:

  • Arduino Uno - Köp här
  • I2C OLED -skärm - Köp här
  • Tryckknappsgivare - Köp här
  • 4 x 5 mm röda lysdioder - Köp här
  • 4 x 5 mm gröna lysdioder - Köp här
  • 8 x 220Ω motstånd - Köp här
  • Micro Servo - Köp här
  • Bandkabel - Köp här
  • Header Strips - Köp här
  • Strömbrytare - Köp här
  • 3 mm MDF -ark - Köp här

Du behöver också några grundläggande verktyg, trälim, en limpistol och ett lödkolv.

Delarna till kassaskåpet måste laserskäras. Om du inte har tillgång till en laserskärare, överväg att använda en online laserskärningstjänst, de har blivit ganska prisvärda och kommer att skära och leverera komponenterna till din dörr.

Detta är laserskäraren som jag har använt i Instructable - K40 Laserskärare

Steg 1: Montera lådan

Montera lådan
Montera lådan
Montera lådan
Montera lådan
Montera lådan
Montera lådan
Montera lådan
Montera lådan

Jag utformade kassaskåpet i Inkscape, för att klippas av 3 mm MDF. Du kan också skära delarna från 3 mm akryl eller plywood om du vill. Om du använder material av annan tjocklek måste du justera spåren i lådkomponenterna så att de passar ihop korrekt.

Du kan ladda ner laserskärningsfilerna här.

Det finns 6 paneler som utgör lådans utsidor, baksidan och framsidan har utskärningar i fram- och bakdörrarna. Panelerna är märkta i utskriftsfilen så att du kan hålla reda på dem.

Urtavlan består också av några laserskurna bitar som sedan limmas ihop.

Det finns tre dekorativa paneler som sitter fast på ovansidan och två sidor av lådan för att det ska se mer ut som ett kassaskåp. Det finns också två paneler som utgör dörren och en avdelare som går in i mitten av lådan för att separera det säkra facket från elektronikfacket.

Bitarna passar på en enda bit MDF 400 x 500 mm och kan delas upp i mindre bitar om din laserskärare inte är tillräckligt stor för att klippa alla bitarna samtidigt.

Jag började limma de dekorativa panelerna på ovansidan och sidorna först. Se till att du har bitarna i rätt ordning så att du vet vilka som är vilka. Det finns tre olika bitar, toppen och botten är desamma, sidorna är desamma och fram- och baksidan är desamma.

När panelerna är torra kan du montera lådan.

Se till att utskärningarna för mittdelaren är på sidorna. Dessa ska driva alla ledningar från framsidan av lådan till baksidan av lådan där Arduino och batteri sitter.

Gångjärnen är också laserskurna och limmas bara på plats när du har ställt upp dörren. Se till att de är parallella med dörren, annars har du svårt att öppna den. Du kan också behöva slipa lite utanför dörrens inre gångjärnskant så att den inte gnuggar på kanten av lådan när den rör sig förbi.

Limma de fyra rutorna i hörnen bakom bakpanelen för att håla skruvarna till bakstycket.

Du kan sedan borra hålen för skruvarna och börja montera skärmen, Arduino, bakstycket och slutligen kodaren.

Steg 2: Anslut elektroniken

Anslut elektroniken
Anslut elektroniken
Anslut elektroniken
Anslut elektroniken
Anslut elektroniken
Anslut elektroniken

Jag konstruerade kretsen på en brödbräda i Tinkercad Circuits och lade till i OLED -displayen efteråt.

Vi har 8 lysdioder anslutna till de digitala IO -stiften 6 till 13. Låsservot är anslutet till stift 5. Kodaren ansluten till stift 2, 3 och 4 och OLED -displayen är ansluten till Arduinos I2C -gränssnitt.

Jag använde ett 220 ohm motstånd för varje lysdiod, lödde direkt på den negativa lysdioden och jag kopplade ihop komponenterna med hjälp av färgad bandkabel för att hålla ledningarna snygga och för att hålla reda på vilken tråd som behövdes gå till varje Arduino -stift.

Jag tryckte bandkablarna igenom till det bakre facket och lödde några stifthuvudremsor på bandkabeln för att ansluta till Arduino.

Jag monterade också en strömbrytare på baksidan och kopplade den till en batterikontakt för att ansluta till ett laddningsbart batteri för att driva spelet. Du kan också använda ett 9V batteri om du vill.

Slutligen måste du placera låsservot mot kanten av dörren så att den passerar över läppen i lådan och armen kan trycka upp mot läppens insida för att låsa lådan. Detta är inte den starkaste låsmekanismen men det är verkligen enkelt och det fungerar bra för spelets syfte.

Steg 3: Programmering av Arduino

Programmering av Arduino
Programmering av Arduino
Programmering av Arduino
Programmering av Arduino

Jag kommer inte att gå igenom koden så detaljerat som vanligt eftersom det finns ganska mycket i den. Jag har gjort en detaljerad beskrivning som förklarar varje del av den som du kan hitta tillsammans med nedladdningen av koden via denna länk - Crack The Code Game Code.

Sammanfattningsvis; Vi börjar med att importera bibliotek för att styra OLED -displayen och servon.

Vi ställer sedan in parametrarna för displayen och skapar alla våra variabler. Det finns en hel del variabler som är avsedda att spåra kodarens varv eftersom dessa görs genom stigande kantavbrott på stift 2 och 3.

Det finns två kodmatriser skapade, på för att lagra den slumpmässigt genererade koden och en för att lagra användarens aktuella gissning.

I installationsfunktionen startar vi displayen, fäster servon, ställer in IO -stiftlägen och visar sedan textanimationen Crack The Code på displayen.

Slingfunktionerna blinkar lysdioderna och visar meddelandet trycka för att låsa kassaskåp som sedan väntar tills användaren trycker på ratten för att starta spelet. Samma kod körs i slutet av ett spel som sedan visar antalet försök och väntar på ett tryck för att starta ett nytt spel.

Det finns någon avstängningskod på kodarens tryckknapp och när den väl trycks in låser servon kassaskåpet och en slumpmässig kod genereras. Koden anropar sedan en funktion för att be användaren att ange sin gissning och sedan en annan för att kontrollera gissningen, detta upprepas tills användaren gissar koden korrekt.

Det finns en funktion för att uppdatera koden som visas som anropas varje gång kodaren vrids och den visade koden måste ändras.

Funktionen för att generera en ny kod tilldelar helt enkelt en slumpmässig siffra till vart och ett av de fyra elementen i kodmatrisen.

Funktionen för att mata in en kodgissning gör att användaren kan välja en siffra med kodaren och sedan bekräfta varje sifferinmatning genom att trycka ned pulsgivaren.

Kontrollkodens gissningsfunktion tittar sedan igenom den gissade koden och avgör hur många siffror som är korrekta och hur många som är på rätt plats.

Uppdaterings -LED -funktionen växlar rätt antal röda och gröna lysdioder baserat på användarens gissning.

Startani -funktionen visar Crack The Code -animationen vid start.

Slutligen hanterar två avbrottsfunktioner ingången från kodaren, en ökar siffran uppåt när den vrids medurs och en nedåt när den vrids moturs.

Steg 4: Spela Crack the Code Game

Att spela Crack the Code Game
Att spela Crack the Code Game
Att spela Crack the Code Game
Att spela Crack the Code Game
Att spela Crack the Code Game
Att spela Crack the Code Game
Att spela Crack the Code Game
Att spela Crack the Code Game

Det bästa sättet att lära sig att spela spelet är genom att titta på videon i början, det finns två exempel på att spelet spelas nära slutet.

Kassaskåpet är ursprungligen olåst, så att du kan lägga något inuti det.

Du trycker sedan på ratten för att låsa värdeskåpet och generera en ny kod.

Den gissade koden matas in med hjälp av ratten för att öka siffran och ett tryck på ratten för att gå till nästa siffra eller för att bekräfta koden när alla fyra siffrorna har valts.

Lysdioderna på framsidan tänds sedan för att berätta vad som var korrekt i vår gissning.

Du använder sedan denna feedback för att göra din nästa gissning tills du kan gissa rätt kod och öppna kassaskåpet igen. När du väl lagt in rätt kod visas låset och antalet försök som det tog dig att knäcka koden visas.

Njut av att bygga din egen crack the code safe box. Om du tyckte om denna instruktionsbara, överväg att rösta på den i Arduino -tävlingen.

Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020

Andra priset i Arduino Contest 2020

Rekommenderad: