Indholdsfortegnelse:

Dot Jump -spil (uden brug af Arduino): 6 trin
Dot Jump -spil (uden brug af Arduino): 6 trin

Video: Dot Jump -spil (uden brug af Arduino): 6 trin

Video: Dot Jump -spil (uden brug af Arduino): 6 trin
Video: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, November
Anonim
Dot Jump -spil (uden brug af Arduino)
Dot Jump -spil (uden brug af Arduino)

Oversigt

Hej! Jeg er Shivansh, studerende ved IIIT-Hyderabad. Jeg er her med min første instruerbare, som er et spil inspireret af Google Chrome's Dinosaur Jump -spil. Spillet er enkelt: Spring over indkommende forhindringer for at score et point. Hvis du støder sammen, taber du, og scoren nulstilles.

Det fremhævende træk ved dette projekt er, at der ikke er brug af en Arduino eller nogen anden mikrokontroller. Det er rent afledt af grundlæggende elektriske komponenter og involverer implementering af Finite State Machines (FSM'er) ved hjælp af logiske diagrammer osv.

Interesseret? Lad os komme igang.

Forudsætninger:

  • Grundlæggende know-how om elektriske komponenter som modstande, kondensatorer, integrerede kredsløb (IC'er).
  • Grundlæggende viden om Logic Gates (AND, OR, NOT, etc.)
  • Viden om arbejdet med Flip-Flop, Counter, Multiplexer osv.

BEMÆRK: Ovenstående forudsætninger er for at forstå hele projektets arbejde. En, der ikke har indgående kendskab til det samme, kan også bygge projektet ved at følge trinene i den instruerbare.

Trin 1: Udvikling af arbejdsmodellen

Udvikling af arbejdsmodellen
Udvikling af arbejdsmodellen
Udvikling af arbejdsmodellen
Udvikling af arbejdsmodellen

Den første opgave er at skabe en arbejdsmodel for projektet. Først derefter kan vi bestemme de nødvendige materialer til projektet. Hele projektet kan opdeles i tre dele.

Del-1: Hindringsgenerering

For det første skal vi generere tilfældige forhindringer for, at prikken springer over. Forhindringer vil også være i form af en punktpuls, der bevæger sig fra den ene ende af LED Array til den anden.

Til generering af forhindringer gør vi brug af to timerkredsløb (vedlagte kredsløbsdiagrammer), et med en højfrekvens (HF -timer) og en anden med en lavfrekvens (LF -timer). 'Tilfældigheds' -delen håndteres af HF -timeren, hvis output ses på hver stigende kant af LF -timeren (der tages som CLK -input). Hindergenereringsinstruktionen er tilstanden for HF -timeren på hver stigende kant af LF -timeren (1 -> Generer forhindring | 0 -> Generer ikke forhindring). HF -timeren er NULSTILLET på hvert 'JUMP' for at sikre tilfældig forhindring. Output fra HF Timer er givet som D-input til en D Flip Flop (til lagring af instruktion for den næste cyklus) med CLK input som LF Timer Output.

Når den binære instruktion til forhindringsgenerering er ude, skal vi generere 'forhindringspulsen' på LED Array. Vi gør det ved hjælp af en 4-bit tæller, hvis output er givet til en 4x16 demultiplexer (DeMUX). Output fra DeMUX ville få de 16 respektive lysdioder til at lyse.

Del-2: HOPPET

Til JUMP -handlingen tager vi trykknapindgangen som instruktion. Når instruktionen er givet, stopper den in-line objekt-LED med at lyse, og en anden LED ovenover lyser, hvilket betyder et spring.

Del-3: Resultat

Resultatet bliver sådan: Hvis objektet går ned, NULSTIL spillet; ellers øges scoren.

Kollisionen kan udtrykkes som ANDing af begge, forhindringssignalet og objektsignalet for forhindringens jordposition. Hvis der ikke sker en kollision, øges punkttælleren, som vises på et par 7-segment displays.

Trin 2: Indsamling af komponenter

De nødvendige komponenter er som følger:

  • PCB x 1, brødbræt x 3
  • Lysdioder: Grøn (31), Rød (1), BiColor: Rød+Grøn (1)
  • Trykknap x 2
  • 7-segment skærm x 2
  • IC 555 x 3 [til timer kredsløb]
  • IC 7474 x 1 (D FlipFlop)
  • IC 7490 x 2 (Decade Counter) [til visning af score]
  • IC 7447 x 2 (BCD til 7-segment dekoder) [til visning af score]
  • IC 4029 x 1 (4-bit tæller) [til forhindringsvisning]
  • IC 74154 x 1 (DeMUX) [til forhindringsvisning]
  • IC 7400 x 3 (IKKE port)
  • IC 7404 x 1 (NAND -port)
  • IC 7408 x 1 (OG port)
  • IC -stik
  • Spændingskilde (5V)

Nødvendige værktøjer:

  • Loddekolbe
  • Wire Cutter

Trin 3: Hindringsgenerering: Del-A

Hindringsgenerering: Del-A
Hindringsgenerering: Del-A
Hindringsgenerering: Del-A
Hindringsgenerering: Del-A

Først skal vi konfigurere timerkredsløbene til generering af Obstacle Generation Signal (HIGH/LOW).

Kredsløbet vil blive opsat i overensstemmelse med den teori, der blev diskuteret tidligere. Kredsløbsdiagrammet for det samme er vedhæftet ovenfor. Kredsløbet er implementeret på et brødbræt (selvom det også kan implementeres på et printkort) som følger:

  • Placer de to 555 IC'er og D Flip Flop (IC 7474) hen over skillelinjen på brødbrættet med noget ledigt mellemrum (4-5 kolonner) imellem.
  • Forbind den øverste række af brødbrættet med den positive terminal af spændingskilde og den nederste række med den negative terminal.
  • Foretag yderligere tilslutninger efter kredsløbsdiagrammet. Efter de nødvendige forbindelser ville kredsløbet ligne billedet ovenfor.

BEMÆRK: Værdierne for modstande R1 & R2 og kapacitans C beregnes ved hjælp af følgende ligninger:

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

hvor T er påkrævet Tidsperiode.

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

hvor D er driftscyklussen, dvs. forholdet mellem ON -tid og total tid.

I dette projekt, for højfrekvens-timeren, T = 0,5 sek. Og for lavfrekvent-timeren, T = 2 sek.

Trin 4: Hindringsgenerering: Del-B

Hindringsgenerering: Del-B
Hindringsgenerering: Del-B
Hindringsgenerering: Del-B
Hindringsgenerering: Del-B
Hindringsgenerering: Del-B
Hindringsgenerering: Del-B

Nu hvor vi ved, hvornår vi skal generere forhindringen, skal vi nu vise den. Vi vil bruge en 4-bit tæller, en Demultiplexer, en timer og en række 16 lysdioder. Hvorfor 16? Det er fordi vi vil kortlægge tællerens 4-bit output til de 16 lysdioder ved hjælp af demultiplexeren. Det betyder, at tælleren tæller 0 til 15, og demultiplexeren tænder LED'en med dette indeks.

Timerens rolle er at regulere tællehastigheden, dvs. hastigheden af forhindringsbevægelse. Forhindringen skifter én position i en tidsperiode i timeren. Du kan lege med forskellige værdier på R1, R2 og C ved hjælp af ligningerne i det foregående trin for at få forskellige hastigheder.

Til LED -matrixen loddes 16 LED'er lineært med en fælles grund. Den positive terminal på hver LED vil blive forbundet til DeMUX (efter invertering ved hjælp af NOT gate, da DeMUX giver en LOW output).

Kredsløbsdiagrammet for det samme er vedhæftet ovenfor.

Trin 5: HOPPET og RESULTATET

HOPPET og RESULTATET
HOPPET og RESULTATET
HOPPET og RESULTATET
HOPPET og RESULTATET
HOPPET og RESULTATET
HOPPET og RESULTATET

Næste ting er spring -handlingen. For at vise et spring, skal du blot placere en LED i anden farve over matrixen, jorden den og fastgøre dens +ve terminal til en knap. Sæt den anden ende af trykknappen til spændingskilden.

Tag også en anden trykknap, placeret ved siden af den forrige, og fastgør en af dens terminaler til +5V. Den anden terminal går til en NAND Gate (IC 7404) med den anden indgang i NAND Gate som input til LED'en lige under JUMP LED (dvs. objekt -LED). Outputtet fra NAND -porten går til RESET (PIN 2 og 3 for begge BCD -tællerne) på scoretælleren. Med dette er det, vi gør, at vi nulstiller scoren, hvis både OBJECT LED (i basisposition) signalet og OBSTACLE -signalet er givet på samme tid, dvs. objektet og forhindringen kolliderede.

Lav et arrangement for at sikre, at begge trykknapper trykkes sammen. Du kan bruge en mønt og stikke begge knapper til den.

Følg kredsløbsdiagrammet, der er vedhæftet ovenfor for opsætning af scoretælleren (Pic -kilde: www.iamtechnical.com).

BEMÆRK: Tilslut pin 2 og 3 til udgangen af NAND -porten, så den nulstiller scoren i tilfælde af kollision med forhindringen

Trin 6: God spil

Glad for at spille!
Glad for at spille!
Glad for at spille!
Glad for at spille!
Glad for at spille!
Glad for at spille!

Det er det. Du er færdig med dit projekt. Du kan tilføje lidt efterbehandling til det, så det ser godt ud. Hvile er fint.

GOD FORNØJELSE..!!

Anbefalede: