Inhoudsopgave:

PUBG-themalied + animatie met Arduino! 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
PUBG-themalied + animatie met Arduino! 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"

Video: PUBG-themalied + animatie met Arduino! 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"

Video: PUBG-themalied + animatie met Arduino! 13 stappen (met afbeeldingen) Antwoorden op al uw
Video: I Reset The NBA COMPLETELY & Implemented Legendary Draft Classes Every Year. | Wheel Of NBA Drafts 2024, November
Anonim
Image
Image
Alle onderdelen verzamelen
Alle onderdelen verzamelen

Hallo daar en welkom bij deze leuke instructable! Ik hoop dat jullie allemaal gezond zijn en blijven. Dit kleine maar geweldige project gaat over het spelen van het PUBG-themalied en zelfs het maken van game-animaties met arduino.

De gebruikte componenten zijn zeer gemakkelijk verkrijgbaar en zeer eenvoudig te monteren op een stuk breadboard. Ik zal het hele bouw- en coderingsproces in deze instructable delen, blijf tot het einde!

Ik raad je ten zeerste aan om de video te bekijken om een idee te krijgen van het project:) Als je het leuk vindt, like en deel de video dan. Overweeg om je op mijn kanaal te abonneren als je mijn build leuk vindt. Bedankt!

Dus, zonder verder uitstel, laten we aan de slag gaan!

Stap 1: Verzamel alle onderdelen

Alle onderdelen verzamelen
Alle onderdelen verzamelen

De build bestaat voornamelijk uit een Arduino Nano die de belangrijkste kern is voor dit project. Je kunt alle andere Arduino-varianten gebruiken, zoals de populaire Arduino Uno, Arduino Pro Mini, Arduino Mega enz. Om de animaties en de afbeeldingen weer te geven, besloot ik te gaan voor een 0,96 inch OLED-scherm met een resolutie van 128 bij 64 pixels. Dit display kan worden gekoppeld aan de arduino met het I2C-protocol dat slechts twee draden nodig heeft voor gegevens en klok, waardoor het aantal verbindingen wordt verminderd en het project compacter wordt. Voor het spelen van de PUBG-themamelodie heb ik een 5V-zoemer gebruikt waarvan ik de positieve pin heb verbonden met digitale pin 6 van arduino en aarde gaat naar aarde van Arduino.

Dit is de lijst met onderdelen die nodig zijn voor het project:

  1. Arduino Nano (of een ander arduino-bord naar keuze)
  2. 0,96 inch OLED-displaymodule
  3. 5V zoemer
  4. Doorverbindingsdraden
  5. Breadboard
  6. Arduino programmeerkabel

Stap 2: Het OLED-scherm aansluiten

Het OLED-scherm aansluiten
Het OLED-scherm aansluiten
Het OLED-scherm aansluiten
Het OLED-scherm aansluiten
Het OLED-scherm aansluiten
Het OLED-scherm aansluiten

Er zijn in totaal 4 aansluitingen nodig om het OLED-scherm vanaf arduino aan te sluiten:

Vcc 5V van Arduino

Gnd Gnd van Arduino

SDA A4 van Arduino

SCK A5 van Arduino

Pins A4 en A5 van de arduino dienen voor meerdere doeleinden van analoge ingangen, evenals pinnen voor I2C-communicatie. Hier hebben we de pinnen voor het I2C-protocol gebruikt voor de interface met de weergavemodule.

De link naar de Adafruit-bibliotheek die in dit project wordt gebruikt:

Stap 3: De zoemer aansluiten

De zoemer aansluiten
De zoemer aansluiten
De zoemer aansluiten
De zoemer aansluiten

De 5V-zoemer heeft een positieve en negatieve voedingsklem.

Positieve pin D6 van Arduino (digitale pin 6) (u kunt elke digitale pin van de Arduino gebruiken)

Negatieve pin Gnd van Arduino

We gaan de gewenste toon creëren op digitale pin D6 waarop de zoemer de melodie zal spelen.

Stap 4: Alle hardwareverbindingen voltooid

Alle hardwareverbindingen voltooid
Alle hardwareverbindingen voltooid
Alle hardwareverbindingen voltooid
Alle hardwareverbindingen voltooid

Alle benodigde aansluitingen van het OLED-display en de zoemer zijn voltooid. Laten we nu verder gaan om het programmeeraspect van het project te begrijpen.

Stap 5: De bibliotheek opnemen en weergaveprotocollen initialiseren

De bibliotheek opnemen en weergaveprotocollen initialiseren
De bibliotheek opnemen en weergaveprotocollen initialiseren

Het hele programma is opgedeeld in 3 componenten:

  1. Het hoofdprogramma bestaande uit de initialisatie en de sequenties van beeldweergave en melodie
  2. "pitches.h" bestand bestaande uit de lijst met muzieknoten en de bijbehorende frequentie
  3. "pictures.h"-bestand dat bestaat uit bitmaps van de afbeeldingen die moeten worden weergegeven.

Het proces van het converteren van een afbeelding naar een bitmap-array voor OLED-weergave wordt in de komende stappen besproken.

Ik zal ook de volledige code bijvoegen, samen met deze instructable die je kunt gebruiken:)

Stap 6: De melodie van het themalied

Het themalied Melodie
Het themalied Melodie
Het themalied Melodie
Het themalied Melodie

Ik zocht op internet naar de basisnoten van het PUBG-themalied en voegde ze vervolgens toe aan de melodiereeks.

Door een aanzienlijke hoeveelheid tijd te besteden aan het spelen en opnieuw afspelen van de melodiereeks, heb ik vervolgens de tijdsduurarray gemaakt die betrekking heeft op hoe lang elke noot moet worden gespeeld. De combinatie van de melodie-array en de duur-array omvat de volledige informatie om het nummer af te spelen.

Stap 7: Het nummer afspelen tijdens het opstarten

Het nummer afspelen tijdens het opstarten
Het nummer afspelen tijdens het opstarten

Er zijn in totaal 63 noten die ik heb gebruikt om de melodiereeks te maken. Door een for-lus te gebruiken en door de noten- en duurreeks te bladeren met een vooraf bepaalde pauze tussen elke noot, wordt de hele reeks één keer gespeeld, omdat dit stuk code liegt in de lege setup(). Interessant is dat geen van de code voor dit project de void loop() van de Arduino-code gebruikt, omdat ik van plan ben afbeeldingen maar één keer af te spelen en weer te geven. Als je een herhalende reeks wilt, moet dat natuurlijk in de functie void loop() worden geplaatst.

Stap 8: De afbeeldingen converteren naar bitmaps

De afbeeldingen converteren naar bitmaps
De afbeeldingen converteren naar bitmaps

Het interessante deel van het project is het proces om een afbeelding om te zetten in een bitmap-array voor het OLED-scherm op basis van de pixeldichtheid. Hiervoor vond ik de perfecte online tool waarmee we de aangepaste bitmaps kunnen genereren.

De link voor deze online applicatie is:

Dankzij de geweldige makers van deze applicatie maakt dit mijn werk veel gemakkelijker.

Als je naar de link gaat, moet je eerst de afbeelding uploaden waarvan je de bitmap wilt maken. Een ding om hier op te merken is dat je moet proberen afbeeldingen te selecteren die niet veel kleurcontrast bevatten, probeer vast te houden aan afbeeldingen met een paar effen kleuren, zonder verloop om betere resultaten te krijgen

Stap 9: De resolutie aanpassen aan uw beeldscherm

De resolutie aanpassen aan uw beeldscherm
De resolutie aanpassen aan uw beeldscherm

In de volgende stap moeten we het formaat van de afbeelding aanpassen aan de schermresolutie. Voor ons OLED-scherm is het 28 pixels breed en 64 pixels hoog, wat ik heb aangepast zoals weergegeven in de afbeelding. Pas de helderheidsdrempel aan om ervoor te zorgen dat het beeld aanzienlijk helder is (dit is waar het voordeel van het gebruik van afbeeldingen met effen kleuren in het spel komt, hoe meer kleurovergangen, de beeldkwaliteit in monochrome weergave zal verslechteren omdat het de helderheidsdrempel verprutst).

De volgende stap is om de afbeelding op het scherm te laten passen, waarbij de verhoudingen intact blijven en de symmetrie wordt aangepast waarvoor de opties er al zijn. U kunt deze opties verkennen om de gewenste afbeeldingsuitvoer te krijgen. Ter referentie krijg je ook de geweldige preview-optie!

Stap 10: De bitmap-array genereren

De bitmap-array genereren
De bitmap-array genereren

Nadat u de afbeeldingsparameters hebt aangepast, selecteert u in de volgende stap gewoon Arduino-code als uitvoerformaat en klikt u op genereren om de gewenste bitmap-array te krijgen!

Daar! u hebt uw afbeelding met succes geconverteerd naar de gewenste bitmaparray. Ik heb dit proces voor in totaal 7 afbeeldingen gedaan en opgeslagen.

Stap 11: De afbeeldingen weergeven als reeks

De afbeeldingen als reeks weergeven
De afbeeldingen als reeks weergeven
De afbeeldingen als reeks weergeven
De afbeeldingen als reeks weergeven
De afbeeldingen als reeks weergeven
De afbeeldingen als reeks weergeven

Voor het weergeven van de afbeeldingen heb ik de Arduino millis()-functie gebruikt om de draw()-functie aan te roepen, wat in feite een reeks commando's is om het display te wissen, de bitmap-array naar de OLED te plotten en het display te initialiseren. De belangrijkste logica is dat na elke 3,5 seconden de afbeelding wordt gewijzigd en de volgende afbeelding wordt weergegeven. Nou, 3,5 seconden is geen uniek getal, ik kwam er net achter dat als ik de hele melodieduur deel door 7 afbeeldingen, ik ongeveer 3,5 seconden krijg voor elk scherm. U kunt hier meer afbeeldingen aan toevoegen en de weergavetijd voor elke afbeelding verkorten als u dat wilt.

De codefragmenten leggen uit hoe de functies worden aangeroepen op basis van de millis()-functie.

De volledige bitmap-arrays van de afbeeldingen worden opgeslagen in het bestand "pictures.h"

Stap 12: De hele code:

Hier deel ik de volledige code zodat jullie allemaal kunnen spelen en experimenteren!

Zodra alles in orde lijkt, is het tijd om het te uploaden naar het bord:)

Stap 13: De resultaten:

De resultaten
De resultaten
De resultaten
De resultaten
De resultaten
De resultaten
De resultaten
De resultaten

Zoals je kunt zien zijn de foto's prachtig geworden! En de melodie ook! Ik hoop dat je de video hebt gezien waarin de hele demonstratie aanwezig is.

Ik hoop dat deze Arduino-versie van PUBG een spannend project is voor alle game- en elektronische liefhebbers die er zijn.

Aarzel niet om uw feedback in de opmerkingen te delen en eventuele suggesties te delen. Overweeg ook om u op mijn kanaal te abonneren voor meer van dergelijke inhoud, aangezien dit een onderdeel is van de OLED-serie waaraan ik werk. Laat het me weten als je dit leuke project hebt gebouwd:)

Tot de volgende keer.

Aanbevolen: