Spisu treści:

Krawat Led Starry Sky: 9 kroków (ze zdjęciami)
Krawat Led Starry Sky: 9 kroków (ze zdjęciami)

Wideo: Krawat Led Starry Sky: 9 kroków (ze zdjęciami)

Wideo: Krawat Led Starry Sky: 9 kroków (ze zdjęciami)
Wideo: BUNT na BOUNTY◀🌎 AUDIOBOOK 🎧 Co tak naprawdę się stało? Kto przeżył? Niezwykła historia 2024, Listopad
Anonim
Image
Image
Gwiaździste Niebo Led Krawat
Gwiaździste Niebo Led Krawat
Gwiaździste Niebo Led Krawat
Gwiaździste Niebo Led Krawat

Jakiś czas temu znalazłem zabawkę dla dzieci ze światłowodami w sklepie za dolara i zacząłem się zastanawiać, co mogę z nią zrobić.

Jednym z szalonych pomysłów, jakie miałem, było zrobienie krawata z efektem rozgwieżdżonego nieba.

Wciąż miałem kilka arduino pro mini, płyt adafruit i baterii, które prawdopodobnie pasowałyby do tego projektu.

Więc jak tylko znalazłem ładny szeroki krawat w lombardzie w moim mieście i znalazłem pudełko, które mogłoby pasować do sprzętu, zdecydowałem się na niego i spróbować go zbudować.

Ta instrukcja pokazuje, jak to zrobiłem.

Działa na arduino pro mini, ładowarce adafruit powerboost 500, emmerich icr 18650nh-sp i 5 białych diodach LED. Kod powoduje, że diody LED zmieniają jasność losowo. (Pierwsze 40 sekund filmu to 3x szybkość)

Krok 1: Schematy i sprzęt

Schematy i sprzęt
Schematy i sprzęt
Schematy i sprzęt
Schematy i sprzęt

Używam następującego sprzętu:

- PCB z białymi diodami LED i rezystorami 220 Ohm.

- Arduino pro mini (użyłem podróbki)

- Ładowarka Adafruit Powerboost 500

- Akumulator litowo-jonowy Emmerich ICR-18650NH-SP

- Włókna światłowodowe (w różnych rozmiarach)

Krok 2: Tworzenie PCB hostującej diody LED

Tworzenie płytki PCB hostującej diody LED
Tworzenie płytki PCB hostującej diody LED
Tworzenie płytki PCB hostującej diody LED
Tworzenie płytki PCB hostującej diody LED
Tworzenie płytki PCB hostującej diody LED
Tworzenie płytki PCB hostującej diody LED

Odciąłem pasek z płytki PCB, aby trzymać diody LED i użyłem pinów LED do przylutowania go do głównej płytki drukowanej.

Podłączyłem wszystkie katody (-) do GND i użyłem połowy pinów do przylutowania go przyklejonego do głównej płytki drukowanej.

Podłączyłem wszystkie anody (+) do rezystorów, a kablami do arduino.

Każda dioda LED musi być podłączona do jednego z następujących portów PWM: 3, 5, 6, 9, 10, 11

Głupio popełniłem wiele błędów przy tym projekcie i zapomniałem sprawdzić poprawne porty PWM, więc musiałem przelutować kilka później. Testowane z High/Low, więc zauważyłem to dopiero później.

Zacząłem od 7 diod LED, ale było tylko 6 portów PWM i jedna z diod, które odlutowałem, zgasła. Po prostu zachowałem 5 działających diod LED i nie używam szóstej.

Krok 3: Tworzenie pudełka

Tworzenie pudełka
Tworzenie pudełka
Tworzenie pudełka
Tworzenie pudełka
Tworzenie pudełka
Tworzenie pudełka
Tworzenie pudełka
Tworzenie pudełka

Użyłem Bosch GRO (jak Dremel) i wiertarki do wycięcia kształtu baterii, przycisku, portu micro-usb, nagłówków z Arduino i światłowodów. (użyj maski przeciwpyłowej!)

Przykleiłem baterię do obudowy za pomocą 2 opasek.

Używane śruby do montażu płytki Adafruit i PCB.

Tarcie przy otwieraniu i zamykaniu uszkodziło niektóre przewody. Musiałem je odsprzedać i użyć kleju, aby to się nie powtórzyło.

Krok 4: Przygotowanie krawata

Przygotowanie krawata
Przygotowanie krawata
Przygotowanie krawata
Przygotowanie krawata
Przygotowanie krawata
Przygotowanie krawata

Usunięto szwy z dolnej części krawata, aby pasowały do gumowego arkusza.

Aby ukryć sprzęt i nadal mieć do niego dostęp w razie potrzeby, zdecydowałem się użyć zamka błyskawicznego.

Nie radzę sobie z maszyną do szycia, więc moja słodka mama założyła zamek błyskawiczny z tyłu krawata.

Po wykonaniu tej czynności wkleiłem gumowy arkusz w krawat. Bałem się używać zbyt dużej ilości kleju, który nasyci tkaninę i będzie widoczny z przodu, więc starałem się go wyrównać i nie używać za dużo. Ogólnie wygląda dobrze, ale w kilku miejscach zauważyłem za dużo lub za mało kleju, ponieważ przenikał przez tkaninę lub nie kleił zbyt dobrze. Na szczęście jest to ledwo widoczne z bliskiej odległości w jasnym świetle.

Pudełko i krawat są gotowe. Czas na sklejenie światłowodów!

Krok 5: Klejenie światłowodów

Klejenie światłowodów
Klejenie światłowodów
Klejenie światłowodów
Klejenie światłowodów
Klejenie światłowodów
Klejenie światłowodów
Klejenie światłowodów
Klejenie światłowodów

Zabawka miała jedną dużą wiązkę przewodów światłowodowych, które łatwo się rozpadały. Na początku próbowałem sklejać je jeden po drugim, ale wkrótce zauważyłem, że lepiej byłoby zrobić małe wiązki i przykleić je od razu do diody LED. Ułatwiłoby to utrzymanie go w stałym stanie, dopóki klej nie wyschnie. Zepsułem pierwszą diodę LED, która to rozgryzła.

Pamiętaj, aby użyć przezroczystego kleju! Ten, którego użyłem, wysychał bardzo powoli, a szybkoschnący klej, który wypróbowałem na pierwszej diodzie LED, zmienił kolor na biały, przez co niektóre włókna z pierwszej diody LED były mniej jasne.

Przykleiłem małe czarne gumowe arkusze, aby zapobiec przeciekaniu światła na górze i oddzielić diody LED.

Jeden z arkuszy uniemożliwiał zamknięcie etui, więc dodałem gumkę, aby zamknąć pokrywę.

Krok 6: Przepuszczanie światłowodów przez krawat

Przeprowadzanie światłowodów przez krawat
Przeprowadzanie światłowodów przez krawat
Przeprowadzanie światłowodów przez krawat
Przeprowadzanie światłowodów przez krawat
Przeprowadzanie światłowodów przez krawat
Przeprowadzanie światłowodów przez krawat

Zaczynając od dołu, zacisnąłem igłą otwory i kolejno przepuszczałem włókna. Włókna każdej diody LED rozchodzą się losowo na krawacie.

Z tyłu przykleiłem czarny pasek, który miał sięgać do mniejszej części krawata, aby utrzymać wagę pudełka, ale po przełożeniu wszystkich przewodów i wyczuciu napięcia przewodów postanowiłem skleić wszystko do krawata było lepszym pomysłem i odciąć pasek.

Ponieważ przewody światłowodowe z zabawki były tak krótkie, trudno było je dopasować do krawata. Miałem ograniczone możliwości ustawienia pudełka i trudno było mi zrobić wszystko tak płasko, jak chciałem.

Krok 7: Przyklejanie światłowodów do krawata

Klejenie światłowodów do krawata
Klejenie światłowodów do krawata
Klejenie światłowodów do krawata
Klejenie światłowodów do krawata
Klejenie światłowodów do krawata
Klejenie światłowodów do krawata
Klejenie światłowodów do krawata
Klejenie światłowodów do krawata

Przykleiłem wszystkie przewody światłowodowe do arkusza gumy, aby zapobiec wyciąganiu przewodów z arkusza gumy i spłaszczyć krawat.

Aby upewnić się, że nie przykleiłem zacisku do krawata, gdy naciskałem na niego, włożyłem trochę papieru pomiędzy. Nie wygląda to dobrze, ale działa dobrze. I nie widzisz go, gdy jest zamknięty.

Po wyschnięciu kleju odciąłem druciki z przodu i odciąłem nieco gumkę tuż nad najwyższym drucikiem, bo krawat był trochę za długi.

Zdjęcia z białą koszulą zostały zrobione przed odcięciem ostatniego kawałka gumy.

Krok 8: Kodeks

Poniżej kod, który napisałem do krawata.

Wszystkie diody LED mają ustawioną "średnią" (w rzeczywistości nie średnią, ale średnią jasność).

Gdy tylko osiągnie tę średnią, zdecyduje się z szansą 3/4 przejść na niższą jasność. Ponadto losowo ustawia nową minimalną jasność, maksymalną jasność, czas oczekiwania na minimalną i maksymalną jasność oraz prędkość, którą zwiększa lub zmniejsza co rundę (1-255) z 5 wstępnie ustawionych wartości. Następnie wykona cykl, aż ponownie osiągnie średnią. Tylko 2 diody LED mogą jednocześnie pracować w wysokim cyklu.

Każdy stan jest reprezentowany przez wartość całkowitą (1-7) określającą, czy stan jest średnio niski, niski, czeka na niski stan, aktualizuje się itp.

Aby uzyskać informacje o wgrywaniu kodu do arduino, zajrzyj na www.arduino.cc

/* Starry Sky Tie * * Jest to skrypt do losowego zanikania 5 diod LED od średniej do niższej * lub wyższej jasności z losowymi ustawieniami niższej, wyższej i czasowej * tak, aby wyglądały jak gwiaździste niebo przy użyciu światłowodów. * W tym przypadku zostaną one zrealizowane w remisie. * * Szansa w górę/w dół = 1/4 w górę, 3/4 w dół, przy czym maksymalnie 2 * wzrasta do maksimum w tym samym czasie. * * Średnia pozostaje taka sama. * Minimum, maksimum i opcje czasowe zmieniają się losowo * z 5 opcji za każdym razem, gdy dioda LED ponownie osiągnie średnią. * * Stworzony przez Billy'ego Jaspersa, maj 2019. *

/ Zadeklaruj szpilki

wewn. LED01 = 3; wewn. LED02 = 5; wewn. LED03 = 6; wewn. LED04 = 9; wewn. LED05 = 11;

// Zmienne czasu

unsigned long currentTime; niepodpisany długi czas oczekiwania[5]; niepodpisany długi ostatniOkrąg;

// Zmienne LED

int jasnośćMin [5] = { 10, 10, 10, 10, 10 }; // Minimalna jasność int brightAvg [5] = { 200, 200, 200, 200, 200 }; // Średnia jasność int brightMax[5] = { 240, 240, 240, 240, 240 }; // Maksymalna jasność int timeWaitLow[5] = { 1000, 1000, 1000, 1000, 1000 }; // Czas oczekiwania int timeWaitAvg[5] = { 5000, 5000, 5000, 5000, 5000 }; // Czas oczekiwania int timeWaitMax[5] = { 4000, 3000, 3000, 3000, 3000 }; // Czas oczekiwania int increment[5] = { 2, 5, 4, 5, 2 }; // Przyrost jasności int currentBright[5]= { 200, 230, 210, 210, 235 }; // Aktualna jasność

// Możliwości zmiennych LED

int jasnaMinPoz[5] = { 5, 20, 40, 5, 20 }; // Minimalne możliwości jasności int brightMaxPos[5] = { 240, 245, 230, 225, 245 }; // Maksymalne możliwości jasności int timeLowPos[5] = { 3000, 5000, 4000, 2000, 1000 }; // Czas oczekiwania na możliwości niskiej jasności int timeHighPos[5] = { 3000, 1000, 500, 2000, 4000 }; // Czas oczekiwania przy możliwościach wysokiej jasności int timeAvgPos[5] = { 3000, 5000, 4000, 7000, 8000 }; // Czas oczekiwania na średnie możliwości jasności int incrementPos[5] = { 2, 4, 5, 3, 1 }; // zwiększenie możliwości jasności

// Zmienne

bool start = prawda; // Czy trzeba uruchomić ustawienia początkowe?

// Zmienne kierunkowe

/* 0 = Oczekiwanie na średnią 1 = oczekiwanie od średniej do niskiej 2 = oczekiwanie na niski 3 = od niskiej do średniej 4 = od średniej do maksymalnej 5 = oczekiwanie na maksimum 6 = od wysokiej do średniej 7 = Aktualizuję zmienne*/ int statusLED[5] = { 0, 0, 0, 0, 0}; int ilośćHighLED = 0; int częstotliwość odświeżania = 50; bool statusOczekiwanie[5] = { fałsz, fałsz, fałsz, fałsz, fałsz}; // Czy Led czeka?

// Zmienne losowe

długa liczba losowa; // Long do przechowywania liczby losowej long randomNumberTwo; // Long, aby zapisać drugą losową liczbę

// liczniki

int i = 0; // Licznik pętli głównej

pusta konfiguracja () {

Serial.początek (115200); // Uruchom serial randomSeed(analogRead(A0)); // Ustaw randomseed

// Zadeklaruj wyjścia

pinMode (LED01, WYJŚCIE); pinMode (LED02, WYJŚCIE); pinMode (LED03, WYJŚCIE); pinMode (LED04, WYJŚCIE); pinMode (LED05, WYJŚCIE); }

// Zapisz dane do diod LED

void writeToLED(){ analogWrite(LED01, currentBright[0]); analogWrite(LED02, currentBright[1]); zapis analogowy(LED03, prądJasny[2]); analogWrite(LED04, currentBright[3]); analogWrite(LED05, currentBright[4]); }

// Główna pętla

void loop() { if (startup){ // Ustawienia startowe lastRound = millis(); // Ustaw lastRound dla boot writeToLED(); // Zapisz dane startowe do diody LED startup = false; // Wyłącz uruchamianie } currentTime = millis(); // Ustaw aktualny czas

if (currentTime - lastRound >= częstotliwość odświeżania){

for (i=0;i<5;i++){ if (statusLED == 7){ // -7- Led aktualizacji randomNumber = random(5); jasnaMin = jasnaMinPos[liczba losowa]; // Ustaw losową wartość minimalnej jasności randomNumber = random(5); brightMax = brightMaxPos[losowaLiczba]; // Ustaw losową wartość maksymalnej jasności randomNumber = random(5); NiskiCzasOczekiwania = NiskiPozycjaCzasu[Liczba Losowa]; // Ustaw losową wartość dla krótkiego czasu oczekiwania randomNumber = random(5); czasOczekiwaniaMax = czasWysPos[losowaLiczba]; // Ustaw losową wartość długiego czasu oczekiwania randomNumber = random(5); ŚrCzasOczekiwania =ŚrPozycjaCzasu[Liczba Losowa]; // Ustaw losową wartość średniego czasu oczekiwania randomNumber = random(5); przyrost = przyrostPozycja[Liczbalosowa]; // Ustaw losową wartość dla wartości przyrostu randomNumber = random(2); // Ustaw losową wartość dla kierunku randomNumberTwo = random(2); // Ustaw losową wartość dla kierunku if (randomNumber == 1 && randomNumberTwo == 0 && ilośćHighLED = brightAvg){ statusLED = 0; // Jeśli w najniższym punkcie: Przejdź do Średnia oczekiwania }else{ currentBright = currentBright+increment; // Else: Większa jasność } }else if (statusLED == 2){ // -2- Waiting Low if (!statusWaiting){ // Jeśli nie czekasz: waitTime = millis(); // Ustaw czas oczekiwania statusWaiting = true; // Rozpocznij czekanie }else if(statusOczekiwanie && aktualnyCzasCzasOczekiwania >= timeWaitLow){ // Jeśli minęło ORAZ timeWaitAvg: statusWaiting = false; // Przestań czekać statusLED = 3; // Ustaw statusLed na Oczekiwanie na aktualizację } }else if (statusLED == 1){ // -1- Średnio na niski if (currentBright <= brightMin){ statusLED = 2; // Jeśli w najniższym punkcie: Przejdź do Oczekiwanie Nisko }else{ currentBright = currentBright-increment; // W przeciwnym razie: Zmniejsz jasność } }else if (statusLED == 6){ // -6- Przejście z wartości maksymalnej do średniej if (currentBright = timeWaitMax){ // Jeśli upłynęło oczekiwanie AND timeWaitAvg: statusOczekiwanie = fałsz; // Przestań czekać statusLED = 6; // Ustaw statusLed na Oczekiwanie na aktualizację } }else if (statusLED == 4){ // -4- Średnia do maksymalnej if (currentBright >= brightMax){ statusLED = 5; // Jeśli w najniższym punkcie: Przejdź do Oczekiwania wysoko }else{ currentBright = currentBright+increment; // Else: wyższa jasność } }else if (statusLED == 0){ // -0- Oczekiwanie na średnią if (!statusWaiting){ // Jeśli nie czekasz: waitTime = millis(); // Ustaw czas oczekiwania statusWaiting = true; // Rozpocznij oczekiwanie }else if(statusOczekiwanie && aktualnyCzasCzasOczekiwania >= czasOczekiwania){ // Jeśli oczekiwanie ORAZ czasOczekiwania minęło: statusOczekiwanie = false; // Przestań czekać statusLED = 7; // Ustaw statusLed na Oczekiwanie na aktualizację } } } i=0; ostatnia runda = mili(); // Ustaw, kiedy zakończy się ostatnia runda. writeToLED(); // Zapisz wszystkie dane do diod LED } }

Krok 9: Produkt końcowy

Image
Image
Produkt finalny
Produkt finalny
Produkt finalny
Produkt finalny

Myślę, że wyszło dobrze. Krawat nie jest zbyt gruby, sztywny, długi ani ciężki, a efekt gwiazdy wygląda niesamowicie.

Zalecana: