Inhaltsverzeichnis:

Dot Jump Game (ohne Arduino zu verwenden) - Gunook
Dot Jump Game (ohne Arduino zu verwenden) - Gunook

Video: Dot Jump Game (ohne Arduino zu verwenden) - Gunook

Video: Dot Jump Game (ohne Arduino zu verwenden) - Gunook
Video: Amazing arduino project 2024, Dezember
Anonim
Punktsprungspiel (ohne Arduino zu verwenden)
Punktsprungspiel (ohne Arduino zu verwenden)

Überblick

Hi! Ich bin Shivansh, ein Student am IIIT-Hyderabad. Ich bin hier mit meinem ersten instructable, das ein Spiel ist, das von Google Chromes Dinosaur Jump-Spiel inspiriert ist. Das Spiel ist einfach: Springen Sie über ankommende Hindernisse, um einen Punkt zu erzielen. Wenn Sie kollidieren, verlieren Sie und die Punktzahl wird zurückgesetzt.

Das hervorstechende Merkmal dieses Projekts ist, dass kein Arduino oder ein anderer Mikrocontroller verwendet wird. Es ist rein von grundlegenden elektrischen Komponenten abgeleitet und beinhaltet die Implementierung von Finite State Machines (FSMs) mit Hilfe von Logikdiagrammen usw.

Interessiert? Lass uns anfangen.

Voraussetzungen:

  • Grundkenntnisse über elektrische Komponenten wie Widerstände, Kondensatoren, integrierte Schaltungen (ICs).
  • Grundkenntnisse über Logikgatter (UND, ODER, NICHT usw.)
  • Kenntnisse über die Funktionsweise von Flip-Flop, Counter, Multiplexer, etc.

HINWEIS: Die oben aufgeführten Voraussetzungen dienen zum Verständnis der gesamten Funktionsweise des Projekts. Eine Person, die keine eingehenden Kenntnisse darüber hat, kann das Projekt auch nach den Schritten in der Anleitung erstellen.

Schritt 1: Entwicklung des Arbeitsmodells

Entwicklung des Arbeitsmodells
Entwicklung des Arbeitsmodells
Entwicklung des Arbeitsmodells
Entwicklung des Arbeitsmodells

Die erste Aufgabe besteht darin, ein Arbeitsmodell für das Projekt zu erstellen. Erst dann können wir entscheiden, welche Materialien für das Projekt benötigt werden. Das gesamte Projekt lässt sich in drei Teile gliedern.

Teil-1: Hindernisgenerierung

Zuerst müssen wir zufällige Hindernisse erzeugen, über die der Dot springen kann. Hindernisse haben auch die Form eines Punktimpulses, der sich von einem Ende des LED-Arrays zum anderen bewegt.

Zur Erzeugung von Hindernissen verwenden wir zwei Timer-Schaltungen (Schaltpläne beigefügt), eine mit einer Hochfrequenz (HF-Timer) und eine andere mit einer Niederfrequenz (LF-Timer). Der "Zufalls"-Teil wird vom HF-Timer verarbeitet, dessen Ausgang bei jeder steigenden Flanke des LF-Timers (der als CLK-Eingang verwendet wird) gesehen wird. Die Anweisung zur Erzeugung von Hindernissen ist der Zustand des HF-Timers bei jeder steigenden Flanke des LF-Timers (1 -> Generate Obstacle | 0 -> Don't Generate Obstacle). Der HF-Timer wird bei jedem „JUMP“zurückgesetzt, um eine zufällige Hinderniserzeugung zu gewährleisten. Der Ausgang des HF-Timers wird als D-Eingang an ein D-Flipflop (zum Speichern von Befehlen für den nächsten Zyklus) mit CLK-Eingang als LF-Timer-Ausgang gegeben.

Sobald die binäre Anweisung für die Hinderniserzeugung ausgegeben ist, müssen wir den „Hindernisimpuls“auf dem LED-Array generieren. Wir tun dies mit Hilfe eines 4-Bit-Zählers, dessen Ausgabe an einen 4x16-Demultiplexer (DeMUX) gegeben wird. Der Ausgang des DeMUX würde die 16 entsprechenden LEDs zum Leuchten bringen.

Teil-2: Der JUMP

Für die JUMP-Aktion nehmen wir den Push Button Input als Anweisung. Sobald die Anweisung gegeben wurde, hört die LED des Inline-Objekts auf zu leuchten und eine weitere LED darüber leuchtet, was einen Sprung anzeigt.

Teil-3: Ergebnis

Das Ergebnis ist wie folgt: Wenn das Objekt abstürzt, RESET das Spiel; andernfalls erhöhen Sie die Punktzahl.

Die Kollision kann als UND-Verknüpfung sowohl des Hindernissignals als auch des Objektsignals für die Bodenposition des Hindernisses ausgedrückt werden. Findet keine Kollision statt, wird der Punktzähler inkrementiert, der auf zwei 7-Segment-Anzeigen angezeigt wird.

Schritt 2: Komponenten sammeln

Die benötigten Komponenten sind wie folgt:

  • PCB x 1, Steckbrett x 3
  • LEDs: Grün(31), Rot(1), BiColor:Rot+Grün (1)
  • Druckknopf x 2
  • 7-Segment-Anzeige x 2
  • IC 555 x 3 [für Timer-Schaltungen]
  • IC 7474 x 1 (D-FlipFlop)
  • IC 7490 x 2 (Dekadenzähler) [zur Anzeige des Spielstands]
  • IC 7447 x 2 (BCD zu 7-Segment-Decoder) [zur Anzeige des Spielstands]
  • IC 4029 x 1 (4-Bit-Zähler) [für Hindernisanzeige]
  • IC 74154 x 1 (DeMUX) [für Hindernisanzeige]
  • IC 7400 x 3 (NICHT Gate)
  • IC 7404 x 1 (NAND-Gatter)
  • IC 7408 x 1 (UND-Gatter)
  • IC-Sockel
  • Spannungsquelle (5V)

Werkzeuge benötigt:

  • Lötkolben
  • Kabelschneider

Schritt 3: Hinderniserzeugung: Teil-A

Hinderniserzeugung: Teil-A
Hinderniserzeugung: Teil-A
Hinderniserzeugung: Teil-A
Hinderniserzeugung: Teil-A

Zuerst müssen wir die Zeitgeberschaltungen einrichten, um ein Hinderniserzeugungssignal (HIGH/LOW) zu erzeugen.

Die Schaltung wird gemäß der oben diskutierten Theorie aufgebaut. Der Schaltplan dazu ist oben angehängt. Die Schaltung wird auf einem Steckbrett (obwohl sie auch auf einer Leiterplatte implementiert werden kann) wie folgt implementiert:

  • Platzieren Sie die beiden 555-ICs und das D-Flip-Flop (IC 7474) über den Teiler des Steckbretts mit etwas freiem Platz (4-5 Spalten) dazwischen.
  • Verbinden Sie die obere Reihe des Steckbretts mit dem Pluspol der Spannungsquelle und die untere Reihe mit dem Minuspol.
  • Weitere Verbindungen nach Schaltplan herstellen. Nach den notwendigen Anschlüssen würde die Schaltung ähnlich der oben angehängten Abbildung aussehen.

HINWEIS: Die Werte der Widerstände R1 & R2 und der Kapazität C werden anhand der folgenden Gleichungen berechnet:

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

wobei T erforderlich ist Zeitraum.

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

wobei D der Arbeitszyklus ist, d. h. das Verhältnis von EIN-Zeit zu Gesamtzeit.

In diesem Projekt ist für den Hochfrequenz-Timer T = 0,5 Sek. und für den Niederfrequenz-Timer T = 2 Sek.

Schritt 4: Hinderniserzeugung: Teil-B

Hinderniserzeugung: Teil-B
Hinderniserzeugung: Teil-B
Hinderniserzeugung: Teil-B
Hinderniserzeugung: Teil-B
Hinderniserzeugung: Teil-B
Hinderniserzeugung: Teil-B

Da wir nun wissen, wann das Hindernis erzeugt werden muss, müssen wir es jetzt anzeigen. Wir verwenden einen 4-Bit-Zähler, einen Demultiplexer, einen Timer und ein Array von 16 LEDs. Warum 16? Das liegt daran, dass wir den 4-Bit-Ausgang des Zählers mit dem Demultiplexer auf die 16 LEDs abbilden. Dies bedeutet, dass der Zähler von 0 bis 15 zählt und der Demultiplexer die LED mit diesem Index einschaltet.

Die Aufgabe des Timers besteht darin, die Zählgeschwindigkeit, d. h. die Geschwindigkeit der Hindernisbewegung, zu regulieren. Das Hindernis verschiebt sich in einer Zeitperiode des Timers um eine Position. Sie können mit verschiedenen Werten von R1, R2 und C herumspielen, indem Sie die Gleichungen im vorherigen Schritt verwenden, um unterschiedliche Geschwindigkeiten zu erhalten.

Für die LED-Matrix 16 LEDs linear mit einer gemeinsamen Masse verlöten. Der positive Anschluss jeder LED wird mit dem DeMUX verbunden (nach der Invertierung mit dem NOT-Gatter, da der DeMUX einen LOW-Ausgang liefert).

Der Schaltplan dazu ist oben angehängt.

Schritt 5: Der JUMP und das ERGEBNIS

Der JUMP und das ERGEBNIS
Der JUMP und das ERGEBNIS
Der JUMP und das ERGEBNIS
Der JUMP und das ERGEBNIS
Der JUMP und das ERGEBNIS
Der JUMP und das ERGEBNIS

Als nächstes kommt die Sprungaktion. Um einen Sprung anzuzeigen, platzieren Sie einfach eine LED mit einer anderen Farbe über der Matrix, erden Sie sie und schließen Sie ihren +ve-Anschluss an eine Taste an. Schließen Sie das andere Ende des Tasters an die Spannungsquelle an.

Nehmen Sie auch einen weiteren Druckknopf, der neben dem vorherigen platziert ist, und schließen Sie einen seiner Anschlüsse an +5V an. Der andere Anschluss geht zu einem NAND-Gatter (IC 7404), wobei der andere Eingang des NAND-Gatters als Eingang zur LED direkt unter der JUMP-LED (d. h. der Objekt-LED) dient. Der Ausgang des NAND-Gatters geht auf RESET (PIN 2 und 3 der beiden BCD-Zähler) des Punktezählers. Damit setzen wir den Score zurück, wenn gleichzeitig das Signal OBJEKT-LED (in Grundstellung) und das Signal HINDERNISS gegeben werden, d. h. Objekt und Hindernis kollidierten.

Treffen Sie einige Vorkehrungen, um sicherzustellen, dass beide Druckknöpfe zusammen gedrückt werden. Sie können eine Münze verwenden und beide Knöpfe darauf kleben.

Zum Einrichten des Punktezählers folgen Sie dem oben beigefügten Schaltplan (Bildquelle: www.iamtechnical.com).

HINWEIS: Verbinden Sie Pin 2 und 3 mit dem Ausgang des NAND-Gates, damit es die Punktzahl im Falle einer Kollision mit dem Hindernis zurücksetzt

Schritt 6: Viel Spaß beim Spielen

Viel Spaß beim Spielen!
Viel Spaß beim Spielen!
Viel Spaß beim Spielen!
Viel Spaß beim Spielen!
Viel Spaß beim Spielen!
Viel Spaß beim Spielen!

Das ist es. Sie sind mit Ihrem Projekt fertig. Sie können es etwas veredeln, damit es gut aussieht. Ruhe ist in Ordnung.

VIEL SPASS..!!

Empfohlen: