Mundarija:

PUBG mavzusidagi qo'shiq+Arduino bilan animatsiya!: 13 qadam (rasmlar bilan)
PUBG mavzusidagi qo'shiq+Arduino bilan animatsiya!: 13 qadam (rasmlar bilan)

Video: PUBG mavzusidagi qo'shiq+Arduino bilan animatsiya!: 13 qadam (rasmlar bilan)

Video: PUBG mavzusidagi qo'shiq+Arduino bilan animatsiya!: 13 qadam (rasmlar bilan)
Video: Magister- victor makri yangi xit music vektor haqida #pubgmobile #pubg #vektor 2024, Iyul
Anonim
Image
Image
Barcha qismlarni yig'ish.
Barcha qismlarni yig'ish.

Assalomu alaykum va bu qiziqarli darsga xush kelibsiz! Hammangiz sog' -salomat bo'lishingizni tilayman. Bu kichik, ammo ajoyib loyiha PUBG mavzusidagi qo'shiqni ijro etish va hatto arduino yordamida o'yin animatsiyalarini yaratish haqida.

Ishlatiladigan komponentlar juda oson mavjud va ularni non paneliga yig'ish juda oson. Men butun bino va kodlash jarayonini bu ko'rsatma bilan bo'lishaman, oxirigacha turing!

Loyiha haqida tasavvurga ega bo'lish uchun sizga videoni ko'rishni tavsiya qilaman:) Agar sizga yoqqan bo'lsa, videoni yoqtiring va baham ko'ring. Agar mening qurilishim sizga yoqsa, kanalimga obuna bo'lishni o'ylab ko'ring. Rahmat!

Shunday qilib, kechiktirmasdan, boshlaylik!

1 -qadam: Barcha qismlarni yig'ish

Barcha qismlarni yig'ish.
Barcha qismlarni yig'ish.

Qurilish asosan ushbu loyihaning asosiy yadrosi bo'lgan Arduino Nano -dan iborat. Siz mashhur Arduino Uno, Arduino Pro Mini, Arduino Mega va boshqalar kabi Arduino -ning boshqa variantlaridan foydalanishingiz mumkin. Animatsiya va tasvirlarni ko'rsatish uchun men 0,96 dyuymli OLED -displey bilan ketishga qaror qildim, o'lchamlari 128 dan 64 pikselgacha. Bu displey I2C protokoliga ega bo'lgan arduino interfeysi bo'lishi mumkin, bu ma'lumot va soat uchun atigi ikkita simni talab qiladi, bu ulanishlar sonini kamaytiradi va loyihani ixcham qiladi. PUBG mavzusidagi ohangni ijro etish uchun men 5V signalli signaldan foydalanardim, u musbat pinni 6 -raqamli arduino piniga ulab, Arduino -ning eriga tushdi.

Bu loyiha uchun zarur bo'lgan qismlar ro'yxati:

  1. Arduino Nano (yoki siz tanlagan boshqa arduino taxtasi)
  2. 0,96 dyuymli OLED displeyli modul
  3. 5V signalli signal
  4. Jumper simlari
  5. Non paneli
  6. Arduino dasturlash kabeli

2 -qadam: OLED -displeyni ulash

OLED -displeyni ulash
OLED -displeyni ulash
OLED -displeyni ulash
OLED -displeyni ulash
OLED -displeyni ulash
OLED -displeyni ulash

OLED displeyini arduino -dan ulash uchun jami 4 ta ulanish kerak:

Arduino uchun VV 5V

Gnd Gnd Arduino

Arduino uchun SDA A4

Arduino SC5 A5

Arduino A4 va A5 pinlari analog kirishning bir nechta maqsadlariga, shuningdek I2C aloqasi uchun pinlarga xizmat qiladi. Bu erda biz ekran moduli bilan aloqa qilish uchun I2C protokoli pinlaridan foydalanganmiz.

Ushbu loyihada ishlatilgan Adafruit kutubxonasiga havola:

3 -qadam: Buzzerni ulash

Buzzerni ulash
Buzzerni ulash
Buzzerni ulash
Buzzerni ulash

5V signalining ijobiy va salbiy ta'minot terminali mavjud.

Arduino -ning ijobiy D6 pinli (raqamli pin 6) (siz arduino -ning istalgan raqamli pinidan foydalanishingiz mumkin)

Salbiy pin Gnd Arduino

Biz D6 raqamli pinida kerakli ohangni yaratmoqchimiz, bunda ohang chalinadi.

4 -qadam: Barcha apparat ulanishlari tugallandi

Barcha apparat ulanishlari tugallandi.
Barcha apparat ulanishlari tugallandi.
Barcha apparat ulanishlari tugallandi.
Barcha apparat ulanishlari tugallandi.

OLED -displey va ovozli signalning barcha kerakli ulanishlari tugallandi. Keling, loyihaning dasturiy tomonini tushunish uchun davom etamiz.

5 -qadam: kutubxona va ekran protokollarini ishga tushirish

Kutubxona va displey protokollarini ishga tushirish
Kutubxona va displey protokollarini ishga tushirish

Butun dastur 3 qismga bo'lingan:

  1. Asosiy dastur tasvirni va ohangni ishga tushirish va ketma -ketligini o'z ichiga oladi
  2. "pitches.h" fayli musiqiy notalar ro'yxati va tegishli chastotadan iborat
  3. ko'rsatiladigan rasmlarning bitmaplaridan iborat "pictures.h" fayli.

Rasmni OLED displey uchun bitmap massiviga qanday o'zgartirish jarayoni kelgusi bosqichlarda muhokama qilinadi.

Men sizga butun kodni qo'shib qo'yaman, bu sizga ko'rsatma:)

6 -qadam: Qo'shiq mavzusidagi qo'shiq

Mavzu qo'shiq melodiya.
Mavzu qo'shiq melodiya.
Mavzu qo'shiq melodiya.
Mavzu qo'shiq melodiya.

Men Internetda PUBG mavzusidagi qo'shiqni o'z ichiga olgan asosiy yozuvlarni qidirib topdim va keyin ularni ohanglar qatoriga qo'shdim.

Ko'p vaqtni ijro etish va ohanglar ketma -ketligini takrorlash bilan men har bir notani qancha vaqt chalish kerakligi bilan bog'liq vaqt oralig'ini yaratdim. Musiqa va davomiylik majmuasining kombinatsiyasi qo'shiqni ijro etish uchun to'liq ma'lumotni o'z ichiga oladi.

7 -qadam: ishga tushirish paytida qo'shiqni ijro etish

Ishni boshlash paytida qo'shiqni ijro etish
Ishni boshlash paytida qo'shiqni ijro etish

Menda ohanglar ketma -ketligini tuzish uchun ishlatilgan jami 63 ta eslatma bor. "Loop" dan foydalanib, har bir nota o'rtasida oldindan belgilangan pauza bilan notalar va davomiylik qatorini takrorlash orqali butun ketma -ketlik bir marta ijro etiladi, chunki bu kod qismi bo'sh sozlamalarda (). Qizig'i shundaki, ushbu loyihaning kodlaridan hech biri arduino kodining bo'sh voidini () ishlatmaydi, chunki men rasmlarni faqat bir marta o'ynatmoqchiman. Albatta, agar siz takrorlanadigan ketma -ketlikni xohlasangiz, uni void loop () funktsiyasiga kiritish kerak.

8 -qadam: Rasmlarni bitmaplarga aylantirish

Rasmlarni bitmaplarga aylantirish.
Rasmlarni bitmaplarga aylantirish.

Loyihaning qiziqarli qismi - tasvirni piksel zichligiga qarab OLED displey uchun bitmap massiviga aylantirish jarayoni. Buning uchun men maxsus bitmaplarni yaratishga imkon beruvchi onlayn prefekturani topdim.

Ushbu onlayn dastur uchun havola:

Bu ilovani yaratgan ajoyib ijodkorlarga rahmat, bu mening ishimni ancha osonlashtiradi.

Havolaga kirganingizda, avval siz bitmap yaratmoqchi bo'lgan rasmni yuklashingiz kerak. Bu erda e'tiborga olish kerak bo'lgan narsa shundaki, siz juda ko'p rang kontrasti bo'lmagan tasvirlarni tanlashga harakat qilishingiz kerak, yaxshi natijalarga erishish uchun gradientlarsiz, bir nechta qat'iy ranglar bilan yopishtirishga harakat qiling.

9 -qadam: Displeyingizga qarab piksellar sonini sozlash

Ruxsatni displeyingizga muvofiq sozlash
Ruxsatni displeyingizga muvofiq sozlash

Keyingi bosqichda biz tasvir o'lchamini displey o'lchamiga qarab o'zgartirishimiz kerak. Bizning OLED displeyimiz uchun uning kengligi 28 piksel va balandligi 64 piksel, men uni rasmda ko'rsatilgandek sozlaganman. Rasm ravshanligini ta'minlash uchun yorqinlik chegarasini o'rnating (bu erda aniq ranglar bilan tasvirni ishlatishning afzalligi, rang gradyanlari qanchalik ko'p bo'lsa, monoxromli displeyda tasvir sifati pasayadi, chunki u yorqinlik chegarasini buzadi.).

Keyingi qadam - tasvirni mutanosibligini saqlagan holda ekranga joylashtirish va variantlar mavjud bo'lgan simmetriyani sozlash. Siz kerakli tasvirni olish uchun ushbu variantlarni o'rganishingiz mumkin. Malumot uchun siz ham oldindan ko'rishning ajoyib variantini olasiz!

10 -qadam: Bitmap massivini yaratish

Bitmap massivini yaratish.
Bitmap massivini yaratish.

Rasm parametrlarini moslashtirgandan so'ng, keyingi bosqichda Arduino kodini chiqish formati sifatida tanlang va kerakli bitmap massivini olish uchun yaratish tugmasini bosing!

Mana! siz rasmingizni kerakli bitmap qatoriga muvaffaqiyatli o'zgartirdingiz. Men bu jarayonni jami 7 ta rasm uchun qildim va saqladim.

11 -qadam: Tasvirlarni ketma -ketlikda ko'rsatish

Tasvirlarni ketma -ketlikda ko'rsatish
Tasvirlarni ketma -ketlikda ko'rsatish
Tasvirlarni ketma -ketlikda ko'rsatish
Tasvirlarni ketma -ketlikda ko'rsatish
Tasvirlarni ketma -ketlikda ko'rsatish
Tasvirlarni ketma -ketlikda ko'rsatish

Tasvirlarni ko'rsatish uchun men Arduino millis () funktsiyasidan foydalanib, chizish () funktsiyasini chaqirdim, bu asosan displeyni tozalash buyruqlar to'plami, OLED -ga bitmap massivini tuzish va displeyni ishga tushirish. Asosiy mantiq shundaki, har 3,5 soniyadan so'ng tasvir o'zgartiriladi va keyingi rasm ko'rsatiladi. Xo'sh, 3,5 soniya - bu yagona raqam emas, men shuni aniqladimki, agar men butun ohang davomiyligini 7 ta tasvirga bo'lsam, har bir displeyda taxminan 3,5 soniya bor. Agar xohlasangiz, bunga ko'proq rasm qo'shishingiz va har bir tasvirni ko'rsatish vaqtini qisqartirishingiz mumkin.

Kod parchalari millis () funktsiyasiga asoslanib, funktsiyalar qanday chaqirilishini tushuntiradi.

Rasmlarning butun bitmap massivlari "pictures.h" faylida saqlanadi

12 -qadam: Butun kod:

Bu erda men siz bilan o'ynash va tajriba o'tkazish uchun kodni almashaman!

Hammasi yaxshi bo'lib tuyulgach, uni taxtaga yuklash vaqti keldi:)

13 -qadam: Natijalar:

Natijalar
Natijalar
Natijalar
Natijalar
Natijalar
Natijalar
Natijalar
Natijalar

Ko'rib turganingizdek, rasmlar ajoyib bo'lib chiqdi! Va ohang ham shunday bo'ldi! Umid qilamanki, siz namoyish to'liq bo'lgan videoni ko'rdingiz.

Umid qilamanki, Arduino -ning PUBG versiyasi barcha o'yinlar va elektron ixlosmandlari uchun qiziqarli loyihadir.

Iltimos, o'z fikr -mulohazalaringizni sharhlarda baham ko'ring va har qanday takliflar bilan bo'lishing, shuningdek, men ishlayotgan OLED seriyasining bir qismi bo'lgani uchun ko'proq kanallarimga obuna bo'ling. Agar siz bu qiziqarli loyihani qursangiz, menga xabar bering:)

Keyingi safargacha.

Tavsiya: