Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
Erinnerst du dich noch an das Schlangenspiel, das wir in unserer Kindheit auf unserer Spielbox oder auf unserem Handy gespielt haben? Heute lernen wir, wie man ein Schlangenspiel mit 8 * 8 NeoPixels Matrix macht. Wir wählen Arduino uno als Kontrollzentrum und Joystick-Breakout-Modul zur Steuerung der Schlange.
Schritt 1: Komponentenliste:
Hardware:
1 X Freaduino UNO Rev2.2 MB_EFUNO
1 X Flexible 64 RGB LED 8 * 8 NeoPixels Matrix
1 X Joystick Breakout-Modul BKOUT_MD01
3 X Führungslinie
Software:
Arduino-IDE
Schritt 2: Hardwareverbindung
Verbinden Sie NeoPixel mit Pin D2.
"X" auf dem Joystick-Breakout-Modul verbinden Pin A0 auf der Arduino UNO-Platine, "Y" verbindet Pin A1, "K" verbindet Pin A2.
Schritt 3: Programmierung
P#einschließen
#define PIN 2 //Ausgangspin #define MAX_LED 64 //Anzahl der Perlen uint32_t c; int a = 0, Zahl; unsigned char huan = 0, ci = 0; unsigniertes Zeichen u = 40; //Die Schriftgröße der Wortgruppe unsigned char x = 0; unsigned char Farbe[3]; unsigned char go = {2, 3, 4, 5, 9, 14, 17, 20, 22, 26, 27, 29, 34, 35, 36, 37, 41, 46, 49, 54, 58, 59, 60, 61}; //24 unsigned char light[8][8] = { {0, 1, 2, 3, 4, 5, 6, 7}, {15, 14, 13, 12, 11, 10, 9, 8}, {16, 17, 18, 19, 20, 21, 22, 23}, {31, 30, 29, 28, 27, 26, 25, 24}, {32, 33, 34, 35, 36, 37, 38, 39}, {47, 46, 45, 44, 43, 42, 41, 40}, {48, 49, 50, 51, 52, 53, 54, 55}, {63, 62, 61, 60, 59, 58, 57, 56}, }; unsigned char character[8] = //Setze das zu sendende Wort { {0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, // 0 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, // 1 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 2 {0, 1, 1, 1, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 3 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, // 4 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 5 {0, 1, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 6 {0, 1, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, // 7 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 8 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 9 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0 }, }; unsigned char displaycore [8][8]; int-GeschwindigkeitS = 400; // Anfangsgeschwindigkeit der Schlange int score; // Spielstand int xValue; // JoyStick-X int yValue; // JoyStick-Y int zValue; // JoyStick-Z int FX, FY; // Koordinate des Essens int SX, SY; // Koordinate des Schlangenkopfes int KEY, K; int aktiviert; // Aktivieren zum Neustart des Spielzeichens sx[64]; //Koordinate des Schlangenkörpers char sy[64]; Adafruit_NeoPixel-Streifen = Adafruit_NeoPixel (MAX_LED, PIN, NEO_RGB + NEO_KHZ800); Void ZUFALL () { A: FX = zufällig (0, 7); FY = zufällig (0, 7); for (int i = 0; i < 3 + score; i++) // Nahrungsanzeige auf Schlangenkörper verhindern { if (FX == sx && FY == sy) goto A; aufrechtzuerhalten. K = 8; aufrechtzuerhalten. Sonst if (yValue < 50 && KEY != 8) {K = 5; aufrechtzuerhalten. Sonst if (xValue 950 && KEY != 4) {K = 6; } } // Hier können Sie vergleichen, ob die Richtung der Tastatur entgegengesetzt zur Bewegungsrichtung der Schlange ist. Wenn es umgekehrt ist, geben Sie die Tastatur auf. /************************************************ ************************************************* ************************************************* ************************************************* ********/ void gameover () { // Sobald das Gameover-Programm gestoppt wurde, drücken Sie die mittlere Taste, um das Spiel neu zu starten. vorzeichenloser Zeichenwert, y; Farbe[0] = zufällig(3, 18); // Setze color. Parameter ist R G B, Bereich 0-255. Farbe[1] = zufällig (3, 18); Farbe [2] = zufällig (3, 18); c = Streifen. Farbe(Farbe[1], Farbe[0], Farbe[2]); Wert = Punktzahl / 10; Wert = Wert * 4; y = 0; for (Zahl = Wert; Zahl < Wert + 4; Zahl++) { for (unsigned char vertikal = 0; vertikal < 8; vertikal++) { Displayscore[y][vertikal] = Zeichen[Zahl][vertikal]; } y++; } Wert = Punktzahl % 10; Wert = Wert * 4; for (Zahl = Wert; Zahl < Wert + 4; Zahl++) { for (unsigned char vertikal = 0; vertikal < 8; vertikal++) { Displayscore[y][vertikal] = Zeichen[Zahl][vertikal]; } y++; } for (unsigned char horizontal = 0; horizontal < 8; horizontal++) { for (unsigned char vertical = 0; vertikal < 8; vertikal++) { if (displayscore[horizontal][vertikal] == 1) //Beurteile, ob das Licht ist an. { strip.setPixelColor(light[horizontal][vertikal], c); aufrechtzuerhalten. Sonst strip.setPixelColor (Licht [horizontal] [vertikal], 0); } } strip.show (); // Datenverzögerung senden (5000); K = 0; // Joystick-Richtung zurücksetzen sx[0] = 2; sx[1] = 1; sx[2] = 0; sy[0] = 1; sy[1] = 1; sy[2] = 1; // Schlangenkoordinatenbewertung zurücksetzen = 0; // Spielpunktgeschwindigkeit zurücksetzenS = 400; // Die Anfangsgeschwindigkeit der Schlange aufrechtzuerhalten. Void setup () { Serial.begin (9600); // Initialisieren der Bibliothek strip.begin(); // Schicke Daten. Stellen Sie die Farbe jedes Punktes auf 0. Jeder Punkt wird also am Anfang nicht beleuchtet. Strip-Show(); K = 0; // Die Richtung des Joysticks zurücksetzen sx[0] = 2; sx[1] = 1; sx[2] = 0; sy[0] = 1; sy[1] = 1; sy[2] = 1; // Schlangenkoordinatenbewertung zurücksetzen = 0; // Spielstand zurücksetzen Colour[0] = random(3, 18); // Setze color. Parameter ist R G B, Bereich 0-255. Farbe[1] = zufällig (3, 18); Farbe [2] = zufällig (3, 18); c = Streifen. Farbe(Farbe[1], Farbe[0], Farbe[2]); //Grün Rot Blau // Setze Farbe für (Zahl = 0; Zahl <24; Zahl++) { strip.setPixelColor (go[Zahl], c); } strip.show (); // Datenverzögerung senden (2000); WILLKÜRLICH(); // Lebensmittel produzieren aufrechtzuerhalten. Void mobile () { KEY = K; // Jede Bewegung der Schlange bewirkt eine einmalige Richtungsänderung. if (KEY == 8) // Aufwärtsbewegung der Schlange { for (int i = 2 + score; i> 0; i--) { sx = sx[i - 1]; sy = sy[i - 1]; } sy[0] = sy[0] - 1; if (sy[0] <0) // Über die Grenze hinausgehen und auf der anderen Seite weitergehen sy[0] = 7; aufrechtzuerhalten. Sonst if (KEY == 5) // Schlangenabwärtsbewegung { for (int i = 2 + score; i> 0; i--) { sx = sx[i - 1]; sy = sy[i - 1]; } sy[0] = sy[0] + 1; if (sy[0] > 7) // Über die Grenze hinausgehen und auf der anderen Seite weitermachen sy[0] = 0; aufrechtzuerhalten. Sonst if (KEY == 4) // Schlangenbewegung nach links { for (int i = 2 + score; i > 0; i--) { sx = sx[i - 1]; sy = sy[i - 1]; } sx[0] = sx[0] - 1; if (sx[0] <0) // Über die Grenze hinausgehen und auf der anderen Seite weitergehen sx[0] = 7; aufrechtzuerhalten. Sonst if (KEY == 6) // Schlangenbewegung nach rechts { for (int i = 2 + score; i> 0; i--) { sx = sx[i - 1]; sy = sy[i - 1]; } sx[0] = sx[0] + 1; if (sx[0] > 7) // Über die Grenze hinausgehen und auf der anderen Seite weitermachen sx[0] = 0; } // Schlangenkörper mit Schaltfläche bewegen} void display() { for (number = 0; number <64; number++) // Bildschirm löschen { strip.setPixelColor(number, 0); } Strip-Show(); Farbe[0] = 40; // Farbe einstellen. Parameter ist R G B, Bereich 0-255. Farbe[1] = 0; Farbe [2] = 0; c = Streifen. Farbe(Farbe[1], Farbe[0], Farbe[2]); // Grün Rot Blau // Farbe einstellen x = light[FX][FY]; // Essensstreifen anzeigen.setPixelColor (x, c); Farbe[0] = zufällig(3, 18); // Farbe einstellen. Parameter ist R G B, Bereich 0-255. Farbe[1] = zufällig (3, 18); Farbe [2] = zufällig (3, 18); c = Streifen. Farbe(Farbe[1], Farbe[0], Farbe[2]); //Grün Rot Blau // Farbe einstellen für (int i = 2 + score; i> 0; i--) // Schlangenkörper anzeigen { x = light[sx[sy; strip.setPixelColor(x, c); } Farbe[0] = 0; // Farbe einstellen. Parameter ist R G B, Bereich 0-255. Farbe[1] = 40; Farbe [2] = 0; c = Streifen. Farbe(Farbe[1], Farbe[0], Farbe[2]); //Grün Rot Blau // Setze Farbe x = light[sx[0][sy[0]; // Schlangenkopf anzeigen strip.setPixelColor (x, c); strip.show (); // Daten senden aufrechtzuerhalten. Void Schleife () { mobile (); myDelay (GeschwindigkeitS); // Innerhalb() ist die Verzögerungszeit. zeigt an (); SX = sx[0]; SY = sy[0]; // Koordinate des Schlangenkopfes für (int i = 1; i <= 2 + score; i++) { if (SX == sx && SY == sy) gameover(); } // Beurteile, ob der Schlangenkopf seinen Körper berührt hat. Bei Berührung an GameOver weiterleiten. wenn (SY == FY && SX == FX) { ZUFALL (); Punktzahl ++; Farbe[0] = 40; // Farbe einstellen. Parameter ist R G B, Bereich 0-255. Farbe[1] = 0; Farbe [2] = 0; c = Streifen. Farbe(Farbe[1], Farbe[0], Farbe[2]); // Grün Rot Blau // Farbe einstellen x = light[FX][FY]; // Essensstreifen anzeigen.setPixelColor (x, c); strip.show(); // Daten senden if (! (Score % 5)) { // Beschleunigen Sie die Snake-Geschwindigkeit entsprechend der Punktzahl. Alle 5 gegessenen Lebensmittel beschleunigen 100 ms. GeschwindigkeitS = GeschwindigkeitS - 50; if (speedS < 150) // Die untere Grenze beträgt 200ms. Wenn die Geschwindigkeit unter 200 ms liegt, bleibt die Geschwindigkeit bei 200 ms. GeschwindigkeitS = 150; } } // Beurteilen, ob Nahrung gegessen wird. Wenn Schlange Nahrung gefressen hat, dann plus Punkte und Nahrung nach dem Zufallsprinzip regenerieren. }
Versuchsergebnis
Schritt 4: Versuchsergebnis
Relative Messwerte:
FreaksBot Bluetooth-Auto
Beleuchten Sie die erste Perle auf einer 8 * 8 NeoPixels Matrix mit Arduino
Micro:bit Experiment 05: RGB LED -- Elecfreaks Mirco: bit Starter Kit Course
Freitag Produktbeitrag: LED-Musik-Frequenzspektrum-Display-Lötkit
Verwenden Sie das ElecFreaks Micro:bit Tinker Kit, um ein intelligentes Licht zu machen
Empfohlen:
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
Schlangenspiel: 4 Schritte
Schlangenspiel: Hallo Leute, heute zeige ich euch, wie man ein einfaches Schlangenspiel in Python erstellt und Freunde in diesem Urlaub zum Staunen bringt. Dies ist sehr einfach, Sie müssen nur Python 3 und Pygame installieren. In diesem anweisbaren habe ich ein Video zur Installation von Pygame hinzugefügt. Nach
MATRIX Voice und MATRIX Creator mit Alexa (C++-Version): 7 Schritte
MATRIX Voice und MATRIX Creator mit Alexa (C++-Version): Erforderliche HardwareBevor Sie beginnen, sehen wir uns an, was Sie benötigen. Raspberry Pi 3 (empfohlen) oder Pi 2 Model B (unterstützt). MATRIX Voice oder MATRIX Creator - Raspberry Pi hat kein eingebautes Mikrofon, der MATRIX Voice/Creator hat ein
Machen Sie ein riesiges LED-Schild! (24x8-Matrix): 11 Schritte (mit Bildern)
Machen Sie ein riesiges LED-Schild! (24x8-Matrix): AKTUALISIEREN!! Schaltplan ist ONLINE! AKTUALISIERUNG 2!! Code ist ONLINE! Dieses Projekt beschreibt meinen ziemlich schnellen Aufbau einer 24x8-Matrix. Meine Inspiration für dieses Projekt kam von der 24x6-Matrix von Syst3mX. Eine 24x6-Matrix war riesig, aber mir war sie einfach zu klein, da keine
Die Matrix schlagen: 7 Schritte
So schlagen Sie die Matrix: Dies sind nur einige Tipps, wie Sie das Spiel schlagen können, indem Sie die Matrix betreten. Es ist eigentlich sehr einfach