Cuprins:

Dot Jump Game (fără utilizarea Arduino): 6 pași
Dot Jump Game (fără utilizarea Arduino): 6 pași

Video: Dot Jump Game (fără utilizarea Arduino): 6 pași

Video: Dot Jump Game (fără utilizarea Arduino): 6 pași
Video: Learn Arduino in 30 Minutes: Examples and projects 2024, Noiembrie
Anonim
Dot Jump Game (fără utilizarea Arduino)
Dot Jump Game (fără utilizarea Arduino)

Prezentare generală

Bună! Sunt Shivansh, student la IIIT-Hyderabad. Sunt aici cu primul meu instructable, care este un joc inspirat din jocul Dinosaur Jump de la Google Chrome. Jocul este simplu: sări peste obstacolele primite pentru a înscrie un punct. Dacă te ciocnești, pierzi și scorul se resetează.

Caracteristica de evidențiere a acestui proiect este că nu există utilizarea unui Arduino sau a altui microcontroler. Este derivat pur din componente electrice de bază și implică implementarea mașinilor cu stat finit (FSM) cu ajutorul diagramelor logice etc.

Interesat? Să începem.

Condiții preliminare:

  • Cunoștințe de bază despre componentele electrice precum rezistoare, condensatoare, circuite integrate (circuite integrate).
  • Cunoștințe de bază despre porțile logice (ȘI, SAU, NU etc.)
  • Cunoștințe despre funcționarea Flip-Flop, Counter, Multiplexer etc.

NOTĂ: Condițiile preliminare enumerate mai sus sunt pentru înțelegerea întregii funcționări a proiectului. O persoană care nu are cunoștințe aprofundate despre acest lucru poate construi proiectul urmând pașii din instructabil.

Pasul 1: Dezvoltarea modelului de lucru

Dezvoltarea modelului de lucru
Dezvoltarea modelului de lucru
Dezvoltarea modelului de lucru
Dezvoltarea modelului de lucru

Prima sarcină este de a crea un model de lucru pentru proiect. Abia atunci putem decide materialele necesare proiectului. Întregul proiect poate fi împărțit în trei părți.

Partea 1: Generarea de obstacole

În primul rând, trebuie să generăm obstacole aleatorii pentru ca Dot să sară peste. Obstacolele vor fi, de asemenea, sub forma unui impuls punct care se deplasează de la un capăt al matricei LED la celălalt.

Pentru generarea de obstacole, folosim două circuite cu temporizator (schemele de circuite atașate), unul cu frecvență înaltă (HF Timer) și altul cu frecvență joasă (LF Timer). Partea „aleatorie” este gestionată de temporizatorul HF a cărui ieșire este văzută pe fiecare margine ascendentă a temporizatorului LF (care este luată ca intrare CLK). Instrucțiunea de generare a obstacolelor este starea temporizatorului HF pe fiecare margine ascendentă a temporizatorului LF (1 -> Generare obstacol | 0 -> Nu genera obstacol). Cronometrul HF este RESETAT la fiecare „JUMP” pentru a asigura generarea aleatorie de obstacole. Ieșirea temporizatorului HF este dată ca intrare D către un flip flop D (pentru stocarea instrucțiunilor pentru următorul ciclu) cu intrare CLK ca ieșire temporizator LF.

Odată ce instrucțiunile binare pentru generarea obstacolelor sunt scoase, trebuie să generăm „pulsul obstacolului” pe matricea LED. O facem cu ajutorul unui contor de 4 biți a cărui ieșire este dată unui demultiplexor 4x16 (DeMUX). Ieșirea DeMUX ar face ca cele 16 LED-uri respective să strălucească.

Partea 2: SĂRTUL

Pentru acțiunea JUMP, vom lua ca instrucțiune intrarea butonului. Odată ce instrucțiunea este dată, LED-ul obiectului în linie încetează să mai aprindă și un alt LED deasupra acestuia luminează, ceea ce înseamnă un salt.

Partea 3: Rezultat

Rezultatul va fi după cum urmează: Dacă obiectul se blochează, RESTAȚI jocul; altfel, creșteți scorul.

Coliziunea poate fi exprimată ca ANDing al ambelor, semnalul obstacolului și semnalul obiectului pentru poziția la sol a obstacolului. Dacă nu are loc o coliziune, se crește Contorul punctelor care este afișat pe o pereche de afișaje cu 7 segmente.

Pasul 2: Strângerea componentelor

Componentele necesare sunt următoarele:

  • PCB x 1, Breadboard x 3
  • LED-uri: verde (31), roșu (1), BiColor: roșu + verde (1)
  • Apăsați butonul x 2
  • Afișaj cu 7 segmente x 2
  • IC 555 x 3 [pentru circuite cu temporizator]
  • IC 7474 x 1 (D FlipFlop)
  • IC 7490 x 2 (Decen Counter) [pentru afișarea scorului]
  • IC 7447 x 2 (decodor BCD la 7 segmente) [pentru afișarea scorului]
  • IC 4029 x 1 (Contor pe 4 biți) [pentru afișarea obstacolelor]
  • IC 74154 x 1 (DeMUX) [pentru afișarea obstacolelor]
  • IC 7400 x 3 (NU poarta)
  • IC 7404 x 1 (poartă NAND)
  • IC 7408 x 1 (poarta AND)
  • Prize IC
  • Sursa de tensiune (5V)

Instrumente necesare:

  • Ciocan de lipit
  • Cleste de sarma

Pasul 3: Generarea de obstacole: partea A

Generarea de obstacole: partea A
Generarea de obstacole: partea A
Generarea de obstacole: partea A
Generarea de obstacole: partea A

În primul rând, trebuie să setăm circuitele temporizatoare pentru generarea semnalului de generare a obstacolelor (HIGH / LOW).

Circuitul va fi configurat în conformitate cu teoria discutată anterior. Schema de circuit pentru aceeași este atașată mai sus. Circuitul este implementat pe o placă de calcul (deși poate fi implementat și pe un PCB) după cum urmează:

  • Așezați cele două 555 IC-uri și D Flip Flop (IC 7474) peste divizorul plăcii cu un spațiu liber (4-5 coloane) între ele.
  • Conectați rândul de sus al panoului cu borna pozitivă a sursei de tensiune și rândul de jos cu borna negativă.
  • Efectuați conexiuni suplimentare urmând schema de circuit. După conexiunile necesare, circuitul ar arăta similar cu imaginea atașată mai sus.

NOTĂ: Valorile rezistențelor R1 și R2 și ale capacității C sunt calculate utilizând următoarele ecuații:

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

unde este necesar T Perioada de timp.

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

unde D este ciclul de funcționare, adică raportul dintre timpul de pornire și timpul total.

În acest proiect, pentru temporizatorul de înaltă frecvență, T = 0,5 sec și pentru temporizatorul de frecvență joasă, T = 2 sec.

Pasul 4: Generarea de obstacole: Partea B

Generarea de obstacole: partea B
Generarea de obstacole: partea B
Generarea de obstacole: partea B
Generarea de obstacole: partea B
Generarea de obstacole: partea B
Generarea de obstacole: partea B

Acum, că știm când să generăm obstacolul, acum trebuie să-l afișăm. Vom folosi un contor pe 4 biți, un Demultiplexer, un temporizator și o serie de 16 LED-uri. De ce 16? Asta pentru că vom mapa ieșirea de 4 biți a contorului la cele 16 LED-uri folosind demultiplexorul. Înseamnă că contorul va conta de la 0 la 15 și demultiplexorul va porni LED-ul cu acel index.

Rolul temporizatorului este de a regla viteza de numărare, adică viteza de mișcare a obstacolelor. Obstacolul se va schimba o poziție într-o perioadă de timp a cronometrului. Puteți juca cu diferite valori de R1, R2 și C folosind ecuațiile din pasul anterior pentru a obține viteze diferite.

Pentru matricea cu LED-uri, lipiți 16 LED-uri într-un mod liniar, cu un teren comun. Terminalul pozitiv al fiecărui LED va fi conectat la DeMUX (după inversarea utilizând poarta NOT, deoarece DeMUX dă o ieșire LOW).

Schema de circuit pentru aceeași este atașată mai sus.

Pasul 5: SĂRUL și REZULTATUL

SĂRUL și REZULTATUL
SĂRUL și REZULTATUL
SĂRUL și REZULTATUL
SĂRUL și REZULTATUL
SĂRUL și REZULTATUL
SĂRUL și REZULTATUL

Următorul lucru este acțiunea de salt. Pentru afișarea unui salt, așezați doar un LED de culoare diferită deasupra matricei, legați-l la masă și atașați terminalul + ve la un buton. Atașați celălalt capăt al butonului la sursa de tensiune.

De asemenea, luați un alt buton, plasat adiacent celui precedent și atașați unul dintre terminalele sale la + 5V. Celălalt terminal se îndreaptă către o poartă NAND (IC 7404) cu cealaltă intrare a porții NAND ca intrare către LED-ul chiar sub LED-ul JUMP (adică LED-ul obiectului). Ieșirea porții NAND merge la RESET (PIN 2 și 3 ale ambelor contoare BCD) ale contorului de scor. Cu aceasta, ceea ce facem este să resetăm scorul dacă semnalul OBJECT LED (în poziția de bază) și semnalul OBSTACLE sunt date în același timp, adică obiectul și obstacolul s-au ciocnit.

Faceți unele aranjamente pentru a vă asigura că ambele butoane sunt apăsate împreună. Puteți folosi o monedă și lipiți ambele butoane de ea.

Pentru configurarea contorului de scoruri, urmați schema circuitului atașată mai sus (sursa Pic: www.iamtechnical.com).

NOTĂ: Conectați pinii 2 și 3 la ieșirea Porții NAND pentru ca acesta să reseteze scorul în caz de coliziune cu obstacolul

Pasul 6: Joc fericit

Joc fericit!
Joc fericit!
Joc fericit!
Joc fericit!
Joc fericit!
Joc fericit!

Asta e. Ați terminat cu proiectul dvs. Puteți adăuga câteva finisaje, astfel încât să arate bine. Odihna este bine.

DISCURAȚI-VĂ.. !!

Recomandat: