INHOUDSOPGAWE:

Dot Jump -spel (sonder om Arduino te gebruik): 6 stappe
Dot Jump -spel (sonder om Arduino te gebruik): 6 stappe

Video: Dot Jump -spel (sonder om Arduino te gebruik): 6 stappe

Video: Dot Jump -spel (sonder om Arduino te gebruik): 6 stappe
Video: VL53L1X Time-of-Flight 400cm laserafstandssensor 2024, November
Anonim
Dot Jump -spel (sonder om Arduino te gebruik)
Dot Jump -spel (sonder om Arduino te gebruik)

Oorsig

Haai daar! Ek is Shivansh, 'n student aan IIIT-Hyderabad. Ek is hier met my eerste instruksies, 'n speletjie wat geïnspireer is uit Google Chrome se Dinosaur Jump -spel. Die spel is eenvoudig: spring oor inkomende hindernisse om 'n punt te behaal. As u bots, verloor u en die telling word teruggestel.

Die kenmerk van hierdie projek is dat daar geen gebruik is van 'n Arduino of 'n ander mikrobeheerder nie. Dit is suiwer afkomstig van basiese elektriese komponente en behels die implementering van Finite State Machines (FSM's) met behulp van logiese diagramme, ens.

Stel u belang? Laat ons begin.

Voorvereistes:

  • Basiese kennis oor elektriese komponente soos weerstande, kondensators, geïntegreerde stroombane (IC's).
  • Basiese kennis van logiese hekke (EN, OF, NIE, ens.)
  • Kennis oor die werking van Flip-Flop, Counter, Multiplexer, ens.

OPMERKING: Die bogenoemde voorvereistes is vir die begrip van die volledige werking van die projek. Wie nie diepgaande kennis hiervan het nie, kan ook die projek bou volgens die stappe in die instruksies.

Stap 1: Ontwikkel die werkmodel

Ontwikkeling van die werkmodel
Ontwikkeling van die werkmodel
Ontwikkeling van die werkmodel
Ontwikkeling van die werkmodel

Die eerste taak is om 'n werkmodel vir die projek te skep. Slegs dan kan ons besluit watter materiaal benodig word vir die projek. Die hele projek kan in drie dele verdeel word.

Deel 1: Hindernisgenerering

Eerstens moet ons ewekansige struikelblokke genereer sodat die punt kan spring. Hindernisse sal ook in die vorm van 'n puntpuls wees wat van die een kant van die LED Array na die ander beweeg.

Om hindernisse op te wek, maak ons gebruik van twee tydskakels (kringdiagramme aangeheg), een met 'n hoë frekwensie (HF -timer) en 'n ander met 'n lae frekwensie (LF -timer). Die 'willekeurigheid' -gedeelte word hanteer deur die HF -timer, waarvan die uitset op elke stygende rand van die LF -timer gesien word (wat as CLK -invoer beskou word). Die instruksie vir die generering van hindernisse is die toestand van die HF -timer op elke stygende rand van die LF -timer (1 -> Genereer hindernis | 0 -> Moenie hindernis genereer nie). Die HF -timer is HERSTEL op elke 'JUMP' om willekeurige hindernisopwekking te verseker. Die uitset van die HF-timer word gegee as die D-invoer na 'n D Flip Flop (vir die stoor van instruksies vir die volgende siklus) met CLK-invoer as LF-timeruitgang.

Sodra die binêre instruksie vir hindernisgenerering uit is, moet ons die 'hindernispuls' op die LED Array genereer. Ons doen dit met behulp van 'n 4-bis teller waarvan die uitset gegee word aan 'n 4x16 demultiplexer (DeMUX). Die uitset van die DeMUX sou die 16 onderskeie LED's laat gloei.

Deel-2: Die SPRING

Vir die JUMP -aksie neem ons die drukknopinvoer as die instruksie. Sodra die instruksie gegee is, hou die in-line voorwerp-LED op met gloei en 'n ander LED daarbo gloei, wat 'n sprong aandui.

Deel 3: Resultaat

Die resultaat sal soos volg wees: As die voorwerp neerstort, RESET die spel; anders, verhoog die telling.

Die botsing kan uitgedruk word as ANDing van beide, die hindernissein en die voorwerpsein vir die grondposisie van die hindernis. As 'n botsing nie plaasvind nie, word die puntenteller verhoog, wat op 'n paar 7-segment-skerms vertoon word.

Stap 2: Versamel komponente

Die benodigde komponente is soos volg:

  • PCB x 1, broodbord x 3
  • LED's: Groen (31), Rooi (1), BiColor: Rooi+Groen (1)
  • Drukknoppie x 2
  • 7-segment skerm x 2
  • IC 555 x 3 [vir tydkringe]
  • IC 7474 x 1 (D FlipFlop)
  • IC 7490 x 2 (Decade Counter) [vir vertoning van telling]
  • IC 7447 x 2 (BCD tot 7-segment dekodeerder) [vir vertoning van telling]
  • IC 4029 x 1 (4-bis teller) [vir hindernisvertoning]
  • IC 74154 x 1 (DeMUX) [vir hindernisvertoning]
  • IC 7400 x 3 (NIE hek nie)
  • IC 7404 x 1 (NAND -hek)
  • IC 7408 x 1 (EN hek)
  • IC -voetstukke
  • Spanningsbron (5V)

Gereedskap benodig:

  • Soldeerbout
  • Draadsnyer

Stap 3: Hindernisgenerering: Deel-A

Hindernisgenerering: Deel-A
Hindernisgenerering: Deel-A
Hindernisgenerering: Deel-A
Hindernisgenerering: Deel-A

Eerstens moet ons die tydstroombane instel vir die opwekking van 'n hindernisopwekkingsein (HOOG/LAAG).

Die kring sal opgestel word in ooreenstemming met die teorie wat vroeër bespreek is. Die stroombaan diagram hiervan is hierbo aangeheg. Die kring word geïmplementeer op 'n broodbord (alhoewel dit ook op 'n PCB geïmplementeer kan word) soos volg:

  • Plaas die twee 555 IC's en D Flip Flop (IC 7474) oor die verdeler van die broodbord met 'n bietjie leë ruimte (4-5 kolomme) tussenin.
  • Verbind die boonste ry van die broodbord met die positiewe aansluiting van Spanningsbron en die onderste ry met die negatiewe terminaal.
  • Maak verdere verbindings volgens die kringdiagram. Na die nodige verbindings sal die stroombaan soortgelyk wees aan die prent hierbo.

LET WEL: Die waardes van weerstande R1 & R2 en kapasitansie C word bereken deur die volgende vergelykings te gebruik:

T = 0,694 x (R1 + 2 * R2) * C

waar T vereis word Tydperk.

D = 0,694 x [(R1 + R2)/T] *100

waar D die Duty Cycle is, d.w.s. die verhouding van ON -tyd tot totale tyd.

In hierdie projek, vir die hoëfrekwensie-timer, T = 0,5 sek. En vir die lae-frekwensie-timer, T = 2 sek.

Stap 4: Hindernisgenerering: Deel-B

Hindernisgenerering: Deel-B
Hindernisgenerering: Deel-B
Hindernisgenerering: Deel-B
Hindernisgenerering: Deel-B
Hindernisgenerering: Deel-B
Hindernisgenerering: Deel-B

Noudat ons weet wanneer ons die hindernis moet genereer, moet ons dit nou vertoon. Ons gebruik 'n 4-bis toonbank, 'n Demultiplexer, 'n timer en 'n verskeidenheid 16 LED's. Hoekom 16? Dit is omdat ons die 4-bis-uitset van die teller na die 16 LED's met die demultiplexer sal karteer. Dit beteken dat die teller 0 tot 15 tel en dat die demultiplexer die LED met die indeks aanskakel.

Die timer se rol is om die snelheid van tel, dws die snelheid van hindernisbeweging, te reguleer. Die hindernis sal een posisie in 'n eenmalige tydperk van die timer verander. U kan speel met verskillende waardes van R1, R2 en C deur die vergelykings in die vorige stap te gebruik om verskillende snelhede te kry.

Soldeer vir die LED -matriks 16 LED's op 'n lineêre manier met 'n gemeenskaplike grondslag. Die positiewe aansluiting van elke LED sal aan die DeMUX gekoppel word (na omkering met NOT gate, aangesien die DeMUX 'n LAE uitset lewer).

Die stroombaan diagram hiervan is hierbo aangeheg.

Stap 5: Die SPRING en die resultaat

Die SPRING en die RESULTAT
Die SPRING en die RESULTAT
Die SPRING en die RESULTAT
Die SPRING en die RESULTAT
Die SPRING en die RESULTAT
Die SPRING en die RESULTAT

Die volgende ding is die springaksie. Om 'n sprong te vertoon, plaas 'n LED van verskillende kleure bo die matriks, maal dit en heg sy +ve -terminaal aan 'n knoppie. Heg die ander kant van die drukknop aan die spanningsbron.

Neem ook nog 'n drukknoppie, aangrensend aan die vorige, en bevestig een van sy terminale aan +5V. Die ander terminaal gaan na 'n NAND -hek (IC 7404) met die ander ingang van NAND -hek as die ingang van die LED net onder die JUMP -LED (dws die voorwerp -LED). Die uitset van die NAND -hek gaan na RESET (PIN 2 en 3 van beide die BCD -tellers) van die tellingteller. Wat ons hiermee doen, is dat ons die telling terugstel as beide die OBJECT LED (in basisposisie) sein en die OBSTACLE sein op dieselfde tyd gegee word, dws die voorwerp en hindernis bots.

Tref 'n reëling om te verseker dat albei die drukknoppies saamgedruk word. U mag 'n muntstuk gebruik en albei die knoppies daaraan plak.

Volg die kringsdiagram hierbo aangeheg vir die opstel van die tellingteller (foto bron: www.iamtechnical.com).

LET WEL: Sluit pen 2 en 3 aan op die uitgang van die NAND -hek sodat die telling teruggestel kan word in geval van botsing met die hindernis

Stap 6: Gelukkig speel

Lekker speel!
Lekker speel!
Lekker speel!
Lekker speel!
Lekker speel!
Lekker speel!

Dis dit. U is klaar met u projek. U kan afwerking byvoeg sodat dit goed lyk. Rus is goed.

GENIET.. !!

Aanbeveel: