Inhaltsverzeichnis:

PUBG Theme Song + Animation mit Arduino! - Gunook
PUBG Theme Song + Animation mit Arduino! - Gunook

Video: PUBG Theme Song + Animation mit Arduino! - Gunook

Video: PUBG Theme Song + Animation mit Arduino! - Gunook
Video: arduino pubg oled theme music #pubg #gaming #music #coding #programming #tech #videogames #explore 2024, November
Anonim
Image
Image
Sammeln Sie alle Teile
Sammeln Sie alle Teile

Hallo dort und willkommen zu diesem Spaß instructable! Ich hoffe es geht euch allen gut und ihr bleibt gesund. Bei diesem kleinen, aber erstaunlichen Projekt geht es darum, den PUBG-Titelsong zu spielen und sogar einige Spielanimationen mit Arduino zu erstellen.

Die verwendeten Komponenten sind sehr leicht verfügbar und sehr einfach auf einem Stück Steckbrett zu montieren. Ich werde den gesamten Bau- und Codierungsprozess in diesem anweisbaren teilen, bleibe bis zum Ende!

Ich würde dir wärmstens empfehlen, dir das Video anzuschauen, um eine Vorstellung von dem Projekt zu bekommen:) Wenn es dir gefällt, dann like und teile das Video. Erwägen Sie, meinen Kanal zu abonnieren, wenn Ihnen mein Build gefällt. Danke!

Also, ohne weitere Verzögerung, legen wir los!

Schritt 1: Sammeln aller Teile

Sammeln Sie alle Teile
Sammeln Sie alle Teile

Der Build besteht hauptsächlich aus einem Arduino Nano, der der Hauptkern für dieses Projekt ist. Sie können alle anderen Arduino-Varianten wie das beliebte Arduino Uno, Arduino Pro Mini, Arduino Mega usw. verwenden. Um die Animationen und die Bilder anzuzeigen, habe ich mich für ein 0,96 Zoll OLED-Display mit einer Auflösung von 128 x 64 Pixel entschieden. Dieses Display kann mit dem Arduino mit dem I2C-Protokoll verbunden werden, das nur zwei Drähte für Daten und Uhr benötigt, wodurch die Anzahl der Verbindungen reduziert und das Projekt kompakter wird. Zum Abspielen der PUBG-Themenmelodie habe ich einen 5V-Summer verwendet, von dem ich den positiven Pin mit dem digitalen Pin 6 von Arduino verbunden habe und Masse an Masse von Arduino geht.

Dies ist die Liste der Teile, die für das Projekt benötigt werden:

  1. Arduino Nano (oder ein anderes Arduino-Board Ihrer Wahl)
  2. 0,96 Zoll OLED-Anzeigemodul
  3. 5V Summer
  4. Überbrückungsdrähte
  5. Steckbrett
  6. Arduino-Programmierkabel

Schritt 2: Anschließen des OLED-Displays

Anschließen des OLED-Displays
Anschließen des OLED-Displays
Anschließen des OLED-Displays
Anschließen des OLED-Displays
Anschließen des OLED-Displays
Anschließen des OLED-Displays

Für die Verbindung des OLED-Displays von arduino werden insgesamt 4 Anschlüsse benötigt:

Vcc 5V von Arduino

Masse Masse von Arduino

SDA A4 von Arduino

SCK A5 von Arduino

Die Pins A4 und A5 des Arduino dienen mehreren Zwecken von analogen Eingängen sowie Pins für die I2C-Kommunikation. Hier haben wir die Pins für das I2C-Protokoll zur Verbindung mit dem Anzeigemodul verwendet.

Der Link zur in diesem Projekt verwendeten Adafruit-Bibliothek:

Schritt 3: Anschließen des Summers

Anschließen des Summers
Anschließen des Summers
Anschließen des Summers
Anschließen des Summers

Der 5V-Summer hat einen positiven und einen negativen Versorgungsanschluss.

Positiver Pin D6 von Arduino (digitaler Pin 6) (Sie können jeden digitalen Pin des Arduino verwenden)

Negativer Pin Gnd von Arduino

Wir werden den gewünschten Ton auf dem digitalen Pin D6 erzeugen, zu dem der Summer die Melodie spielt.

Schritt 4: Alle Hardwareverbindungen abgeschlossen

Alle Hardwareverbindungen abgeschlossen
Alle Hardwareverbindungen abgeschlossen
Alle Hardwareverbindungen abgeschlossen
Alle Hardwareverbindungen abgeschlossen

Alle notwendigen Anschlüsse des OLED-Displays und des Summers sind abgeschlossen. Lassen Sie uns nun den Programmieraspekt des Projekts verstehen.

Schritt 5: Einbinden der Bibliothek und Initialisieren der Anzeigeprotokolle

Einschließen der Bibliothek und Initialisieren von Anzeigeprotokollen
Einschließen der Bibliothek und Initialisieren von Anzeigeprotokollen

Das gesamte Programm ist in 3 Komponenten unterteilt:

  1. Das Hauptprogramm bestehend aus der Initialisierung und den Sequenzen von Bilddarstellung und Melodie
  2. Datei "pitches.h" bestehend aus der Liste der Musiknoten und der zugehörigen Frequenz
  3. Datei "pictures.h" bestehend aus Bitmaps der anzuzeigenden Bilder.

Der Prozess zum Konvertieren eines Bildes in ein Bitmap-Array für OLED-Displays wird in den nächsten Schritten erläutert.

Ich werde auch den gesamten Code zusammen mit diesem anweisbaren für Sie anhängen:)

Schritt 6: Die Melodie des Titellieds

Die Melodie des Titelliedes
Die Melodie des Titelliedes
Die Melodie des Titelliedes
Die Melodie des Titelliedes

Ich habe im Internet nach den Grundnoten gesucht, die den PUBG-Titelsong umfassen, und sie dann dem Melodie-Array hinzugefügt.

Indem ich viel Zeit damit verbracht habe, die Melodiesequenz zu spielen und wiederzugeben, habe ich dann das Zeitdauer-Array erstellt, das sich darauf bezieht, wie lange jede Note gespielt werden muss. Die Kombination des Melodie-Arrays und des Dauer-Arrays umfasst die vollständigen Informationen zum Abspielen des Songs.

Schritt 7: Abspielen des Songs während des Starts

Abspielen des Songs während des Starts
Abspielen des Songs während des Starts

Es gibt insgesamt 63 Noten, die ich verwendet habe, um die Melodiesequenz zu erstellen. Mit einer for-Schleife und dem Durchlaufen des Noten- und Dauer-Arrays mit einer vorgegebenen Pause zwischen jeder Note wird die gesamte Sequenz einmal abgespielt, da dieses Stück Code lügt im void setup(). Interessanterweise verwendet keiner der Codes für dieses Projekt die void loop () des Arduino-Codes, da ich beabsichtige, Bilder nur einmal abzuspielen und anzuzeigen. Wenn Sie eine sich wiederholende Sequenz wünschen, muss diese natürlich in die Funktion void loop() eingefügt werden.

Schritt 8: Konvertieren der Bilder in Bitmaps

Konvertieren der Bilder in Bitmaps
Konvertieren der Bilder in Bitmaps

Der interessante Teil des Projekts ist nun der Prozess, ein Bild entsprechend seiner Pixeldichte in ein Bitmap-Array für das OLED-Display zu konvertieren. Dafür habe ich das Präfekten-Online-Tool gefunden, mit dem wir die benutzerdefinierten Bitmaps generieren können.

Der Link für diese Online-Bewerbung lautet:

Dank der großartigen Ersteller dieser Anwendung erleichtert dies meine Arbeit erheblich.

Wenn Sie auf den Link gehen, müssen Sie zuerst das Bild hochladen, von dem Sie die Bitmap erstellen möchten. Eine Sache, die Sie hier beachten sollten, ist, dass Sie versuchen sollten, Bilder auszuwählen, die nicht viel Farbkontrast enthalten. Versuchen Sie, Bilder mit ein paar Vollfarben ohne Farbverläufe zu verwenden, um bessere Ergebnisse zu erzielen

Schritt 9: Anpassen der Auflösung an Ihr Display

Anpassen der Auflösung an Ihr Display
Anpassen der Auflösung an Ihr Display

Im nächsten Schritt müssen wir die Größe des Bildes entsprechend unserer Anzeigeauflösung ändern. Für unser OLED-Display ist es 28 Pixel breit und 64 Pixel hoch, die ich wie im Bild gezeigt angepasst habe. Passen Sie den Helligkeitsschwellenwert an, um sicherzustellen, dass das Bild ziemlich klar ist (hier kommt der Vorteil der Verwendung von Bildern mit Volltonfarben zum Tragen, je mehr Farbverläufe die Bildqualität bei der monochromen Anzeige verschlechtert, da die Helligkeitsschwelle durcheinander gebracht wird).

Der nächste Schritt besteht darin, das Bild an den Bildschirm anzupassen, wobei die Proportionen intakt bleiben und die Symmetrie angepasst wird, für die die Optionen bereits vorhanden sind. Sie können diese Optionen erkunden, um die gewünschte Bildausgabe zu erhalten. Als Referenz erhalten Sie auch die erstaunliche Vorschauoption!

Schritt 10: Generieren des Bitmap-Arrays

Generieren des Bitmap-Arrays
Generieren des Bitmap-Arrays

Nachdem Sie die Bildparameter angepasst haben, wählen Sie im nächsten Schritt einfach Arduino-Code als Ausgabeformat aus und klicken Sie auf Generieren, um das gewünschte Bitmap-Array zu erhalten!

Dort! Sie haben Ihr Bild erfolgreich in das gewünschte Bitmap-Array konvertiert. Ich habe diesen Vorgang für insgesamt 7 Bilder durchgeführt und gespeichert.

Schritt 11: Anzeigen der Bilder als Sequenz

Anzeigen der Bilder als Sequenz
Anzeigen der Bilder als Sequenz
Anzeigen der Bilder als Sequenz
Anzeigen der Bilder als Sequenz
Anzeigen der Bilder als Sequenz
Anzeigen der Bilder als Sequenz

Zum Anzeigen der Bilder habe ich die Arduino-Funktion millis () verwendet, um die Funktion draw () aufzurufen, die im Grunde eine Reihe von Befehlen ist, um die Anzeige zu löschen, das Bitmap-Array auf die OLED zu zeichnen und die Anzeige zu initialisieren. Die Hauptlogik besteht darin, dass alle 3,5 Sekunden das Bild gewechselt und das nächste Bild angezeigt wird. Nun, 3,5 Sekunden sind keine eindeutige Zahl, ich habe gerade herausgefunden, dass wenn ich die gesamte Melodiedauer durch 7 Bilder teile, ich ungefähr 3,5 Sekunden für jede Anzeige bekomme. Sie können diesem weitere Bilder hinzufügen und die Anzeigezeit für jedes Bild bei Bedarf reduzieren.

Die Code-Schnipsel erklären, wie die Funktionen basierend auf der millis()-Funktion aufgerufen werden.

Die gesamten Bitmap-Arrays der Bilder werden in der Datei "pictures.h" gespeichert

Schritt 12: Der gesamte Code:

Hier teile ich den gesamten Code für euch alle zum Herumspielen und Experimentieren!

Sobald alles in Ordnung scheint, ist es Zeit, es auf das Board hochzuladen:)

Schritt 13: Die Ergebnisse:

Die Ergebnisse
Die Ergebnisse
Die Ergebnisse
Die Ergebnisse
Die Ergebnisse
Die Ergebnisse
Die Ergebnisse
Die Ergebnisse

Wie ihr seht, sind die Bilder super geworden! Und die Melodie auch! Ich hoffe, Sie haben sich das Video angesehen, in dem die gesamte Demonstration enthalten ist.

Ich hoffe, diese Arduino-Version von PUBG ist ein spannendes Projekt für alle Spiele- und Elektronik-Enthusiasten da draußen.

Bitte zögern Sie nicht, Ihr Feedback in den Kommentaren zu teilen und Vorschläge zu machen. Erwägen Sie auch, meinen Kanal für weitere solche Inhalte zu abonnieren, da dies Teil der OLED-Serie ist, an der ich arbeite. Lass es mich wissen, wenn du dieses lustige Projekt baust:)

Bis zum nächsten Mal.

Empfohlen: