Spisu treści:

Piosenka motywu PUBG + animacja z Arduino!: 13 kroków (ze zdjęciami)
Piosenka motywu PUBG + animacja z Arduino!: 13 kroków (ze zdjęciami)

Wideo: Piosenka motywu PUBG + animacja z Arduino!: 13 kroków (ze zdjęciami)

Wideo: Piosenka motywu PUBG + animacja z Arduino!: 13 kroków (ze zdjęciami)
Wideo: 🔴 Q & A czyli WY pytacie JA odpowiadam 6 | LIVE 2024, Listopad
Anonim
Image
Image
Zbieranie wszystkich części…
Zbieranie wszystkich części…

Witaj i witaj w tej zabawnej instrukcji! Mam nadzieję, że wszyscy jesteście zdrowi i zdrowi. Ten mały, ale niesamowity projekt polega na odtwarzaniu utworu przewodniego PUBG, a nawet tworzeniu animacji gry za pomocą arduino.

Zastosowane komponenty są bardzo łatwo dostępne i bardzo łatwe w montażu na kawałku płytki stykowej. Podzielę się całym procesem budowania i kodowania w tym instruktażowym, trzymaj się do końca!

Gorąco polecam obejrzeć film, aby zorientować się w projekcie:) Jeśli Ci się spodoba, polub i udostępnij film. Rozważ zasubskrybowanie mojego kanału, jeśli podoba Ci się moja kompilacja. Dzięki!

Więc bez dalszej zwłoki zacznijmy!

Krok 1: Zbieranie wszystkich części…

Zbieranie wszystkich części…
Zbieranie wszystkich części…

Kompilacja składa się głównie z Arduino Nano, który jest głównym rdzeniem tego projektu. Możesz użyć dowolnych innych wariantów Arduino, takich jak popularne Arduino Uno, Arduino Pro Mini, Arduino Mega itp. Aby wyświetlać animacje i obrazy, zdecydowałem się na wyświetlacz OLED o przekątnej 0,96 cala i rozdzielczości 128 na 64 piksele. Ten wyświetlacz może być interfejsem z arduino z protokołem I2C, który wymaga tylko dwóch przewodów do przesyłania danych i zegara, zmniejszając w ten sposób liczbę połączeń i czyniąc projekt bardziej kompaktowym. Do odtworzenia melodii motywu PUBG użyłem brzęczyka 5V, którego połączyłem dodatni pin z cyfrowym pinem 6 arduino i masa idzie do masy Arduino.

Oto lista części potrzebnych do projektu:

  1. Arduino Nano (lub dowolna inna płyta Arduino do wyboru)
  2. Moduł wyświetlacza OLED o przekątnej 0,96 cala
  3. Brzęczyk 5V
  4. Przewody połączeniowe
  5. Deska do krojenia chleba
  6. Kabel do programowania Arduino

Krok 2: Podłączanie wyświetlacza OLED

Podłączanie wyświetlacza OLED
Podłączanie wyświetlacza OLED
Podłączanie wyświetlacza OLED
Podłączanie wyświetlacza OLED
Podłączanie wyświetlacza OLED
Podłączanie wyświetlacza OLED

Do podłączenia wyświetlacza OLED z arduino potrzebne są łącznie 4 połączenia:

Vcc 5V Arduino

Gnd Gnd Arduino

SDA A4 Arduino

SCK A5 Arduino

Piny A4 i A5 arduino służą do wielu zastosowań wejść analogowych, a także pinów do komunikacji I2C. Tutaj wykorzystaliśmy piny protokołu I2C do połączenia z modułem wyświetlacza.

Link do biblioteki Adafruit wykorzystanej w tym projekcie:

Krok 3: Podłączanie brzęczyka

Podłączanie brzęczyka
Podłączanie brzęczyka
Podłączanie brzęczyka
Podłączanie brzęczyka

Brzęczyk 5V posiada dodatni i ujemny zacisk zasilania.

Dodatni pin D6 Arduino (cyfrowy pin 6) (można użyć dowolnego cyfrowego pinu arduino)

Ujemny pin Gnd Arduino

Stworzymy żądany ton na cyfrowym pinie D6, do którego brzęczyk będzie odtwarzał melodię.

Krok 4: Wszystkie połączenia sprzętowe zakończone

Wszystkie połączenia sprzętowe zakończone
Wszystkie połączenia sprzętowe zakończone
Wszystkie połączenia sprzętowe zakończone
Wszystkie połączenia sprzętowe zakończone

Wszystkie niezbędne połączenia wyświetlacza OLED i brzęczyka zostały zakończone. Teraz przejdźmy dalej, aby zrozumieć programistyczny aspekt projektu..

Krok 5: Dołączanie biblioteki i inicjowanie protokołów wyświetlania

W tym biblioteka i inicjowanie protokołów wyświetlania
W tym biblioteka i inicjowanie protokołów wyświetlania

Cały program został podzielony na 3 komponenty:

  1. Program główny składający się z inicjalizacji oraz sekwencji wyświetlania obrazu i melodii
  2. Plik „pitches.h” składający się z listy nut i powiązanej częstotliwości
  3. Plik "pictures.h" składający się z bitmap obrazów do wyświetlenia.

Proces konwersji obrazu na tablicę bitmapową dla wyświetlacza OLED zostanie omówiony w kolejnych krokach.

Dołączę również cały kod wraz z tą instrukcją do użycia:)

Krok 6: Melodia utworu przewodniego…

Melodia piosenki tematycznej…
Melodia piosenki tematycznej…
Melodia piosenki tematycznej…
Melodia piosenki tematycznej…

Poszukałem w Internecie podstawowych nut składających się na piosenkę przewodnią PUBG, a następnie dodałem je do tablicy melodii.

Spędzając znaczną ilość czasu na graniu i odtwarzaniu sekwencji melodii, stworzyłem następnie tablicę czasu trwania, która dotyczy tego, jak długo każda nuta musi zostać zagrana. Kombinacja tablicy melodii i tablicy czasu trwania zawiera pełną informację potrzebną do odtworzenia utworu.

Krok 7: Odtwarzanie utworu podczas uruchamiania

Odtwarzanie utworu podczas uruchamiania…
Odtwarzanie utworu podczas uruchamiania…

Jest w sumie 63 nuty, których użyłem do stworzenia sekwencji melodii. Używając pętli for i iterując tablicę nut i czasu trwania z ustaloną pauzą między każdą nutą, cała sekwencja jest odtwarzana raz, ponieważ ten fragment kodu leży w void setup(). Co ciekawe, żaden kod tego projektu nie wykorzystuje void loop() kodu arduino, ponieważ zamierzam odtwarzać i wyświetlać obrazy tylko raz. Oczywiście, jeśli chcesz powtarzać sekwencję, musisz to umieścić w funkcji void loop().

Krok 8: Konwertowanie obrazów na mapy bitowe…

Konwertowanie obrazów na mapy bitowe…
Konwertowanie obrazów na mapy bitowe…

Teraz interesującą częścią projektu jest proces konwersji obrazu na tablicę bitmapową dla wyświetlacza OLED zgodnie z jego gęstością pikseli. W tym celu znalazłem doskonałe narzędzie online, które pozwala nam generować niestandardowe mapy bitowe.

Link do tej aplikacji online to:

Dzięki niesamowitym twórcom tej aplikacji znacznie ułatwia mi to pracę.

Po przejściu do linku musisz najpierw przesłać obraz, którego bitmapę chcesz utworzyć. Należy zwrócić uwagę na to, że powinieneś spróbować wybrać obrazy, które nie mają dużego kontrastu kolorów, spróbuj trzymać się obrazów z kilkoma jednolitymi kolorami, bez żadnych gradientów, aby uzyskać lepsze wyniki

Krok 9: Dostosowywanie rozdzielczości do wyświetlacza

Dostosowywanie rozdzielczości do wyświetlacza
Dostosowywanie rozdzielczości do wyświetlacza

W następnym kroku musimy zmienić rozmiar obrazu zgodnie z naszą rozdzielczością wyświetlania. W przypadku naszego wyświetlacza OLED ma on 28 pikseli szerokości i 64 piksele wysokości, które dostosowałem, jak pokazano na obrazku. Dostosuj próg jasności, aby upewnić się, że obraz jest wyraźnie wyraźny (w tym przypadku pojawia się zaleta korzystania z obrazów o jednolitych kolorach, im więcej gradientów kolorów, jakość obrazu na wyświetlaczu monochromatycznym ulegnie pogorszeniu, ponieważ miesza się z progiem jasności).

Następnym krokiem jest dopasowanie obrazu na ekranie z zachowaniem nienaruszonych proporcji i dostosowaniem do symetrii, dla której są już dostępne opcje. Możesz zbadać te opcje, aby uzyskać żądany obraz wyjściowy. W celach informacyjnych otrzymasz również niesamowitą opcję podglądu!

Krok 10: Generowanie tablicy bitmapowej

Generowanie tablicy bitmapowej…
Generowanie tablicy bitmapowej…

Po dostosowaniu parametrów obrazu, w następnym kroku po prostu wybierz kod Arduino jako format wyjściowy i kliknij generuj, aby uzyskać pożądaną tablicę bitmapową!

Tam! pomyślnie przekonwertowałeś obraz do żądanej tablicy bitmapowej. Zrobiłem ten proces dla łącznie 7 obrazów i zapisałem je.

Krok 11: Wyświetlanie obrazów jako sekwencji

Wyświetlanie obrazów w kolejności
Wyświetlanie obrazów w kolejności
Wyświetlanie obrazów w kolejności
Wyświetlanie obrazów w kolejności
Wyświetlanie obrazów w kolejności
Wyświetlanie obrazów w kolejności

Do wyświetlania obrazów użyłem funkcji Arduino millis(), aby wywołać funkcję draw(), która jest w zasadzie zestawem poleceń do czyszczenia wyświetlacza, wykreślania tablicy bitmapowej na OLED i inicjalizacji wyświetlacza. Główną logiką jest to, że co 3,5 sekundy obraz jest zmieniany i wyświetlany jest następny obraz. Cóż, 3,5 sekundy nie jest unikalną liczbą, właśnie zorientowałem się, że jeśli podzielę cały czas trwania melodii przez 7 obrazów, otrzymam około 3,5 sekundy na każdy wyświetlacz. Możesz dodać do tego więcej obrazów i skrócić czas wyświetlania każdego obrazu, jeśli chcesz.

Fragmenty kodu wyjaśniają, w jaki sposób funkcje są wywoływane w oparciu o funkcję millis().

Całe tablice bitmap obrazów są przechowywane w pliku "pictures.h"

Krok 12: Cały kod:

Tutaj dzielę się całym kodem, abyście mogli się bawić i eksperymentować!

Gdy wszystko wydaje się w porządku, czas wrzucić go na tablicę:)

Krok 13: Wyniki:

Wyniki
Wyniki
Wyniki
Wyniki
Wyniki
Wyniki
Wyniki
Wyniki

Jak widać zdjęcia okazały się świetne! Podobnie jak melodia! Mam nadzieję, że obejrzałeś film, w którym prezentowana jest cała demonstracja.

Mam nadzieję, że ta wersja PUBG dla Arduino jest ekscytującym projektem dla wszystkich entuzjastów gier i elektroniki.

Zachęcamy do dzielenia się swoimi opiniami w komentarzach i sugestiami. Rozważ również zasubskrybowanie mojego kanału, aby uzyskać więcej takich treści, ponieważ jest to część serii OLED, nad którą pracuję. Daj mi znać, jeśli zbudujesz ten fajny projekt:)

Do następnego razu.

Zalecana: