Zbuduj własne dynamiczne oświetlenie otoczenia dla centrum multimedialnego

  • Mark Lucas
  • 0
  • 2246
  • 195
Reklama

Jeśli oglądasz dużo filmów na swoim komputerze lub centrum multimedialnym, jestem pewien, że stanąłeś przed dylematem dotyczącym oświetlenia; czy całkowicie wyłączasz wszystkie światła? Czy utrzymujesz je w pełnej krasie? A może używasz przełącznika przyciemnienia, aby utrzymać gdzieś matową żółtą poświatę? Cóż, nie cierpieć więcej.

Za mniej niż 100 USD możesz skonfigurować niesamowity system oświetlenia, który będzie odzwierciedlał to, co jest na ekranie; jeśli wideo jest niebieską sceną nocną, światła będą niebieskie; kiedy rozbłyska blask pomarańczowego ognia, również wasze światła. Witamy w świecie otaczającego oświetlenia RGB.

składniki

  • Pasek świetlny RGB - jest to 5-metrowy pasek diod RGB LED, które można kupić w serwisie eBay i wysyłać z Hongkongu za mniej niż 20 GBP za sztukę. Jeśli kupisz w sklepach z elektroniką, zapłacisz za metr, a rolka 5 m będzie kosztować trzy lub cztery razy tyle, więc kup online. Tego typu paski LED można zmienić na dowolny kolor, ale tylko na raz - nie można ich indywidualnie regulować.
  • Zasilanie 12 V - wymagana moc (natężenie) zależy od liczby podłączonych pasków diod LED. Każdy miernik pobiera około 0,6 ampera, ale zależy to od gęstości twoich diod LED, więc upewnij się, że sprawdziłeś konkretny pasek LED. 3A wystarczyłoby na 5-metrowy pasek, który podłączyłem powyżej, a osobne zasilacze można kupić za około 10 funtów, jeśli nie można zdobyć innego źródła.
  • 3 x tranzystory MOSFET N - można chyba znaleźć tańsze, ale kupiłem paczkę po 6 (typ STP16NF06FP) za około 10 £. Służą one do izolowania prądu od Arduino - podłączenie pasków bezpośrednio do Arduino usmażyłoby go z ilością pobieranego prądu. Potrzebujesz 1 tranzystora MOSFET na kanał koloru LED, czerwony, zielony i niebieski.
  • Arduino Co to jest Arduino i co możesz z tym zrobić? Co to jest Arduino i co możesz z tym zrobić? Arduino to niezwykłe małe urządzenie elektroniczne, ale jeśli nigdy wcześniej go nie używałeś, jakie dokładnie są i co możesz z tym zrobić? - Nie uwzględniłem kosztu tego przedmiotu, ponieważ zakłada się, że już go masz, a istnieje wiele różnych klonów, które możesz kupić, jeśli nie stać cię na oficjalny.

Całkowity koszt był zatem około 40 £ nie licząc Arduino.

Wprowadzenie

Projekt składa się z dwóch części. Najpierw stworzymy podstawowy obwód Arduino, który słucha poleceń z komputera i ustawia diody LED RGB na odpowiedni kolor. Drugi polega na użyciu nowej aplikacji o nazwie Przetwarzanie i Java po stronie komputera - aby dowiedzieć się, jakie kolory są obecnie na ekranie, uśrednić je i wysłać do szeregowego portu komunikacyjnego, aby Arduino zareagował na.

Część 1: Obwód i Arduino

Obwód, którego używamy, jest bardzo prosty, jak widać na poniższym schemacie. Pasek LED powinien być dostarczony z męską wtyczką na jednym końcu, którą można umieścić bezpośrednio na płycie.

Pasek LED może się różnić, ale jeśli przyjrzysz się uważnie, zobaczysz 12v, R, G, B gdzieś napisane na szynach. Te paski można przeciąć w tych miedzianych punktach (co 3 diody LED na tych, które mam), więc jeśli chcesz wyciąć paski w rogach telewizora, możesz to bezpiecznie zrobić - nie musisz używać całej 5 m , więc możesz mieć trochę czasu na przyszły projekt. Podłącz dodatni 12 V bezpośrednio do zewnętrznego źródła zasilania.

Tranzystory MOSFET mają trzy piny; brama, drenaż, i źródło. Brama jest jak przełącznik elektroniczny, którym Arduino będzie sterować. To następnie określa prąd przepływający między źródłem a drenem. Odpływ każdego MOSFET-a powinien być połączony z masą Arduino i masą zasilacza, podczas gdy źródło łączy się z kanałami taśmy LED.

Po ukończeniu obwodu pobierz i uruchom ten kod testowy (pierwotnie z LadyAda, zmodyfikowane piny). Powinieneś zobaczyć, jak pasek LED wiruje w różnych kolorach.

Część 2: Przetwarzanie

Pobierz Przetwarzanie i uruchom. Możesz być zaskoczony tym, że wygląda niemalże dokładnie jak środowisko programistyczne Arduino; dzieje się tak, ponieważ środowisko Arduino było na nim oparte, chociaż oba wykonują różne funkcje. Chwyć ten kod - pierwotnie przez Silicon Republic, ale mocno zmodyfikowany przeze mnie, aby ustawienia rozmiaru ekranu były automatyczne i miały lepszą reprezentację kolorów - i poświęć chwilę na obejrzenie. Zasadniczo używa klasy Java o nazwie Robot zrobić zrzut ekranu co 10ms; następnie wybiera każdy nieparzysty piksel i uśrednia całkowity kolor. Jeśli wydajność jest dla Ciebie problemem, zwiększ skipValue zmienna na 3 lub 4, aby pominąć więcej pikseli - ogólny efekt powinien być taki sam, ale będzie działał szybciej, gdy bada mniej pikseli. Na koniec dodałem filtr, który pomaga nasycić kolor poprzez zwiększenie maksimum i zmniejszenie minimalnych znalezionych wartości RGB (bez tego uważam, że kolory są zbyt białe).

Uruchom aplikację; za pierwszym razem prawdopodobnie wystąpi błąd, gdy próbuje uzyskać dostęp do niewłaściwego portu szeregowego.

Sprawdź w oknie debugowania listę bieżących portów szeregowych i zanotuj liczbę obok tego, do czego podłączone jest twoje Arduino. W moim przypadku na komputerze Mac połączenie USB to port 4. Zmień numer w tym wierszu na właściwy port:

port = nowy Serial (this, Serial.list () [4], 9600); // ustaw prędkość transmisji

Zapisz i uruchom ponownie; powinno pojawić się małe okno wyskakujące - reprezentuje średni kolor wszystkiego na ekranie. Uruchom aplikację do malowania lub coś z mocnymi kolorami, aby ją przetestować, w przeciwnym razie prawdopodobnie po prostu wyświetli mroczny odcień szarości. Zatrzymaj aplikację po zakończeniu testowania, ponieważ potrzebujemy dostępu do portu szeregowego, aby zaprogramować Arduino.

Na koniec załaduj ten kod na swoje Arduino. Zamiast wysyłać losowe kolory na pasek LED, ten kod odczytuje wartości z portu szeregowego (do którego przetwarzane jest przetwarzanie). Jest dość łatwy do zrozumienia, jedyną trudną częścią może być użycie znacznika w danych szeregowych:

if (Serial.available ()> = 4) if (Serial.read () == 0xff) red = Serial.read (); zielony = Serial.read (); niebieski = Serial.read (); 

To gwarantuje, że odczytujemy prawidłowe wartości bajtów - aplikacja Przetwarzanie wyświetla znacznik jako “punkt przerwania” między każdym zestawem wartości, aby Arduino nie zsynchronizował się i nie pomyślał, że zielona wartość dotyczy niebieskiego itp.

Po przesłaniu kodu Arduino (początkowo na pasku LED nie powinno być żadnych danych wyjściowych), możesz załadować i uruchomić aplikację Processing; natychmiast powinieneś zobaczyć, jak działa twoje światło z otoczenia.

Oto demonstracja wideo pokazująca, jak mi się to przydarzyło z jakimś przypadkowym trippy teledyskiem.

Co myślisz?! Chociaż nie jest tak imponujący, jak coś, co analizuje każdą część ekranu i wykorzystuje pojedyncze piksele LED, jest o wiele tańsze i jaśniejsze. Jedynym minusem jest to, że wszystko musi być uruchomione na komputerze z centrum medialnym - na przykład nie będzie działać z normalną transmisją telewizyjną lub Xbox 360. Jeśli masz jakieś problemy, pytania lub sugestie, prosimy o kontakt; lub może link do filmu o ukończonej konfiguracji.




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.