Reklama
Jeśli zajmujesz się niektórymi projektami Arduino dla początkujących, ale szukasz czegoś trwałego i na zupełnie innym poziomie niesamowitości, skromna kostka LED 4 x 4 x 4 to naturalny wybór. Konstrukcja jest znacznie łatwiejsza niż myślisz, a dzięki multipleksowaniu możemy sterować wszystkimi diodami LED bezpośrednio z jednej płyty Arduino Uno. To świetna praktyka lutowania, a całkowity koszt komponentów nie powinien przekraczać około 40 USD.
Dzisiaj będę szczegółowo opisywał konstrukcję rzeczy i zapewniłem oprogramowanie do działania, które zarówno wygląda imponująco, jak i uczy podstaw.
Będziesz potrzebować
- Na Arduino. Podany 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 super jasnych 3 mm niebieskich diod LED (3,2 v 30ma) @ 2,64 £ za 50.
- 16 rezystorów odpowiedniej wartości dla twoich diod LED. Za powyższe diody 99 pensów kupiło 100 z nich. Posługiwać się ledcalc.com - wprowadź 5 V dla napięcia zasilania, napięcia diod LED (w moim przypadku 3.2) i prądu w miliamperach (3.2). Żądany rezystor zostanie wyświetlony w polu oznaczonym „Najbliższy rezystor o wyższej wartości”, a następnie po prostu wyszukaj tę wartość w serwisie eBay.
- Trochę drut rzemieślniczy do wzmocnienia podstawowej struktury i do dekoracji - użyłem 0,8 mm grubość.
- ZA płyta prototypowa pewnego rodzaju, do którego możesz przylutować wszystkie swoje bity. Użyłem takiego, który nie miał pełnych ścieżek, ponieważ nie mam przecinarki, ale używaj tego, co ci odpowiada. Prototypowa tarcza Arduino jest jednak trochę za mała, chyba że naprawdę ściśniesz diody LED.
- Drut losowy - niektóre splotki kabli sieciowych i niektóre przewody prototypowe z zestawu będą działać dobrze.
- Krokodyle lub „pomocne dłonie” są przydatne do utrzymywania bitów w miejscu.
- Lutownica i lut.
- Trochę złomu.
- Wiertło o bitach tego samego rozmiaru co diody LED.
Uwaga: rysunki 3D w tym samouczku zostały wykonane w kilka minut przy użyciu TinkerCAD. Śledziłem istniejącą kompilację opisaną szczegółowo przez Instructables forte1994, które możesz również przeczytać przed podjęciem próby.
Przeczytaj wszystkie te instrukcje pierwszy zanim spróbujesz tego sam.
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óc improwizować i identyfikować błędy w trakcie pracy. Niektóre kostki LED wykorzystują jeden pin wyjściowy dla każdej pojedynczej diody LED - jednak w kostce 4x4x4 byłoby to potrzebne 64 piny - których na pewno nie mamy na Arduino Uno. Jednym z rozwiązań byłoby użycie rejestry zmianowe Programowanie Arduino - zabawa z rejestrami Shift (np. Jeszcze więcej diod LED)Dzisiaj postaram się trochę nauczyć o rejestrach zmianowych. To dość ważna część programowania Arduino, głównie dlatego, że zwiększają liczbę wyjść, których można użyć w zamian za ... Czytaj więcej , ale jest to niepotrzebnie skomplikowane.
Aby kontrolować wszystkie te diody LED w zaledwie 20 pinach, będziemy używać techniki zwanej multipleksowaniem. Rozbijając kostkę na 4 oddzielne warstwy, potrzebujemy tylko szpilek kontrolnych dla 16 diod LED - aby zaświecić konkretną diodę LED, musimy aktywować zarówno warstwę, jak i pin kontrolny, co daje nam całkowite wymaganie 16 + 4 szpilki. Każda warstwa ma wspólną katodę - ujemną część obwodu - więc wszystkie ujemne nogi są połączone razem i połączone z pojedynczym pinem dla tej warstwy.
Na anodzie (pozytywny) z boku, każda dioda LED zostanie podłączona do odpowiedniej diody LED w warstwie powyżej i poniżej. Zasadniczo mamy 16 kolumn nóg dodatnich i 4 warstwy negatywne. Oto niektóre widoki 3D połączeń, które pomogą Ci zrozumieć:
Budowa
Ponieważ do lutowania nie będziemy używać w pełni metalowej konstrukcji, chcemy, aby wszystkie nogi diod LED zachodziły na siebie o około jedną czwartą i nadawały konstrukcji sztywność. Złóż katodę diod LED - stronę z płaskim wycięciem w głowie i krótszą nogawką - jak pokazano na schemacie. (Nie ma znaczenia, czy zginasz go w lewo, czy w prawo, pod warunkiem, że jesteś spójny i nigdy nie dotyka anody)
Pierwszą krytyczną częścią tego projektu jest wykonanie drewnianego przyrządu. Będzie to utrzymywać warstwę diod LED podczas lutowania nóg razem, więc musi być dokładna i niezbyt luźna. Używając wiertła tego samego rozmiaru co diody LED, zmierz, a następnie wywierć matrycę 4 × 4 równoodległy dziury. Pamiętaj, że chcesz, aby około jedna czwarta nogi zachodziła na sąsiada i używaj rzeczywistej linijki. Sprawdź każdy otwór, aby upewnić się, że dioda LED dobrze przylega, ale nie na tyle mocno, abyś nie mógł jej ponownie wyciągnąć, lub będziesz mieć problemy podczas próby usunięcia całkowicie lutowanej warstwy.
Przylutuj katody 4 rzędów diod LED. Uważaj, aby nie wypalić diod LED - chcesz dobrego, gorącego żelaza i być w nim. Oto moje pierwsze cztery wiersze zakończone.
Teraz, aby wzmocnić sztywność warstwy, wytnij i lutuj dwa proste kawałki drutu rzemieślniczego na każdym końcu, upewniając się, że łączą się z każdym rzędem. To Twoja pierwsza warstwa. Na razie pozostaw nadmiar nóg wystających z boku.
Byłby to świetny czas na przetestowanie - wystarczy załadować domyślną aplikację Arduino do mrugania, a po podłączeniu rezystora, położyć uziemienie na ramie warstwy i nacisnąć kolejno dodatni przewód do każdej diody LED.
Mam nadzieję, że wszystkie się zapalą. Jeśli nie, upewnij się, że nie przegapiłeś 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 - dopóki się nie zepsuje, a połączenie będzie solidne, nie wpłynie to na końcowy produkt. Przyznaję, że moje lutowanie było dość beznadziejne, mój przyrząd był wyłączony i wszystko to przypominało krzywą wieżę w Pizie. Mimo to jestem dumny z gotowej kostki, a kiedy zapalą się diody LED, i tak nie będziecie 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 jest to najtrudniejsza część kompilacji i dla ułatwienia procesu wyciąłem pion z karty.
Utrzymywało to warstwy na odpowiedniej wysokości, ale wiele nóg wciąż nie układało się idealnie - w tym celu użyłem klipsów z krokodyla, aby utrzymać je na miejscu.
1. głupi błąd, którego należy unikać
Dopiero po ukończeniu pełnej warstwy zdałem sobie sprawę, że moja karta pionowa utknęła na miejscu, więc musiałem ją wyciąć! Nie popełniaj tego samego błędu, co popełniłem - wydłuż pion na boku i dołącz do kart poza sześcianem, więc po ukończeniu warstwy możesz zdekonstruować pion i wyciągnąć karta.
2. 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 niczym więcej.
Ponownie sprawdź po dołączeniu każdej warstwy. Przetestuj wszystkie warstwy, w rzeczywistości dotykając dodatniego ołowiu do wierzchołka najwyższej warstwy, zapewniając w ten sposób dobry kontakt przez wszystkie warstwy.
Kiedy wszystkie 4 warstwy zostały zlutowane razem, zabrałem się za posprzątanie - zostawiłem jedną nogę wysunięty z każdej warstwy w sposób przypominający odskocznię - to zostanie zrzucone do wyżywienie później. Inne obce kawałki metalowej ramy i nóg zostały odcięte. Oczywiście nie przecinaj żadnych pionowych nóg - musimy je włożyć do naszej deski protoytping.
Mocowanie do tablicy
Pamiętasz, jak powiedziałem, że przymocowanie każdej warstwy do siebie było najtrudniejsze? Kłamałem. Próba dopasowania 16 nóżek LED do małych otworów w płycie prototypowej jest w rzeczywistości trudniejsza. Najłatwiejszym sposobem było przebicie 4 za jednym razem, zabezpieczenie ich krokodylkami, a następnie przejście do następnego rzędu 4. Użyj markera, aby wcześniej zaznaczyć odstępy, jeśli to pomoże.
Patrząc wstecz, w rzeczywistości najpierw umieściłbym rezystory w protoboardzie. W tej chwili najpierw przylutowałem wszystkie nogi kostki do planszy, a następnie próbowałem delikatnie wcisnąć rezystory pomiędzy nimi. Ucz się na moim błędzie i stawiaj rezystory na pierwszym miejscu.
Próbowałem rozmieszczać je równo w krokowy sposób, aby móc wykorzystać całą stronę kostki do wszystkich końcowych połączeń z Arduino. Oto schemat, z którym poszedłem:
W przypadku czterech warstw ujemnych upuściłem pojedynczy 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, jaki masz. Uwaga: Zepsułem zamówienie w 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ę uruchomi, więc podłącz 4 negatywne warstwy Analogowe I / O porty A2 (dolna warstwa) przez A5 (górna warstwa)(mogą 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 stronie do cyfrowe we / wy port 0, z +15 i +16 przejście na analog A0 i A1. (Nie używaj AREF i GND)
Pobierz wzorce demonstracyjne i kod od uprawnionego użytkownika forte1994. On również zapewnił pomocne narzędzie online do projektowania wzorów bajtów w celu dostosowania własnej sekwencji. Oto wideo tego kodu w akcji na mojej kostce (Dostosowałem prędkość do 5, zamiast domyślnej 20).
Nie jest to oczywiście jedyny sposób na zaprogramowanie kostki, więc pozwól mi poświęcić kilka minut na naukę podstaw tworzenia własnych wzorów programowo, zamiast odtwarzać ustawione wzorce, jak w powyższej wersji demonstracyjnej.
Jest kilka rzeczy, które powinieneś wiedzieć, próbując zaprogramować swoją kostkę:
- Aby zaadresować pojedynczą diodę LED, użyj samolot (warstwa) numer 0–3 i numer styku LED 0–15. Przekręć płaszczyznę na wyjście LOW (ponieważ jest to biegun ujemny) i numer styku LED HIGH (biegun dodatni), aby włączyć LED.
- Przed aktywowaniem pojedynczej diody LED upewnij się, że wszystkie inne płaszczyzny są wyłączone - oznacza to, że ustaw je na WYSOKI. Niespełnienie tego warunku spowoduje zaświecenie kolumny diod LED zamiast pojedynczej diody LED.
Mając to na uwadze, stworzyłem dwie bardzo proste sekwencje programowe do zbadania - pobierz kod stąd. Pierwszy z nich po prostu zaświeca kolejno każdą diodę LED. Używamy do tego dwóch pętli, iterujących po każdej warstwie i każdym pinie kontrolnym.
Druga to losowa pętla (musisz skomentować pierwszą i włączyć ją w głównej pętli, aby ją przetestować). Po prostu wybiera losową warstwę i losowy pin kontrolny, flashując je i wyłączając.
Podsumowanie
Nie daj się zastraszyć tej wersji - poważnie brakuje mi umiejętności lutowania i poradziłem sobie z tym dobrze (Myślę?). Całkowity czas kompilacji wynosił około godziny dziennie przez tydzień. Następnym razem spróbuję 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 ładuję nowy kod w przyszłym tygodniu - a jeśli tworzysz własne niesamowite aplikacje lub sekwencje, prześlij je do Pastebin i daj nam znać w komentarze!
James ma licencjat z zakresu sztucznej inteligencji i jest certyfikowany przez CompTIA A + i Network +. Jest głównym programistą MakeUseOf i spędza wolny czas grając w paintball VR i gry planszowe. Buduje komputery od dziecka.