Jak zrobić pulsującą kostkę Arduino LED, która wygląda, jakby pochodziła z przyszłości?

Jak zrobić pulsującą kostkę Arduino LED, która wygląda, jakby pochodziła z przyszłości?

Jeśli bawiłeś się niektórymi projektami Arduino dla początkujących, ale szukasz czegoś trochę trwałego i na zupełnie innym poziomie niesamowitego, to skromna kostka LED 4 x 4 x 4 jest naturalnym wyborem. Konstrukcja jest znacznie prostsza niż mogłoby się wydawać, a korzystając z multipleksowania możemy sterować wszystkimi diodami bezpośrednio z jednej płytki Arduino Uno. To świetna praktyka lutowania, a całkowity koszt komponentów nie powinien przekroczyć około 40 USD.





Dzisiaj dokładnie opiszę stronę konstrukcyjną rzeczy i dostarczę oprogramowanie do uruchamiania, które zarówno wygląda imponująco, jak i uczy podstaw.





jak wygląda kabel vga

Będziesz potrzebować

  • jakiśArduino. Dostarczony kod zakłada Arduino Uno, ale można go również dostosować do większego modelu.
  • 64 diody LED - dokładny wybór należy do Ciebie, ale użyłem tych superjasnych 3mm niebieskich diod LED ( 3.2 v 30 ma ) 2,64 GBP za 50.
  • 16 rezystorów o odpowiedniej wartości dla twoich diod LED. W przypadku powyższych diod LED za 99 pensów kupiono 100 z nich. Posługiwać się ledcalc.com - wpisz 5v jako napięcie zasilania, napięcie diod LED (w moim przypadku 3.2) i prąd w miliamperach (3.2). Żądany rezystor zostanie wyświetlony w polu oznaczonym Najbliższy rezystor o wyższej wartości znamionowej , a następnie po prostu wyszukaj tę wartość w serwisie eBay.
  • Trochę drut rzemieślniczy do wzmocnienia podstawowej konstrukcji i do dekoracji - użyłem 0,8 mm grubość.
  • DO tablica prototypowa jakiegoś typu, do którego możesz przylutować wszystkie swoje bity. Użyłem takiego, który nie miał pełnych gąsienic, ponieważ nie mam przecinaka do torów, ale użyj tego, co ci odpowiada. Tarcza prototypowa Arduino jest jednak trochę za mała, chyba że naprawdę ściśniesz ze sobą diody LED.
  • Drut z komponentem losowym - niektóre żyły kabla sieciowego i niektóre przewody prototypowe z zestawu będą działać dobrze.
  • Zaciski krokodylkowe lub pomocne dłonie są przydatne do trzymania bitów na miejscu.
  • Lutownica i lut.
  • Trochę złomu drewna.
  • Wiertło z wiertłem o tym samym rozmiarze co diody LED.

Uwaga: rysunki 3D w tym samouczku zostały wykonane w kilka minut przy użyciu TinkerCAD . Śledziłem istniejącą kompilację wyszczególnioną w Instruktażach przez użytkownikaforte1994, który możesz również przeczytać przed podjęciem tej próby.





Koniecznie przeczytaj wszystkie te instrukcje pierwszy zanim spróbujesz tego dla siebie.

Zasada tego projektu

Przed rozpoczęciem budowy ważne jest, aby mieć pełny przegląd tego, jak to będzie działać, abyś mógł improwizować i identyfikować błędy w miarę postępów. Niektóre kostki LED używają jednego pinu wyjściowego dla każdej diody LED - jednak w kostce 4x4x4 byłoby to potrzebne 64 piny - czego na pewno nie mamy na Arduino Uno. Jednym z rozwiązań byłoby użycie rejestrów przesuwnych , ale jest to niepotrzebnie skomplikowane.



Aby kontrolować wszystkie te diody LED w zaledwie 20 pinach, użyjemy techniki zwanej multipleksowaniem. Rozbijając kostkę na 4 oddzielne warstwy, potrzebujemy tylko pinów sterujących dla 16 diod LED - więc aby zapalić konkretną diodę LED, musimy aktywować zarówno warstwę, jak i pin sterujący, co daje nam całkowite zapotrzebowanie na 16+4 pinów. Każda warstwa ma wspólną katodę - ujemną część obwodu - więc wszystkie ujemne odgałęzienia są ze sobą połączone i połączone z jednym kołkiem dla tej warstwy.

Na anodzie (pozytywny) z boku, każda dioda LED zostanie połączona z odpowiednią diodą LED w warstwie powyżej i poniżej. Zasadniczo mamy 16 kolumn odnóg dodatnich i 4 warstwy negatywu. Oto kilka widoków 3D połączeń, które pomogą Ci zrozumieć:





Budowa

Ponieważ nie będziemy używać do lutowania w pełni metalowej konstrukcji, chcemy, aby wszystkie nogi diod LED zachodziły na siebie o około jedną czwartą i zapewniały sztywność konstrukcji. Złóż katodę swoich diod LED - bok z płaskim wycięciem w głowie i krótszą nogę - jak pokazano na schemacie. (Nie ma znaczenia, czy zginasz go w lewo, czy w prawo, o ile jesteś konsekwentny i nigdy nie dotyka anody)

Pierwszą krytyczną częścią tego projektu jest wykonanie drewnianego przyrządu. To utrzyma warstwę diod LED podczas lutowania nóg, więc musi być dokładna i niezbyt luźna. Używając wiertła o tym samym rozmiarze, co diody LED, odmierz, a następnie wywierć macierz 4x4 z równoodległy otwory. Pamiętaj, że chcesz, aby około jedna czwarta nogi pokrywała się z sąsiadem i używaj rzeczywistej linijki. Sprawdź każdy otwór, aby upewnić się, że dioda LED pasuje ciasno, ale nie tak ciasno, że nie będziesz w stanie jej wyjąć lub będziesz mieć problemy podczas próby usunięcia w pełni lutowanej warstwy.





Przylutuj katody 4 rzędów diod LED. Uważaj, aby nie przepalić diod LED - chcesz mieć dobre, gorące żelazko, które należy włączać i wyłączać. Oto moje pierwsze cztery rzędy zakończone.

Teraz, aby wzmocnić sztywność warstwy, wytnij i przylutuj dwa proste kawałki drutu rzemieślniczego na każdym końcu, upewniając się, że łączą się z każdym rzędem. To jest Twoja pierwsza kompletna warstwa. Na razie zostaw wszystkie nadmiar nóg wystające z boku.

Teraz byłby świetny czas na test - wystarczy załadować domyślną aplikację Arduino blink, a przy podłączonym rezystorze podłączyć masę do ramki warstwy i po kolei wcisnąć dodatni przewód do każdej diody LED.

Miejmy nadzieję, że wszystkie się zaświecą. Jeśli nie, upewnij się, że nie pominęło gdzieś złącza lutowanego, a jeśli to konieczne, wymień diodę LED.

Usuń tę warstwę z przyrządu i powtórz proces jeszcze 3 razy .

Nie martw się, jeśli twoje lutowanie nie jest idealne - o ile nie pęknie, a połączenie jest solidne, nie wpłynie to na produkt końcowy. Przyznaję, moje lutowanie było dość beznadziejne, mój przyrząd był zepsuty i wszystko przypominało krzywą wieżę w Pizie. Mimo to jestem dumny z gotowej kostki, a gdy diody LED się zaświecą, i tak nie będziesz patrzeć na złącza lutowane!

Łączenie warstw

Gdy masz już 4 ukończone warstwy, będziesz chciał połączyć wszystkie pionowe nogi razem. Uznałem, że to najtrudniejsza część kompilacji, i aby wspomóc proces, wyciąłem riser z karty.

Utrzymywało to warstwy na odpowiedniej wysokości, ale wiele nóg nadal nie pasowało idealnie - w tym celu użyłem kilku zacisków krokodylkowych, aby utrzymać je na miejscu.

Pierwszy głupi błąd, którego należy unikać

Dopiero po ukończeniu pełnej warstwy zdałem sobie sprawę, że moja podstawka do kart utknęła na swoim miejscu, więc musiałem ją wyciąć! Nie popełnij tego samego błędu co ja – wydłuż podstawkę z boku i połącz kawałki karty na zewnątrz kostki, aby po ukończeniu warstwy można było rozłożyć podstawkę i wyciągnąć kartę.

Drugi głupi błąd, którego należy unikać

Oczywiście nie lutuj pionowej nogi do ramy katody. Nogi pionowe powinny łączyć się tylko z innymi nogami pionowymi i nic więcej.

Ponownie przetestuj po nałożeniu każdej warstwy. Przetestuj wszystkie warstwy, w rzeczywistości dotykając tylko dodatniego ołowiu do wierzchołka najwyższej warstwy, zapewniając w ten sposób dobry kontakt przechodzący przez wszystkie warstwy.

Kiedy wszystkie 4 warstwy zostały zlutowane razem, zacząłem trochę sprzątać – zostawiłem jedną nogę wystającą z każdej warstwy w sposób przypominający odskocznię – później spadła na deskę. Inne obce kawałki metalowej ramy i nóg zostały odcięte. Oczywiście nie przecinaj żadnej z pionowych nóg – musimy je włożyć do naszej planszy prototypowej.

Mocowanie do tablicy

Pamiętasz, jak powiedziałem, że najtrudniejszą częścią było przymocowanie każdej warstwy do siebie? Kłamałem. Próba dopasowania 16 nóżek LED do małych otworów na płytce prototypowej jest w rzeczywistości trudniejsza. Najłatwiejszy sposób, jaki znalazłem, to przebić się przez 4 na raz, zabezpieczyć je pod spodem krokodylkami, a następnie przejść do następnego rzędu 4. Użyj pisaka, aby wcześniej zaznaczyć odstępy, jeśli to pomoże.

Z perspektywy czasu, właściwie najpierw umieściłbym rezystory w płytce prototypowej. Jak to jest wlutowałem najpierw wszystkie nóżki kostki w płytkę, potem starałem się delikatnie wcisnąć pomiędzy każdą z nich oporniki. Ucz się na moim błędzie i umieść swoje rezystory na pierwszym miejscu.

Próbowałem rozmieścić je równomiernie w sposób krokowy, aby móc wykorzystać jedną całą stronę kostki do wszystkich końcowych połączeń z Arduino. Oto schemat obwodu, z którym poszedłem:

W przypadku czterech warstw ujemnych upuściłem jeden drut z każdej warstwy, a następnie po prostu odciągnąłem je na bok, w ten sposób:

Na koniec dodałem kilka przewodów wtykowych, które mogłem następnie umieścić w odpowiednich pinach Arduino. Użyj najdłuższego rodzaju, jaki masz. Uwaga: zepsułem zamówienie w niektórych miejscach z powodu złego planowania. Każdy rząd diod LED był jednak oznaczony kolorami.

Otóż ​​to. Skończone!

Programowanie kostki

Wiem, że nie możesz się doczekać, aż to się odpali, więc podłącz 4 negatywne warstwy do We/Wy analogowe porty A2 (warstwa dolna) Poprzez A5 (górna warstwa) (mogą one również działać jako cyfrowe wejścia/wyjścia) . Następnie podłącz 16 pinów kontrolnych LED, zaczynając od +1 po prawej do cyfrowe we/wy port 0 , z +15 oraz +16 wchodząc w analog A0 i A1 . (Nie używaj AREF i GND)

Pobierz wzory i kod demo od instruktażowego użytkownika forte1994 . Zapewnił również pomocne narzędzie online do projektowania wzorców bajtów w celu dostosowania własnej sekwencji. Oto wideo tego kodu w akcji na mojej kostce (Zmieniłem prędkość na 5, zamiast domyślnych 20) .

Windows 7 nie może połączyć się z internetem

Oczywiście nie jest to jedyny sposób na zaprogramowanie sześcianu, więc pozwól, że poświęcę kilka minut na naukę podstaw tworzenia własnych wzorów programowo , zamiast odtwarzać gotowe wzorce, jak to robi powyższe demo.

Jest kilka rzeczy, które powinieneś wiedzieć, próbując zaprogramować kostkę:

  1. Aby zaadresować pojedynczą diodę LED, użyj a samolot (warstwa) numer 0–3 i pin LED numer 0–15. Obróć samolot do wyjścia LOW (ponieważ jest to noga ujemna) i numeru pinu LED HIGH (noga dodatnia), aby aktywować diodę LED.
  2. Przed aktywacją pojedynczej diody LED upewnij się, że wszystkie inne płaszczyzny są wyłączone - oznacza to, że ustaw je na wyjście HIGH. Niezastosowanie się do tego spowoduje zaświecenie kolumny diod LED, a nie pojedynczej diody LED.

Mając to na uwadze, przygotowałem dla Ciebie dwie bardzo proste sekwencje programowe – pobierz kod stąd . Pierwsza po prostu zapala kolejno każdą diodę LED po kolei. Używamy do tego dwóch pętli for, iterując każdą warstwę i każdy pin kontrolny.

Druga to losowa pętla (trzeba zakomentować pierwszą i włączyć ją w głównej pętli, aby ją przetestować). Po prostu wybiera losową warstwę i losowy pin kontrolny, włączając je i wyłączając.

Streszczenie

Nie daj się zwieść tej kompilacji - bardzo brakuje mi umiejętności lutowania i poradziłem sobie z tym dobrze (Myślę?) . Całkowity czas budowy wynosił około godziny dziennie przez tydzień. Następnym razem postaram się nauczyć cię bardziej ambitnego programowania dla kostki, więc mam nadzieję, że dołączysz do mnie w budowaniu własnej kostki w tym tygodniu i ładowaniu nowego kodu w przyszłym tygodniu - a jeśli zrobisz własny niesamowite aplikacje lub sekwencje, prześlij je do Pastebin i daj nam znać w komentarzach!

Udział Udział Ćwierkać E-mail 3 sposoby sprawdzenia, czy wiadomość e-mail jest prawdziwa czy fałszywa

Jeśli otrzymałeś wiadomość e-mail, która wygląda nieco podejrzanie, zawsze najlepiej sprawdzić jej autentyczność. Oto trzy sposoby sprawdzenia, czy wiadomość e-mail jest prawdziwa.

Czytaj dalej
Powiązane tematy
  • majsterkowanie
  • Arduino
O autorze James Bruce(707 opublikowanych artykułów)

James ma tytuł licencjata w dziedzinie sztucznej inteligencji i posiada certyfikaty CompTIA A+ i Network+. Kiedy nie pracuje jako redaktor recenzji sprzętu, lubi gry LEGO, VR i gry planszowe. Przed dołączeniem do MakeUseOf był technikiem oświetlenia, nauczycielem języka angielskiego i inżynierem centrum danych.

Więcej od Jamesa Bruce .a

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować