Cuprins:

Melodie tematică PUBG + animație cu Arduino !: 13 pași (cu imagini)
Melodie tematică PUBG + animație cu Arduino !: 13 pași (cu imagini)
Anonim
Image
Image
Adunarea tuturor părților
Adunarea tuturor părților

Bună ziua și bine ai venit la acest distractiv instructabil! Sper că toți sunteți bine și să rămâneți sănătoși. Acest proiect mic, dar uimitor, este despre redarea piesei tematice PUBG și chiar crearea unor animații de joc folosind arduino.

Componentele utilizate sunt foarte ușor disponibile și foarte ușor de asamblat pe o bucată de panou. Voi împărtăși întregul proces de clădire și codificare în acest instructable, rămâneți până la sfârșit!

V-aș sugera să vizionați videoclipul pentru a vă face o idee despre proiect:) Dacă vă place, apreciați și distribuiți videoclipul. Vă recomandăm să vă abonați la canalul meu dacă vă bucurați de versiunea mea. Mulțumesc!

Deci, fără nicio altă întârziere, să începem!

Pasul 1: Adunarea tuturor părților

Adunarea tuturor părților
Adunarea tuturor părților

Construcția constă în principal dintr-un Arduino Nano, care este nucleul principal pentru acest proiect. Puteți utiliza orice alte variante Arduino, cum ar fi popularele Arduino Uno, Arduino Pro Mini, Arduino Mega etc. Pentru a afișa animațiile și imaginile, am decis să merg cu un ecran OLED de 0,96 inch cu o rezoluție de 128 x 64 pixeli. Acest afișaj poate fi interfață cu arduino cu protocolul I2C care necesită doar două fire pentru date și ceas, reducând astfel numărul de conexiuni și făcând proiectul mai compact. Pentru a reda melodia temei PUBG, am folosit un buzzer de 5V, din care am conectat pinul pozitiv cu pinul digital 6 al arduino și solul merge la solul Arduino.

Iată lista pieselor necesare proiectului:

  1. Arduino Nano (sau orice altă placă arduino la alegere)
  2. Modul de afișaj OLED de 0,96 inch
  3. Buzzer de 5V
  4. Sârme de jumper
  5. Pană de pâine
  6. Cablu de programare Arduino

Pasul 2: Conectarea ecranului OLED

Conectarea ecranului OLED
Conectarea ecranului OLED
Conectarea ecranului OLED
Conectarea ecranului OLED
Conectarea ecranului OLED
Conectarea ecranului OLED

Un total de 4 conexiuni sunt necesare pentru ca afișajul OLED să fie conectat de la arduino:

Vcc 5V de Arduino

Gnd Gnd din Arduino

SDA A4 a Arduino

SCK A5 din Arduino

Pinii A4 și A5 ai arduino servesc mai multor intrări analogice, precum și pinilor pentru comunicația I2C. Aici am folosit pinii pentru protocolul I2C pentru interfața cu modulul de afișare.

Link-ul către biblioteca Adafruit utilizată în acest proiect:

Pasul 3: Conectarea soneriei

Conectarea soneriei
Conectarea soneriei
Conectarea soneriei
Conectarea soneriei

Buzzerul de 5V are un terminal de alimentare pozitiv și negativ.

Pinul pozitiv D6 al Arduino (pinul digital 6) (puteți utiliza orice pin digital al arduino)

Pin negativ Gnd de Arduino

Vom crea tonul dorit pe pinul digital D6 pe care buzzerul va reda melodia.

Pasul 4: Toate conexiunile hardware s-au finalizat

Toate conexiunile hardware sunt complete
Toate conexiunile hardware sunt complete
Toate conexiunile hardware sunt complete
Toate conexiunile hardware sunt complete

Toate conexiunile necesare ale afișajului OLED și ale soneriei sunt complete. Acum să mergem mai departe pentru a înțelege aspectul de programare al proiectului..

Pasul 5: inclusiv biblioteca și inițializarea protocoalelor de afișare

Inclusiv biblioteca și inițializarea protocoalelor de afișare
Inclusiv biblioteca și inițializarea protocoalelor de afișare

Întregul program a fost separat în 3 componente:

  1. Programul principal constă în inițializare și în secvențele de afișare a imaginii și melodie
  2. fișier „pitches.h” format din lista de note muzicale și frecvența asociată
  3. Fișierul "pictures.h" format din bitmaps ale imaginilor care urmează să fie afișate.

Procesul de transformare a unei imagini într-o matrice de bitmap pentru afișaj OLED este discutat în pașii următori.

Voi atașa, de asemenea, întregul cod, împreună cu acest instructiv pentru tine de utilizat:)

Pasul 6: Melodia cântecului tematic

Melodia cântecului tematic
Melodia cântecului tematic
Melodia cântecului tematic
Melodia cântecului tematic

Am căutat pe internet pentru notele de bază care conțin melodia tematică PUBG și apoi le-am adăugat în matricea melodică.

Cheltuind o cantitate considerabilă de timp jucând și redând secvența melodică, am creat apoi matricea de durată a timpului care se referă la cât timp trebuie să fie redată fiecare notă. Combinația dintre matrice de melodie și matrice de durată cuprinde informațiile complete pentru a reda melodia.

Pasul 7: Redarea melodiei în timpul pornirii

Redarea melodiei în timpul pornirii
Redarea melodiei în timpul pornirii

Există un total de 63 de note pe care le-am folosit pentru a compune secvența melodică. Folosind o buclă for și iterând prin note și matrice de durată cu o pauză prestabilită între fiecare notă, întreaga secvență este redată o dată, deoarece această bucată de cod se află în setarea nulă (). Interesant este că niciunul dintre codurile pentru acest proiect nu folosește bucla void () a codului arduino, deoarece intenționez să redau și să afișez imagini o singură dată. Desigur, dacă doriți o secvență repetată, atunci aceasta trebuie să fie pusă în funcția void loop ().

Pasul 8: Conversia imaginilor în Bitmaps

Conversia imaginilor în Bitmaps
Conversia imaginilor în Bitmaps

Acum, partea interesantă a proiectului este procesul de a converti o imagine într-o matrice de bitmap pentru afișajul OLED în funcție de densitatea pixelilor. Pentru aceasta am găsit instrumentul online prefect care ne permite să generăm hărți de biți personalizate.

Link-ul pentru această aplicație online este:

Datorită creatorilor uimitori ai acestei aplicații, acest lucru îmi facilitează munca.

După ce accesați linkul, trebuie mai întâi să încărcați imaginea pentru care doriți să creați bitmap-ul. Un lucru de remarcat aici este că ar trebui să încercați să selectați imagini care nu au un contrast de culoare foarte mare, să încercați să vă lipiți de imagini cu câteva culori solide, fără niciun gradient pentru a obține rezultate mai bune.

Pasul 9: Ajustarea rezoluției în funcție de afișajul dvs

Reglarea rezoluției în funcție de afișajul dvs
Reglarea rezoluției în funcție de afișajul dvs

În pasul următor, trebuie să redimensionăm imaginea în funcție de rezoluția afișajului. Pentru ecranul nostru OLED, acesta are o lățime de 28 de pixeli și o înălțime de 64 de pixeli, pe care l-am reglat așa cum se arată în imagine. Reglați pragul de luminozitate pentru a vă asigura că imaginea este considerabil clară (aici intervine avantajul utilizării imaginilor cu culori solide, cu cât gradientele de culoare sunt mai mari, calitatea imaginii în afișajul monocrom se va degrada pe măsură ce se încurcă cu pragul de luminozitate).

Următorul pas este să se potrivească imaginea de pe ecran păstrând proporțiile intacte și ajustându-se pentru simetrie pentru care opțiunile sunt deja acolo. Puteți explora aceste opțiuni pentru a obține imaginea dorită. Pentru referință, primiți și opțiunea uimitoare de previzualizare!

Pasul 10: Generarea matricei Bitmap

Generarea Bitmap Array
Generarea Bitmap Array

După ajustarea parametrilor imaginii, în pasul următor trebuie doar să selectați codul Arduino ca format de ieșire și să faceți clic pe generare pentru a obține matricea de bitmap dorită!

Acolo! v-ați convertit cu succes imaginea în matricea de bitmap dorită. Am făcut acest proces pentru un total de 7 imagini și le-am salvat.

Pasul 11: Afișarea imaginilor ca secvență

Afișarea imaginilor ca secvență
Afișarea imaginilor ca secvență
Afișarea imaginilor ca secvență
Afișarea imaginilor ca secvență
Afișarea imaginilor ca secvență
Afișarea imaginilor ca secvență

Pentru afișarea imaginilor, am folosit funcția Arduino millis () pentru a apela funcția draw (), care este practic un set de comenzi pentru a șterge afișajul, trasați matricea bitmap la OLED și inițializați afișajul. Logica principală este că după fiecare 3,5 secunde, imaginea este schimbată și următoarea imagine este afișată. Ei bine, 3,5 secunde nu este un număr unic, mi-am dat seama că, dacă împart întreaga durată a melodiei la 7 imagini, am aproximativ 3,5 secunde pentru fiecare afișaj. Puteți adăuga mai multe imagini la aceasta și puteți reduce timpul de afișare pentru fiecare imagine, dacă doriți.

Fragmentele de cod explică modul în care funcțiile sunt numite în funcție de funcția millis ().

Întreaga matrice bitmap a imaginilor este stocată în fișierul „pictures.h”

Pasul 12: întregul cod:

Aici vă împărtășesc întregul cod pentru ca toți să vă jucați și să experimentați!

Odată ce totul pare bine, este timpul să îl încărcați pe tablă:)

Pasul 13: Rezultate:

Rezultatele
Rezultatele
Rezultatele
Rezultatele
Rezultatele
Rezultatele
Rezultatele
Rezultatele

După cum puteți vedea, imaginile s-au dovedit a fi grozave! Și la fel a făcut și melodia! Sper că ați urmărit videoclipul în care este prezentă întreaga demonstrație.

Sper că versiunea PUBG a acestui Arduino este un proiect interesant pentru toți pasionații de jocuri și electronice.

Vă rugăm să nu ezitați să împărtășiți feedback-ul dvs. în comentarii și să împărtășiți orice sugestii. De asemenea, luați în considerare abonarea la canalul meu pentru mai mult astfel de conținut, deoarece aceasta face parte din seria OLED la care lucrez. Spune-mi dacă construiești acest proiect distractiv:)

Pana data viitoare.

Recomandat: