Reklama
Boże Narodzenie znów tu jest i bez względu na to, czy jest to twoje ulubione święto w roku, czy też przynosi zimny pot, dekoracje zaczynają rosnąć. W tym roku dlaczego nie zastosować w swoich dekoracjach jakiejś technologii DIY, aby je wyróżnić?
W tym projekcie od podstaw zbudujemy odporną na warunki pogodowe matrycę LED 8 x 8 LED za mniej niż 20 USD. Został zaprojektowany tak, aby pasował do standardowego wieńca na świąteczne drzwi, choć można go używać w dowolnym miejscu w domu. A ponieważ jest zasilany bateryjnie, również z dala od domu!
Lista części
Do tego projektu potrzebujesz:
- Arduino.
- Użyłem Nano ponieważ jest mały, ale można użyć prawie każdego Mikrokontroler zgodny z Arduino Poradnik kupujący Arduino: Którą deskę powinieneś dostać?Istnieje tak wiele różnych rodzajów tablic Arduino, że wybaczono by ci, że jesteś zdezorientowany. Które powinieneś kupić dla swojego projektu? Pomóż nam, korzystając z tego przewodnika zakupów Arduino! Czytaj więcej .
- 64 x czerwone diody LED.
- 8 rezystorów 220 Ohm.
- Czujnik ruchu PIR.
- Wiele Zestawy startowe Arduino Co zawiera zestaw startowy Arduino? [MakeUseOf wyjaśnia]Wcześniej MakeUseOf przedstawiłem tutaj sprzęt open source Arduino, ale będziesz potrzebować czegoś więcej niż samego Arduino, aby coś z niego zbudować i zacząć. „Zestawy startowe” Arduino są ... Czytaj więcej chodź z nimi. Kupiłem paczkę od Amazon za 10 USD.
- 1 kawałek płyta prototypowa.
- Zastosowano tutaj 9 x 7 cm, ale można użyć dowolnego rozmiaru.
- Bateria 7-12 V.
- Prosty zestaw akumulatorów jest tu używany ze względów budżetowych, ale mobilna ładowarka bankowa Najlepsze banki mocy Pokemon GoPokemon Go bije moc baterii telefonu. Wyciśnięcie nieco więcej soku chwytającego pokemony z telefonu wymaga power banku. Ale jaka jest najlepsza dostępna bateria? Czytaj więcej może trwać jeszcze dłużej.
- Różne krótkie kawałki drutu.
- Pudełko Tupperware lub podobna wodoodporna obudowa.
- Upewnij się, że będzie wystarczająco duży, aby zmieścił się w nim wszystkie elementy!
- Wieniec świąteczny.
- Wszystko zrobi, tylko upewnij się, że pudełko z obudową będzie w nim pasowało.
- Lutownica i lut.
Chociaż nie jest to absolutnie konieczne, ponieważ można lutować komponenty bezpośrednio do Nano, znalazłem również małą płytkę chlebową bardzo przydatną podczas testowania. Pistolet do klejenia na gorąco pomaga również złożyć wszystkie części razem.
Ten projekt wymaga sporo lutowania i jako początkujący może wydawać się zniechęcający. Osobiście wciąż jestem bardzo początkującym w lutowaniu i uważam, że nie jest tak trudne ani czasochłonne, jak się wydaje. Jeśli dopiero zaczynasz lutować, oto niektóre dobre wskazówki, które pomogą Naucz się lutować, korzystając z tych prostych wskazówek i projektówCzy jesteś trochę onieśmielony myślą o gorącym żelazie i stopionym metalu? Jeśli chcesz zacząć pracę z elektroniką, musisz nauczyć się lutować. Pozwól nam pomóc. Czytaj więcej .
Jeśli naprawdę nie lubisz lutowania, ten projekt jest również możliwy dzięki Taśmy LED Projekt weekendowy: Zbuduj gigantyczny wyświetlacz LED PixelUwielbiam piksele LED: jasne, łatwe do kontrolowania, tanie i tak wszechstronne. Dzisiaj zmienimy je w duży piksel, który można zawiesić na ścianie. Czytaj więcej lub gotową matrycę LED, którą możesz mieć w zestawie startowym. Niektóre zmiany kodu będą konieczne, jeśli zdecydujesz się wybrać tę trasę.
Konfiguracja Arduino
Zaczniemy od schematu obwodu Arduino i przewodów, które podłączymy do naszego czujnika PIR i matrycy LED.
Inside the Matrix
Teraz przygotujemy naszą matrycę LED 8 x 8. Dobrze jest zacząć od utworzenia jednego wiersza i jednej kolumny matrycy, aby upewnić się, że dokładnie tam, gdzie chcesz na tablicy prototypowej.
Na powyższym zdjęciu wszystkie diody LED są umieszczone w taki sposób, że anody (dłuższa dodatnia noga) znajdują się w górnej części protoboardu. Jest to ważne, ponieważ będziemy tworzyć kolumny wspólnych anod łącząc je ze sobą, oraz rzędy wspólnych katod (krótsza noga ujemna). Zdobycie tego teraz uratuje bóle głowy później!
Zbudujemy wspólną macierz katodową rzędów, ten schemat pokazuje, jak to wszystko jest połączone.
Na początku może wyglądać trochę zniechęcająco, ale jest to dość prosta konfiguracja. W każdym rzędzie wszystkie katody są połączone od prawej do lewej, a następnie przymocowane do jednego z naszych pinów Arduino. Następnie robimy to samo dla każdej kolumny anod. W ten sposób, w zależności od tego, do której kolumny doprowadzamy moc i do którego rzędu dołączamy do ziemi, możemy włączyć dowolną diodę LED w tablicy.
Niech rozpocznie się lutowanie
Zacznij od umieszczenia pierwszego rzędu diod LED. Upewnij się, że wszystkie anody są skierowane do góry i odwróć je. Odkryłem, że dodanie kolejnej diody LED w każdym rogu i przymocowanie kolejnego kawałka protoboardu za pomocą elastycznego sznurka pomogło utrzymać wszystko na miejscu.
Teraz jeden po drugim zegnij katodę (krótką) nogę każdej diody LED w lewo, aby wszystkie zachodziły na siebie. Najłatwiej jest zacząć od lewej strony i pracować w prawo. Jeśli używasz większego protoboardu, możesz najpierw przylutować go do planszy i połączyć ze sobą za pomocą padów. Uważaj, aby nie połączyć żadnej katody z żadnymi innymi liniami na planszy ani z żadną anodą!
Powtórz ten proces dla wszystkich ośmiu wierszy, a kiedy skończysz, powinieneś mieć coś, co wygląda mniej więcej tak:
Skaczące Anody!
Kolumny anod są trochę bardziej skrzypiące. Na powyższym schemacie anody wyginają się za każdym razem, gdy przecinają rząd katod. Jest tak, ponieważ w ogóle nie mogą dotknąć rzędów. Musimy zgiąć anody nad rzędami katod i połączyć je ze sobą. Może się okazać, że użycie pióra do zgięcia nóg bardzo pomaga.
Zrób to dla każdego rzędu anod i podłącz rezystor do każdej górnej anody. Prawdopodobnie łatwiej będzie ci włożyć rezystor do następnego otworu w protoboardzie i połączyć klocki za pomocą lutu. Powinieneś teraz mieć coś takiego:
Gratulacje! Matryca LED jest kompletna. Na tym etapie dokładnie sprawdź lutowanie, aby upewnić się, że nie ma przerw i że żadna z kolumn nie dotyka rzędów. Nie martw się, jeśli nie wygląda ładnie, po prostu potrzebujemy go do pracy! Teraz możesz sprawdzić każdą diodę osobno, podłączając napięcie 5 V do dowolnego końca kolumny i uziemiając do dowolnego końca rzędu.
Pod warunkiem, że wszystko jest w porządku, podłącz przewody do każdej kolumny i każdego wiersza i podłącz je do Arduino, jak pokazano na powyższym schemacie.
Zdobądźmy kodowanie
Otwórz Arduino IDE i wybierz kartę i port. Jeśli jesteś nowy w Arduino, sprawdź to Przewodnik wprowadzający. Pierwsze kroki z Arduino: przewodnik dla początkującychArduino to platforma prototypowania elektroniki typu open source oparta na elastycznym, łatwym w użyciu sprzęcie i oprogramowaniu. Jest przeznaczony dla artystów, projektantów, hobbystów i wszystkich zainteresowanych tworzeniem interaktywnych obiektów lub środowisk. Czytaj więcej
Wpisz ten kod do edytora. Jest to dość gęsty kod, jeśli go nie znasz, ale jest dostępny tutaj w pełni adnotowane, aby pomóc zrozumieć, jak to działa.
const int row [8] = {2,3,4,5,6,7,8,9}; const int col [8] = {10,11,12,14,15,16,17,18}; int pirPin = 19; int pirState = LOW; int val = 0; bool pirTrigger = false; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int piksele [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME puste = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const CHAR_MAP_NAME threedownthreein = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = { & blank, i threedownthreein, i blank, i blank, i threedownthreein. }; void setup () {for (int i = 0; i <8; i ++) {pinMode (wiersz [i], WYJŚCIE); pinMode (col [i], OUTPUT); // czujnik ruchu pinMode (pirPin, INPUT); digitalWrite (col [i], LOW); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; dla (int x = 0; x <8; x ++) {for (int y = 0; y <8; y ++) {bool on = (* thisMap) [x] [y]; if (on) {piksele [x] [y] = WYSOKA; } else {pixel [x] [y] = LOW; }}} currentCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} void refreshScreen () {for (int currentRow = 0; currentRow <8; currentRow ++) {digitalWrite (wiersz [currentRow], LOW); dla (int currentCol = 0; currentCol <8; currentCol ++) {int thisPixel = piksele [currentRow] [currentCol]; digitalWrite (col [currentCol], thisPixel); if (thisPixel == HIGH) {digitalWrite (col [currentCol], LOW); }} digitalWrite (row [currentRow], HIGH); }} void loop () {val = digitalRead (pirPin); if (val == HIGH) {pirTrigger = true; } else if (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); countDown--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }
Ważne części do zrozumienia to:
The refreshSpeed zmienna. Ta zmienna określa sposób, w jaki czas między odświeżaniem każdego ekranu. Większa liczba oznacza dłuższe oczekiwanie.
Const CHAR_MAP_NAMEs. Tutaj umieszczasz każdą mapę postaci (lub ramkę, jeśli łatwiej o nich myśleć w ten sposób), którą chcesz wyświetlić.
The noOfFrames zmienna. Określa, ile klatek zostanie wyświetlonych podczas jednego pełnego odtwarzania. Pamiętaj, że może różnić się od liczby map postaci. Na przykład, jeśli chcesz wyświetlić „KOT”, musisz zdefiniować tylko cztery odrębne ramki: puste, an ZA, a do i a T..
Teraz, gdy czujnik ruchu wykryje ruch, ekran LED powinien mrugnąć diodą trzy w dół i trzy w lewym górnym rogu. Jeśli nie wyświetla się poprawnie, sprawdź ponownie okablowanie, aby upewnić się, że wszystko jest we właściwym miejscu! Gdy dodasz własny obraz lub wiadomość, może zostać wcześnie odcięta lub odtwarzana zbyt długo. Spróbuj zmienić pirLockTime zmienna, aż będzie odtwarzana przez żądany czas.
Proces dodawania każdej ramki do wyświetlacza LED może być trochę żmudny, więc stworzyliśmy ten arkusz kalkulacyjny aby ułatwić tworzenie tekstu i obrazów dla matrycy LED (zrób kopię Arkusza Google, aby móc go edytować).
Za pomocą arkusza kalkulacyjnego możesz skopiować swoje dzieła bezpośrednio do kodu.
Make It Brave the Elements
Teraz, gdy mamy działającą matrycę LED, potrzebujemy sposobu, aby przetrwała zimę. Chociaż ta metoda może nie wytrzymać tropikalnej burzy lub zostać zanurzona w basenie, powinna wystarczyć do zabezpieczenia całej elektroniki przed żywiołami.
Użyłem okrągłego pudełka Tupperware o średnicy 15 cm i głębokości 6 cm, ponieważ idealnie pasowało do moich elementów. Wytnij okno w pokrywie nieco większe niż matryca LED i przymocuj do niego przezroczystą plastikową folię, upewniając się, że nie pozostawia miejsca dla płynu. Wytrzymałe tworzywo sztuczne z niektórych opakowań działałoby najlepiej, ale to wszystko, co miałem. Możesz także przymocować niektóre mocowania do protoboardu, chociaż oba zadania można łatwo wykonać za pomocą mocnej wodoodpornej taśmy.
Następnie zrób mały otwór pod oknem, a następnie ostrożnie i powoli rozszerz go, aż czujnik PIR będzie mógł się po prostu zmieścić. Chcesz, aby pasował jak najlepiej.
Zamontuj czujnik PIR i wypełnij wszelkie widoczne luki taśmą lub gorącym klejem.
Wyczyść taśmę lub klej, który może uniemożliwić prawidłowe zamknięcie pudełka, i dodaj wszystkie elementy do pudełka wraz z baterią. Tutaj użyto prostego akumulatora AA, podłączonego bezpośrednio do styku VCC Nano. Kilka małych kawałków korka zostało dodanych na zewnątrz obudowy, aby pomóc w zawieszeniu konstrukcji na środku wieńca.
I jesteśmy skończeni
Po zapieczętowaniu pudełka powiesić go świątecznym wieńcem i poczekać na reakcję odwiedzających na osobiste powitanie w wysokości 20 USD! Możesz nawet pójść o krok dalej i stworzyć niesamowite Dekoracje DIY Wydrukowane w 3D ozdoby świąteczne na idealne wakacje naukowyDlaczego nie zaoszczędzić trochę gotówki na Boże Narodzenie i wydrukować w 3D świąteczne ozdoby do domu? Czytaj więcej także w innych częściach domu!
W tym projekcie zbudowaliśmy od podstaw samodzielny system matrycowy LED, który jest aktywowany ruchem i może przetrwać będąc na zewnątrz w najbardziej niekorzystnych warunkach pogodowych. Ta kompilacja przyda się długo po zakończeniu sezonu wakacyjnego w innych projektach, a ta sama technika mogłaby zostać wykorzystana do stworzenia tanich obudów odpornych na warunki atmosferyczne dla innych projektów.
Czy zbudowałeś coś, co nada Twoim Świętom świątecznego charakteru? Czy w tym roku planujesz jakieś prezenty świąteczne z motywem DIY? Daj nam znać w komentarzach poniżej!
Ian Buckley jest niezależnym dziennikarzem, muzykiem, performerem i producentem wideo mieszkającym w Berlinie w Niemczech. Kiedy nie pisze ani nie występuje na scenie, majstruje przy elektronice lub kodzie DIY, mając nadzieję, że zostanie szalonym naukowcem.