Erstellen eines Spiels mit Arduino Uno und Top 10 × 2 LCD

Erstellen eines Spiels mit Arduino Uno und Top 10 × 2 LCD
Um verschiedene Projekte zu erstellen und um über Schaltkreise zu erfahren, ist die Arduino -Plattform die praktikable Option für Anfänger, da sie seinen Benutzern eine breite Palette an Hardware- und Softwareoptionen bietet. Für Software wird hauptsächlich Arduino IDE verwendet, und für Hardware wird hauptsächlich der Arduino Uno verwendet. Mit der Arduino Uno und der Arduino IDE haben wir ein Spiel namens Ardi Pac erstellt, in dem wir einen Charakter erstellt haben.

So erstellen Sie ein Spiel auf Arduino Uno mit LCD

Um ein Spiel zu erstellen, müssen wir eine Schaltung erstellen, die wir auf der Hardware implementieren, und zuvor müssen wir die notwendigen Komponenten, die für die Gestaltung der Schaltung erforderlich sind, in die engere Wahl kommen:

  • Brotbrett
  • 1 16x2liquid -Kristallanzeige
  • Drähte verbinden
  • 1 Druckknopf
  • 1 Potentiometer
  • Arduino uno

Die folgende Abbildung zeigt den Schema der Schaltung, die für die Erstellung eines Spiels mit Arduino Uno entwickelt wurde:

So montieren Sie die Hardware zum Erstellen des Spiels mit Arduino Uno

Um die Montage von Hardware zu vereinfachen, haben wir das Bild unten gegeben, das zeigt, wie wir die Komponenten anschließen können, die zum Erstellen des Arduino -Spiels erforderlich sind:

Wir haben die LCD -Datenstifte mit dem Pin 5,4,3,2 mit den lila Drähten an Arduino Uno angeschlossen, und für die Helligkeitsanpassung des LCD haben wir den Potentiometer verbunden. Der gelbe Draht verbindet den Potentiometerausgang mit dem LCD. Um das Spiel zu spielen, haben wir den Druckknopf verwendet, der die Position des Charakters verändert, indem wir seinen einzigen Stift mit Cyan -Farbkabel an Pin 8 von Arduino anschließen und den anderen Pin erden.

Zum Anschließen der LCD, des Potentiometers und des Druckknopfs mit Versorgung haben wir die Versorgung von Arduino Uno mit den Steckbordnadeln übernommen.

So schreiben Sie Arduino -Code zum Erstellen eines Spiels mit Arduino Uno

Wir haben den Arduino -Code unter dem Arduino -Code für ein Hindernisvermeidungsspiel mit Arduino Uno bereitgestellt:

#include / * lcd die Bibliothek dekarling * /
Liquidcrystal LCD (12, 11, 5, 4, 3, 2);/* Zuweisen der Stifte von Arduino LCD*/
int button = 8;/*Zuweisen der Arduino -Pin für Druckknopf*/
/*Variablen für die Aufbewahrung der Zeit, um den Feind und den Charakter zu bewegen*/
nicht signiert long a;
nicht signiert long B;
nicht signiert lange c;
nicht signiert lang d;
int delay = 500; / * Definieren der Geschwindigkeit des Feindes */
int verringertes Delay = 20; / * zur Verringerung der Geschwindigkeit des Feindes */
int state2 = 0;/ * Variable, die den Wert der Drucktaste speichert, wenn er zu Beginn des Spiels gedrückt wird */
int state1 = 0;/* Variable, um den Wert der Taste zu speichern, um den Platz des Zeichens zu verschieben*/
bool pac = 0;/* Variable, die den Wert für das Zeichen speichert, um die Kollision mit dem Feind zu erkennen*/
int i;/* Variable, mit der der Feind auf dem LCD*/bewegen wird
int points = 0;/ * Variable, um die Punkte zu speichern, die der Spieler erreicht haben */
/*die Binärdateien für Feind und Charakter deklarieren*/
Byte -Feind [8] =
B00000,
B00100,
B01110,
B11111,
B10101,
B11111,
B11111,
B10101
;
Byte Pac1 [8] =
B00000,
B01110,
B11011,
B11110,
B11100,
B11110,
B11111,
B01110
;
Byte Pac2 [8] =
B00000,
B01110,
B11011,
B11111,
B11111,
B11111,
B11111,
B01110
;
void setup ()
PinMode (Taste, input_pullup); // Weisen Sie den Arbeitsmodus der Drucktaste */ zu
LCD.Beginnen Sie (16, 2);/* Deklarieren Sie die Größe der Anzeige*/
LCD.Createchar (7, Feind); // den Feind als Charakter deklariert
LCD.Createchar (6, PAC1); // Deklaration des PAC1 als Charakter
LCD.Createchar (5, Pac2); // Deklaration des PAC2 als Charakter
i = 15;/ * Definieren der Anzahl der Spalten für den Feind */
/ * Sparen Sie die Zeit in den oben deklarierten Zeitvariablen */
a = Millis ();
B = Millis ();
C = Millis ();
d = Millis ();
state1 = digitalread (button);/ * Lesen Sie den Status der Taste, die zum ersten Mal gedrückt wurde */
while (state1 == hoch) / * Wenn die Taste nicht gedrückt wird */
/ * Die Spiel- und Charakteranimation anzeigen *//
LCD.setCursor (3, 0);
LCD.print ("ardi-pac");
LCD.setCursor (3, 1);
LCD.print ("start drücken");
LCD.setCursor (13, 0);
LCD.schreiben (6);
Verzögerung (300);
LCD.setCursor (13, 0);
LCD.schreiben (5);
Verzögerung (300);
state1 = digitalread (button);/* Lesen Sie erneut den Status der Drucktaste*/
if (state1 == niedrig) / * wenn gedrückt wird, wechseln Sie zum Schleifenabschnitt */
brechen;


Verzögerung (500);

void Loop ()
State2 = digitalRead (Taste);/ * Überprüfen Sie den Status der Taste */
if ((millis ()-a)> = delay) /* Starten Sie die Bewegung des Feindes auf LCD* /
a = Millis ();
LCD.klar();
LCD.setCursor (i, 1);
LCD.schreiben (7);
i = i-1;
if (i == -1) /* Bedingung, um den Feind auf dem LCD ab 15 zu bewegen und auf Null zu gehen*/
i = 15;

LCD.setCursor (6, 0);
LCD.print ("Punkte:");
LCD.Druck (Punkte);/ * Anzeigen der vom Player */erreichten Punkte

if ((Millis ()-b)> = 50)
B = Millis ();
if (state2 == low && pac == false) / * Zeichen auf LCD anzeigen, indem Sie den Status der Taste lesen * /
LCD.setCursor (1, 0);/* Platzieren Sie das Zeichen in der ersten Spalte und in der ersten Zeile, wenn die Taste gedrückt wird*/
LCD.schreiben (6);
pac = wahr; / * Aktualisieren, dass keine Kollision mit Feind */
b = Millis ();/ * die Zeit retten */

else wenn (pac == true) /* Wenn immer noch keine Kollision an derselben Stelle platziert* /
LCD.setCursor (1, 0);
LCD.schreiben (6);

else if (pac == false) /* Bewegen Sie das Zeichen in die erste Zeile erste Spalte auf LCD*/
LCD.setCursor (1, 0);
LCD.drucken(" ");
LCD.setCursor (1, 1);
LCD.schreiben (6);


if ((millis ()-c)> = 1500 && pac == true) / * Wenn erneut die Taste gedrückt wird, verschieben Sie das Zeichen in die erste Zeile */
C = Millis ();
LCD.setCursor (1, 1);
LCD.schreiben (6);
LCD.setCursor (1, 0);
LCD.drucken(" ");
pac = falsch;

if (((Millis ()-d)> = 1000) && (i == 1)) /* Wenn der Feind seine erste Runde ohne Kollision nimmt* /
d = Millis ();
if (pac == true)
Punkte = Punkte+1;/* Kollision wird erkannt und fügen Sie dann einen in die Punkte*/hinzu
if (Punkte%5 == 0)
Verzögerung = Verzögerungsverletzte Auslöser;/* Verringern Sie die Geschwindigkeit des Feindes*/
if (Verzögerung <= 200) //changed the speed of enemy to 200
Minderung = 0; / * Erhöhen Sie nicht die Geschwindigkeit des Feindes */



sonst / * Wenn Kollision auftritt
LCD.klar();
LCD.setCursor (0, 0);
LCD.drucken ("Spiel vorbei!");
LCD.setCursor (0, 1);
LCD.print ("wieder starten");
Punkte = 0;
i = 15;
Verzögerung = 500; // Schaltet die Grundgeschwindigkeit zurück
State2 = digitalread (button);
while (state2 == hoch) /* Lesen Sie weiter den Status der Schaltfläche, wenn der Status hoch ist*/
State2 = digitalread (button); /*Wenn die Taste gedrückt wurde, starten Sie das Spiel erneut*/

Verzögerung (500);


Wir haben ein einfaches Spiel erstellt, das die Kollisionen mit eingehenden Objekten vermeidet, und dafür haben wir zuerst die Binärdateien für den Feind und den Charakter deklariert. Außerdem haben wir die Bibliothek für das mit Arduino Uno verwendete Display definiert.

Um den Feind auf der LCD zu bewegen, haben wir die für die Schleife verwendet, die bei jeder Iteration einen in seinem Wert verringert. Um die Position des Zeichens zu verschieben, haben wir den Druckknopf so verwendet, dass sich das Zeichen zur ersten Zeile des LCD bewegt.

Um den Charakter an seinen ursprünglichen Ort zurückzubringen, haben wir die Mills () -Funktion verwendet. Wir haben die Zeit gespeichert, als sich der Charakter bewegte, und dann haben wir die Zeit definiert, nach der der Charakter zu seiner Position zurückkehrt.

Wenn der Ort des Feindes und der Charakter das gleiche erhält.

So erstellen Sie Hardware, um ein Spiel mit Arduino und LCD zu erstellen

Das Bild unten ist die Hardware -Implementierung gemäß der oben beschriebenen Hardware -Montage:

Das obige Bild ist das Hauptmenü des Spiels. Durch Drücken der Drucktaste startet das Spiel:

Durch das Drücken der Taste wird der Charaktersprung, um Feinde zu vermeiden, und beim Kollieren mit dem Feind wird das folgende Menü angezeigt:

Um zu veranschaulichen, wie das Spiel funktionieren wird, haben wir das animierte GIF unten gegeben:

Abschluss

Die Arduino -Plattform kann verwendet werden, um eine Vielzahl von Projekten zu erstellen, die für Anfänger eine große Hilfe sein können, um mehr über die Schaltungen zu erfahren. Wir haben ein Spiel erstellt, in dem der Spieler die eingehenden Objekte vermeiden muss. Um den Spieler zu bewegen, haben wir den Druckknopf verwendet und auch die Punkte berechnet, die der Anzahl der vermiedenen Hindernisse entspricht. Wir haben auch den Arduino -Code zur Verfügung gestellt, um das Spiel zu erstellen und die Hardwaredemonstration zu erstellen.