- Adafruit 5X8 NeoPixel Shield dla Arduino
- Zrozumienie procesu komunikacji między aplikacją Blynk a Arduino
- Wymagane składniki
- Adafruit RGB LED Shield i Arduino - połączenie sprzętowe
- Konfigurowanie aplikacji Blynk
- Kod Arduino kontrolujący nakładkę Adafruit WS2812B RGB LED
- Wgrywanie kodu do tablicy Arduino
W ciągu kilku lat diody LED RGB stały się popularne z dnia na dzień ze względu na piękny kolor, jasność i kuszące efekty świetlne. Dlatego znajduje zastosowanie w wielu miejscach jako element dekoracyjny, przykładem może być dom czy przestrzeń biurowa. Możemy również używać świateł RGB w kuchni, a także w konsoli do gier. Świetnie sprawdzą się również w dziecięcym pokoju zabaw lub sypialni pod względem nastrojowego oświetlenia. Wcześniej używaliśmy diod WS2812B NeoPixel i mikrokontrolera ARM do zbudowania wizualizatora widma muzycznego, więc sprawdź, czy to Cię interesuje.
Dlatego w tym projekcie zamierzamy użyć osłony matrycy LED RGB na bazie Neopixel, aplikacji Arduino i Blynk do wytworzenia wielu fascynujących efektów animacji i kolorów, które będziemy mogli kontrolować za pomocą aplikacji Blynk. Więc zacznijmy!!!
Adafruit 5X8 NeoPixel Shield dla Arduino
Tarcza NeoPixel kompatybilna z Arduino zawiera czterdzieści indywidualnie adresowalnych diod LED RGB, z których każda ma wbudowany sterownik WS2812b, który jest rozmieszczony w matrycy 5 × 8, tworząc tę osłonę NeoPixel. Wiele osłon NeoPixel może być również połączonych w celu utworzenia większej tarczy, jeśli jest to wymagane. Do sterowania diodami LED RGB potrzebny jest pojedynczy pin Arduino, więc w tym samouczku zdecydowaliśmy się użyć do tego pinu 6 Arduino.
W naszym przypadku diody LED są zasilane z wbudowanego pinu 5V Arduino, co wystarcza do zasilania około „jednej trzeciej diod” przy pełnej jasności. Jeśli potrzebujesz zasilać więcej diod LED, możesz wyciąć wbudowany ślad i użyć zewnętrznego zasilacza 5 V do zasilania tarczy za pomocą zewnętrznego terminala 5 V.
Zrozumienie procesu komunikacji między aplikacją Blynk a Arduino
Zastosowana tutaj matryca LED 8 * 5 RGB posiada czterdzieści indywidualnie adresowalnych diod LED RGB opartych na sterowniku WS2812B. Posiada 24-bitową kontrolę kolorów i 16,8 miliona kolorów na piksel. Można nim sterować za pomocą metodyki „Sterowanie jednym przewodem”. Oznacza to, że możemy sterować całym pikselem LED za pomocą jednego pinu sterującego. Podczas pracy z diodami przejrzałem arkusz danych tych diod, w którym stwierdziłem, że zakres napięcia roboczego osłony wynosi od 4 V do 6 V, a pobór prądu jest ustalony 50 mA na diodę przy 5 V z czerwonym, zielonym, i niebieski przy pełnej jasności. Ma zabezpieczenie przed odwróceniem napięcia na zewnętrznych pinach zasilania i przycisk Reset na tarczy, aby zresetować Arduino. Posiada również pin wejściowy zewnętrznego zasilania dla diod LED, jeśli wystarczająca ilość mocy nie jest dostępna przez wewnętrzne obwody.
Jak pokazano na powyższym schemacie, musimy pobrać i zainstalować aplikację Blynkna naszym smartfonie, na którym można kontrolować parametry takie jak kolor, jasność. Po skonfigurowaniu parametrów, jeśli jakiekolwiek zmiany nastąpią w aplikacji, są one przenoszone do chmury Blynk, gdzie nasz komputer jest również podłączony i gotowy do odbioru zaktualizowanych danych. Arduino Uno jest podłączony do naszego komputera za pomocą kabla USB z otwartym portem komunikacyjnym, dzięki temu portowi komunikacyjnemu (port COM) można wymieniać dane między chmurą Blynk a Arduino UNO. Komputer PC żąda danych z chmury Blynk w stałych odstępach czasu, a po otrzymaniu zaktualizowanych danych przesyła je do Arduino i podejmuje decyzje zdefiniowane przez użytkownika, takie jak kontrolowanie jasności i kolorów diod RGB. Osłona LED RGB jest umieszczona na Arduino LED i podłączona za pomocą jednego pinu danych do komunikacji, domyślnie jest podłączona przez pin D6 Arduino.Dane szeregowe wysyłane z Arduino UNO są wysyłane do obudowy Neopixel, która jest następnie odzwierciedlana na matrycy LED.
Wymagane składniki
- Arduino UNO
- Osłona matrycy 8 * 5 RGB LED
- Kabel USB A / B do Arduino UNO
- Laptop / PC
Adafruit RGB LED Shield i Arduino - połączenie sprzętowe
Diody LED WS2812B Neopixel mają trzy piny, jeden do danych, a kolejne dwa do zasilania, ale ta specyficzna osłona Arduino sprawia, że połączenie sprzętowe jest bardzo proste, wszystko, co musimy zrobić, to umieścić matrycę LED Neopixel na górze Arduino UNO. W naszym przypadku dioda LED zasilana jest z domyślnej szyny Arduino 5V. Po umieszczeniu Neopixel Shield konfiguracja wygląda jak poniżej:
Konfigurowanie aplikacji Blynk
Blynk to aplikacja, która może działać na urządzeniach z systemem Android i IOS, aby sterować dowolnymi urządzeniami i urządzeniami IoT za pomocą naszych smartfonów. Przede wszystkim należy stworzyć graficzny interfejs użytkownika (GUI) do sterowania matrycą RGB LED. Aplikacja wyśle wszystkie wybrane parametry z GUI do chmury Blynk. W sekcji odbiornika mamy Arduino podłączone do komputera poprzez szeregowy kabel komunikacyjny. W związku z tym komputer żąda danych z chmury Blynk, a dane te są wysyłane do Arduino w celu niezbędnego przetworzenia. Zacznijmy więc od konfiguracji aplikacji Blynk.
Przed konfiguracją pobierz aplikację Blynk ze sklepu Google Play (użytkownicy IOS mogą pobrać z App Store). Po instalacji zarejestruj się, używając swojego identyfikatora e-mail i hasła.
Tworzenie nowego projektu:
Po udanej instalacji otwórz aplikację, a tam pojawi się ekran z opcją „ Nowy projekt ”. Kliknij na niego, a pojawi się nowy ekran, na którym musimy ustawić parametry, takie jak nazwa projektu, tablica i typ połączenia. W naszym projekcie wybierz urządzenie jako „ Arduino UNO ” i typ połączenia jako „ USB ” i kliknij „ Utwórz”.
Po pomyślnym utworzeniu projektu otrzymamy identyfikator uwierzytelnienia w naszej liście poleconej. Zapisz identyfikator uwierzytelniania na przyszłość.
Tworzenie graficznego interfejsu użytkownika (GUI):
Otwórz projekt w Blynk, kliknij znak „+”, gdzie otrzymamy widżety, których możemy użyć w naszym projekcie. W naszym przypadku potrzebujemy próbnika kolorów RGB, który jest wymieniony jako „zeRGBa”, jak pokazano poniżej.
Ustawianie widżetów:
Po przeciągnięciu widżetów do naszego projektu musimy teraz ustawić jego parametry, które służą do wysyłania wartości kolorów RGB do Arduino UNO.
Kliknij ZeRGBa, a następnie pojawi się ekran o nazwie Ustawienia ZeRGBa. Następnie ustaw opcję Wyjście na „ Połącz ” i ustaw pin na „V2”, jak pokazano na poniższym obrazku.
Kod Arduino kontrolujący nakładkę Adafruit WS2812B RGB LED
Po zakończeniu połączenia sprzętowego kod należy wgrać do Arduino. Poniżej przedstawiono objaśnienie kodu krok po kroku.
Najpierw dołącz wszystkie wymagane biblioteki. Otwórz Arduino IDE, następnie przejdź do zakładki Szkic i kliknij opcję Uwzględnij bibliotekę-> Zarządzaj bibliotekami . Następnie wyszukaj Blynk w polu wyszukiwania, a następnie pobierz i zainstaluj pakiet Blynk dla Arduino UNO.
Tutaj biblioteka „ Adafruit_NeoPixel.h ” jest używana do sterowania matrycą RGB LED. Aby ją dołączyć, możesz pobrać bibliotekę Adafruit_NeoPixel z podanego linku. Gdy to zrobisz, możesz dołączyć go za pomocą opcji Dołącz bibliotekę ZIP.
# zdefiniować BLYNK_PRINT DebugSerial #include #include
Następnie określamy liczbę diod LED, jaka jest wymagana dla naszej matrycy LED, a także określamy numer pinu, który jest używany do sterowania parametrami diod.
# zdefiniować PIN 6 # zdefiniować NUM_PIXELS 40
Następnie musimy umieścić nasz identyfikator uwierzytelniania blink w tablicy auth , którą zapisaliśmy wcześniej.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Tutaj szpilki szeregowe oprogramowania są używane jako konsola debugowania. Zatem piny Arduino są zdefiniowane poniżej jako serial debugowania.
#zawierać
Wewnątrz konfiguracji komunikacja szeregowa jest inicjowana za pomocą funkcji Serial.begin , blynk jest podłączany za pomocą Blynk.begin i za pomocą pixels.begin (), inicjowana jest matryca LED.
void setup () { DebugSerial.begin (9600); piksele.begin (); Serial.begin (9600); Blynk.begin (Serial, auth); }
Wewnątrz pętli () użyliśmy Blynk.run () , która sprawdza przychodzące polecenia z GUI blynk i odpowiednio wykonuje operacje.
void loop () { Blynk.run (); }
W końcowym etapie parametry, które zostały wysłane z aplikacji Blynk, należy odebrać i przetworzyć. W tym przypadku parametry zostały przydzielone do wirtualnego pinu „V2”, jak omówiono wcześniej w sekcji konfiguracji. Funkcja BLYNK_WRITE to wbudowana funkcja, która jest wywoływana za każdym razem, gdy zmienia się stan / wartość skojarzonego wirtualnego pinu. możemy uruchomić kod wewnątrz tej funkcji, tak jak każdą inną funkcję Arduino.
Tutaj napisano funkcję BLYNK_WRITE, aby sprawdzić przychodzące dane na wirtualnym pinie V2. Jak pokazano w sekcji Blink setup, dane kolorowych pikseli zostały scalone i przypisane do pinu V2. Dlatego po dekodowaniu musimy ponownie przeprowadzić dezintegrację. Ponieważ do sterowania matrycą pikseli LED potrzebujemy wszystkich 3 poszczególnych danych kolorowych pikseli, takich jak czerwony, zielony i niebieski. Jak pokazano na poniższym kodzie, trzy indeksy macierzy zostały odczytane jak param.asInt (), aby uzyskać wartość koloru czerwonego. Podobnie wszystkie pozostałe dwie wartości zostały odebrane i zapisane w 3 indywidualnych zmiennych. Następnie te wartości są przypisywane do macierzy Pixel za pomocą funkcji pixels.setPixelColor, jak pokazano w poniższym kodzie.
Tutaj funkcja pixels.setBrightness () służy do sterowania jasnością, a funkcja pixels.show () służy do wyświetlania ustawionego koloru w Matrix.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Wgrywanie kodu do tablicy Arduino
Najpierw musimy wybrać PORT Arduino wewnątrz Arduino IDE, a następnie musimy załadować kod do Arduino UNO. Po pomyślnym załadowaniu zanotuj numer portu, który będzie używany do naszej konfiguracji komunikacji szeregowej.
Następnie znajdź folder skryptów w bibliotece Blynk na swoim komputerze. Jest instalowany po zainstalowaniu biblioteki, moja była w, „C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts”
W folderze skryptów powinien znajdować się plik o nazwie „blynk-ser.bat”, który jest plikiem wsadowym używanym do komunikacji szeregowej, który musimy edytować za pomocą notatnika. Otwórz plik za pomocą notatnika i zmień numer portu na numer portu Arduino, który zanotowałeś w ostatnim kroku.
Po edycji zapisz plik i uruchom plik wsadowy, klikając go dwukrotnie. Następnie musisz zobaczyć okno, jak pokazano poniżej:
Uwaga: Jeśli nie widzisz powyższego okna i pojawia się monit o ponowne połączenie, może to być spowodowane błędem połączenia komputera z osłoną Arduino. W takim przypadku sprawdź połączenie Arduino z komputerem. Następnie sprawdź, czy numer portu COM wyświetla się w Arduino IDE, czy nie. Jeśli pokazuje prawidłowy port COM, oznacza to, że można kontynuować. Powinieneś ponownie uruchomić plik wsadowy.
Końcowa demonstracja:
Teraz czas na przetestowanie układu i jego funkcjonalności. Otwórz aplikację Blynk i otwórz GUI i kliknij przycisk Odtwórz. Następnie możesz wybrać dowolne żądane kolory, które mają być odzwierciedlone na matrycy LED. Jak pokazano poniżej, w moim przypadku wybrałem kolor czerwony i niebieski, jest on wyświetlany na matrycy.
Podobnie, możesz spróbować tworzyć różne animacje za pomocą tych matryc LED, dostosowując nieco kodowanie.