
Spisu treści:
- Krok 1: Zbieranie wszystkich części…
- Krok 2: Podłączanie wyświetlacza OLED
- Krok 3: Podłączanie brzęczyka
- Krok 4: Wszystkie połączenia sprzętowe zakończone
- Krok 5: Dołączanie biblioteki i inicjowanie protokołów wyświetlania
- Krok 6: Melodia utworu przewodniego…
- Krok 7: Odtwarzanie utworu podczas uruchamiania
- Krok 8: Konwertowanie obrazów na mapy bitowe…
- Krok 9: Dostosowywanie rozdzielczości do wyświetlacza
- Krok 10: Generowanie tablicy bitmapowej
- Krok 11: Wyświetlanie obrazów jako sekwencji
- Krok 12: Cały kod:
- Krok 13: Wyniki:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02



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…

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:
- Arduino Nano (lub dowolna inna płyta Arduino do wyboru)
- Moduł wyświetlacza OLED o przekątnej 0,96 cala
- Brzęczyk 5V
- Przewody połączeniowe
- Deska do krojenia chleba
- Kabel do programowania Arduino
Krok 2: 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


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 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

Cały program został podzielony na 3 komponenty:
- Program główny składający się z inicjalizacji oraz sekwencji wyświetlania obrazu i melodii
- Plik „pitches.h” składający się z listy nut i powiązanej częstotliwości
- 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…


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

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…

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

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

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



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:




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:
Animacja bitmapowa na wyświetlaczu OLED SSD1331 (SPI) z Visuino: 8 kroków

Animacja bitmapowa na wyświetlaczu OLED SSD1331 (SPI) z Visuino: W tym samouczku wyświetlimy i poruszamy obraz bitmapowy w prostej formie animacji na wyświetlaczu OLED SSD1331 (SPI) z Visuino. Obejrzyj wideo
Animacja Con Keynote: 20 kroków

Animación Con Keynote: Selecciona cualquiera de las plantillas que te presenta Keynote
DIY Automotive Turn Signal z animacją: 7 kroków

Samochodowy kierunkowskaz z animacją DIY: Ostatnio animowane wzory przednich i tylnych wskaźników LED stały się normą w przemyśle motoryzacyjnym. Te biegnące wzory LED często stanowią znak towarowy producentów samochodów i są wykorzystywane również do estetyki wizualnej. Animacje
Kinegram lub analogiczna animacja bumerangu: 9 kroków (ze zdjęciami)

Kinegram lub analogiczna animacja bumerangu: *-* Ta instrukcja jest w języku angielskim. Kliknij tutaj, aby zobaczyć wersję holenderską, *-* Deze Instructable is in het Engels. Klik hier voor de Nederlandse versie. Są dwa rodzaje ludzi: ci, którzy przyjmują każdą nową technologię i ci, którzy od dawna tęsknią
Arduino Uno: animacja bitmapowa na ekranie dotykowym ILI9341 TFT z ekranem dotykowym Visuino: 12 kroków (ze zdjęciami)

Arduino Uno: animacja bitmapowa na ekranie dotykowym TFT ILI9341 Z Visuino: Nakładki na ekran dotykowy TFT oparte na ILI9341 są bardzo popularnymi, niedrogimi osłonami wyświetlaczy dla Arduino. Visuino ma dla nich wsparcie od dłuższego czasu, ale nigdy nie miałem okazji napisać samouczka, jak z nich korzystać. Ostatnio jednak niewiele osób pytało