Spisu treści:

Kostka LED 4x4x4: 11 kroków (ze zdjęciami)
Kostka LED 4x4x4: 11 kroków (ze zdjęciami)

Wideo: Kostka LED 4x4x4: 11 kroków (ze zdjęciami)

Wideo: Kostka LED 4x4x4: 11 kroków (ze zdjęciami)
Wideo: Jak w najprostszy sposób rozwiązać klasyczną kostkę Rubika 2024, Listopad
Anonim
Kostka LED 4x4x4
Kostka LED 4x4x4
Kostka LED 4x4x4
Kostka LED 4x4x4
Kostka LED 4x4x4
Kostka LED 4x4x4

Niesamowity trójwymiarowy wyświetlacz LED. 64 diody LED tworzą kostkę 4 na 4 na 4, sterowaną przez mikrokontroler Atmel Atmega16. Każda dioda LED może być adresowana indywidualnie w oprogramowaniu, dzięki czemu wyświetla niesamowite animacje 3d! Kostka LED 8x8x8 już dostępna, na popularne żądanie:

Krok 1: Czego potrzebujesz

Czego potrzebujesz
Czego potrzebujesz

Przede wszystkim potrzeba trochę czasu, aby zlutować ze sobą 64 diody;)Lista wiedzy:

  • Podstawowe umiejętności w zakresie elektroniki i lutowania
  • Wiedz, jak zaprogramować mikrokontroler AVR - nie będę tego omawiał w tej instrukcji.

Lista komponentów:

  • Płyta prototypowa. Czcionka z miedzianymi kółkami.
  • Mikrokontroler Atmel AVR Atmega16
  • Programator do programowania Atmega16
  • 64 diody LED
  • 2 diody LED stanu. Użyłem czerwieni i zieleni. (opcjonalny)
  • Układ Max232 rs-232 lub odpowiednik.
  • 16 rezystorów do diod led. (100-400 omów) wróci do tego.
  • 2x rezystor 470 omów. dla diod statusu
  • 1x rezystor 10k
  • 4x rezystor 2.2k
  • 4x tranzystor NPN BC338 (lub inny tranzystor zdolny do przełączania 250 mA)
  • 1x kondensator 10uF
  • 1x kondensator 1000uF
  • Kondensator ceramiczny 6x 0.1uF
  • Kondensator ceramiczny 2x22pF
  • 1x kryształ 14,7456 MHz
  • 2x przycisk dotykowy
  • opcjonalny przełącznik zasilania
  • złącze do zasilania 12v
  • opcjonalne złącze do zasilania 5 v

Krok 2: Multipleksowanie

Multipleksowanie
Multipleksowanie
Multipleksowanie
Multipleksowanie

Jak sterować 64 diodami LED bez użycia 64 pojedynczych przewodów? Multipleksowanie!

Doprowadzenie drutu do anody każdej diody byłoby oczywiście niepraktyczne i wyglądałoby naprawdę źle. Jednym ze sposobów na obejście tego problemu jest podzielenie kostki na 4 warstwy 16x16 diod LED. Wszystkie diody LED ustawione w pionowej kolumnie mają wspólną anodę (+). Wszystkie diody LED na warstwie poziomej mają wspólną katodę (-). Teraz, jeśli chcę zapalić diodę LED w lewym górnym rogu z tyłu (0, 0, 3), po prostu dostarczam GND (-) do górnej warstwy i VCC (+) do kolumny w lewym rogu. Jeśli chcę zapalić tylko jedną diodę na raz lub tylko więcej niż jedną warstwę w tym samym czasie… to działa dobrze. Jeśli jednak chcę również podświetlić prawy dolny róg z przodu (3, 3, 0), natrafiam na problemy. Gdy podaję GND do dolnej warstwy i VCC do przedniej lewej kolumny, zapalam też górną prawą diodę z przodu (3, 3, 3), a dolną lewą diodę z tyłu (0, 0, 0). Ten efekt zjawy jest niemożliwy do obejścia bez dodania 64 pojedynczych przewodów. Sposobem na obejście tego jest oświetlenie tylko jednej warstwy na raz, ale rób to tak szybko, że oko nie rozpoznaje, że tylko jedna warstwa jest zapalona w danym momencie. Opiera się to na zjawisku zwanym trwałością widzenia. Każda warstwa to obraz 4x4 (16). Jeśli sflashujemy 4 16 obrazów led pojedynczo, naprawdę szybko, otrzymamy obraz 3D 4x4x4!

Krok 3: Tworzenie kostki, szablon

Tworzenie kostki, szablon
Tworzenie kostki, szablon
Tworzenie kostki, szablon
Tworzenie kostki, szablon
Tworzenie kostki, szablon
Tworzenie kostki, szablon

Odręczne lutowanie siatek 4x4 LED wyglądałoby okropnie! Aby uzyskać 4 idealne siatki 4x4 LED, użyliśmy szablonu, aby utrzymać je na miejscu. Chciałem, aby kostka była jak najłatwiejsza do wykonania, więc zdecydowałem się na użycie diod LED jak najwięcej własnych nóg. O odległości między liniami w siatce decydowała długość nóg LED. Odkryłem, że 25mm (około cala) to optymalna odległość między każdą diodą LED (pomiędzy środkiem każdej diody!), aby umożliwić lutowanie bez dodawania lub cięcia drutu.

  • Znajdź kawałek drewna wystarczająco duży, aby zrobić siatkę 4x4 o długości 2,5 cm.
  • Narysuj siatkę 4x4 linii.
  • Zrób wgniecenia we wszystkich przecięciach za pomocą punktaka.
  • Znajdź wiertło, które zrobi otwory wystarczająco małe, aby dioda led pozostała na swoim miejscu i wystarczająco duże, aby diodę led można było łatwo wyciągnąć (bez zginania przewodów…).
  • Wywierć 16 otworów.
  • Twój szablon ledcube jest gotowy.

Krok 4: Tworzenie kostki, lutowanie warstw

Robiąc kostkę, przylutuj warstwy
Robiąc kostkę, przylutuj warstwy
Robiąc kostkę, przylutuj warstwy
Robiąc kostkę, przylutuj warstwy
Robiąc kostkę, przylutuj warstwy
Robiąc kostkę, przylutuj warstwy

Kostkę wykonujemy w 4 warstwach 4x4 ledów, następnie lutujemy je razem. Tworzymy warstwę:

  • Umieść diody LED z tyłu i z boku i zlutuj je razem
  • Włóż kolejny rząd diod LED i zlutuj je razem. Zrób jeden rząd na raz, aby zostawić miejsce na lutownicę!
  • Powtórz powyższy krok jeszcze 2 razy.
  • dodaj usztywnienie krzyżowe z przodu, gdzie rzędy led nie są połączone.
  • Powtórz 4 razy.

Krok 5: Tworzenie kostki, łączenie warstw

Tworzenie kostki, łączenie warstw
Tworzenie kostki, łączenie warstw
Tworzenie kostki, łączenie warstw
Tworzenie kostki, łączenie warstw
Tworzenie kostki, łączenie warstw
Tworzenie kostki, łączenie warstw

Teraz, gdy mamy te 4 warstwy, wystarczy je ze sobą zlutować.

Umieść jedną warstwę z powrotem w szablonie. To będzie górna warstwa, więc wybierz najładniejszą:) Umieść kolejną warstwę na wierzchu i wyrównaj jeden z rogów dokładnie 25 mm (lub inną odległość, którą użyłeś w swojej siatce) nad pierwszą warstwą. Jest to odległość między przewodami katodowymi. Przytrzymaj narożnik na miejscu pomocną dłonią i przylutuj anodę narożną pierwszej warstwy do anody narożnej drugiej warstwy. Zrób to dla wszystkich rogów. Sprawdź, czy warstwy są idealnie wyrównane we wszystkich wymiarach. Jeśli nie, pochyl się trochę, aby się dostosować. Lub ponownie lutuj, ponieważ jest to odległość na wysokości, która jest wyłączona. Gdy są idealnie dopasowane, zlutuj ze sobą pozostałe 12 anod. Powtórz 3 razy.

Krok 6: Wybór wartości rezystora

Wybór wartości rezystora
Wybór wartości rezystora
Wybór wartości rezystora
Wybór wartości rezystora

Przy wyborze wartości rezystora dla swoich diod należy pamiętać o dwóch rzeczach.

1) Diody LED 2) AVR AVR ma maksymalny łączny prąd znamionowy 200 mA. Daje nam to 12mA do pracy na diodę LED. Nie chcesz również przekraczać maksymalnego prądu, na który są oceniane diody LED. Użyłem w swojej kostce rezystorów 220 ohm. Dało mi to około 12mA na led.

Krok 7: Kontroler

Kontroler
Kontroler
Kontroler
Kontroler
Kontroler
Kontroler

Obwody sterujące kostką led opisane są na załączonym schemacie.

Interfejs RS-232 jest opcjonalny. i można je pominąć. Czyli IC2 i wszystkie podłączone do niego komponenty. Przyszłe oprogramowanie układowe umożliwi komunikację z komputerem. Zacznij od rozmieszczenia wszystkich komponentów na płytce drukowanej w układzie, który umożliwi połączenie wszystkich komponentów przy użyciu minimalnej liczby przewodów. Jeśli wszystko pasuje, przylutuj obwód. Więcej instrukcji na ten temat nie będę podawał, gdyż układ prawdopodobnie będzie wyglądał bardzo różnie w zależności od kostka na kostkę, w zależności od wielkości płytki drukowanej itp. Informacja jak podłączyć kostkę do układu sterownika znajduje się w następnym krok.

Krok 8: Podłącz kostkę

Podłącz kostkę
Podłącz kostkę
Podłącz kostkę
Podłącz kostkę
Podłącz kostkę
Podłącz kostkę

Zdjęcia wyjaśniają to lepiej niż słowa. Proszę zobaczyć zdjęcia.

Krok 9: Skompiluj i zaprogramuj

Masz teraz kostkę led. Aby z niego skorzystać, potrzebuje trochę oprogramowania. Zrobiłem sterownik do renderowania przestrzeni danych 3D na kostce i funkcje do wyświetlania fajnych efektów wizualnych na kostce. Możesz użyć mojego kodu, pisać własny lub budować na mój kod i zrób więcej efektów. Jeśli tworzysz własne efekty, prześlij mi kod. Chętnie zobaczę, co zrobicie! Aby skompilować program. Po prostu otwórz wiersz poleceń, wejdź do katalogu z kodem źródłowym „make” w wierszu poleceń. Jeśli chcesz użyć ATMega32 zamiast ATMega16, po prostu zmień ustawienie mcu w Makefile i przekompiluj (wpisz make). Jeśli użyjesz m32 i nie wykonasz tego kroku, kostka nie uruchomi się poprawnie (czerwone i zielone kontrolki będą ciągle migać). Powinieneś teraz mieć plik o nazwie main.hex w katalogu źródłowym. Następny krok pokaże, jak umieścić ten kod w kostce.

Krok 10: Zaprogramuj mikrokontroler

Zaprogramuj mikrokontroler
Zaprogramuj mikrokontroler
Zaprogramuj mikrokontroler
Zaprogramuj mikrokontroler
Zaprogramuj mikrokontroler
Zaprogramuj mikrokontroler

Jeśli masz problemy z prędkością i/lub niektóre diody LED się nie zapalają. Proszę uważnie przeczytać ten krok. Do programowania mikrokontrolera używam avrdude i programatora USBTinyISP.

  • https://savannah.nonngnu.org/projects/avrdude/
  • https://www.ladyada.net/make/usbtinyisp/
  • https://www.adafruit.com/index.php?main_page=index&cPath=16

Moje przykłady będą na systemie Ubuntu Linux. Procedura powinna być prawie identyczna w systemie Windows, ale nie mogę ci w tym pomóc. Jeśli używasz innego programatora, przeczytaj instrukcję do tego programatora i avrdude. Po pierwsze, zobaczmy, czy uda nam się nawiązać kontakt z AVR. Podłącz programator do swojej kostki i komputera. Polecenie to "avrdude -c usbtiny -p m16", gdzie -c określa programistę, a -p model AVR. Możesz zobaczyć wyjście na poniższych obrazkach. Teraz wgraj firmware: "avrdude -c usbtiny -p m16 -U flash:w:main.hex". Do tej pory kostka powinna się zrestartować i zacząć robić różne rzeczy. Będzie działał z częstotliwością 1 MHz (bardzo powoli) przy użyciu wewnętrznego oscylatora. I niektóre diody nie będą działać, ponieważ niektóre porty GPIO są domyślnie używane dla JTAG. Aby włączyć zewnętrzny oscylator i wyłączyć JTAG, musimy zaprogramować fuse bytes:run "avrdude -c usbtiny -p m16 -U lfuse:w:0xef:m" i "avrdude -c usbtiny -p m16 -U hfuse:w:0xc9:m". Zachowaj ostrożność podczas wykonywania tego kroku! Jeśli się pomylisz, możesz trwale zniszczyć swój mikrokontroler! Jeśli używasz innego mikrokontrolera niż ATMega16, przed zmianą bajtów fuse bajtów koniecznie przeczytaj uważnie arkusz danych! Po zapisaniu prawidłowych bajtów fuse bajtów kostka powinna się zrestartować i zacząć działać z normalną prędkością ze wszystkimi diodami działającymi. Ciesz się swoją nową kostką: D

Krok 11: Przejdź na dużą skalę - 8x8x8

Idź duży - 8x8x8
Idź duży - 8x8x8
Idź duży - 8x8x8
Idź duży - 8x8x8
Idź duży - 8x8x8
Idź duży - 8x8x8
Idź duży - 8x8x8
Idź duży - 8x8x8

Po zrobieniu tej dość fantazyjnej kostki 4x4x4 zrobiłem też ogromną kostkę 8x8x8. Zrobię instruktaż dla tego, kiedy będę miał czas. Tymczasem zobacz zdjęcia:-)

Możesz znaleźć wersję 8x8x8 tutaj: https://www.instructables.com/id/Led-Cube-8x8x8/ Proszę oceń tę instrukcję, jeśli Ci się spodoba!:)

Zalecana: