Spisu treści:

DIY Sterowanie kolorem LED RGB przez Bluetooth: 5 kroków
DIY Sterowanie kolorem LED RGB przez Bluetooth: 5 kroków

Wideo: DIY Sterowanie kolorem LED RGB przez Bluetooth: 5 kroków

Wideo: DIY Sterowanie kolorem LED RGB przez Bluetooth: 5 kroków
Wideo: Sterownik LED RGB Bluetooth sterowany przez telefon! Super gadżet z Aliexpress 2024, Lipiec
Anonim
DIY Sterowanie kolorem LED RGB przez Bluetooth
DIY Sterowanie kolorem LED RGB przez Bluetooth

Inteligentne żarówki zyskują ostatnio na popularności i stale stają się kluczowym elementem zestawu narzędzi do inteligentnego domu. Inteligentne żarówki umożliwiają użytkownikowi sterowanie światłem za pomocą specjalnej aplikacji na smartfonie użytkownika; żarówkę można włączać i wyłączać, a kolor można zmienić z poziomu interfejsu aplikacji. W tym projekcie zbudowaliśmy inteligentny sterownik żarówki, którym można sterować za pomocą ręcznego przycisku lub aplikacji mobilnej przez Bluetooth. Aby nadać temu projektowi szyku, dodaliśmy kilka funkcji, które pozwalają użytkownikowi wybrać kolor oświetlenia z listy kolorów zawartych w interfejsie aplikacji. Może również aktywować „automatyczne miksowanie”, aby generować efekty kolorystyczne i zmieniać oświetlenie co pół sekundy. Użytkownik może stworzyć własną mieszankę kolorów za pomocą funkcji PWM, która może być również używana jako ściemniacz dla trzech podstawowych kolorów (czerwony, zielony, niebieski). Do układu dodaliśmy również zewnętrzne przyciski, aby użytkownik mógł przełączyć się w tryb ręczny i zmienić kolor światła z zewnętrznego przycisku.

Ta instrukcja składa się z dwóch części; projekt GreenPAK™ i projekt aplikacji na Androida. Konstrukcja GreenPAK opiera się na wykorzystaniu interfejsu UART do komunikacji. Wybrano UART, ponieważ jest obsługiwany przez większość modułów Bluetooth, a także większość innych urządzeń peryferyjnych, takich jak moduły WIFI. Dzięki temu konstrukcja GreenPAK może być stosowana w wielu typach połączeń.

Do budowy tego projektu wykorzystamy SLG46620 CMIC, moduł Bluetooth oraz diodę LED RGB. GreenPAK IC będzie rdzeniem kontrolnym tego projektu; odbiera dane z modułu Bluetooth i/lub przycisków zewnętrznych, a następnie rozpoczyna wymaganą procedurę wyświetlania prawidłowego oświetlenia. Generuje również sygnał PWM i wysyła go do diody LED. Rysunek 1 poniżej przedstawia schemat blokowy.

Urządzenie GreenPAK użyte w tym projekcie zawiera interfejs połączenia SPI, bloki PWM, FSM i wiele innych przydatnych dodatkowych bloków w jednym IC. Charakteryzuje się również niewielkimi rozmiarami i niskim zużyciem energii. Umożliwi to producentom zbudowanie małego praktycznego obwodu przy użyciu pojedynczego układu scalonego, dzięki czemu koszty produkcji zostaną zminimalizowane w porównaniu z podobnymi systemami.

W tym projekcie sterujemy jedną diodą LED RGB. Aby projekt był opłacalny komercyjnie, system prawdopodobnie musiałby zwiększyć poziom jasności, łącząc wiele diod LED równolegle i używając odpowiednich tranzystorów; należy również wziąć pod uwagę obwód zasilania.

Możesz przejść przez wszystkie kroki, aby zrozumieć, w jaki sposób chip GreenPAK został zaprogramowany do sterowania kolorem LED RGB przez Bluetooth. Jeśli jednak chcesz po prostu łatwo zaprogramować układ scalony bez zrozumienia wszystkich wewnętrznych obwodów, pobierz oprogramowanie GreenPAK, aby wyświetlić już ukończony plik projektu GreenPAK. Podłącz zestaw rozwojowy GreenPAK do komputera i naciśnij program, aby utworzyć niestandardowy układ scalony do sterowania kolorem LED RGB przez Bluetooth.

Konstrukcja GreenPAK składa się z odbiornika UART, jednostki PWM i jednostki sterującej opisanej w poniższych krokach.

Krok 1: Odbiornik UART

Odbiornik UART
Odbiornik UART

Najpierw musimy skonfigurować moduł Bluetooth. Większość układów Bluetooth IC obsługuje do komunikacji protokół UART. UART to skrót od Universal Asynchronous Receiver / Transmitter. UART może konwertować dane tam iz powrotem między formatami równoległymi i szeregowymi. Zawiera odbiornik szeregowy na równoległy i konwerter równoległy na szeregowy, które są taktowane oddzielnie.

Dane odebrane w module Bluetooth zostaną przesłane do naszego urządzenia GreenPAK. Stan bezczynności dla Pin10 jest WYSOKI. Każdy wysłany znak rozpoczyna się logicznym NISKIM bitem startu, po którym następuje konfigurowalna liczba bitów danych i jeden lub więcej logicznych WYSOKICH bitów stopu.

Nadajnik UART wysyła 1 bit START, 8 bitów danych i jeden bit STOP. Zazwyczaj domyślna szybkość transmisji dla modułu Bluetooth UART wynosi 9600. Bajt danych wyślemy z układu Bluetooth IC do bloku SPI urządzenia GreenPAK™ SLG46620.

Ponieważ blok GreenPAK SPI nie ma kontroli bitów START ani STOP, użyjemy tych bitów do włączania i wyłączania sygnału zegarowego SPI (SCLK). Kiedy Pin10 przechodzi w stan LOW, wiemy, że otrzymaliśmy bit START, więc używamy detektora zbocza opadającego PDLY do identyfikacji początku komunikacji. Ten detektor zbocza opadającego taktuje DFF0, co umożliwia sygnałowi SCLK taktowanie bloku SPI.

Nasza szybkość transmisji wynosi 9600 bitów na sekundę, więc nasz okres SCLK musi wynosić 1/9600 = 104 μs. Dlatego ustawiliśmy częstotliwość OSC na 2 MHz i użyliśmy CNT0 jako dzielnika częstotliwości.

2 MHz-1 = 0,5 μs

(104 μs / 0,5 μs) - 1 = 207

Dlatego chcemy, aby wartość licznika CNT0 wynosiła 207. Aby upewnić się, że nie przegapimy żadnych danych, musimy opóźnić zegar SPI o pół cyklu zegara, aby blok SPI był taktowany we właściwym czasie. Osiągnęliśmy to za pomocą CNT6, 2-bitowego LUT1 i zegara zewnętrznego bloku OSC. Wyjście CNT6 nie osiąga wysokiego poziomu do 52 μs po taktowaniu DFF0, co stanowi połowę naszego 104 μs okresu SCLK. Gdy CNT6 jest w stanie wysokim, 2-bitowa bramka AND LUT1 umożliwia przejście sygnału 2 MHz OSC do EXT. Wejście CLK0, którego wyjście jest połączone z CNT0.

Krok 2: Jednostka PWM

Jednostka PWM
Jednostka PWM

Sygnał PWM jest generowany przy użyciu PWM0 i skojarzonego generatora impulsów zegarowych (CNT8/DLY8). Ponieważ szerokość impulsu jest kontrolowana przez użytkownika, używamy FSM0 (który może być podłączony do PWM0) do zliczania danych użytkownika.

W SLG46620 8-bitowy FSM1 może być używany z PWM1 i PWM2. Moduł Bluetooth musi być podłączony, co oznacza, że należy użyć wyjścia równoległego SPI. Bity wyjścia równoległego SPI od 0 do 7 są muksowane z DCMP1, DMCP2 oraz OUT1 i OUT0 LF OSC CLK. PWM0 uzyskuje dane wyjściowe z 16-bitowego FSM0. Pozostawione bez zmian powoduje przeciążenie szerokości impulsu. Aby ograniczyć wartość licznika do 8 bitów, dodawany jest kolejny FSM; FSM1 jest używany jako wskaźnik, aby wiedzieć, kiedy licznik osiągnie 0 lub 255. FSM0 jest używany do generowania impulsu PWM. FSM0 i FSM1 muszą być zsynchronizowane. Ponieważ oba FSM mają wstępnie ustawione opcje zegara, CNT1 i CNT3 są używane jako mediatory do przekazywania CLK do obu FSM. Oba liczniki są ustawione na tę samą wartość, która wynosi 25 dla tej instrukcji. Możemy zmienić szybkość zmian wartości PWM, zmieniając te wartości licznika.

Wartości FSM są zwiększane i zmniejszane przez sygnały „+” i „-”, które pochodzą z wyjścia równoległego SPI.

Krok 3: Jednostka sterująca

Jednostka sterująca
Jednostka sterująca

Wewnątrz jednostki sterującej odebrany bajt jest pobierany z modułu Bluetooth do wyjścia równoległego SPI, a następnie przekazywany do powiązanych funkcji. Na początku, wyjścia PWM CS1 i PWM CS2 zostaną sprawdzone w celu sprawdzenia, czy wzorzec PWM jest aktywny, czy nie. Jeśli jest aktywowany, określi, który kanał będzie wysyłał PWM przez LUT4, LUT6 i LUT7.

LUT9, LUT11 i LUT14 są odpowiedzialne za sprawdzenie stanu pozostałych dwóch diod LED. LUT10, LUT12 i LUT13 sprawdzają, czy przycisk Ręczny jest aktywny, czy nie. Jeżeli tryb Ręczny jest aktywny, to wyjścia RGB pracują zgodnie ze stanami wyjścia D0, D1, D2, które zmieniają się po każdym naciśnięciu przycisku Kolor. Zmienia się wraz ze wzrostem zbocza pochodzącego z CNT9, który jest używany jako debouncer zbocza narastającego.

Pin 20 jest skonfigurowany jako wejście i służy do przełączania między sterowaniem ręcznym i Bluetooth.

Jeśli tryb Manual jest wyłączony i włączony jest tryb Auto mixer, kolor zmienia się co 500ms z rosnącym zboczem pochodzącym z CNT7. 4-bitowy LUT1 służy do zapobiegania stanowi „000” dla D0 D1 D2, ponieważ ten stan powoduje wyłączenie światła w trybie automatycznego miksera.

Jeśli tryb ręczny, tryb PWM i tryb automatycznego miksera nie są aktywowane, czerwone, zielone i niebieskie polecenia SPI przepływają do pinów 12, 13 i 14, które są skonfigurowane jako wyjścia i są podłączone do zewnętrznej diody LED RGB.

DFF1, DFF2 i DFF3 służą do budowy 3-bitowego licznika binarnego. Wartość licznika wzrasta wraz z impulsami CNT7, które przechodzą przez P14 w trybie miksera Auto lub z sygnałów pochodzących z przycisku Kolor (PIN3) w trybie ręcznym.

Krok 4: Aplikacja na Androida

Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida

W tej sekcji zbudujemy aplikację na Androida, która będzie monitorować i wyświetlać wybory kontrolne użytkownika. Interfejs składa się z dwóch sekcji: pierwsza sekcja zawiera zestaw przycisków, które mają predefiniowane kolory, dzięki czemu po naciśnięciu dowolnego z tych przycisków zapala się dioda LED o tym samym kolorze. Druga sekcja (kwadrat MIX) tworzy dla użytkownika mieszany kolor.

W pierwszej sekcji użytkownik wybiera pin LED, przez który ma przechodzić sygnał PWM; sygnał PWM może być przekazywany tylko do jednego pinu na raz. Dolna lista steruje logicznie włączaniem/wyłączaniem pozostałych dwóch kolorów w trybie PWM.

Przycisk automatycznego miksera odpowiada za uruchomienie schematu automatycznej zmiany światła, w którym światło będzie się zmieniać co pół sekundy. Sekcja MIX zawiera dwie listy pól wyboru, dzięki którym użytkownik może zdecydować, które dwa kolory należy ze sobą mieszać.

Aplikację zbudowaliśmy korzystając ze strony internetowej wynalazcy aplikacji MIT. Jest to witryna, która umożliwia tworzenie aplikacji na Androida bez wcześniejszego doświadczenia z oprogramowaniem przy użyciu graficznych bloków oprogramowania.

Na początku zaprojektowaliśmy interfejs graficzny dodając zestaw przycisków odpowiedzialnych za wyświetlanie predefiniowanych kolorów, dodaliśmy również dwie listy checkboxów, a każda lista ma 3 elementy; każdy element jest opisany w osobnym polu, jak pokazano na rysunku 5.

Przyciski w interfejsie użytkownika są powiązane z poleceniami oprogramowania: wszystkie polecenia, które aplikacja wyśle przez Bluetooth, będą miały format bajtowy, a każdy bit odpowiada za określoną funkcję. Tabela 1 przedstawia formę ramek poleceń wysyłanych do GreenPAK.

Pierwsze trzy bity, B0, B1 i B2, utrzymają stan diod RGB w trybie bezpośredniego sterowania przyciskami o predefiniowanych kolorach. Tak więc po kliknięciu w którykolwiek z nich zostanie wysłana odpowiednia wartość przycisku, jak pokazano w Tabeli 2.

Bity B3 i B4 zawierają polecenia „+” i „-”, które odpowiadają za zwiększanie i zmniejszanie szerokości impulsu. Po naciśnięciu przycisku wartość bitu będzie wynosić 1, a po zwolnieniu przycisku wartość bitu będzie wynosić 0.

Bity B5 i B6 odpowiadają za wybór pinu (koloru), przez który będzie przechodził sygnał PWM: oznaczenia kolorów tych bitów pokazano w tabeli 3. Ostatni bit, B7, odpowiada za aktywację automatycznego miksera.

Rysunek 6 i rysunek 7 przedstawiają proces łączenia przycisków z blokami programistycznymi odpowiedzialnymi za wysyłanie poprzednich wartości.

Aby obejrzeć pełny projekt aplikacji, możesz pobrać załączony plik „.aia” z plikami projektu i otworzyć go na stronie głównej.

Rysunek 8 poniżej przedstawia schemat obwodu najwyższego poziomu.

Krok 5: Wyniki

Kontroler został pomyślnie przetestowany i wykazano, że mieszanie kolorów oraz inne funkcje działają prawidłowo.

Wniosek

W tej instrukcji zbudowano obwód inteligentnej żarówki, który ma być sterowany bezprzewodowo przez aplikację na Androida. Zastosowany w tym projekcie GreenPAK CMIC pomógł również skrócić i osadzić kilka istotnych komponentów do kontroli światła w jednym małym układzie scalonym.

Zalecana: