SPIEL - Flucht

Dieses Spiel heißt „Flucht“. Das Ziel des Spielers ist es, den MPU6050-Sensor zu neigen, um einen Pixel auf der LED-Matrix zu bewegen und zu versuchen, ihn durch eine Öffnung im Rand der Matrix (den Ausgang) zu manövrieren.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Sie können sie auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Jumperkabel

BUY

GY-87 IMU-Modul

-

Verdrahtung

../_images/11_escape_bb.png

Schaltplan

../_images/11_escape_schematic.png

Code

Bemerkung

  • Sie können die Datei 11_escape_square.ino direkt unter dem Pfad elite-explorer-kit-main\fun_project\11_escape_square öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

Bemerkung

Um die Bibliothek zu installieren, verwenden Sie den Arduino-Bibliotheksmanager und suchen Sie nach „Adafruit MPU6050“ und installieren Sie diese.

Wie funktioniert des?

Hier ist eine detaillierte Erklärung des Codes:

  1. Bibliotheksimporte und globale Variablen:

    Importierte Bibliotheken umfassen die LED-Matrix, Wire (für I2C-Kommunikation), MPU6050 (Bewegungssensor) und die Adafruit_Sensor-Bibliothek. Initialisierung von MPU6050 und LED-Matrix-Objekten. Definition globaler Variablen wie pixelX und pixelY (Pixelposition), gapStart und side (Startposition der Lücke und welche Seite), level (Schwierigkeitsgrad des Spiels) und mehr.

  2. setup():

    Initialisieren Sie die LED-Matrix und zeichnen Sie die Matrix mit der Lücke. Initialisieren Sie die serielle Kommunikation und prüfen Sie, ob der MPU6050-Sensor korrekt startet, und stellen Sie seinen Beschleunigungsbereich auf 2g ein.

  3. loop():

    Aktualisieren Sie regelmäßig die Position des Pixels basierend auf den MPU6050-Sensorwerten. Verschieben Sie regelmäßig die Position der Lücke. Laden Sie das neue Pixel-Layout und rendern Sie es auf der LED-Matrix. Überprüfen Sie, ob das Pixel durch die Lücke gegangen ist. Wenn ja, warten Sie 1,5 Sekunden, um den Erfolg anzuzeigen, erhöhen Sie den Schwierigkeitsgrad des Spiels und setzen Sie die Pixelposition zurück.

  4. Weitere Funktionen:

    • drawSquareWithGap(): Zeichnen Sie einen 8x8-Rand und erstellen Sie eine Lücke darin.

    • createGap(): Erstellen Sie eine 2 Pixel lange Lücke auf der angegebenen Seite.

    • moveGap(): Verschieben Sie die Position der Lücke basierend auf der aktuellen Seite und gapStart und ändern Sie bei Bedarf die Seite.

    • movePixelBasedOnMPU(): Lesen Sie die Beschleunigungsdaten von MPU6050. Bewegen Sie die Pixelposition basierend auf den Beschleunigungsdaten (zurücksetzen, wenn das Pixel außerhalb der Grenzen oder in Wände geht).

    • resetPixel(): Setzen Sie die Pixelposition auf die Mitte der Matrix zurück.

    • checkPixelPosition(): Überprüfen Sie, ob sich das Pixel auf der Lücke befindet. Wenn ja, erhöhen Sie den Schwierigkeitsgrad des Spiels und setzen Sie das Pass-Flag auf wahr.