Snake Game ist seit Beginn der Handys sehr beliebt. Anfangs war es in Schwarz-Weiß-Handys erhältlich und wurde bald sehr berühmt. Mit der Weiterentwicklung der Handys hat sich auch dieses Spiel stark verändert, und jetzt sind viele grafische und farbenfrohe Versionen dieses Spiels verfügbar.
Snake Game ist auch ein sehr beliebtes DIY-Projekt für Elektronik-Hobbyisten und Studenten geworden. Deshalb werden wir heute Arduino Snake Game mit all seinen grundlegenden Funktionen demonstrieren und es gleichzeitig einfach halten.
Verwendete Komponenten:
- Arduino UNO
- 8x8 LED Dot Matrix Display
- Schieberegister 74HC595
- 16x2 LCD
- POT 1K
- Drück Knöpfe
- Kabel anschließen
- Brotbrett
- Energieversorgung
Arbeitserklärung:
Dies ist ein wenig kompliziertes Spiel zu bauen. Aber in diesem Tutorial haben wir es Ihnen einfach gemacht. Um dieses Projekt zu realisieren, haben wir ein 8x8 rotes Punktmatrix-Display zur Anzeige der Schlange und ihres Nahrungspunkts, ein LCD zur Anzeige der Punkte oder Punkte, 5 Drucktasten zur Angabe von Anweisungen und zum Starten des Spiels und schließlich ein Arduino UNO zur Steuerung verwendet das ganze den prozess. Das Pin-Diagramm des 8x8 LED-Punktmatrix-Displays mit dem Originalbild ist unten angegeben:
Wenn wir die Schaltung einschalten, zeigen wir zuerst eine Begrüßungsnachricht und dann einen Hinweis auf „Start drücken“ auf dem LCD. Danach zeigt das LCD die Punktzahl als Null an und die Punktmatrixanzeige zeigt zwei Punkte als Schlange und einen einzelnen Punkt als Nahrung.
Jetzt muss der Benutzer die mittlere Taste drücken, um das Spiel zu starten, und die Schlange bewegt sich standardmäßig nach oben. Dann muss der Benutzer der Schlange die Richtung geben, indem er die Richtungstasten um die mittlere Taste drückt. Hier haben wir fünf Tasten (Drucktasten) verwendet, nämlich Linke Taste, Rechte Taste, Aufwärts-Taste, Abwärts-Taste und Start-Taste. Immer wenn die Schlange den Futterpunkt erreicht oder das Futter frisst, erhöht sich die Punktzahl jedes Mal um 5 Punkte und die Schlangenlänge wird jedes Mal um einen Punkt (LED) erhöht. Außerdem wird die Schlangengeschwindigkeit schneller als zuvor. Und wenn eine Schlange gegen eine Wand schlägt oder das Ende der LED-Matrix erreicht, endet das Spiel („Game Over“). Dann muss der Benutzer das Spiel erneut starten, indem er die Starttaste drückt.
Schaltungserklärung:
Die Schaltung dieses Snake Game-Projekts ist wenig komplex. Hier haben wir die Punktmatrixanzeige mit dem Schieberegister 74HC595 verbunden. Hier werden zwei Schieberegister verwendet, eines zum Ansteuern der Spalten und das zweite zum Ansteuern der Zeilen. Steuerstifte sowohl der Register, des Spaltenverschiebungsregisters als auch des Zeilenverschiebungsregisters (SH, ST),sind direkt mit Arduinos Pin Nummer 14 bzw. 16 verbunden. Der DS-Pin des Spaltenschieberegisters und das Zeilenschieberegister sind direkt mit den Pins 15 und 17 von Arduino verbunden. Die Starttaste zum Starten des Spiels ist an Pin 3, die linke Richtungstaste an Pin 4, die rechte Richtungstaste an Pin 6, die Aufwärtsrichtungstaste an Pin 2 und die Abwärtsrichtungstaste an Pin 5 angeschlossen. In unserer Hardware ist auch ein LCD angeschlossen Punktzahl anzeigen. RS- und EN-Pins sind direkt an Pin 13 und 12 angeschlossen. Der RW-Pin ist direkt geerdet. Die Datenpins d4-d7 sind an Pin 11, 10, 9, 8 von Arduino angeschlossen. Der Rest der Verbindung ist im Schaltplan dargestellt.
Programmiererklärung:
Um diesen Arduino Snake-Spielcode zu schreiben, fügen wir zunächst Header-Dateien hinzu und definieren Pins für LCD. Und dann definieren Sie einige Pins für Richtungstasten und Daten-Pin für Schieberegister.
#einschließen
Dann initialisieren wir alle Dinge, die wir im Programm verwendet haben. In der Setup- Funktion initialisieren wir das LCD, geben den Eingangsausgangspins die Richtung vor, ziehen die Bits hoch und zeigen die Begrüßungsnachricht auf dem LCD an.
void setup () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (start, INPUT);……………
Und dann starten wir das Spiel in der Schleifenfunktion .
void show_snake (int temp) {for (int n = 0; n
Hier haben wir die folgende Funktion zum Lesen der Eingaberichtung vom Druckknopf verwendet.
void read_button () {if (! digitalRead (left)) {move_r = 0; move_c! = - 1? move_c = -1: move_c = 1; while (! digitalRead (links));……………
Überprüfen Sie den vollständigen C-Code des Schlangenspiels unten.