Inhoudsopgave:
- Benodigdheden
- Stap 1: Monteer de doos
- Stap 2: Sluit de elektronica aan
- Stap 3: Programmeren van de Arduino
- Stap 4: Het Crack the Code-spel spelen
Video: Crack the Code Game, Arduino Based Puzzle Box - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Tinkercad-projecten »
In deze Instructable laat ik je zien hoe je je eigen crack-the-codespel kunt bouwen waarin je een draaiknop gebruikt om de willekeurig gegenereerde code naar de kluis te raden. Er zijn 8 LED's aan de voorkant van de kluis om u te vertellen hoeveel van de cijfers die u hebt geraden correct zijn en hoeveel er ook op de juiste plaats staan.
De kluis is in eerste instantie open, waardoor je iets in het binnenvak kunt doen. De Arduino en batterij zijn ondergebracht in een apart compartiment aan de achterkant. Je drukt vervolgens op de draaiknop om de kluis te vergrendelen, wat gebeurt met behulp van een servo aan de binnenkant van de deur. Vervolgens moet u de code invoeren door aan de knop te draaien om de cijfers te selecteren en door op de knop te drukken om elk cijfer te bevestigen. Nadat uw vierde cijfer is gekozen, geeft de kluis aan hoeveel van uw cijfers correct zijn en hoeveel ervan op de juiste plaats zitten met behulp van de rode en groene LED's op de deur.
Een rode LED geeft een correct cijfer aan en een groene LED geeft aan dat het ook op de juiste plaats zit. Je moet dus alle vier de rode en groene LED's laten branden om de code te kraken en de kluis te openen.
De kluis houdt bij hoeveel keer je hebt geraden om de code te kraken en dit wordt weergegeven zodra je erin geslaagd bent om de code te kraken. Het klinkt in het begin misschien ingewikkeld, maar het is eigenlijk niet zo moeilijk, je hoeft alleen maar te onthouden en voort te bouwen op je eerdere gissingen. Meestal zou je de code in 5 tot 10 keer moeten kunnen kraken, afhankelijk van hoeveel geluk je aanvankelijke schattingen hebben.
Als je deze Instructable leuk vindt, overweeg dan om ervoor te stemmen in de Arduino-wedstrijd.
Benodigdheden
Om deze Crack The Code-kluis te bouwen, heb je het volgende nodig:
- Arduino Uno - Koop hier
- I2C OLED-scherm – Koop hier
- Drukknop-encoder - hier kopen
- 4 x 5 mm rode LED's - hier kopen
- 4 x 5 mm groene LED's - hier kopen
- 8 x 220Ω Weerstanden – Koop hier
- Micro Servo – Koop hier
- Lintkabel - hier kopen
- Headerstrips - Koop hier
- Aan / uit-schakelaar - hier kopen
- 3 mm MDF-plaat - hier kopen
Je hebt ook wat basisgereedschap, houtlijm, een lijmpistool en een soldeerbout nodig.
De onderdelen voor de kluis moeten met een laser worden gesneden. Als je geen toegang hebt tot een lasersnijder, overweeg dan om een online lasersnijservice te gebruiken, ze zijn redelijk betaalbaar geworden en zullen de componenten snijden en aan je deur leveren.
Dit is de lasersnijder die ik heb gebruikt in de Instructable - K40 Laser Cutter
Stap 1: Monteer de doos
Ik ontwierp de kluis in Inkscape, te snijden uit 3 mm MDF. Je kunt de onderdelen ook uit 3 mm acryl of multiplex snijden als je dat wilt. Als u een materiaal met een andere dikte gebruikt, moet u de sleuven in de dooscomponenten aanpassen zodat ze goed in elkaar passen.
U kunt de lasersnijbestanden hier downloaden.
Er zijn 6 panelen die de buitenkant van de doos vormen, de achterkant en voorkant hebben uitsparingen voor de voor- en achterdeuren. De panelen zijn gelabeld in het printbestand zodat u ze kunt volgen.
De wijzerplaat is ook gemaakt met behulp van enkele lasergesneden stukken die vervolgens aan elkaar worden gelijmd.
Er zijn drie decoratieve panelen die aan de bovenkant en twee zijkanten van de doos zijn geplakt om het meer op een kluis te laten lijken. Er zijn ook twee panelen die de deur vormen en een scheidingspaneel dat in het midden van de doos gaat om het kluiscompartiment van het elektronicacompartiment te scheiden.
De stukken passen op één stuk MDF 400 x 500 mm en kunnen in kleinere stukken worden verdeeld als uw lasersnijder niet groot genoeg is om alle stukken in één keer te snijden.
Ik begon eerst de decoratieve panelen op de boven- en zijkanten te lijmen. Zorg ervoor dat je de stukjes in de juiste volgorde hebt, zodat je weet welke welke zijn. Er zijn drie verschillende stukken, de boven- en onderkant zijn hetzelfde, de zijkanten zijn hetzelfde en de voor- en achterkant zijn hetzelfde.
Als de panelen droog zijn, kun je de doos in elkaar zetten.
Zorg ervoor dat de uitsparingen voor de middenverdeler aan de zijkanten zitten. Deze zijn bedoeld om alle draden van de voorkant van de doos naar de achterkant van de doos te leiden waar de Arduino en de batterij zitten.
De scharnieren zijn ook met een laser gesneden en worden gewoon op hun plaats gelijmd zodra je de deur hebt uitgelijnd. Zorg ervoor dat ze evenwijdig aan de deur staan, anders heb je moeite om hem te openen. Mogelijk moet u ook een beetje van de binnenste scharnierende rand van de deur schuren, zodat deze niet over de rand van de doos wrijft als deze voorbijgaat.
Lijm de vier vierkanten in de hoeken achter het achterpaneel om de schroeven voor de achterklep te boren.
U kunt dan de gaten voor de schroeven boren en beginnen met het monteren van het scherm, de Arduino, de achterkant en als laatste de encoder.
Stap 2: Sluit de elektronica aan
Ik ontwierp het circuit op een breadboard in Tinkercad Circuits en voegde het daarna toe in het OLED-display.
We hebben 8 LED's aangesloten op de digitale IO-pinnen 6 tot 13. De vergrendelingsservo is aangesloten op pin 5. De encoder is aangesloten op pinnen 2, 3 en 4 en het OLED-display is aangesloten op de I2C-interface van de Arduino.
Ik gebruikte een weerstand van 220 ohm voor elke LED, direct gesoldeerd op de negatieve led en ik verbond de componenten met elkaar met behulp van gekleurde lintkabel om de bedrading netjes te houden en om bij te houden welke draad naar elke Arduino-pin moest gaan.
Ik duwde de lintkabels door naar het achtercompartiment en soldeerde enkele pin-headerstrips op de lintkabel om op de Arduino aan te sluiten.
Ik heb ook een aan / uit-schakelaar op de achterklep gemonteerd en deze op een batterijstekker aangesloten om verbinding te maken met een oplaadbare batterij om het spel van stroom te voorzien. Je kunt ook een 9V-batterij gebruiken als je dat wilt.
Ten slotte moet u de vergrendelingsservo richting de rand van de deur plaatsen, zodat deze over de lip in de doos gaat en de arm tegen de binnenkant van de lip kan duwen om de doos te vergrendelen. Dit is niet het sterkste vergrendelingsmechanisme, maar het is heel eenvoudig en het werkt goed voor het doel van het spel.
Stap 3: Programmeren van de Arduino
Ik ga de code niet zo gedetailleerd doornemen als gewoonlijk, want er is best veel aan de hand. Ik heb een gedetailleerd artikel gemaakt waarin elk onderdeel ervan wordt uitgelegd en dat je samen met de codedownload kunt vinden via deze link - Crack The Code Game Code.
Samengevat; we beginnen met het importeren van bibliotheken om het OLED-display en de servo te bedienen.
Vervolgens stellen we de parameters voor de weergave in en creëren we al onze variabelen. Er zijn nogal wat variabelen gewijd aan het volgen van de encoder-draaiingen, aangezien deze worden gedaan door stijgende flankonderbrekingen op pinnen 2 en 3.
Er zijn twee codearrays gemaakt, een om de willekeurig gegenereerde code op te slaan en een om de huidige gok van de gebruiker op te slaan.
In de setup-functie starten we het display, bevestigen de servo, stellen de IO-pinmodi in en geven vervolgens de Crack The Code-tekstanimatie weer op het display.
De lusfunctie laat de LED's knipperen en geeft het bericht 'Duwen om de kluis te vergrendelen' weer, die vervolgens wacht tot de gebruiker op de knop drukt om het spel te starten. Dezelfde code wordt uitgevoerd aan het einde van een spel, dat vervolgens het aantal pogingen weergeeft en wacht op een druk op de knop om een nieuw spel te starten.
Er is een debouncing-code op de encoder-drukknop en eenmaal ingedrukt, vergrendelt de servo de kluis en wordt een willekeurige code gegenereerd. De code roept dan een functie aan om de gebruiker te vragen zijn gok in te voeren en vervolgens een andere om de gok te controleren, dit wordt herhaald totdat de gebruiker de code correct heeft geraden.
Er is een functie om de weergegeven code bij te werken, die wordt aangeroepen telkens wanneer aan de encoder wordt gedraaid en de weergegeven code moet worden gewijzigd.
De functie om een nieuwe code te genereren, kent eenvoudigweg een willekeurig cijfer toe aan elk van de vier elementen in de codereeks.
Met de functie om een code in te voeren, kan de gebruiker een cijfer selecteren met behulp van de encoder en vervolgens elke ingevoerde cijfer bevestigen door de encoder naar beneden te duwen.
De controlecode-gisfunctie kijkt dan door de geraden code en beslist hoeveel cijfers correct zijn en hoeveel op de juiste plaats.
De functie update-LED's schakelt het juiste aantal rode en groene LED's in op basis van de gok van de gebruiker.
De opstartani-functie toont de Crack The Code-animatie bij het opstarten.
Ten slotte beheren twee interruptfuncties de invoer van de encoder, één die het cijfer naar boven verhoogt wanneer deze met de klok mee wordt gedraaid en één naar beneden wanneer deze tegen de klok in wordt gedraaid.
Stap 4: Het Crack the Code-spel spelen
De beste manier om het spel te leren spelen, is door de video aan het begin te bekijken. Er zijn twee voorbeelden van het spel dat tegen het einde wordt gespeeld.
De kluis is in eerste instantie ontgrendeld, zodat u er iets in kunt doen.
U drukt vervolgens op de draaiknop om de kluis te vergrendelen en een nieuwe code te genereren.
De geraden code wordt ingevoerd met behulp van de draaiknop om het cijfer te verhogen en een druk op de draaiknop om naar het volgende cijfer te gaan of om de code te bevestigen zodra alle vier de cijfers zijn geselecteerd.
De LED's aan de voorkant lichten dan op om ons te vertellen wat correct was in onze gok.
U gebruikt deze feedback vervolgens om uw volgende gok te doen totdat u de juiste code kunt raden en de kluis opnieuw kunt openen. Nadat u de juiste code heeft ingevoerd, wordt de kluis ontgrendeld en wordt het aantal pogingen weergegeven dat u nodig had om de code te kraken.
Geniet van het bouwen van je eigen kluis voor het kraken van de code. Als je deze Instructable leuk vond, overweeg dan om ervoor te stemmen in de Arduino-wedstrijd.
Tweede prijs in de Arduino-wedstrijd 2020
Aanbevolen:
Memory Game Box: 6 stappen
Memory Game Box: dit project is een gewijzigde versie van https://www.instructables.com/id/Arduino-Simple-Me… Wijzigingen die ik heb aangebracht: "Arduino Simple Memory Game" naar "Memory Game Box" Vertragingstijd voor uiterlijk (script)Dit is een klein geheugenspelletje om de tijd door te
C-code uploaden naar ِAVR met Arduino Uno als programmeur: 6 stappen
Hoe C-code te uploaden naar ِAVR met Arduino Uno als programmeur: Hallo iedereen: D Hier zal ik een eenvoudige manier delen om elke AVR-chip te programmeren met Arduino Uno R3. Alles wat je nodig hebt om de code naar je microcontroller te branden, is Arduino Uno in plaats van specifieke programmeur die veel heeft gekost
Balance Box Game - Arduino Powered: 4 stappen (met afbeeldingen)
Balance Box Game - Arduino Powered: Het Balance Box-spel is gemaakt voor een uitdagingsevenement, het moet waterpas door een hindernisbaan of over een bepaalde afstand worden gedragen om de uitdaging te winnen. Een Arduino wordt gebruikt om de hoek van de box en activeer een alarm zodra de ingestelde hoek
Crack iTunes Protected Music (verwijder DRM-beveiliging): 5 stappen (met afbeeldingen)
Crack Itunes Protected Music (verwijder DRM-beveiliging): Muziek was in het verleden een groot deel van de samenleving, maar met technologie is het groter dan ooit! De snelste en gemakkelijkste manier om tegenwoordig aan muziek te komen is via internet ("Internet is een communicatiemiddel dat over de hele wereld wordt gebruikt en waar mensen elkaar kunnen ontmoeten
Hoe u kunt controleren of een game op uw computer kan worden uitgevoerd voordat u de game koopt: 4 stappen
Hoe u kunt controleren of een game op uw computer kan worden uitgevoerd voordat u de game koopt.: Ik heb onlangs Call of Duty 4 van een vriend gekocht (gratis zou ik kunnen toevoegen) omdat hij niet op zijn computer zou draaien. Wel, zijn computer is vrij nieuw, en het verbaasde me waarom hij niet zou werken. Dus na een paar uur zoeken op internet kwam ik