YAALL = Yet Another Arduino LED Lamp
Projeków gdzie Arduino zaprzęgnięty jest do “mrugania” kolorowymi LED’ami w sieci jest tysiąc.
Pomysł więc nie jest wcale świeży. Narodził się, gdy chciałem spróbować napisać jakąś aplikację na platformę Android - dla zabawy i aby się przekonać czy jest to trudne.
Główne założenie projektu jakie sobie postawiłem:
- sterowana zdalnie (przez Bluetooth) lampką gdzie będzie można zmieniać kolor jej świecenia (diody RGB LED)
- “awaryjne” sterowanie lampką poprzez 4 przyciski (R-czerwony, G-zielony, B-niebieski, M-tryb)
Software:
Program został stworzony w środowisku Eclipse przy użyciu Javy. Jest to mój pierwszy projekt na Androida więc w rzeczy samej nie mogłem się ustrzec błędów. Mam nadzieję, że nie ma ich zbyt wiele.
Jako że z założenia miał to być program tylko dla mnie napisałem go dla wersji androida 4.0.3.
Ma też w kodzie wpisany adres MAC mojego modułu bluetooth, więc gdyby ktoś chciał go użyć musi pamiętać o wpisaniu poprawnych wartości.
Program na komórkę w wersji pierwszej miał tylko 3 suwaki, do każdego koloru oddzielnie.
Następnie rozbudowałem go o “color picker”, 10 dodatkowych ulubionych kolorów oraz wybór czasu po jakim lampka się wyłączy. Dodatkowo umieściłem dwa przyciski do włączania i wyłączania lampki oraz aktywowania trybu tęczy.
Wartości poszczególnych kolorów są zachowywane przy każdej zmianie, tak więc podczas ponownego uruchomienia aplikacji wszystko jest jak byśmy jej nigdy nie opuszczali.
Wyjątek jest tutaj timer, którego wartości nie zapisuję.
Tak wygląda aplikacja (główny ekran i wybór koloru poprzez "picker")
Hardware:
Mając pod reką parę Arduino wybór był oczywisty. Łatwe i przyjazne podejście do programowania tej platformy przemawiał tylko na jej korzyść. Dodatkowo jakoś należalo zacząć. Nic więc prostszego niż poskładanie wszystkiego na płytce uniwersalnej.
Oczywiście zacząłem od trzech jedno kolorowych diod. W wersji finalnej użyłem 31 RGB diod. Są one połączone równolegle. Jako, że obciążenie prądowe jest całkiem spore i Arduino mógłby nie przeżyć włączenia jednocześnie 31 diod, każdy kolor oddzielnie jest włączany tranzystorem (BD139).
Moduł bluetooth który kupiłem niestety działa w logice 3.3V - niezbędny się więc okazał regulator napięcia oraz MAX3232. Jak by problemów było mało - sygnał z niego (modułu BT) jest odwrócony. Więc musiałem też wrzucić do układu inverter. (użyłem bramek NAND bo akurat 7400 był pod ręką).
Szkielet do montażu diod zrobiłem z pustej butelki po napoju gazowanym. Wyciąłem 3 pierścienie w których zrobiłem otwory na diody. Wszystko zlutowałem razem tak, że tworzy sztywną konstrukcję.
Na początku nie miałem pomysłu na obudowę. Chciałem po prostu schować diody po jakimś kloszem, ale będąc ostatnio w Ikei zobaczyłem idealnie nadającą się do mojego projektu lampkę.
Kupiłem ją i jest “prawie” dobrze. Prawie, gdyż konstrukcja (płytka układu i LED’y) jest nieco za wysoka. Światło nie rozchodzi się jednolicie i widac na lampce ciemniejszy okrąg gdzie jest gorsze doświetlenie. Być może dodam jeszcze jeden, poziomy tym razem, pierścień z diodami aby doświetlić ciemniejszy obszar.
Taśma klejąca widoczna na zdjęciach służy blokowaniu światła małych LED'ów z Arduino i modułu BT.
No i dodatkowo film. Słychać klikanie gdy przełączam tryby świecenia lampki.
Udało się zrobić film starym aparatem. Oto i on:
Na chwilę obecną wszystko wciąż jest jeszcze na płytkach uniwersalnych. W planach jest zrobienie bardziej profesjonalnych płytek - o ile czas pozwoli.
Update
W weekend zrobiłem nieco lepsze płytki. Zamiast arduino zastosowałem mega8. Program został bez zmian.
Parę fotek przedstawiających nową płytkę:
Firmware
Program na Arduino zacząłem pisać od obsługi bluetootha. Gdy to działało dodawałem po kolei poszczególne funkcje. Jak widać jest on bardzo prosty i nie ma w nim nic odkrywczego. Jedna rzecz mogąca budzić niepokój to przerwania. Problemem był tryb “tęczy”, z którego pętli nie łatwo było wyjść. Użyłem przerwań, bo nie potrafiłem wpaść na nic bardziej pomysłowego niż to. Tak więc każda transmisja po RS’ie czy naciśnięcie przycisku Mode wywołuje przerwanie gdzie flaga “tęczy” jest zerowana.
Spis elementów:
Arduino nano - 16$
BTM5 - moduł bluetooth - 9$
31 diod RGB - 15$ (za 50 diod)
63 rezystorów do diod (150 - 220R) - dobrać do porządanego prądu diod - 3$
7400 bramki nand pracujące jako invertery - 0.5$
MAX3232 - konwerter TTL - RS232 (działa przy 3.3V) - 0.5$
regulator 3.3V - 0.5$
3x BD139 - 3$
8x 100nF - 1$
4x wlączniki - 1$
4x 10k rezystory
2x jumper (do rozłączania linii RX TX aby można programować arduino w układzie)
zasilacz 5V/2A - 5$
lampa Jonisk Ikea - 200PLN
W załączniku:
Płytka i schemat - Eagle
Arduino wsad
Eclipse projekt
Fajne? Ranking DIY