Spisu treści:

Arduino Fireflies: 11 kroków (ze zdjęciami)
Arduino Fireflies: 11 kroków (ze zdjęciami)

Wideo: Arduino Fireflies: 11 kroków (ze zdjęciami)

Wideo: Arduino Fireflies: 11 kroków (ze zdjęciami)
Wideo: Arduino - Fireflies in a jar 2024, Lipiec
Anonim
Image
Image
Co będziesz potrzebował
Co będziesz potrzebował

Jedną z rzeczy, na które czekam latem w Pensylwanii, są świetliki na moim podwórku. Niedawno uczyłem się programowania Adruino w celu wykonania tego prostego projektu. Jest to świetny program na początek i jest wystarczająco łatwy dla każdego programisty, od nowicjusza po eksperta, aby zbudować, zmodyfikować i dobrze się bawić w zaledwie kilka minut. Zacznijmy.

Krok 1: Czego potrzebujesz

Co będziesz potrzebował
Co będziesz potrzebował

Aby Twoje błędy zaczęły migać, potrzebujesz tych komponentów:

  • Arduino. Zacząłem od Nano, jednak wystarczy każdy mikrokontroler kompatybilny z Arduino.
  • Żółte diody LED, 5mm. Możesz użyć do 6 z nich.
  • Rezystory. Potrzebny będzie jeden rezystor na diodę LED, aby ograniczyć prąd. Użyłem 470 omów, ale wszystko powyżej 150 omów powinno wystarczyć, aby chronić mikrokontroler.
  • Deska do krojenia chleba.
  • Przewód połączeniowy.

Aby ukończyć projekt swojego podwórka, będziesz potrzebować:

  • Pudełko projektowe odporne na warunki atmosferyczne.
  • Bateria 9 V ze złączem. (Proszę zapoznać się z uwagami na dole tej sekcji.)
  • Przełącznik. (Wybrałem te wodoodporne przełączniki. Jeśli nie używasz tego na zewnątrz, wystarczy każdy przełącznik.)
  • Kilka metrów drutu do umieszczenia diod LED w ogrodzie. Użyłem około 10 stóp przewodu Ethernet Cat5 na diodę LED.
  • Mała deska do krojenia chleba lub jakaś deska perf.
  • Odporny na warunki atmosferyczne dławik kablowy, przez który biegną przewody LED. (Możesz to pominąć, jeśli nie używasz tego również na zewnątrz).
  • Rurki termokurczliwe do ochrony tyłków owadów LED.
  • Zielone paski na rzepy (tj. rzepy) do mocowania świetlików LED do roślin i słupków w ogrodzie.
  • Nagłówki męskie do podłączania komponentów do małej płytki stykowej.

Narzędzia:

  • Wiertła do skrzynki projektowej. (Skorzystaj z tej okazji, aby zrobić sobie miły krok. Będziesz zadowolony, że to zrobiłeś).
  • Pistolet na gorący klej.
  • Lutownica.
  • Narzędzie obrotowe (np. Dremel) do wycinania miejsca w pudełku projektu, jeśli jest to potrzebne.

Kilka uwag tutaj:

1. Wybór akumulatora sprowadzał się do szybkiego i łatwego uruchomienia. Używanie baterii 9 V na stałe jest trochę marnotrawstwem. Lepiej jest użyć uchwytu na 4 baterie AA, aby zapewnić dłuższą żywotność (jednak będziesz potrzebować większego pudełka na projekt, w którym można go zmieścić).

2. Jeśli zdecydujesz się zdekonstruować kabel Ethernet Cat 5 dla przewodów, upewnij się, że mają one rdzeń miedziany i owijaj je starannie wokół jakiegoś PVC, aby były uporządkowane podczas pracy. Ponownie użyłem około 10 stóp drutu na diodę LED. Jeśli chcesz rozproszyć światło daleko i szeroko, użyj dłuższych przewodów!

3. Na koniec wszystkie podane przeze mnie linki są jedynie sugestiami. Przeczytaj całą instrukcję przed zbudowaniem lub zakupem czegokolwiek, aby lepiej zrozumieć, w jaki sposób chcesz osobiście postępować.

Krok 2: Zbuduj obwód

Zbuduj obwód
Zbuduj obwód
Zbuduj obwód
Zbuduj obwód
Zbuduj obwód
Zbuduj obwód

Ten projekt wykorzystuje piny modulacji szerokości impulsu na twoim Arduino. Mikrokontroler ma 6 takich pinów i możesz używać ich tak wielu, jak tylko chcesz. Tor jest dość prosty. Podłącz całą moc z pinów D3, D5, D6, D9, D10 i D11 modulacji szerokości impulsu (PWM) do dodatnich końców diod LED. Podłącz ujemne końce do rezystorów, a następnie do wspólnego uziemienia. (Rezystory mogą być przed lub za diodą LED. Nie ma to znaczenia, chyba że chcesz zabezpieczyć się przed zwarciami przy wyższych prądach.) Dołączyłem kilka schematów, które pomogą w okablowaniu. (Diagramy zostały utworzone przy użyciu oprogramowania Fritzing do projektowania.)

Krok 3: Kodeks

Image
Image

Jeśli jesteś doświadczonym programistą, ten kod jest bardzo uproszczony. Jest to świetny kod do rozpoczęcia nauki, ponieważ wprowadza w korzystanie ze zmiennych, trybów pinów, funkcji, a nawet generatora losowego. Kod nie jest tak zwarty, jak może być, ponieważ jestem pewien, że ten sam efekt można osiągnąć za pomocą tablic itp.

Komentarze do kodu określają logikę każdej sekcji. Cały kod jest tutaj osadzony, a szkic można pobrać poniżej.

/*

Ten skrypt miga 6 diodami LED (oczywiście żółtymi) w losowej kolejności w losowych odstępach czasu za pomocą PWM. Każda dioda LED jest kontrolowana przez swoją własną funkcję. */ wewn. led1 = 3; // Dioda podłączona do pinu 3 PWM itp. Użyłem wszystkich 6 pinów PWM. wewn. dioda2 = 5; wewn. led3 = 6; wewn. led4 = 9; wewn. led5 = 10; wewn. led6 = 11; długi randnum; // randnum kontroluje odstęp czasu między błyskami a długim randbugiem; //randbug kontroluje, który błąd się zapala. void setup() { pinMode(led1, WYJŚCIE); //Ustawienie wszystkich pinów PWM jako wyjść. pinMode(led2, WYJŚCIE); pinMode(led3, WYJŚCIE); pinMode(led4, WYJŚCIE); pinMode(led5, WYJŚCIE); pinMode(led6, WYJŚCIE); } void loop(){ randbug = random(3, 12); //randbug losowo wybiera funkcję do wykonania, //w ten sposób losowo wybiera błąd do zapalenia. if (randbug == 3) { bug1(); } if (randbug == 5) { bug2(); } if (randbug == 6) { bug3(); } if (randbug == 9) { bug4(); } if (randbug == 10) { błąd5(); } if (randbug == 11) { błąd6(); } } /* * Każda z tych funkcji działa w ten sam sposób. 'for loop' zwiększ, a następnie zmniejsz * wyjście tego pinu, aby kontrolować jasność LED. * 'randnum' to losowy przedział czasowy od 10 do 3000 ms * i wybiera przedział czasowy między mignięciami błędu. * 'delay 10' służy tylko do efektu zanikania. */ void bug1(){ randnum = random(10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) { analogWrite(led1, fadeValue); opóźnienie(10); } opóźnienie (losowe); } void bug2() { randnum = random(10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) { analogWrite(led2, fadeValue); opóźnienie(10); } opóźnienie (losowe); } void bug3() { randnum = random(10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) { analogWrite(led3, fadeValue); opóźnienie(10); } opóźnienie (losowe); } void bug4(){ randnum = random(10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) { analogWrite(led4, fadeValue); opóźnienie(10); } opóźnienie (losowe); } void bug5() { randnum = random(10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) { analogWrite(led5, fadeValue); opóźnienie(10); } opóźnienie (losowe); } void bug6() { randnum = random(10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) { analogWrite(led6, fadeValue); opóźnienie(10); } opóźnienie (losowe); }

Krok 4: Zbuduj pudełko

Budowanie tyłków!
Budowanie tyłków!

Gdy już sflashujesz Arduino kodem i sprawisz, że świetliki będą działały tak, jak lubisz, możesz umieścić je w ogrodzie; oznacza to pudełko projektowe i część termokurczliwą, aby utrzymać Arduino i diody LED w stanie suchym. Zróbmy!

Krok 5: Budowanie robactwa

Budowanie bugów!
Budowanie bugów!
Budowanie tyłków!
Budowanie tyłków!
Budowanie tyłków!
Budowanie tyłków!
  • Przytnij diody LED do około 5mm.
  • Zdejmij i ocynuj końce przewodów, których używasz, również około 5mm.
  • Nasunąć 1 mm rurkę termokurczliwą na każdy koniec drutu.
  • Przylutuj diodę LED do drutu. (W tym momencie powinieneś wybrać, który przewód w twojej parze będzie dodatni, a który ujemny. Wybrałem przewód pełny jako dodatni, a biały jako ujemny. Utrzymaj tę strategię przez cały projekt, aby uniknąć późniejszych bólów głowy!)
  • Nasuń koszulkę termokurczliwą do góry na goły przewód i przewody LED. Przeprowadź po nich szybki płomień, aby skurczyć je do przewodów.
  • Nasuń kolejny kawałek termokurczu na diodę LED i przewody z soczewką LED wystającą na końcu i stop ją na miejscu.
  • Nasuń kilka kawałków koszulki termokurczliwej na drut na całej jego długości i roztapiaj co kilka stóp, aby drut był uporządkowany.

Krok 6: Przygotuj skrzynkę projektu

Przygotuj skrzynkę projektu
Przygotuj skrzynkę projektu
Przygotuj skrzynkę projektu
Przygotuj skrzynkę projektu
  • Użyj narzędzia obrotowego z bitem do szlifowania bębna, aby usunąć wszelkie niepotrzebne tworzywa sztuczne w pudełku projektowym. (Uważaj, aby nie odciąć żadnych mocowań śrubowych, które mogą być potrzebne do ponownego złożenia pudełka.)
  • Zdecyduj, gdzie chcesz umieścić swój przełącznik i wyprowadzić przewody LED. Proponuję strony, ale używaj tego, co zawsze działa zgodnie z Twoimi potrzebami.
  • Użyj wiertła o odpowiednim rozmiarze, aby wykonać otwory na dławik kablowy i przełącznik.

Uwaga: na powyższym zdjęciu zobaczysz, że zrobiłem „fikcyjny kabel”. Jest to wiązka 6 par drutu, którego użyłem do diod LED z termokurczliwym połączeniem. Użyłem go, aby upewnić się, że dławik kablowy będzie dobrze pasował do rzeczywistej wiązki kablowej, a także przetestować wodoodporność skrzynki po włączeniu przełącznika, dławika kablowego i pokrywy. (Po 24-godzinnym zanurzeniu w 6-centymetrowej wodzie, w środku było bardzo mało wilgoci. Z przyjemnością nazwałbym to pudełko „odpornym na warunki atmosferyczne”).

Krok 7: Przynieś moc

Przynieś moc!
Przynieś moc!
Przynieś moc!
Przynieś moc!
  • Określ, ile baterii i przewodu przełącznika będziesz potrzebować, aby dotrzeć do Arduino, umieszczając z grubsza wszystkie trzy elementy w pudełku projektu. Przytnij przewody przełącznika i złącze akumulatora 9V. Rozebrać i pocynować końce. Wsuń trochę termokurczu na miejsce do następnego kroku.
  • Odetnij dwa męskie szpilki nagłówka z paska (ale trzymaj je razem).
  • Przylutuj czerwony przewód złącza akumulatora 9V do jednego końca przełącznika. Przylutuj drugi koniec przełącznika do męskiego pinu nagłówka. Przylutuj czarny przewód akumulatora do drugiego męskiego styku złącza.
  • Jak pokazano na powyższym schemacie, styki nagłówka wejdą do płytki stykowej, aby zasilić Nano na VIN (dodatni) i GND (ujemny). Pin VIN może obsługiwać od 7 do 12 woltów. Jeśli planujesz zasilać Arduino w sposób inny niż bateria 9V, użyj innego pinu zasilania.

Krok 8: W razie potrzeby zmodyfikuj Nano

W razie potrzeby zmodyfikuj Nano
W razie potrzeby zmodyfikuj Nano

Ponieważ moje pudełko projektowe było dość płytkie, musiałem usunąć piny nagłówka ICSP, aby pasowały. Te piny są dodatkowym interfejsem z twoim Arduino. Usunięcie ich nie uszkodzi twojego Nano, ponieważ zawsze możesz załadować skrypty przez port USB.

Uwaga: Jeśli Twoje Nano wymagało przylutowania pinów nagłówka, po prostu pomiń te piny podczas montażu Arduino.

Krok 9: Podłącz przewód wewnątrz

Image
Image
Drut wewnątrz
Drut wewnątrz
Drut wewnątrz
Drut wewnątrz
  • Przymocuj port dławika kablowego do skrzynki projektowej w wywierconym dla niego otworze. Jeśli jesteś zdezorientowany, jak używać dławika kablowego, ten film, który znalazłem na YouTube, pokazuje, jak montuje się dławik kablowy. (przewiń do 0:57.) Twoja może mieć gumową podkładkę. Przechodzi między skrzynką projektową a zewnętrzną nakrętką dławika kablowego.
  • Zbierz luźne końce przewodów LED. Poświęć ten czas, aby przyciąć je na równą długość, rozebrać i oblać końce. Przełóż końce przez zaślepkę dławika kablowego i użyj kawałka termokurczliwego, aby związać końce razem, pozostawiając wystarczającą długość, aby dotrzeć do płytki stykowej po wewnętrznej stronie pudełka.
  • Przeprowadź wiązkę przewodów przez port dławika kablowego do skrzynki projektowej i przekręć nasadkę dławika, aby zablokować przewody na miejscu, najlepiej wokół koszulki termokurczliwej, której użyłeś do ich połączenia.
  • Oddziel przewody uziemiające od przewodów dodatnich (pamiętając, które wybrałeś wcześniej). Przylutuj wszystkie przewody uziemiające do jednego wspólnego uziemienia. Dołącz krótki przewód z tej wiązki i zakończ go 1 męską główką. Użyj koszulki termokurczliwej, aby chronić nieosłonięte połączenia lutowane.
  • Przylutuj męskie końcówki na końcach każdego przewodu dodatniego. Ponownie użyj termokurczliwego.
  • Włóż męskie złącza dodatniego końca do płytki stykowej, aby połączyć się z pinami PWM na Arduino.
  • Włóż wspólną masę do płytki stykowej tak, aby przechodziła przez rezystor ograniczający prąd, a następnie do GND na Arduino.
  • Włóż baterię i przełóż przełącznik przez otwór w wywierconym wcześniej pudełku. Załóż gumową podkładkę między skrzynką projektową a nakrętką. Podłącz przewody zasilające do płytki stykowej.
  • Zatrzaśnij lub przykręć pokrywkę do pudełka. Jesteś skończony!

Uwaga: Zauważ, że na schematach iw etapach rozwojowych użyłem jednego rezystora ograniczającego prąd na diodę LED. Zazwyczaj każda dioda LED powinna mieć swój własny rezystor, ponieważ zwykle świeci więcej niż jedna dioda LED na raz. Kod nie pozwala na zapalenie więcej niż jednej diody LED na raz, dlatego użycie tylko jednego rezystora jest w porządku, aby chronić Arduino. Oszczędza to również miejsce na małej płytce stykowej lub czas lutowania każdej diody LED z wbudowanym rezystorem. To powiedziawszy… UWAGA!!! Jeśli planujesz zmienić kod tak, aby jednocześnie świeciła więcej niż jedna dioda LED, będziesz potrzebować oddzielnych rezystorów dla każdej diody LED.

Krok 10: Użyj go

Użyj tego
Użyj tego

Użyj pasków na rzepy lub odrobiny gorącego kleju, aby przymocować diody LED do roślin, płotów, różowych flamingów lub czegokolwiek innego na swoim podwórku. Użyj ich w środku, wkładając je do stojaków na wino, za zasłonami, a nawet podwieszaj przewody pod sufitem, aby uzyskać efekt unoszenia się w 3D w ciemności! Byłby to świetny akcent na imprezy, wesela, film i fotografię.

Krok 11: Idź dalej…

Jak wspomniano wcześniej, jest to wczesna wersja tego projektu, ale jest pełna potencjału! Uruchom więcej diod LED, podłączając rejestr przesuwny (zobacz instrukcję JColvin91, aby dowiedzieć się, jak to zrobić). Dodaj czujnik światła, ładowarkę słoneczną i timer, aby uzyskać funkcję „ustaw i zapomnij”! Zadzieraj z kodem, aby dodać własną flarę do błędów. Podziel się tym, co robisz i ciesz się !!

AKTUALIZACJA: W ciągu ostatnich dwóch tygodni od opublikowania tego Instructable wielu współpracowników zasugerowało genialne ulepszenia kodu, sprzętu i wykonania tego projektu. Gorąco radzę, jeśli planujesz to zbudować, przeczytaj komentarze i odpowiedzi na pomysły, jak zrobić te błyskawice w sposób, którego nie planowałem. W duchu tworzenia open source z zadowoleniem przyjmuję wszystkie pomysły, które pomagają rozwinąć ten projekt w więcej, niż myślałem, że jest to możliwe… i dziękuję wszystkim, którzy to stworzyli.

Udać się. Robić!!!

Zalecana: