Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Autor: dmtinkdevObserwuj Więcej autora:
Projekty Fusion 360 »
Po zbudowaniu lampy Minecraft dla mojego 7-letniego dziecka, jego młodszy brat chciał czegoś podobnego. Jest bardziej w SuperMario niż w Minecrafcie, więc jego lampka nocna pokaże duszki z gier wideo.
Ten projekt jest oparty na projekcie The Neoboard, ale części można wydrukować w 3D, a arduino nie potrzebuje karty SD do odczytu obrazów (mogą być przechowywane w pamięci flash).
Kieszonkowe dzieci
- 1x płytka arduino (Uno lub Nano są w porządku)
- 2x filament (czarny na korpus i przezroczysty na dyfuzory). Nawet jeśli chcesz mieć inny kolor dla swojego stojaka, nadal będziesz potrzebować czarnego filamentu do części separatorów led. Użyłem PLA.
- 1 przycisk
- 1 rezystor 300-500 omów (dla pinu wejścia danych listwy)
- Kondensator 1x 1000 µF (do ochrony paska przed nagłymi zmianami prądu)
- 1 panel matrycy led 16x16;
- Typowe materiały producenta (klej, druty dupontowe, złącza do samodzielnego lutowania, śruby M4 itp.)
Krok 1: Pobierz kod i przetwórz swoje obrazy
Możesz pobrać kod z repozytorium GitHub.
Wewnątrz znajdują się już profile Platformio dla płytek Arduino Uno i Nano.
Aby przetworzyć obrazy, użyjemy Przetwarzania (działa zarówno GUI, jak i narzędzie CLI). Kod przetwarzający odczyta obraz 16x16 i przekonwertuje wszystkie kolory pikseli na tablicę uint8 posortowaną w sposób typowy dla podłączonej matrycy led.
W 99% przypadków, aby poprawnie przetworzyć obrazy, wystarczy:
- Zmień wartość na zmienne inputFilename i outputFilename
- Skopiuj zawartość pliku outputFilename i wklej go do /src/sprites.h
Wewnątrz kodu arduino również musisz zmienić
- Wartości LEDS_PIN, BUTTON_PIN i TOTAL_SPRITES
- Być może typ led w konstruktorze pasków… ale nie powinien być powszechny
- I 'przełącznik' wewnątrz funkcji changeSprite(), aby pokazać wszystkie twoje obrazy
Jak widać w deklaracji tablic, używamy słowa kluczowego PROGMEM do przechowywania danych w pamięci flash zamiast SDRAM. W ten sposób nie potrzebujemy karty SD do przechowywania informacji o kolorach obrazów.
Jak widać na powyższym obrazku, przechowywanie kodu i 10 obrazów SuperMario wymaga tylko około 11 kilobajtów, więc jest dużo miejsca na więcej obrazów (a nawet więcej, jeśli używasz płyty MEGA2650).
Krok 2: Wydrukuj wszystkie części
Zaprojektowałem części za pomocą Fusion360. Możesz je pobrać z:
Lub jeśli chcesz tylko pliki STL, są one dostępne w Thingiverse:
Tylna okładka jest banalna do wydrukowania, a podstawka wymaga tylko podpór (ale w zależności od tego, jak ją umieścisz, będziesz potrzebować większej liczby podpór lub kombinacji drukarki/filamentu zdolnej do drukowania dużych mostów).
W przypadku dyfuzora początkowo myślałem, że najlepsze wyniki da użycie gładkiej blachy powlekanej i wzoru krzywej Hilberta, ale przetestowałem różne kombinacje warstw, rozdzielczości, arkuszy i wzorów i najlepsze wyniki uzyskałem używając przezroczystego PLA filament od BQ z tymi ustawieniami:
- arkusz: blacha malowana proszkowo,
- warstwy: 3
- rozdzielczość: 0,2
- wzór: prostoliniowy
Ale w zależności od żarnika, producenta diod led w matrycy, odległości od dyfuzora do diody led i jeśli istnieje całkowita separacja między diodami, wyniki mogą się różnić. Nie pytaj, dlaczego stałem się ekspertem w tej mikroniszy:)
Użyłem opcji PrusaSlicer, aby ręcznie zmienić kolor podczas drukowania, aby przełączać się między przezroczystymi i czarnymi filamentami, więc mam dyfuzor i separator led w jednej części (nie trzeba ich sklejać).
Krok 3: Połącz wszystko
Połączenie wszystkich części nie mogło być prostsze: zasil płytkę i matrycę led kablem USB 5V i podłącz przycisk i wejście listwy do wyznaczonych portów płytki.
Pamiętaj, że aby nie uszkodzić matrycy, zaleca się dodanie do jej połączenia kondensatora i rezystora.
Jeśli wszystko zostanie zrobione poprawnie, zobaczysz w swojej matrycy wesołego pingwina:)
Aby sprawdzić, czy wszystko działa dobrze:
- Obraz powinien mieć niebieskie, gradientowe czarne tło
- Na rogach znajdują się zielone strzałki
- Strzałka w lewym dolnym rogu została przedłużona o 2 czerwone piksele