Mündəricat:

PUBG Tema Mahnısı+Arduino ilə Animasiya!: 13 Addım (Şəkillərlə)
PUBG Tema Mahnısı+Arduino ilə Animasiya!: 13 Addım (Şəkillərlə)
Anonim
Image
Image
Bütün hissələri toplamaq
Bütün hissələri toplamaq

Oraya salam və öyrədici bu əyləncəyə xoş gəldiniz! Hamınızın sağlam və sağlam olmasını diləyirəm. Bu kiçik, lakin inanılmaz bir layihə, PUBG mövzusunda mahnı oxumaq və hətta arduino istifadə edərək bəzi oyun animasiyaları yaratmaqdır.

İstifadə olunan komponentlər çox asanlıqla əldə edilir və bir parça çörək taxtasına yığmaq çox asandır. Bütün binanı və kodlaşdırma prosesini bu təlimatda paylaşacağam, sona qədər qalın!

Layihə haqqında fikir sahibi olmaq üçün videoya baxmanızı şiddətlə təklif edərdim:) Bəyənsəniz videonu bəyənib paylaşın. Quruluşumdan zövq alırsınızsa kanalıma abunə olmağı düşünün. Təşəkkürlər!

Beləliklə, heç bir gecikmə olmadan, başlayaq!

Addım 1: Bütün hissələri toplayın

Bütün hissələri toplamaq
Bütün hissələri toplamaq

Quruluş əsasən bu layihənin əsas nüvəsi olan Arduino Nanodan ibarətdir. Populyar Arduino Uno, Arduino Pro Mini, Arduino Mega kimi hər hansı digər Arduino variantlarından istifadə edə bilərsiniz. Animasiyaları və şəkilləri göstərmək üçün 128 x 64 piksel qətnamə ilə 0.96 düymlük OLED ekranla getməyə qərar verdim. Bu ekran, məlumat və saat üçün yalnız iki tel tələb edən I2C protokolu olan arduino ilə interfeyslər ola bilər, beləliklə əlaqələrin sayını azaldar və layihəni daha yığcam hala gətirər. PUBG tema melodiyasını çalmaq üçün 5V səs siqnalı istifadə etdim, pozitiv pinini 6 rəqəmsal pin arduino ilə bağladım və Arduinonun torpağına getdim.

Layihə üçün lazım olan hissələrin siyahısı:

  1. Arduino Nano (və ya seçdiyiniz hər hansı digər arduino lövhəsi)
  2. 0.96 düymlük OLED ekran modulu
  3. 5V səs siqnalı
  4. Jumper telləri
  5. Çörək lövhəsi
  6. Arduino proqramlaşdırma kabeli

Addım 2: OLED Ekranı bağlayın

OLED Ekranın Bağlanması
OLED Ekranın Bağlanması
OLED Ekranın Bağlanması
OLED Ekranın Bağlanması
OLED Ekranın Bağlanması
OLED Ekranın Bağlanması

OLED ekranın arduinodan bağlanması üçün cəmi 4 əlaqə lazımdır:

Arduino Vcc 5V

Arduino Gnd Gnd

Arduino SDA A4

Arduino SCK A5

Arduinonun A4 və A5 sancaqları, I2C rabitəsi üçün çoxlu analoq girişlərə və pinlərə xidmət edir. Burada ekran modulu ilə əlaqə yaratmaq üçün I2C protokolu üçün sancaqlardan istifadə etdik.

Bu layihədə istifadə olunan Adafruit kitabxanasına keçid:

Addım 3: Buzzerə qoşulun

Buzzerə qoşulma
Buzzerə qoşulma
Buzzerə qoşulma
Buzzerə qoşulma

5V səs siqnalı müsbət və mənfi bir təchizat terminalına malikdir.

Arduinonun müsbət D6 pin (rəqəmsal pin 6) (arduinonun istənilən rəqəmsal pinindən istifadə edə bilərsiniz)

Mənfi pin Gnd Arduino

Siqnalın melodiyanı çalacağı rəqəmsal pin D6 -da istədiyiniz ton yaradacağıq.

Addım 4: Bütün Avadanlıq Bağlantıları Tamamlandı

Bütün Avadanlıq Bağlantıları Tamamlandı
Bütün Avadanlıq Bağlantıları Tamamlandı
Bütün Avadanlıq Bağlantıları Tamamlandı
Bütün Avadanlıq Bağlantıları Tamamlandı

OLED ekran və səs siqnalının bütün lazımi əlaqələri tamamlandı. İndi layihənin proqramlaşdırma aspektini başa düşmək üçün davam edək.

Addım 5: Kitabxana və Ekran Protokollarının Başlanması

Kitabxana və Ekran Protokollarının Başlanması daxildir
Kitabxana və Ekran Protokollarının Başlanması daxildir

Bütün proqram 3 komponentdən ibarətdir:

  1. Başlanğıcdan və görüntü nümayişinin və melodiyanın ardıcıllığından ibarət olan əsas proqram
  2. musiqi notlarının siyahısı və əlaqəli tezlikdən ibarət "pitches.h" faylı
  3. göstəriləcək şəkillərin bitmaplərindən ibarət "pictures.h" faylı.

Bir görüntünün OLED displey üçün bir bitmap massivinə necə çevrilməsi prosesi qarşıdakı addımlarda müzakirə ediləcək.

İstifadə etməyiniz üçün bütün kodu bu təlimatla birlikdə əlavə edəcəyəm:)

Addım 6: Tema Mahnı Melodiyası

Mövzu Mahnı Melodiya
Mövzu Mahnı Melodiya
Mövzu Mahnı Melodiya
Mövzu Mahnı Melodiya

İnternetdə PUBG temalı mahnını ehtiva edən əsas qeydləri axtardım və sonra melodiya sırasına əlavə etdim.

Melodiya ardıcıllığını çalmaq və təkrarlamaq üçün xeyli vaxt sərf edərək, hər bir notun nə qədər çalınması lazım olduğu ilə əlaqəli olan vaxt aralığını yaratdım. Melodiya serialı və müddəti serialının birləşməsi mahnını ifa etmək üçün tam məlumatı ehtiva edir.

Addım 7: Başlanğıcda Mahnının Çalınması

Başlanğıcda Mahnının Çalınması
Başlanğıcda Mahnının Çalınması

Melodiya ardıcıllığını düzəltmək üçün istifadə etdiyim cəmi 63 not var. For istifadə edərək hər not arasında əvvəlcədən müəyyən edilmiş fasilə ilə notlar və müddətlər aralığını təkrarlamaq üçün bütün kod bir dəfə ifa olunur, çünki bu kod parçası yalan danışır. boşluqda (). Maraqlıdır ki, bu layihənin heç bir kodu arduino kodunun boşluq döngəsini () istifadə etmir, çünki şəkilləri yalnız bir dəfə oynamaq və göstərmək niyyətindəyəm. Əlbəttə ki, təkrarlanan bir ardıcıllıq istəyirsinizsə, o zaman void loop () funksiyasına daxil edilməlidir.

Addım 8: Şəkilləri Bitmaplərə çevirmək

Şəkilləri Bitmaplərə çevirmək
Şəkilləri Bitmaplərə çevirmək

Layihənin maraqlı hissəsi, görüntünün piksel sıxlığına görə OLED ekranı üçün bitmap sırasına çevirmək prosesidir. Bunun üçün xüsusi bitmaplər yaratmağımıza imkan verən bir onlayn vasitə tapdım.

Bu onlayn tətbiqin linki:

Bu tətbiqin inanılmaz yaradıcıları sayəsində işimi çox asanlaşdırır.

Bağlantıya girərkən əvvəlcə bitmap yaratmaq istədiyiniz şəkli yükləməlisiniz. Burada qeyd etmək lazım olan bir şey, çoxlu rəng kontrastı olmayan şəkilləri seçməyə çalışmalı, daha yaxşı nəticələr əldə etmək üçün heç bir qradiyasız şəkillərə yapışmağa çalışmalısınız.

Addım 9: Ekranınıza uyğun olaraq qətnamənin tənzimlənməsi

Ekranınıza görə qətnamənin tənzimlənməsi
Ekranınıza görə qətnamənin tənzimlənməsi

Növbəti addımda görüntünün ölçüsünü ekran ölçüsünə uyğun olaraq dəyişdirməliyik. OLED displeyimiz üçün 28 piksel genişliyində və 64 piksel hündürlüyündə, şəkildə göstərildiyi kimi düzəltmişəm. Görünüşün kifayət qədər aydın olduğundan əmin olmaq üçün parlaqlıq həddini tənzimləyin (aydın rəngli şəkillərdən istifadə etmənin üstünlüyü burada, rəng qradiyentləri nə qədər çox olarsa, monoxrom ekrandakı görüntü keyfiyyəti, parlaqlıq həddini pozduqda pisləşəcək.).

Növbəti addım, nisbətləri dəyişməz saxlamaq və seçimlərin mövcud olduğu simmetriyanı düzəltməklə görüntünü ekranda yerləşdirməkdir. İstədiyiniz görüntü çıxışı əldə etmək üçün bu variantları araşdıra bilərsiniz. İstinad üçün inanılmaz bir önizləmə seçimini də əldə edə bilərsiniz!

Addım 10: Bitmap Arrayının Yaradılması

Bitmap Arrayının Yaradılması
Bitmap Arrayının Yaradılması

Şəkil parametrlərini düzəltdikdən sonra, növbəti addımda yalnız çıxış formatı olaraq Arduino kodunu seçin və istədiyiniz bitmap massivini əldə etmək üçün yaratmaq düyməsini basın!

Orda! görüntünüzü istədiyiniz bitmap massivinə uğurla çevirdiniz. Bu prosesi ümumilikdə 7 görüntü üçün etdim və saxladım.

Addım 11: Şəkilləri Ardıcıllıqla Göstərin

Şəkilləri Ardıcıllıqla Göstərmək
Şəkilləri Ardıcıllıqla Göstərmək
Şəkilləri Ardıcıllıqla Göstərmək
Şəkilləri Ardıcıllıqla Göstərmək
Şəkilləri Ardıcıllıqla Göstərmək
Şəkilləri Ardıcıllıqla Göstərmək

Şəkilləri göstərmək üçün Arduino millis () funksiyasından istifadə edərək, əsasən ekranı təmizləmək üçün əmrlər toplusu olan draw () funksiyasını çağırıram, bitmap massivini OLED -ə çəkin və ekranı işə salın. Əsas məntiq ondan ibarətdir ki, hər 3,5 saniyədən sonra şəkil dəyişdirilir və növbəti şəkil göstərilir. 3.5 saniyə unikal bir rəqəm deyil, bütün melodiyanın müddətini 7 şəkilə bölsəm, hər ekran üçün təxminən 3,5 saniyə aldığımı anladım. İstəsəniz buna daha çox şəkil əlavə edə və hər bir görüntünün göstərilmə müddətini azalda bilərsiniz.

Kod parçaları millis () funksiyasına əsaslanaraq funksiyaların necə çağırıldığını izah edir.

Şəkillərin bütün bitmap serialları "pictures.h" faylında saxlanılır

Addım 12: Bütün Kod:

Hamınızın ətrafında oynamağınız və sınamağınız üçün bütün kodu paylaşıram!

Hər şey yaxşı göründükdən sonra lövhəyə yükləməyin vaxtı gəldi:)

Addım 13: Nəticələr:

Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr

Gördüyünüz kimi şəkillər əla çıxdı! Və melodiya da belə oldu! Ümid edirəm ki, nümayişin hamısının yer aldığı videoya baxmısınız.

Ümid edirəm ki, bu Arduino -nun PUBG versiyası bütün oyun və elektron həvəskarları üçün maraqlı bir layihədir.

Zəhmət olmasa şərhlərinizdə rəyinizi bildirməkdən və hər hansı bir təklifinizi bölüşməkdən çəkinməyin. Bundan əlavə, üzərində çalışdığım OLED seriyasının bir hissəsi olduğu üçün daha çox məzmun üçün kanalıma abunə olmağı düşünün. Bu əyləncəli layihəni qurarsanız mənə bildirin:)

Növbəti dəfə qədər.

Tövsiyə: