Obsah:

Hvězdná obloha Led Tie: 9 kroků (s obrázky)
Hvězdná obloha Led Tie: 9 kroků (s obrázky)

Video: Hvězdná obloha Led Tie: 9 kroků (s obrázky)

Video: Hvězdná obloha Led Tie: 9 kroků (s obrázky)
Video: Say NO to WAR! ❌ Share this video to everyone you can! 🙏 2024, Listopad
Anonim
Image
Image
Hvězdná obloha Led Tie
Hvězdná obloha Led Tie
Hvězdná obloha Led Tie
Hvězdná obloha Led Tie

Před nějakou dobou jsem v obchodě za dolar našel dětskou hračku s vláknovou optikou a začal přemýšlet, co bych s tím mohl dělat.

Jeden z bláznivých nápadů, které jsem měl, bylo udělat kravatu s efektem hvězdné oblohy.

Pořád jsem měl nějaké arduino pro mini, desky adafruit a baterie, které by se pravděpodobně hodily k tomuto projektu.

Takže jakmile jsem v zastavárně ve svém městě našel pěknou širokou kravatu a našel jsem krabici, která by se hodila k hardwaru, rozhodl jsem se jít do toho a zkusit to postavit.

Tento návod ukazuje, jak jsem to udělal.

Běží na arduino pro mini, adafruit powerboost 500 nabíječce, emmerich icr 18650nh-sp a 5 bílých LED. Kód způsobí, že se jas LED změní náhodně. (Prvních 40 sekund videa je 3x rychlejší)

Krok 1: Schémata a hardware

Schémata a hardware
Schémata a hardware
Schémata a hardware
Schémata a hardware

Používám následující hardware:

- DPS s ledově bílými LED diodami a rezistory 220 Ohm.

-Arduino pro mini (použil jsem knockoff)

-Nabíječka Adafruit Powerboost 500

-Emmerich Li-ion akumulátor ICR-18650NH-SP

- Optická vlákna (v různých velikostech)

Krok 2: Výroba DPS hostování LED diod

Výroba DPS Hosting LED diod
Výroba DPS Hosting LED diod
Výroba DPS Hostování LED diod
Výroba DPS Hostování LED diod
Výroba DPS Hostování LED diod
Výroba DPS Hostování LED diod

Odřízl jsem pásek z desky plošných spojů, aby držel LED diody, a pomocí kolíků LED ji připájel k hlavní desce plošných spojů.

Připojte všechny katody (-) k GND a polovinu kolíků pájíte na hlavní desku plošných spojů.

Připojte všechny anody (+) k rezistorům a kabely k arduinu.

LED diody musí být připojeny k jednomu z následujících portů PWM: 3, 5, 6, 9, 10, 11

Hloupé, že jsem s tímto projektem udělal spoustu chyb a zapomněl jsem zkontrolovat správné porty PWM, takže jsem musel o několik později vyřešit. Testováno s High/Low, takže jsem si toho všiml až později.

Začal jsem se 7 LED, ale bylo tam jen 6 portů PWM a jeden z LED diod, které jsem překódoval, zemřel. Nechal jsem 5 fungujících LED a 6. nepoužívám.

Krok 3: Výroba krabice

Výroba krabice
Výroba krabice
Výroba krabice
Výroba krabice
Výroba krabice
Výroba krabice
Výroba krabice
Výroba krabice

Použil jsem Bosch GRO (jako Dremel) a vrtačku, abych vyřízl tvar baterie, tlačítka, portu micro-usb, záhlaví z Arduina a optických vláken. (použijte protiprachovou masku!)

Přilepila baterii k pouzdru pomocí 2 pásem.

Pomocí šroubů namontujte desku Adafruit a desku plošných spojů.

Tření při otevírání a zavírání poškodilo některé dráty. Musel jsem je přeložit a použít lepidlo, aby se to neopakovalo.

Krok 4: Příprava kravaty

Příprava kravaty
Příprava kravaty
Příprava kravaty
Příprava kravaty
Příprava kravaty
Příprava kravaty

Odstraněno prošití ze spodní části kravaty, aby odpovídalo gumovému listu.

Abych skryl hardware a měl k němu v případě potřeby přístup, rozhodl jsem se použít zip.

Se šicím strojem si moc nevím rady, a tak moje sladká máma dala na zadní část kravaty zip.

Poté, co to bylo hotové, jsem lepil gumovou fólii do kravaty. Bál jsem se použít příliš mnoho lepidla, které by nasytilo látku a bylo vidět zepředu, a tak jsem se to pokusil vyrovnat a nepoužívat příliš mnoho. Celkově to vypadá dobře, ale na několika místech jsem zaznamenal příliš mnoho nebo příliš málo lepidla, protože to prošlo skrz látku nebo látku nelepilo příliš dobře. Naštěstí je to při jasném světle jen stěží viditelné z blízké vzdálenosti.

Krabice a kravata jsou nyní hotové. Čas na lepení optických vláken!

Krok 5: Lepení Fiberoptics

Lepení Fiberoptics
Lepení Fiberoptics
Lepení Fiberoptics
Lepení Fiberoptics
Lepení Fiberoptics
Lepení Fiberoptics
Lepení Fiberoptics
Lepení Fiberoptics

Hračka měla jeden velký svazek vláken z optických vláken, které se snadno rozpadly. Zkoušel jsem je nejprve slepit jeden po druhém, ale brzy jsem si všiml, že bude lepší vyrobit malé svazky a přilepit je k LED diodám najednou. To by usnadnilo jeho udržení v rovnováze, dokud lepidlo nezaschne. Zkazil to první LED, který na to přišel.

Určitě použijte průhledné lepidlo! Ten, který jsem použil, schnul velmi pomalu a rychle schnoucí lepidlo, které jsem zkoušel na první LED, zbělelo, takže některá vlákna z první LED byla méně jasná.

Nalepil jsem malé černé gumové listy, abych zabránil úniku světla nahoře a oddělil LED diody.

Jeden z listů zabránil zavření pouzdra, takže jsem přidal gumičku, aby byl kryt zavřený.

Krok 6: Provlečení vláknové optiky kravatou

Provádění vláknové optiky kravatou
Provádění vláknové optiky kravatou
Provádění vláknové optiky kravatou
Provádění vláknové optiky kravatou
Provádění vláknové optiky kravatou
Provádění vláknové optiky kravatou

Začínaje na dně jsem jehlou sevřel otvory a provlékl vlákna jeden po druhém. Vlákna každé LED se náhodně šíří po kravatě.

Na zadní stranu jsem nalepil černý proužek, který měl jít až k menší části kravaty, aby udržel váhu krabice, ale poté, co jsem prostrčil všechny dráty a cítil napětí drátů, rozhodl jsem se přilepit všechno do kravaty byl lepší nápad a odřízl proužek.

Vzhledem k tomu, že dráty z optických vláken z hračky byly tak krátké, bylo těžké je nasadit po celé kravatě. Měl jsem omezené umístění boxu a těžko jsem dělal všechno tak ploché, jak jsem chtěl.

Krok 7: Přilepení vláknitých vláken na kravatu

Lepení Fiberoptics na kravatu
Lepení Fiberoptics na kravatu
Lepení Fiberoptics na kravatu
Lepení Fiberoptics na kravatu
Lepení Fiberoptics na kravatu
Lepení Fiberoptics na kravatu
Lepení Fiberoptics na kravatu
Lepení Fiberoptics na kravatu

Všechny gumové optické dráty jsem nalepil na gumovou fólii, aby se dráty nevytáhly z gumové fólie a aby se kravata rovnala.

Abych se ujistil, že jsem při zatlačení nepřilepil svorku na kravatu, vložil jsem mezi ně nějaký papír. Nevypadá to tak skvěle, ale funguje to dobře. A když je zavřený, nevidíte to.

Poté, co lepidlo zaschlo, jsem odřízl dráty na přední straně a kousek odřízl gumový list těsně nad nejvyšším drátem, protože kravata byla příliš dlouhá.

Fotografie s bílou košilí jsou vyrobeny předtím, než jsem odstřihl poslední kousek gumy.

Krok 8: Kód

Pod kódem, který jsem napsal pro kravatu.

Všechny LED diody mají nastavený „průměr“(ve skutečnosti ne průměr, ale střední jas).

Jakmile dosáhne tohoto průměru, rozhodne se s šancí 3/4 přejít na nižší jas. Náhodně také nastavuje nový minimální jas, maximální jas, čekací dobu na minimální a maximální jas a rychlost, kterou zvyšuje nebo snižuje každé kolo (1-255) z 5 přednastavených hodnot. Poté provede cyklus, dokud opět nedosáhne průměru. Ve vysokém cyklu mohou být současně pouze 2 LED diody.

Každý stav je reprezentován celočíselnou hodnotou (1-7) určující, zda se bude pohybovat průměrně nízko, nízko avg, čeká nízko, aktualizuje atd.

Informace o nahrávání kódu do arduina najdete na www.arduino.cc

/ * Hvězdná obloha Tie * * Toto je skript k náhodnému vyblednutí 5 diod LED z průměrného na nižší * nebo vyšší jas s náhodným nastavením nižšího, vyššího a načasování *, aby vypadal jako hvězdná obloha při použití s vláknovou optikou. * V tomto případě budou implementovány nerozhodně. * * Šance nahoru/dolů = 1/4 nahoru, 3/4 dolů, přičemž maximálně 2 * se současně zvýší na maximum. * * Průměr zůstává stejný. * Minimum, maximum a možnosti časování se náhodně mění * z 5 možností pokaždé, když LED dioda opět dosáhne průměru. * * Vytvořil Billy Jaspers, květen 2019. *

/ Deklarujte piny

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

// Časové proměnné

bez znaménka dlouhý aktuální čas; nepodepsané dlouhé čekáníTime [5]; bez znaménka dlouhý lastRound;

// Proměnné LED

int brightMin [5] = {10, 10, 10, 10, 10}; // Minimální jas int brightAvg [5] = {200, 200, 200, 200, 200}; // Průměrný jas int BrightMax [5] = {240, 240, 240, 240, 240}; // Maximální jas int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Čekací doba int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // čekací doba int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // doba čekání int přírůstek [5] = {2, 5, 4, 5, 2}; // Přírůstek jasu int currentBright [5] = {200, 230, 210, 210, 235}; // Aktuální jas

// Možnosti proměnných LED

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minimální možnosti jasu int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maximální možnosti jasu int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Čekací doba na možnostech nízkého jasu int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Doba čekání na možnosti vysokého jasu int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Čekací doba na možnosti průměrného jasu int incrementPos [5] = {2, 4, 5, 3, 1}; // přírůstek možností jasu

// Proměnné

bool startup = true; // Je nutné spustit nastavení spuštění?

// Směrové proměnné

/* 0 = průměrné čekání 1 = přechod průměrně na nejnižší 2 = čekání nízké 3 = přechod na nejnižší průměr 4 = přechod průměrného na maximální 5 = čekání na maximální 6 = přechod na vysoký průměr 7 = aktualizace proměnných*/ int statusLED [5] = {0, 0, 0, 0, 0}; int částkaHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // Led čeká?

// Náhodné proměnné

dlouhé randomNumber; // Dlouhé uložení náhodného čísla dlouhé randomNumberTwo; // Dlouhé pro uložení druhého náhodného čísla

// čítače

int i = 0; // Počitadlo pro hlavní smyčku

neplatné nastavení () {

Serial.begin (115200); // Spuštění sériového randomSeed (analogRead (A0)); // Nastavit randomseed

// Deklarace výstupů

pinMode (LED01, VÝSTUP); pinMode (LED02, VÝSTUP); pinMode (LED03, VÝSTUP); pinMode (LED04, VÝSTUP); pinMode (LED05, VÝSTUP); }

// Zapisujte data do LED

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

// Hlavní smyčka

void loop () {if (startup) {// Nastavení spuštění lastRound = millis (); // Nastavit lastRound pro boot writeToLED (); // Zapište startovací data do LED startup = false; // Vypnout spouštění} currentTime = millis (); // Nastavit aktuální čas

if (currentTime - lastRound> = refreshRate) {

pro (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Aktualizace Led randomNumber = random (5); brightMin = brightMinPos [randomNumber]; // Nastavit náhodnou hodnotu pro minimální jas randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Nastavit náhodnou hodnotu pro maximální jas randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Nastavit náhodnou hodnotu pro nízkou čekací dobu randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Nastavit náhodnou hodnotu pro vysokou čekací dobu randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Nastavit náhodnou hodnotu pro průměrnou čekací dobu randomNumber = random (5); increment = incrementPos [randomNumber]; // Nastavit náhodnou hodnotu pro přírůstkovou hodnotu randomNumber = random (2); // Nastavit náhodnou hodnotu pro směr randomNumberTwo = random (2); // Nastavte náhodnou hodnotu pro směr if (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Pokud je v nejnižším bodě: Přejít na Čekající průměr} else {currentBright = currentBright +přírůstek ; // Jinak: Vyšší jas}} else if (statusLED == 2) {// -2- Waiting Low if (! StatusWaiting ) {// If not expect: waitingTime = millis (); // Nastavit stav čekací dobyWaiting = true; // Začněte čekat} else if (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Pokud čekání AND timeWaitAvg uplynulo: statusWaiting = false; // Zastavit čekání statusLED = 3; // Nastavit statusLed na Čekání na aktualizaci}} else if (statusLED == 1) {// -1- Goggg to Low if (currentBright <= brightMin ) {statusLED = 2; // Pokud je v nejnižším bodě: Přejít na Waiting Low} else {currentBright = currentBright -increment ; // Jinak: Nižší jas}} else if (statusLED == 6) {// -6- Maxing to Avg if (currentBright = timeWaitMax ) {// Pokud čeká AND timeWaitAvg: statusWaiting = false; // Zastavit čekáníLED = 6; // Nastavit statusLed na Čekání na aktualizaci}} else if (statusLED == 4) {// -4- Goggg to Max if (currentBright > = brightMax ) {statusLED = 5; // Pokud je v nejnižším bodě: Přejít na Čekající vysoká} else {currentBright = currentBright +přírůstek ; // Jinak: Vyšší jas}} else if (statusLED == 0) {// -0- průměrné čekání if (! StatusWaiting ) {// Pokud nečeká: waitTime = millis (); // Nastavit stav čekací dobyWaiting = true; // Začněte čekat} else if (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Pokud čekání AND timeWaitAvg uplynulo: statusWaiting = false; // Zastavit čekáníLED = 7; // Nastavit statusLed na Čekání na aktualizaci}}} i = 0; lastRound = millis (); // Nastaví se po dokončení posledního kola. writeToLED (); // Zapište všechna data do LED}}

Krok 9: Konečný produkt

Image
Image
Finální produkt
Finální produkt
Finální produkt
Finální produkt

Myslím, že to dobře dopadlo. Kravata není příliš tlustá, tuhá, dlouhá ani těžká a hvězdný efekt vypadá úžasně.

Doporučuje: