Spisu treści:

Digispark i WS2812 Rainbow Wheel w pudełku: 4 kroki (ze zdjęciami)
Digispark i WS2812 Rainbow Wheel w pudełku: 4 kroki (ze zdjęciami)

Wideo: Digispark i WS2812 Rainbow Wheel w pudełku: 4 kroki (ze zdjęciami)

Wideo: Digispark i WS2812 Rainbow Wheel w pudełku: 4 kroki (ze zdjęciami)
Wideo: Rainbow wheel, wooden box (8x WS2812, DigiSpark, NeoPixel) 2024, Listopad
Anonim
Image
Image
Digispark i WS2812 Rainbow Wheel w pudełku
Digispark i WS2812 Rainbow Wheel w pudełku
Digispark i WS2812 Rainbow Wheel w pudełku
Digispark i WS2812 Rainbow Wheel w pudełku

Ten maleńki projekt powstał wokół ładnie rzeźbionego drewnianego pudełka o wymiarach 10x6x5cm, które znalazłem w sklepie.

Jego najlepszą cechą, która nie została właściwie uchwycona w aparacie, jest rozświetlenie jasnymi, nasyconymi kolorami boków wyrzeźbionej w drzewie pokrywy pudełka.

Z drugiej strony należy pamiętać, że użycie efektu tęczy na pasku wąskich diod LED RGB 5050 zawsze spowoduje białawe oświetlenie w odległości kilku centymetrów od diod LED, ponieważ kolor każdego piksela szybko miesza się z kolorami sąsiednimi. Jeśli chcesz uniknąć tego efektu, możesz spróbować użyć soczewki skupiającej

Jasność lampy jest proporcjonalna do światła otoczenia dzięki LDR: lampa będzie świecić w świetle dziennym i nie będzie zbyt jasna, gdy będzie używana jako światło nocne, w ciemności.

Kieszonkowe dzieci

Zestawienie materiałów:

  • jedna płyta Attiny85 Digispark (klon) z bootloaderem Micronucleus
  • jeden pasek 8x WS2812
  • jeden LDR, służący do dostrajania jasności lampy w zależności od otoczenia
  • jeden rezystor podciągający 10KΩ dla LDR
  • kabel micro USB do programowania Digipark i zasilania lampy po zakończeniu pracy
  • puste drewniane pudełko
  • źródło zasilania 5V⎓ (zdolne do dostarczenia nie mniej niż 500mA)

Umiejętności i narzędzia:

  • PlatformIO (uruchomiony na Visual Studio Code) jako IDE - jednak każde IDE Arduino wykona zadanie
  • lutownica, trochę drutu lutowniczego i podstawowe umiejętności lutowania
  • trochę przewodów, nożyczek
  • trochę kleju, pęsety
  • trochę nieprzezroczystej farby (aby zakryć Digispark LED i chronić LDR przed wpływem światła lampy)

Krok 1: Digipark i PlatformIO

Digispark (i każdy klon wykorzystujący ten sam 8-bitowy mikrokontroler) to tabliczka zaciskowa zbudowana wokół AVR Attiny85, zdolna do prostej komunikacji USB dzięki bootloaderowi Micronucleus. Więcej informacji można znaleźć na jego wiki:

PlatformIO to ekosystem, którego użyłem do programowania Digispark. Aby z nim pracować, musisz zainstalować Visual Studio Code

Krok 2: Schemat i okablowanie

Schemat i okablowanie
Schemat i okablowanie
Schemat i okablowanie
Schemat i okablowanie
Schemat i okablowanie
Schemat i okablowanie

Lutowanie

  1. podłączyć trzy przewody do listwy WS2812 (masa, wejście zasilania i wejście danych)
  2. uziemienie przewodu i Vcc do 5 V i pin GND Digispark;
  3. przylutuj pozostały przewód do pinu P0 Digispark
  4. przylutuj rezystor 10KΩ do pinów GND i P2 płytki;
  5. użyj dwóch przewodów do podłączenia LDR do pinów 5V i P2 (użyłem ledwo widocznych przewodów emaliowanych ze względów estetycznych)

Krok 3: Oprogramowanie układowe

Znajdź kod tego projektu na moim GitHub:

Dobrze wiedzieć:

  • #include musi być używany podczas pracy z PlatformIO
  • parametry, takie jak przypisanie pinów, liczba diod LED WS2812, prędkość tęczy i progi ciemności/jasności dla diod LED i LDR znajdują się na początku kodu
  • Adafruit Neopixel to biblioteka służąca do sterowania diodami LED WS2812
  • Biblioteka RunningMedian służy do zwiększania stabilności odczytów LDR; ze względu na ustawione granice, mapowanie granic jasności LED, jest to szczególnie przyjemne w warunkach niskiej jasności, gdzie niewielkie wahania mogą powodować irytujące migotanie
  • Nie znajdziesz żadnej próby zablokowania Attiny85, więc projekt pozostanie edytowalny

Kilka wskazówek (pojawiających się również w pliku README.md na GitHubie):

  • Aby wgrać kod, upewnij się, że masz kabel USB z każdym okablowanym pinem: tanie kable do ładowania często mają tylko +5V i uziemione
  • Przesyłanie z PlatformIO do DigiSpark wymaga podłączenia DigiSpark po kompilacji, mimo że konsola nie ostrzega „teraz nadszedł czas, aby podłączyć DigiSpark”, jak robi to Arduino IDE.
  • Szybka naprawa problemu z przesyłaniem do DigiSpark z PlatformIO na MacOS: problem z PIO 111
  • Tanie ładowarki USB mogą generować brudne/zaszumione wyjście, przez co diody LED mogą dziwnie migotać, szczególnie przy niskiej jasności: upewnij się, że masz czyste źródło 5VDC lub filtr dodając kondensator (lub bardziej odpowiedni obwód)

Krok 4: Obudowa i wykończenie dotykowe

Obudowa i wykończenie dotykowe
Obudowa i wykończenie dotykowe
Obudowa i wykończenie dotykowe
Obudowa i wykończenie dotykowe
Obudowa i wykończenie dotykowe
Obudowa i wykończenie dotykowe
  • Wytnij otwór w wybranym przez siebie pudełku do hostowania projektu, aby podłączyć kabel USB. Pamiętaj, że im większy otwór wokół złącza micro USB, tym więcej światła wycieka z listwy LED, chyba że nie zapewnisz nieprzezroczystego uszczelnienia.
  • Wytnij dziurę na LDR; upewnij się, że nie jest skierowany w stronę obszaru, który będzie oświetlony przez diody LED, w przeciwnym razie autoregulacja zapętli się
  • Wygraweruj wewnętrzną powierzchnię, aby zrobić miejsce na pasek LED, ponieważ nie powinieneś chcieć bezpośrednio widzieć diod LED podczas patrzenia na lampę
  • Uszczelnij nieprzezroczystym środkiem dno czujnika LDR, aby uniknąć jakichkolwiek zakłóceń w jasności środowiska wykrywania spowodowanych przez pasek WS2812
  • Użyj kropli nieprzezroczystej farby, aby zamaskować diodę LED Digispark, unikając w ten sposób świecenia wewnątrz pudełka
  • Przyklej tablicę Digispark, listwę LED, LDR i każdy kabel, aby wnętrze pustego pudełka nie wyglądało na nieporządne
  • Przewiduj kabel USB z włącznikiem, aby łatwo włączać i wyłączać lampę

Zalecana: