
Efektem nocnych dłubanin jest sterownik taśm RGB/RGBW.



Głównym przeznaczeniem jest sterowanie oświetleniem schodów ale można użyć w innym celu, np na choince, oczywiście po modyfikacji programu.
Sercem urządzenia jest mikrokontroler ARM STM32F103RET6. Można użyć STM32F103R8T6. 64kB FLASH i 20kB RAM. Wymaga to jednak skomplikowania programu dla takiego uC o czym dalej. Bezpośrednią komunikację z użytkownikiem zapewnia klawiatura złożona z przycisków S2-S7 podłączona do wejścia ADC mikrokontrolera oraz moduł wyświetlacza OLED umieszczony w gnieździe J2. Komunikację z komputerem realizuje interfejs wbudowany w mikrokontroler. Jedyne elementy zewnętrzne, poza złączem, to rezystory dopasowujące R11, R12 i podciągający R13. Komunikację pomiędzy sterownikami realizuje RS485, którego poziomy napięć dopasowuje driver MAX3485. Sterowniki mogą komunikować się pomiędzy sobą przez BT (HC-05 dla mastera/slave i HC-06 dla slave) oraz Wi-Fi. Komunikacje przez Wi-Fi realizuje moduł ESP-01. W aktualnej wersji oprogramowania komunikacja pomiędzy sterownikami nie jest zaimplementowana. Sygnały z czujników ruchu czy barier podczerwieni oraz wejść włączających oświetlenie na stałe są zabezpieczone układami D5, D6. W ten sam sposób zabezpieczona jest magistrala RS485. Ustawienia sterownika są zapamiętane w ostatnich sektorach pamięci FLASH. Pierwotnie do tego celu użyto biblioteki ze strony STM-a emulującej EEPROM. Nie zdecydowano się jednak na jej wykorzystanie do przechowywania konfiguracji. Funkcje emulujące EEPROM mają pewne ograniczenia jak przechowywanie tylko liczb 16-bit przy czym każda taka liczba zajmuje cztery bajty w pamięci. Ponadto powoduje to problemy z przechowywaniem liczb zmiennoprzecinkowych i nie łatwo jest zrealizować zapis i odczyt struktury, w której jest przechowywana konfiguracja. Zdecydowanie łatwiej można to zrealizować na bezpośrednio na bloku pamięci FLASH a podwójne buforowanie zapewnia bezpieczeństwo danych. Pomimo przechowywania konfiguracji w pamięci mikrokontrolera na PCB znajduje się EEPROM I2C i DataFlash SPI. W prototypie nie są one wlutowane.
Na złącze J5 wyprowadzono magistralę I2C umożliwiającą rozbudowę sterownika np. o układy PCA9685 posiadające 16 12-bitowych PWM. Jeden układ pozwala więc na sterowanie 4 taśm RGB lub 3 RGBW. Układ taki posiada 6 linii adresowych, co pozwala podłączyć 64 takie układy czyli sterować 256 taśm RGB lub 192 RGBW. Gdyby to było mało, można podłączyć switch PCA9685 zwiększający tą liczbę czterokrotnie (do 1024 lub 768) albo TCA9548A zwiększający ośmiokrotnie (do 2048 lub 1536). STM32 to nie AVR w ArduinoUNO z 2kB RAM czy nawet Mega2560 z 8kB RAM i o brak pamięci tej pamięci nie należy się martwić, STM32F103RET6 posiada jej 64kB przy 512kB FLASH. Bardziej oszczędne wersje STM32F103 w obudowie 64 pin posiadają 48kB RAM i 256kB FLASH. Sygnały PWM wyprowadzone są na złącze J1. Sygnał, taśmą FLAT, jest dostarczany do płytki wykonawczej. Na niej znajdują się tranzystory wykonawcze wraz z driverami. Pierwotna koncepcja programu była inna i kluczowanie odbywało się z dużą częstotliwością, co wymuszało wykorzystanie driverów. W aktualnej wersji oprogramowania wystarczyłyby proste drivery z wyjściem OC/OD i rezystorem podciągającym dla tranzystorów N i bardziej rozbudowany układ dla P. Rozwiązanie takie pewnie byłoby tańsze niż na specjalizowanych driverach, zajmowałoby więcej miejsca na PCB ale miałoby tą zaletę, że można by zasilić drivery z większego napięcia niż 18V. Ze względu na multipleksowanie, taśma LED świeci maksymalnie przez 25% czasu. Zwiększenie napięcia z 12V do 18 pozwala świecić jej z intensywnością 47,5%. 18V to maksymalne napięcie zasilające dla driverów, gdyby zwiększyć je do 48V taśmy mogłyby świecić z 100% jasnością.
Zagadką może być odbiornik podczerwieni. Przewidziałem go gdy urządzenie będzie sterowało oświetleniem pomieszczenia. Wtedy to pilotem można włączać/wyłączać oświetlenie, zmieniać kolory i ich intensywność.
Kilka zrzutów ekranu LCD:




Ekran widoczny w czasie testowania:

Ekrany odwzorowujące stan taśm (intensywność świecenia) w czasie pracy:


Czasowe i stałe załączenie oświetlenia.


Na "Print Screen" zdecydowałem się, ponieważ miałem problem z robieniem dobrych fotografii wyświetlacza co widać na początku postu (te akurat są poruszone). Używanie statywu, pseudo komory bezcieniowej, itp nie pozwala osiągnąć dobrych efektów a z pewnością nie takich jak wygenerowanie pliku PNG z danych z LCD. Całkiem dobre fotografie uzyskiwałem tanim mikroskopem USB.


Temat PrintScreen był poruszony w wątku https://www.elektroda.pl/rtvforum/topic3523236.html#17649500.
Ekran terminala, którym konfiguruje się sterownik

W załącznikach nagrania z funkcjonowania sterownika, schematy, program. Jeśli jest zainteresowanie rysunkami PCB proszę pisać.
PS
Jeśli powstanie kolejna wersja sterownika, to raczej zrezygnuję z multipleksowania. Pozwoli to użyć mikrokontroler w mniejszej obudowie. PWM generowałbym zewnętrznymi układami, np PCA9685 , które wraz z driverami zamontowane byłyby ma małych płytkach. Jedna płytka obsługiwałaby kilka stopni schodów. Komunikację pomiędzy sterownikiem a płytkami realizowałbym przez I2C używając driverów. Pozwoliłoby to zrezygnować z mikrokontrolera w takiej płytce. Jeśli już musiałby być mikrokontroler (np transmisja przez UART) to on by generował PWM. Wydaje się, że rozwiązanie z PCA9685 byłoby tańsze niż z mikrokontrolerami.
EDIT 2018-12-28
Dodałem do oprogramowania obsługę pilota IR i tryb pracy sterownika oświetlenia pomieszczenia (u mnie w kuchni, jak już sterownik tam się znajdzie zamieszczę filmy). Można sterować dwoma taśmami LED (bez multipleksowania, więc max świecenia jest zapewniony), wybierać dowolny kolor i intensywność świecenia. Ustawienia zapisywane są w emulowanym EEPROM (FLASH uC - biblioteka udostępniona przez STM-a). Ta część softu nie jest skończona w 100% (brak komunikatów na LCD, tylko w terminalu). W pełni działająca wersję umieszczę pewnie jeszcze w tym roku, jeśli jest zainteresowanie wersją roboczą, proszę pisać.
Bez opłat, można mieć sterownik, o możliwościach, o których nie może nawet marzyć produkt komercyjny, który nie ma wymaganych badań! Ja bałbym sie taki sprzedawać!
Jeśli są jakieś propozycje związane ze sterownikiem proszę pisać na es2@ep.com.pl
Cool? Ranking DIY