Turinys:

PUBG teminė daina+animacija su „Arduino“!: 13 žingsnių (su paveikslėliais)
PUBG teminė daina+animacija su „Arduino“!: 13 žingsnių (su paveikslėliais)

Video: PUBG teminė daina+animacija su „Arduino“!: 13 žingsnių (su paveikslėliais)

Video: PUBG teminė daina+animacija su „Arduino“!: 13 žingsnių (su paveikslėliais)
Video: Герои Гуджитсу. Эпизод 5. Гуджитсу Юрского Периода 2024, Lapkritis
Anonim
Image
Image
Surink visas dalis
Surink visas dalis

Sveiki, sveiki atvykę į šią linksmą pamoką! Tikiuosi, kad jums visiems gerai ir išlikite sveiki. Šis mažas, bet nuostabus projektas yra apie PUBG teminės dainos grojimą ir netgi žaidimų animacijos kūrimą naudojant „arduino“.

Naudojami komponentai yra labai lengvai prieinami ir labai lengvai montuojami ant duonos lentos. Aš pasidalinsiu visu kūrimo ir kodavimo procesu šioje instrukcijoje, laikykitės iki galo!

Labai rekomenduočiau pažiūrėti vaizdo įrašą, kad susidarytumėte idėją apie projektą:) Jei patiko, pamėgkite ir pasidalinkite vaizdo įrašu. Apsvarstykite galimybę užsiprenumeruoti mano kanalą, jei jums patinka mano kūrinys. Ačiū!

Taigi, nedelsdami pradėkime!

1 žingsnis: Surinkite visas dalis

Surink visas dalis
Surink visas dalis

Konstrukciją daugiausia sudaro „Arduino Nano“, kuri yra pagrindinis šio projekto pagrindas. Galite naudoti bet kokius kitus „Arduino“variantus, tokius kaip populiarus „Arduino Uno“, „Arduino Pro Mini“, „Arduino Mega“ir kt. Norėdami rodyti animaciją ir vaizdus, nusprendžiau pasirinkti 0,96 colio OLED ekraną, kurio skiriamoji geba yra 128 x 64 pikselių. Šis ekranas gali būti sąsaja su „arduino“su I2C protokolu, kuriam reikalingi tik du laidai duomenims ir laikrodžiui, taip sumažinant jungčių skaičių ir sumažinant projektą. Norėdami groti PUBG temos melodiją, naudoju 5 V signalą, kurio teigiamą kaištį prijungiau prie skaitmeninio 6 arduino kaiščio ir žemė eina į „Arduino“žemę.

Tai yra projektui reikalingų dalių sąrašas:

  1. „Arduino Nano“(arba bet kuri kita jūsų pasirinkta „arduino“lenta)
  2. 0,96 colio OLED ekrano modulis
  3. 5 V signalas
  4. Jumperio laidai
  5. Bandomoji Lenta
  6. „Arduino“programavimo kabelis

2 veiksmas: OLED ekrano prijungimas

OLED ekrano prijungimas
OLED ekrano prijungimas
OLED ekrano prijungimas
OLED ekrano prijungimas
OLED ekrano prijungimas
OLED ekrano prijungimas

Iš viso reikia 4 jungčių, kad OLED ekranas būtų prijungtas iš arduino:

Arduino Vcc 5V

Gnd Gnd iš Arduino

„Arduino“SDA A4

SCK A5 iš „Arduino“

„Arduino“kaiščiai A4 ir A5 naudojami įvairiems analoginių įėjimų tikslams, taip pat kaiščiams, skirtiems I2C ryšiui. Čia mes panaudojome I2C protokolo kaiščius sąsajai su ekrano moduliu.

Šiame projekte naudojama nuoroda į „Adafruit“biblioteką:

3 veiksmas: „Buzzer“prijungimas

„Buzzer“prijungimas
„Buzzer“prijungimas
„Buzzer“prijungimas
„Buzzer“prijungimas

5 V signalas turi teigiamą ir neigiamą maitinimo gnybtą.

Teigiamas „Arduino“kaištis D6 (skaitmeninis kaištis 6) (galite naudoti bet kurį skaitmeninį „arduino“kaištį)

Arduino neigiamas kaištis Gnd

Skaitmeniniame kaištyje D6 sukursime norimą toną, kuriam skambant skambės melodija.

4 veiksmas: visi aparatūros ryšiai baigti

Visi aparatūros ryšiai baigti
Visi aparatūros ryšiai baigti
Visi aparatūros ryšiai baigti
Visi aparatūros ryšiai baigti

Visi būtini OLED ekrano ir garso signalo sujungimai yra baigti. Dabar pradėkime suprasti projekto programavimo aspektą.

5 veiksmas: bibliotekos įtraukimas ir ekrano protokolų inicijavimas

Įskaitant biblioteką ir ekrano protokolų inicijavimą
Įskaitant biblioteką ir ekrano protokolų inicijavimą

Visa programa suskirstyta į 3 komponentus:

  1. Pagrindinė programa, kurią sudaro inicijavimas ir vaizdo rodymo bei melodijos sekos
  2. „pitches.h“failas, kurį sudaro muzikos natų sąrašas ir susijęs dažnis
  3. „images.h“failas, kurį sudaro rodomų vaizdų bitkartės.

Būsimų veiksmų metu aptariamas vaizdas, kaip paversti vaizdą į OLED ekrano bitų žemėlapių masyvą.

Taip pat pridėsiu visą kodą kartu su šia instrukcija, kad galėtumėte naudoti:)

6 žingsnis: temos dainos melodija

Temos dainos melodija
Temos dainos melodija
Temos dainos melodija
Temos dainos melodija

Internete ieškojau pagrindinių natų, kuriose yra PUBG teminė daina, ir pridėjau jas prie melodijų masyvo.

Praleisdamas daug laiko grojant ir pakartojant melodijų seką, sukūriau laiko trukmės masyvą, susijusį su tuo, kiek laiko reikia groti kiekvieną natą. Melodijos masyvo ir trukmės masyvo derinys apima visą informaciją, leidžiančią paleisti dainą.

7 veiksmas: dainos grojimas paleidimo metu

Dainos grojimas paleidimo metu
Dainos grojimas paleidimo metu

Iš viso yra 63 natos, kurias naudoju kurdamas melodijų seką. Naudojant ciklą ir kartojant pastabas bei trukmės masyvą su iš anksto nustatyta pertrauka tarp kiekvienos natos, visa seka grojama vieną kartą, nes ši kodo dalis tuštumos sąrankoje (). Įdomu tai, kad nė vienas šio projekto kodas nenaudoja arduino kodo tuštumos ciklo (), nes ketinu paleisti ir rodyti vaizdus tik vieną kartą. Žinoma, jei norite pasikartojančios sekos, tai turi būti įtraukta į funkciją void loop ().

8 veiksmas: vaizdų konvertavimas į bitų žemėlapius

Vaizdų konvertavimas į bitkartes
Vaizdų konvertavimas į bitkartes

Dabar įdomi projekto dalis yra procesas, paverčiantis vaizdą į OLED ekrano bitų žemėlapių masyvą pagal jo pikselių tankį. Tam radau prefekto internetinį įrankį, kuris leidžia mums sukurti pasirinktinius bitų žemėlapius.

Šios internetinės programos nuoroda yra:

Dėka nuostabių šios programos kūrėjų, tai labai palengvina mano darbą.

Eidami į nuorodą pirmiausia turite įkelti vaizdą, kurio bitų žemėlapį norite sukurti. Čia reikia atkreipti dėmesį į vieną dalyką: pabandykite pasirinkti vaizdus, kuriuose nėra daug spalvų kontrasto, ir pabandykite laikytis vaizdų su keliomis vientisomis spalvomis be jokių nuolydžių, kad gautumėte geresnių rezultatų

9 veiksmas: skiriamosios gebos reguliavimas pagal jūsų ekraną

Skiriamosios gebos reguliavimas pagal jūsų ekraną
Skiriamosios gebos reguliavimas pagal jūsų ekraną

Kitame žingsnyje turime pakeisti vaizdo dydį pagal ekrano skiriamąją gebą. Mūsų OLED ekrane jis yra 28 pikselių pločio ir 64 pikselių aukščio, kuriuos aš sureguliavau, kaip parodyta paveikslėlyje. Sureguliuokite ryškumo slenkstį, kad įsitikintumėte, jog vaizdas yra labai aiškus (čia išryškėja privalumas naudojant vaizdus su vientisomis spalvomis, tuo daugiau spalvų nuolydžių, nespalvoto ekrano vaizdo kokybė pablogės, nes sutriks ryškumo slenkstis).

Kitas žingsnis - pritaikyti vaizdą ekrane, išlaikant nepažeistas proporcijas ir pritaikant simetriją, kuriai jau yra parinkčių. Galite ištirti šias parinktis, kad gautumėte norimą vaizdo išvestį. Norėdami gauti nuorodą, taip pat gausite nuostabią peržiūros parinktį!

10 veiksmas: sukurkite „Bitmap“masyvą

„Bitmap“masyvo generavimas
„Bitmap“masyvo generavimas

Sureguliavę vaizdo parametrus, kitame žingsnyje tiesiog pasirinkite „Arduino“kodą kaip išvesties formatą ir spustelėkite „Sukurti“, kad gautumėte norimą bitų žemėlapių masyvą!

Ten! jūs sėkmingai pavertėte savo vaizdą į norimą bitų žemėlapių masyvą. Aš padariau šį procesą iš viso 7 vaizdams ir juos išsaugojau.

11 veiksmas: vaizdų rodymas kaip seka

Vaizdų rodymas kaip seka
Vaizdų rodymas kaip seka
Vaizdų rodymas kaip seka
Vaizdų rodymas kaip seka
Vaizdų rodymas kaip seka
Vaizdų rodymas kaip seka

Vaizdams rodyti naudojau funkciją „Arduino millis“(), kad iškviesčiau funkciją draw (), kuri iš esmės yra komandų rinkinys, skirtas išvalyti ekraną, sudaryti bitų žemėlapių masyvą prie OLED ir inicijuoti ekraną. Pagrindinė logika yra ta, kad kas 3,5 sekundės vaizdas keičiamas ir rodomas kitas vaizdas. Na, 3,5 sekundės nėra unikalus skaičius, aš tiesiog supratau, kad padalijus visą melodijos trukmę iš 7 vaizdų, už kiekvieną ekraną gausiu maždaug 3,5 sekundės. Jei norite, galite pridėti daugiau vaizdų ir sutrumpinti kiekvieno vaizdo rodymo laiką.

Kodo fragmentai paaiškina, kaip funkcijos vadinamos remiantis funkcija „millis“().

Visi vaizdų bitų žemėlapių masyvai saugomi faile „pictures.h“

12 veiksmas: visas kodas:

Čia aš dalinuosi visu kodu, kad galėtumėte žaisti ir eksperimentuoti!

Kai viskas atrodo gerai, laikas įkelti jį į lentą:)

13 žingsnis: Rezultatai:

Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai

Kaip matote, vaizdai pasirodė puikūs! Ir taip padarė melodija! Tikiuosi, kad žiūrėjote vaizdo įrašą, kuriame yra visa demonstracija.

Tikiuosi, kad ši „Arduino“PUBG versija yra įdomus projektas visiems žaidimų ir elektronikos entuziastams.

Nedvejodami pasidalykite savo atsiliepimais komentaruose ir pasidalykite pasiūlymais. Be to, apsvarstykite galimybę užsiprenumeruoti mano kanalą, kad gautumėte daugiau tokio turinio, nes tai yra OLED serijos, su kuria dirbu, dalis. Praneškite man, jei kuriate šį įdomų projektą:)

Iki kito karto.

Rekomenduojamas: