Inhoudsopgave:
- Stap 1: Het werkmodel ontwikkelen
- Stap 2: Componenten verzamelen
- Stap 3: Het genereren van obstakels: deel A
- Stap 4: Obstakelgeneratie: deel B
- Stap 5: De JUMP en het RESULTAAT
- Stap 6: Veel plezier met spelen
Video: Dot Jump-spel (zonder Arduino te gebruiken): 6 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Overzicht
Hoi! Ik ben Shivansh, een student aan IIIT-Hyderabad. Ik ben hier met mijn eerste instructable, een spel dat is geïnspireerd op het Dinosaur Jump-spel van Google Chrome. Het spel is eenvoudig: spring over inkomende obstakels om een punt te scoren. Als je botst, verlies je en wordt de score gereset.
Het opvallende kenmerk van dit project is dat er geen gebruik wordt gemaakt van een Arduino of een andere microcontroller. Het is puur afgeleid van elektrische basiscomponenten en omvat de implementatie van Finite State Machines (FSM's) met behulp van logische diagrammen, enz.
Geïnteresseerd? Laten we beginnen.
Vereisten:
- Basiskennis over elektrische componenten zoals weerstanden, condensatoren, geïntegreerde circuits (IC's).
- Basiskennis van logische poorten (AND, OR, NOT, etc.)
- Kennis over de werking van Flip-Flop, Counter, Multiplexer, etc.
OPMERKING: De hierboven vermelde vereisten zijn bedoeld om de volledige werking van het project te begrijpen. Iemand die geen diepgaande kennis van hetzelfde heeft, kan het project ook bouwen volgens de stappen in de instructable.
Stap 1: Het werkmodel ontwikkelen
De eerste taak is het maken van een werkend model voor het project. Alleen dan kunnen we beslissen over de materialen die nodig zijn voor het project. Het hele project kan in drie delen worden opgedeeld.
Deel-1: Opwekking van obstakels
Ten eerste moeten we willekeurige obstakels genereren waar de Dot overheen kan springen. Obstakels zullen ook de vorm hebben van een puntpuls die van het ene uiteinde van de LED-array naar het andere gaat.
Voor het genereren van obstakels maken we gebruik van twee Timer Circuits (schakelschema's bijgevoegd), een met een High Frequency (HF Timer) en een andere met een Low Frequency (LF Timer). Het 'randomness'-gedeelte wordt afgehandeld door de HF-timer waarvan de uitvoer wordt gezien op elke stijgende flank van de LF-timer (die wordt beschouwd als CLK-invoer). De Obstacle Generation Instructie is de status van de HF Timer op elke stijgende flank van de LF Timer (1 -> Generate Obstacle | 0 -> Don't Generate Obstacle). De HF Timer wordt bij elke 'JUMP' RESET om te zorgen voor willekeurige obstakels. De output van de HF Timer wordt gegeven als de D-input naar een D Flip Flop (voor het opslaan van instructies voor de volgende cyclus) met CLK input als LF Timer Output.
Zodra de binaire instructie voor het genereren van obstakels uit is, moeten we de 'obstakelpuls' op de LED-array genereren. We doen dit met behulp van een 4-bit Counter waarvan de output wordt gegeven aan een 4x16 demultiplexer (DeMUX). De output van de DeMUX zou ervoor zorgen dat de 16 respectievelijke LED's gloeien.
Deel 2: De JUMP
Voor de JUMP-actie nemen we de drukknopinvoer als instructie. Zodra de instructie is gegeven, stopt de in-line object-LED met gloeien en gaat een andere LED erboven branden, wat een sprong betekent.
Deel 3: Resultaat
Het resultaat is als volgt: Als het object crasht, RESET het spel; anders, verhoog de score.
De botsing kan worden uitgedrukt als EN-ing van zowel het obstakelsignaal als het objectsignaal voor de grondpositie van het obstakel. Als er geen botsing plaatsvindt, wordt de puntenteller verhoogd, die wordt weergegeven op een paar 7-segmentsdisplays.
Stap 2: Componenten verzamelen
De benodigde componenten zijn als volgt:
- PCB x 1, Breadboard x 3"
- LED's: Groen(31), Rood(1), BiColor:Rood+Groen (1)
- Drukknop x 2"
- 7-segmentsdisplay x 2
- IC 555 x 3 [voor timerschakelingen]
- IC 7474 x 1 (D-flipflop)
- IC 7490 x 2 (Decade Counter) [voor het weergeven van de score]
- IC 7447 x 2 (BCD naar 7-segmentdecoder) [voor weergave van partituur]
- IC 4029 x 1 (4-bits teller) [voor weergave van obstakels]
- IC 74154 x 1 (DeMUX) [voor weergave van obstakels]
- IC 7400 x 3 (NIET poort)
- IC 7404 x 1 (NAND-poort)
- IC 7408 x 1 (EN-poort)
- IC-voetjes
- Spanningsbron (5V)
Benodigde gereedschappen:
- Soldeerbout
- Draadknipper
Stap 3: Het genereren van obstakels: deel A
Eerst moeten we de timercircuits instellen voor het genereren van Obstacle Generation Signal (HIGH/LOW).
De schakeling wordt opgezet volgens de eerder besproken theorie. Het schakelschema voor hetzelfde is hierboven bijgevoegd. Het circuit is als volgt geïmplementeerd op een breadboard (hoewel het ook op een PCB kan worden geïmplementeerd):
- Plaats de twee 555 IC's en D Flip Flop (IC 7474) over de scheidingswand van het breadboard met wat vrije ruimte (4-5 kolommen) ertussen.
- Verbind de bovenste rij van het breadboard met de positieve pool van de spanningsbron en de onderste rij met de negatieve pool.
- Maak verdere aansluitingen volgens het schakelschema. Na de nodige verbindingen zou het circuit er ongeveer zo uitzien als op de afbeelding hierboven.
OPMERKING: De waarden van weerstanden R1 & R2 en capaciteit C worden berekend met behulp van de volgende vergelijkingen:
T = 0,694 x (R1 + 2*R2) * C
waarbij T is vereist Tijdsperiode.
D = 0,694 x [(R1 + R2)/T] *100
waarbij D de bedrijfscyclus is, d.w.z. de verhouding van AAN-tijd tot totale tijd.
In dit project, voor de High-Frequency Timer, T = 0,5 sec en voor de Low-Frequency Timer, T = 2 sec.
Stap 4: Obstakelgeneratie: deel B
Nu we weten wanneer we het obstakel moeten genereren, moeten we het nu weergeven. We zullen een 4-bits teller, een demultiplexer, een timer en een reeks van 16 LED's gebruiken. Waarom 16? Dat komt omdat we met behulp van de demultiplexer de 4-bits uitvoer van de teller aan de 16 LED's zullen toewijzen. Dit betekent dat de teller van 0 tot 15 zal tellen en de demultiplexer de LED met die index zal inschakelen.
De rol van de timer is om de snelheid van het tellen te regelen, d.w.z. de snelheid van de beweging van obstakels. Het obstakel zal één positie verschuiven in één tijdsperiode van de timer. Je kunt spelen met verschillende waarden van R1, R2 en C met behulp van de vergelijkingen in de vorige stap om verschillende snelheden te krijgen.
Soldeer voor de LED-matrix 16 LED's lineair met een gemeenschappelijke massa. De positieve pool van elke LED wordt verbonden met de DeMUX (na inverteren met de NOT-poort, aangezien de DeMUX een LAGE output geeft).
Het schakelschema voor hetzelfde is hierboven bijgevoegd.
Stap 5: De JUMP en het RESULTAAT
Het volgende is de sprongactie. Om een sprong weer te geven, plaatst u gewoon een LED met een andere kleur boven de matrix, aardt u deze en bevestigt u de +ve-aansluiting op een knop. Bevestig het andere uiteinde van de drukknop aan de spanningsbron.
Neem ook een andere drukknop die naast de vorige is geplaatst en sluit een van de klemmen aan op +5V. De andere aansluiting gaat naar een NAND-poort (IC 7404) met de andere ingang van de NAND-poort als ingang naar de LED net onder de JUMP-LED (d.w.z. de object-LED). De output van de NAND Gate gaat naar RESET (PIN 2 en 3 van beide BCD-tellers) van de scoreteller. Wat we hiermee doen is dat we de score resetten als zowel het OBJECT LED (in basispositie) signaal en het OBJECT-signaal tegelijkertijd wordt gegeven, d.w.z. het object en het obstakel zijn gebotst.
Maak een regeling om ervoor te zorgen dat beide drukknoppen samen worden ingedrukt. Je mag een munt gebruiken en beide knopen erop plakken.
Volg voor het instellen van de scoreteller het hierboven bijgevoegde schakelschema (bron: www.iamtechnical.com).
OPMERKING: Sluit pin 2 en 3 wel aan op de uitgang van de NAND Gate om de score te resetten in geval van een botsing met het obstakel
Stap 6: Veel plezier met spelen
Dat is het. Je bent klaar met je project. Je kunt er wat afwerking aan toevoegen zodat het er goed uitziet. Rust is prima.
GENIETEN VAN..!!
Aanbevolen:
Hoe Android-telefoons te recyclen voor BOINC of Folding Rig zonder batterijen te gebruiken: 8 stappen
Hoe Android-telefoons voor BOINC of Folding Rig te recyclen zonder batterijen te gebruiken: WAARSCHUWING: IK BEN IN GEEN ENKEL VERANTWOORDELIJK VOOR ENIGE SCHADE AAN UW HARDWARE DOOR DEZE GIDS TE VOLGEN. Deze gids is effectiever voor BOINC-gebruikers (persoonlijke keuze / redenen), het kan ook worden gebruikt voor VOUWEN Aangezien ik niet al te veel tijd heb, wil ik
Een smartphone gebruiken zonder batterij: 5 stappen
Hoe een smartphone zonder batterij te gebruiken: Allereerst moet u de invoerpinnen van de cel identificeren; wat het positieve en het negatieve is, de andere twee pinnen doen er voorlopig niet toe. Plaats de batterij in de mobiele telefoon en identificeer waar elke pool naartoe gaat (positief en negatief), zoals weergegeven in de afbeelding
SPWM-generatormodule (zonder microcontroller te gebruiken): 14 stappen
SPWM-generatormodule (zonder microcontroller te gebruiken): Hallo allemaal, welkom bij mijn instructable! Ik hoop dat het jullie allemaal geweldig gaat. Onlangs raakte ik geïnteresseerd in het experimenteren met PWM-signalen en kwam ik het concept van SPWM (of sinusoïdale pulsbreedtemodulatie) tegen waarbij de werkcyclus van een trein van puls
Een opstartbare USB-drive maken zonder software te gebruiken: 3 stappen
Een opstartbare USB-drive maken zonder software te gebruiken: Om handmatig een opstartbare USB-drive te maken, gebruiken we de opdrachtprompt als een standaard Windows-programma. Hier zijn stap voor stap om een opstartbare USB-drive te maken als de Windows-installatiemedia. Om een opstartbare USB-drive te maken als een Windows-installatie me
Orange Pi gebruiken zonder monitor door SSH en VNC-server te gebruiken - Ajarnpa
Gebruik Orange Pi zonder monitor door SSH en VNC-server te gebruiken: Orange Pi is als een minicomputer. Het heeft alle basispoorten die een normale computer heeft.Zoals HDMIUSBEthernetIT heeft een aantal speciale speciale poorten ZoalsUSB OTGGPIO-headersSD-kaartsleufParallelle camerapoortAls u orange pi wilt bedienen, moet u o