Inhaltsverzeichnis:
- Schritt 1: Entwicklung des Arbeitsmodells
- Schritt 2: Komponenten sammeln
- Schritt 3: Hinderniserzeugung: Teil-A
- Schritt 4: Hinderniserzeugung: Teil-B
- Schritt 5: Der JUMP und das ERGEBNIS
- Schritt 6: Viel Spaß beim Spielen
Video: Dot Jump Game (ohne Arduino zu verwenden) - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Ü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
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
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
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
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
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:
So verwenden Sie ein Smartphone ohne Akku – wikiHow
So verwenden Sie ein Smartphone ohne Akku: Zuerst müssen Sie die Eingangspins der Zelle identifizieren; das ist das Positive und das Negative, die anderen beiden Pins spielen vorerst keine Rolle. Legen Sie die Batterie in das Mobiltelefon ein und identifizieren Sie, wo jeder Pol verläuft (positiv und negativ), wie in der Abbildung gezeigt
Max7219 8x8 Dot Matrix mit "skiiiD" verwenden: 9 Schritte
So verwenden Sie Max7219 8x8 Dot Matrix mit "skiiiD": Dies ist eine Videoanleitung von Max7219 8x8 Dot Matrix über "skiiiD". /Erste Schritte-W
ESP8266 Netzwerkuhr ohne RTC - Nodemcu NTP-Uhr Keine RTC - INTERNET-UHR-PROJEKT: 4 Schritte
ESP8266 Netzwerkuhr ohne RTC | Nodemcu NTP-Uhr Keine RTC | INTERNET-UHRPROJEKT: Im Projekt wird ein Uhrenprojekt ohne RTC erstellt, es wird Zeit vom Internet über WLAN benötigt und auf dem st7735-Display angezeigt
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50
Raspberry Pi ohne Monitor und Tastatur einrichten – wikiHow
So richten Sie Raspberry Pi ohne Monitor und Tastatur ein: Raspberry Pi ist ein kleiner Einplatinencomputer, auf dem das Linux-basierte Betriebssystem Raspbian ausgeführt wird. Diese Anleitung zeigt Ihnen, wie Sie Raspberry Pi (jedes Modell) ohne Monitor und Tastatur einrichten. Ich werde meinen Raspberry Pi 3 B+ mit Raspbi verwenden