Spisu treści:

Interaktywne oświetlenie otoczenia: 8 kroków
Interaktywne oświetlenie otoczenia: 8 kroków

Wideo: Interaktywne oświetlenie otoczenia: 8 kroków

Wideo: Interaktywne oświetlenie otoczenia: 8 kroków
Wideo: Lytmi Neo 2.0 🌈 Ambilight do każdego telewizora / Recenzja 4K 2024, Listopad
Anonim
Interaktywne oświetlenie otoczenia
Interaktywne oświetlenie otoczenia
Interaktywne oświetlenie otoczenia
Interaktywne oświetlenie otoczenia
Interaktywne oświetlenie otoczenia
Interaktywne oświetlenie otoczenia

To moja pierwsza instrukcja! Proszę o wyrozumiałość, kiedy zmagam się z poprawnym pisaniem po angielsku. Zapraszam do poprawiania mnie! Zacząłem ten projekt tuż po rozpoczęciu konkursu „Niech świeci”. Żałuję, że nie zrobiłem więcej i nie skończyłem tego, co chciałem zrobić. Ale między szkołą a pracą nie zostało mi tyle czasu, ile bym chciał. Niemniej jednak zostawiam tutaj raport z moich eksperymentów jako instruktażowy, więc każdy może spróbować zrobić to, co zrobiłem. Ta instrukcja nie ma służyć jako przewodnik i uczyć, jak zrobić to urządzenie. Nie jest to przewodnik dla początkujących w elektronice. To bardziej jak dzielenie się jednym pomysłem i celem, do którego chcę dążyć. Jeśli jesteś początkującym/zupełnym ignorantem w elektronice i chcesz zrobić coś takiego, przepraszam! Ale zawsze możemy Ci pomóc. Zobacz ostatni krok. Widzieliśmy już wiele projektów oświetlenia otoczenia. Większość z nich wykorzystuje diody LED RGB: - Aby oświetlić pomieszczenie jednym kolorem, ustawiając atmosferę dopasowaną do Twojego nastroju - Aby stworzyć efekty świetlne z koloru telewizora/monitora lub z dźwięku. Jest ich nawet kilka na stronie instructables.com Powiązane: Systemy oświetlenia otoczenia DIYLight Bar Oświetlenie otoczeniaTworzenie własnych pasków oświetlenia w kolorze otoczenia Wykorzystując ten konkurs jako wymówkę, rozpocząłem projekt, o którym myślałem już od jakiegoś czasu. Zawsze chciałem zrobić coś podobnego do tych świateł otoczenia i wypełnić ściany w moim pokoju diodami LED RGB. Ale idąc o krok dalej, umożliwiając kontrolowanie wszystkich i każdego z nich. Miejmy nadzieję, że ten projekt zaowocuje zestawem elektroniki typu open source dla hobbystów i elektronicznych majsterkowiczów, umożliwiającym hakowanie sprzętu/oprogramowania oraz integrację sensoryczną. Oto mały podgląd tego, co zrobiłem:

Krok 1: Odkrywanie pomysłu

Chcę być w stanie wypełnić ściany w moim pokoju diodami LED RGB, kontrolując kolor i jasność każdej diody. Zamierzam użyć mikrokontrolera, aby zapewnić łatwość użytkowania i elastyczność. Niestety nie mogę sterować setkami diod za pomocą kilku pinów dostępnych w mikrokontrolerach. Trudno byłoby nawet zakodować sterowanie tyloma diodami. Postanowiłem więc podzielić wszystkie diody na kilka mniejszych kresek i do każdej z nich przydałby się mikrokontroler. Następnie wykorzystałbym możliwości komunikacyjne mikrokontrolerów do wymiany informacji między nimi. Tymi informacjami mogą być kolor i jasność diod LED, wzory/sekwencje kolorów oraz informacje sensoryczne. Do każdego paska zdecydowałem się użyć 16 diod RGB. Powoduje to, że pasek nie jest ani za duży, ani za mały. W ten sposób wykorzystuję akceptowalną ilość zasobów dla każdej diody, zmniejszając koszty na każdy pasek. Niemniej 16 diod RGB to 48 diod (3*16=48) do sterowania przez mikrokontroler. Mając na uwadze koszty, zdecydowałem się na zastosowanie najtańszy mikrokontroler, jakiego mogłem użyć. Oznacza to, że mikrokontroler będzie miał tylko do 20 pinów I/O, za mało dla 48 diod LED. Nie chcę używać charlieplexingu ani jakiegoś napędu z podziałem czasu, ponieważ celem projektu jest oświetlenie pomieszczenia. alternatywą, o której mógłbym pomyśleć, jest użycie pewnego rodzaju zatrzaśniętego rejestru przesuwnego! Wznawianie: - Tworzenie i interaktywne oświetlenie otoczenia - Tworzenie standardowego paska sterowanych diod LED - Możliwość podłączenia kilku pasków, aby wypełnić pomieszczenie - Zezwalaj na adaptację/konfigurację użytkownika i integrację sensoryczną

Krok 2: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

Jak powiedziałem w poprzednim kroku, chciałbym wykonać kilka prętów, aby oświetlić jedno pomieszczenie. To przywodzi na myśl kwestię kosztów. Postaram się, aby każdy pasek był jak najbardziej opłacalny. Użyty przeze mnie mikrokontroler to AVR ATtiny2313. Są raczej tanie i miałem kilka leżących dookoła. ATtiny2313 ma również jeden uniwersalny interfejs szeregowy i jeden interfejs USART, które przydadzą się w kolejnych krokach. Miałem też trzy MCP23016 - I2C 16-bitowy ekspander portów I/O, w sam raz! Użyłem każdego ekspandera portów do sterowania jednym kolorem z 16 diod LED. Diody… Niestety były najtańsze, jakie udało mi się znaleźć. Są 48 czerwonych, zielonych i niebieskich ~10000mcd 5mm z kątem 20 stopni. Na razie nie powinno to mieć znaczenia, ponieważ jest to tylko jeden prototyp. Mimo to wynik jest całkiem niezły! Używam mikrokontrolera na 8 MHz. Magistrala I2C jest taktowana z częstotliwością 400 kHz. Częstotliwość przełączania diod LED wynosi około 400 Hz. W ten sposób, jeśli będę w stanie sterować 48 diodami LED bez przekraczania granic, zmieszczę się na więcej później!

Krok 3: Montaż

montaż
montaż
montaż
montaż
montaż
montaż
montaż
montaż

Po zaprojektowaniu układu zbudowałem go w kilku płytkach stykowych, do celów prototypowania. Po kilku godzinach cięcia przewodów i montażu obwodu uzyskałem taki wynik: Jedna gigantyczna płytka stykowa z 48 diodami LED i tonami drutu!

Krok 4: Kontrola?

Kontrola?
Kontrola?

To najtrudniejsza część projektu. Chciałem, aby jeden algorytm sterowania był wystarczająco ogólny do obsługi wzorów/sekwencji, a także kontrolowania jasności i koloru każdej diody LED. Aby sterować diodami LED, muszę wysłać do MCP23016 jedną ramkę 4 bajtów (1 bajt = 8 bitów). Jeden bajt z adresem układu odpowiadającego kolorowi, 1 bajt z poleceniem „zapis” i 2 bajty o wartości 16bitów (LED). Układ scalony jest podłączony do diod LED jako „zlew”, co oznacza, że jedna wartość logiczna 0 na pinie oświetli diodę LED. A teraz trudna część, jak wykonać sterowanie PWM dla 48 diod LED? Przestudiujmy PWM dla jednej diody LED! Wyjaśnienie PWM @ Wikipedia. Jeśli chcę, aby jasność diody LED wynosiła 50%, moja wartość PWM wynosi 50%. Oznacza to, że dioda LED w pewnym okresie czasu powinna świecić przez taki sam czas, jak wyłączona. Weźmy okres 1 sekundy. PWM 50% oznacza, że w tej 1 sekundzie czas włączenia wynosi 0,5 sekundy, a czas wyłączenia 0,5 sekundy. PWM 80%? 0,2 sekundy wyłączone, 0,8 sekundy włączone! To proste, prawda? W cyfrowym świecie: przy okresie 10 cykli zegarowych 50% oznacza, że przez 5 cykli dioda LED jest włączona, a przez kolejne 5 cykli dioda LED jest wyłączona. 20%? 2 cykle włączone, 8 cykli wyłączone. 45%? Cóż, tak naprawdę nie możemy uzyskać 45%… Ponieważ okres jest w cyklach, a mamy tylko 10 cykli, możemy podzielić PWM tylko w krokach od 10%. Oznacza to, że ewolucja szpilki powinna wynosić 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Lub nawet 1, 0, 1, 0, 1, 0, 1, 0, 1, 0;W programowaniu możemy wykonać taką sekwencję włączania i wyłączania tablicy. Dla każdego cyklu, który wyprowadzamy na pin wartość indeksu, w którym jest cykl. Czy do tej pory miało to sens? Jeśli chcemy, aby LED0 było 50%, a LED1 20%, możemy dodać obie tablice. Do napędzania pinu LED0: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Do sterowania pinem LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0;Wyprowadzając taką sekwencję liczb w IC ekspandera portów otrzymalibyśmy LED0 o jasności 50% i LED1 o 20%!! Proste na 2 diody LED, prawda? Teraz musimy to zrobić dla 16 diod LED dla każdego koloru! Dla każdej z tych tablic mamy kombinację jasności dla każdego koloru (16 diod LED) Za każdym razem, gdy chcemy inną kombinację kolorów, musimy zmienić tę tablicę.

Krok 5: Ułatwienie

To proste!
To proste!
To proste!
To proste!

Poprzedni krok to zbyt dużo pracy na wykonanie prostej sekwencji… Postanowiłem więc stworzyć program, w którym mówimy kolory każdej diody LED w jednym kroku sekwencji i otrzymujemy trzy tablice kroku. Zrobiłem ten program w LabView ze względu na ograniczenia czasowe.

Krok 6: Pierwsze eksperymenty

Pierwsze eksperymenty
Pierwsze eksperymenty

Ładuję kilka kroków do mikrokontrolera i otrzymujemy coś takiego: Przepraszam za słabą jakość filmów! Zdefiniowałem maksymalną liczbę kroków sekwencji na 8 i ograniczyłem PWM do 20% skoków. Decyzja ta opiera się na rodzaju sterowania, którego używam i ilości pamięci EEPROM w ATtiny2313. W tych eksperymentach próbowałem zobaczyć, jakie efekty mogę uzyskać. Muszę powiedzieć, że jestem zadowolony z wyniku!

Krok 7: Kontrola w czasie rzeczywistym

Kontrola w czasie rzeczywistym
Kontrola w czasie rzeczywistym
Kontrola w czasie rzeczywistym
Kontrola w czasie rzeczywistym
Kontrola w czasie rzeczywistym
Kontrola w czasie rzeczywistym

Jak wspomniano w poprzednich krokach, chcę komunikować się ze wszystkimi mikrokontrolerami sterującymi diodami LED w moim pokoju. Użyłem więc dostępnego interfejsu USART w ATtiny2313 i podłączyłem go do mojego komputera. Zrobiłem również program w LabView do sterowania paskiem LED. W tym programie jestem w stanie powiedzieć mikrokontrolerowi jak długa jest sekwencja, kolor każdej diody LED oraz czas pomiędzy krokami sekwencji. zademonstrować, jak mogę zmienić kolor diod i zdefiniować sekwencje.

Krok 8: Wnioski

Wnioski
Wnioski
Wnioski
Wnioski
Wnioski
Wnioski
Wnioski
Wnioski

Myślę, że odniosłem sukces w tym pierwszym podejściu do mojego projektu. Jestem w stanie kontrolować 16 diod LED RGB przy niewielkich zasobach i ograniczeniach. Istnieje możliwość oddzielnego sterowania każdą diodą LED, tworząc dowolną żądaną sekwencję.

Przyszła praca:

Jeśli otrzymam pozytywną opinię od ludzi, mogę dalej rozwijać ten pomysł i stworzyć pełny zestaw DIY Electronics Kit, z płytkami drukowanymi i instrukcją montażu.

W mojej następnej wersji: -Zmienię mikrokontroler na taki z ADC -Zmienię MCP23016 na inny rodzaj szeregowego wyjścia równoległego, który może pobierać więcej prądu z diod LED -Stworzę oprogramowanie open-source do komunikacji z mikrokontrolerem i kontroluj diody LED - Rozwijaj komunikację między kilkoma mikrokontrolerami.

Masz jakieś sugestie lub pytania? Lub zostaw komentarz!

Finalista konkursu Let It Glow!

Zalecana: