Indholdsfortegnelse:

PUBG Theme Song+Animation With Arduino !: 13 trin (med billeder)
PUBG Theme Song+Animation With Arduino !: 13 trin (med billeder)

Video: PUBG Theme Song+Animation With Arduino !: 13 trin (med billeder)

Video: PUBG Theme Song+Animation With Arduino !: 13 trin (med billeder)
Video: CS50 2014 - Week 9 2024, November
Anonim
Image
Image
Samler alle dele
Samler alle dele

Hej der og velkommen til denne sjove instruktive! Jeg håber, at I alle har det godt og holder jer raske. Dette lille, men fantastiske projekt handler om at spille PUBG -temasangen og endda lave nogle spilanimationer ved hjælp af arduino.

De anvendte komponenter er meget let tilgængelige og meget lette at samle på et stykke brødbræt. Jeg vil dele hele bygge- og kodningsprocessen i denne instruktive, hold dig til slutningen!

Jeg vil stærkt foreslå, at du ser videoen for at få en idé om projektet:) Hvis du kan lide den, kan du lide og dele videoen. Overvej at abonnere på min kanal, hvis du nyder mit build. Tak!

Så lad os komme i gang uden yderligere forsinkelse!

Trin 1: Saml alle delene

Samler alle dele
Samler alle dele

Bygningen består hovedsageligt af en Arduino Nano, som er hovedkernen for dette projekt. Du kan bruge andre Arduino -varianter som den populære Arduino Uno, Arduino Pro Mini, Arduino Mega osv. For at vise animationer og billeder besluttede jeg at gå med en 0,96 tommer OLED -skærm med en opløsning på 128 x 64 pixels. Denne skærm kan være grænseflader med arduinoen med I2C -protokollen, der kun kræver to ledninger til data og ur, hvilket reducerer antallet af forbindelser og gør projektet mere kompakt. Til afspilning af PUBG temamelodien brugte jeg en 5V summer, hvoraf jeg forbandt den positive pin med digital pin 6 af arduino og jorden går til jorden af Arduino.

Dette er listen over nødvendige dele til projektet:

  1. Arduino Nano (eller ethvert andet arduino -bord efter eget valg)
  2. 0,96 tommer OLED display modul
  3. 5V summer
  4. Jumper ledninger
  5. Brødbræt
  6. Arduino programmeringskabel

Trin 2: Tilslutning af OLED -skærmen

Tilslutning af OLED -skærmen
Tilslutning af OLED -skærmen
Tilslutning af OLED -skærmen
Tilslutning af OLED -skærmen
Tilslutning af OLED -skærmen
Tilslutning af OLED -skærmen

I alt 4 forbindelser er nødvendige for at OLED -skærmen kan tilsluttes fra arduino:

Vcc 5V fra Arduino

Gnd Gnd fra Arduino

SDA A4 fra Arduino

SCK A5 fra Arduino

Stifterne A4 og A5 på arduinoen tjener flere formål med analoge indgange samt stifter til I2C -kommunikation. Her har vi brugt benene til I2C -protokollen til grænseflade med displaymodulet.

Linket til Adafruit -biblioteket, der blev brugt i dette projekt:

Trin 3: Tilslutning af summer

Tilslutning af summer
Tilslutning af summer
Tilslutning af summer
Tilslutning af summer

5V summeren har en positiv og negativ forsyningsterminal.

Positiv pin D6 af Arduino (digital pin 6) (du kan bruge enhver digital pin af arduino)

Negativ pin Gnd af Arduino

Vi skal skabe den ønskede tone på den digitale pin D6, som summeren vil spille melodien til.

Trin 4: Alle hardwareforbindelser er gennemført

Alle hardwareforbindelser er gennemført
Alle hardwareforbindelser er gennemført
Alle hardwareforbindelser er gennemført
Alle hardwareforbindelser er gennemført

Alle de nødvendige tilslutninger til OLED -display og summer er fuldført. Lad os nu gå videre med at forstå programmets aspekt af projektet..

Trin 5: Inkluderer biblioteket og initialiserer displayprotokoller

Herunder biblioteket og initialisering af displayprotokoller
Herunder biblioteket og initialisering af displayprotokoller

Hele programmet er blevet opdelt i 3 komponenter:

  1. Hovedprogrammet består af initialisering og sekvenser af billedvisning og melodi
  2. "pitches.h" -fil, der består af listen over musiknoter og den tilhørende frekvens
  3. "pictures.h" -fil, der består af bitmaps af de billeder, der skal vises.

Processen med, hvordan man konverterer et billede til et bitmap -array til OLED -display, diskuteres i de kommende trin.

Jeg vedhæfter også hele koden sammen med denne instruks, som du kan bruge:)

Trin 6: Temasangen melodi

Temasangen Melodi
Temasangen Melodi
Temasangen Melodi
Temasangen Melodi

Jeg kiggede op på internettet efter de grundlæggende noter, der består af PUBG -temasangen, og tilføjede dem derefter til melodimatchen.

Ved at bruge en betydelig mængde tid på at spille og afspille melodisekvensen, oprettede jeg derefter den tidsvarighed, der er optaget af, hvor lang tid hver note skal spilles. Kombinationen af melodimatrixen og varighedsarrayet omfatter den komplette information til afspilning af sangen.

Trin 7: Afspilning af sangen under opstart

Afspilning af sangen under opstart
Afspilning af sangen under opstart

Der er i alt 63 toner, som jeg brugte til at sammensætte melodisekvensen. Ved hjælp af en for loop og iterating gennem noterne og varighedsarrayet med en forudbestemt pause mellem hver note, afspilles hele sekvensen en gang, da dette stykke kode ligger i tomrumsopsætningen (). Interessant nok bruger ingen af koder til dette projekt hulrumsløbet () i arduino -koden, da jeg kun har til hensigt at afspille og vise billeder én gang. Selvfølgelig, hvis du vil have en gentagende sekvens, skal den sættes i funktionen til loop -loop ().

Trin 8: Konvertering af billederne til bitmaps

Konvertering af billederne til bitmaps
Konvertering af billederne til bitmaps

Nu er den interessante del af projektet processen med at konvertere et billede til et bitmap -array til OLED -displayet i henhold til dets pixeltæthed. Til dette fandt jeg præfekt online -værktøj, der giver os mulighed for at generere de tilpassede bitmaps.

Linket til denne online applikation er:

Takket være de fantastiske skabere af denne applikation, gør dette mit arbejde meget lettere.

Når du går til linket, skal du først uploade det billede, du vil oprette bitmap af. En ting at bemærke her er, at du skal prøve at vælge billeder, der ikke har meget farvekontrast i det, prøv at holde dig til billeder med et par solide farver uden forløb for at få bedre resultater

Trin 9: Justering af opløsningen i henhold til din skærm

Justering af opløsningen i henhold til din skærm
Justering af opløsningen i henhold til din skærm

I det næste trin skal vi ændre størrelsen på billedet i henhold til skærmopløsningen. For vores OLED -skærm er den 28 pixels bred og 64 pixels i højden, som jeg har justeret som vist på billedet. Juster lysstyrketærsklen for at sikre, at billedet er betydeligt klart (det er her fordelen ved at bruge billeder med solide farver spiller ind, jo mere farvegradienter, vil billedkvaliteten i monokrom visning forringes, når det går i stykker med lysstyrketærsklen).

Næste trin er at tilpasse billedet på skærmen og holde proportionerne intakte og justere for symmetri, som mulighederne allerede er der. Du kan udforske disse muligheder for at få det ønskede billedoutput. Til reference får du også den fantastiske forhåndsvisning!

Trin 10: Generering af bitmap -arrayet

Generering af Bitmap Array
Generering af Bitmap Array

Efter justering af billedparametrene skal du i næste trin bare vælge Arduino -kode som outputformat og klikke på generer for at få det ønskede bitmap -array!

Der! du har konverteret dit billede til det ønskede bitmap -array. Jeg har udført denne proces i alt 7 billeder og gemt dem.

Trin 11: Visning af billederne som rækkefølge

Visning af billederne som rækkefølge
Visning af billederne som rækkefølge
Visning af billederne som rækkefølge
Visning af billederne som rækkefølge
Visning af billederne som rækkefølge
Visning af billederne som rækkefølge

Til visning af billederne har jeg brugt Arduino millis () -funktionen til at kalde draw () -funktionen, som grundlæggende er et sæt kommandoer til at rydde displayet, plotte bitmap -arrayet til OLED og initialisere displayet. Hovedlogikken er, at efter hvert 3,5 sekund ændres billedet, og det næste billede vises. Nå, 3,5 sekunder er ikke et unikt tal, jeg fandt lige ud af, at hvis jeg deler hele melodiens varighed med 7 billeder, fik jeg cirka 3,5 sekunder for hvert display. Du kan tilføje flere billeder til dette og reducere visningstiden for hvert billede, hvis du ønsker det.

Kodestykker forklarer, hvordan funktionerne kaldes baseret på millis () -funktion.

Hele bitmap -arrays af billederne gemmes i "pictures.h" -filen

Trin 12: Hele koden:

Her deler jeg hele koden, så I alle kan lege og eksperimentere med!

Når alt ser fint ud, er det tid til at uploade det til tavlen:)

Trin 13: Resultaterne:

Resultaterne
Resultaterne
Resultaterne
Resultaterne
Resultaterne
Resultaterne
Resultaterne
Resultaterne

Som du kan se blev billederne flotte! Og det gjorde melodien også! Jeg håber, at du har set den video, hvor hele demonstrationen er til stede.

Jeg håber, at denne Arduinos version af PUBG er et spændende projekt for alle spil- og elektronikentusiaster derude.

Du er velkommen til at dele din feedback i kommentarerne og dele eventuelle forslag. Overvej også at abonnere på min kanal for mere sådant indhold, da dette er en del af OLED -serien, jeg arbejder på. Lad mig vide, hvis du bygger dette sjove projekt:)

Indtil næste gang.

Anbefalede: