Obsah:

Kravata s hviezdnou oblohou: 9 krokov (s obrázkami)
Kravata s hviezdnou oblohou: 9 krokov (s obrázkami)

Video: Kravata s hviezdnou oblohou: 9 krokov (s obrázkami)

Video: Kravata s hviezdnou oblohou: 9 krokov (s obrázkami)
Video: TOP 4 LIDÉ Z BUDOUCNOSTI, KTEŘÍ NÁS PŘIŠLI VAROVAT 2024, November
Anonim
Image
Image
Kravata s hviezdnou oblohou
Kravata s hviezdnou oblohou
Kravata s hviezdnou oblohou
Kravata s hviezdnou oblohou

Pred nejakým časom som v obchode za dolár našiel detskú hračku s optickými vláknami a začal som premýšľať, čo by som s tým mohol urobiť.

Jeden z bláznivých nápadov, ktorý som mal, bolo vyrobiť kravatu s efektom hviezdnej oblohy.

Stále som nechal položiť niekoľko arduino pro mini, dosky adafruit a batérie, ktoré by sa do tohto projektu pravdepodobne hodili.

Akonáhle som teda našiel v záložni v mojom meste peknú širokú kravatu a našiel som krabicu, ktorá by sa zmestila k hardvéru, rozhodol som sa ísť do toho a skúsiť to postaviť.

Tento návod vám ukáže, ako som to urobil.

Beží na arduino pro mini, adafruit powerboost 500 nabíjačke, emmerich icr 18650nh-sp a 5 bielych LED diódach. Kód spôsobuje, že jas LED diódy je náhodný. (Prvých 40 sekúnd videa je 3x rýchlejšie)

Krok 1: Schémy a hardvér

Schémy a hardvér
Schémy a hardvér
Schémy a hardvér
Schémy a hardvér

Používam nasledujúci hardvér:

- DPS s ľadovo bielymi LED diódami a odpormi 220 Ohm.

-Arduino pro mini (použil som knockoff)

-Nabíjačka Adafruit Powerboost 500

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

- Optické vlákna (v rôznych veľkostiach)

Krok 2: Výroba dosky plošných spojov s LED diódami

Výroba dosky plošných spojov s LED diódami
Výroba dosky plošných spojov s LED diódami
Výroba dosky plošných spojov s LED diódami
Výroba dosky plošných spojov s LED diódami
Výroba dosky plošných spojov s LED diódami
Výroba dosky plošných spojov s LED diódami

Odrezal som pásik z dosky plošných spojov, aby držal diódy LED, a pomocou kolíkov diódy LED som ju spájkoval s hlavnou doskou s plošnými spojmi.

Pripojil všetky katódy (-) k GND a pomocou polovice pinov ich spájkoval prilepených k hlavnej doske plošných spojov.

Pripojené všetky anódy (+) k rezistorom a káblami k arduinu.

LED diódy musia byť pripojené k jednému z nasledujúcich portov PWM: 3, 5, 6, 9, 10, 11

Hlúpe, že som s týmto projektom urobil veľa chýb a zabudol som skontrolovať správne porty PWM, takže som o niekoľko neskôr musel prekladať. Testované s High/Low, takže som si to všimol až neskôr.

Začal som so 7 diódami LED, ale bolo tam iba 6 portov PWM a jeden z rozlíšených LED diód zomrel. Ponechal som 5 funkčných LED a 6. nepoužívam.

Krok 3: Výroba škatule

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 som Bosch GRO (ako Dremel) a vŕtačku na vyrezanie tvaru batérie, tlačidla, portu micro-usb, hlavičiek z Arduina a optických vlákien. (používajte protiprachovú masku!)

Prilepila batériu k puzdru pomocou 2 pásiem.

Pomocou skrutiek sa namontovala doska Adafruit a doska plošných spojov.

Trenie pri otváraní a zatváraní poškodilo niektoré drôty. Musel som ich preložiť a použiť lepidlo, aby sa to neopakovalo.

Krok 4: Príprava kravaty

Príprava kravaty
Príprava kravaty
Príprava kravaty
Príprava kravaty
Príprava kravaty
Príprava kravaty

Odstránené stehy zo spodnej časti kravaty, aby zodpovedali gumovému listu.

Aby som skryl hardvér a aby som k nemu mal v prípade potreby prístup, rozhodol som sa použiť zips.

Nie som dobrý v šijacom stroji, takže moja zlatá mama dala na zadnú stranu kravaty zips.

Potom, čo som to urobil, som lepil gumový list do kravaty. Bál som sa použiť príliš veľa lepidla, ktoré by nasýtilo látku a bolo viditeľné spredu, a tak som sa to pokúsil vyrovnať a nepoužívať príliš veľa. Celkovo to vyzerá dobre, ale na niekoľkých miestach som si všimol príliš veľa alebo málo lepidla, pretože to prešlo cez látku alebo látku nelepilo veľmi dobre. Našťastie je to pri jasnom svetle len málo viditeľné z blízkej vzdialenosti.

Krabica a kravata sú teraz hotové. Čas na lepenie optických vlákien!

Krok 5: Lepenie optických vlákien

Lepenie Fiberoptics
Lepenie Fiberoptics
Lepenie Fiberoptics
Lepenie Fiberoptics
Lepenie optických vlákien
Lepenie optických vlákien
Lepenie Fiberoptics
Lepenie Fiberoptics

Hračka mala jeden veľký zväzok optických drôtov, ktoré sa ľahko rozpadli. Najprv som sa ich pokúšal lepiť jeden po druhom, ale čoskoro som si všimol, že bude lepšie vytvoriť malé zväzky a prilepiť ich k dióde LED naraz. To by uľahčilo jeho udržanie v rovnováhe, kým lepidlo nebude suché. Pochopil prvú LED diódu, ktorá na to prišla.

Nezabudnite použiť transparentné lepidlo! Ten, ktorý som použil, sušil veľmi pomaly a rýchloschnúce lepidlo, ktoré som vyskúšal na prvej LED dióde, zbelielo, takže niektoré vlákna z prvej LED boli menej jasné.

Nalepil som malé čierne gumové pláty, aby som zabránil úniku svetla na vrch a oddelil LED diódy.

Jeden z listov zabránil zatvoreniu puzdra, takže som pridal gumičku, aby bol kryt zatvorený.

Krok 6: Prevlečenie Fiberoptics cez kravatu

Prevlečenie Fiberoptics cez kravatu
Prevlečenie Fiberoptics cez kravatu
Prevlečenie Fiberoptik cez kravatu
Prevlečenie Fiberoptik cez kravatu
Prevlečenie Fiberoptik cez kravatu
Prevlečenie Fiberoptik cez kravatu

Začínajúc od spodnej časti som ihlou zovrel otvory a prevliekol vlákna jeden po druhom. Vlákna každej LED sa náhodne šíria po kravate.

Na zadnú stranu som prilepil čierny pásik, ktorý mal ísť až po menšiu časť kravaty, aby držal hmotnosť krabice, ale potom, čo som prevliekol všetky drôty a cítil napätie drôtov, som sa rozhodol lepiť všetko do kravaty bol lepší nápad a prerezal prúžok.

Pretože drôty z optických vlákien z hračky boli také krátke, bolo ťažké ich pripevniť na celú kravatu. Bol som obmedzený v polohovaní boxu a ťažko som robil všetko tak ploché, ako som chcel.

Krok 7: Prilepenie vláknovej optiky na kravatu

Prilepenie vláknovej optiky na kravatu
Prilepenie vláknovej optiky na kravatu
Lepenie vláknitých tkanín na kravatu
Lepenie vláknitých tkanín na kravatu
Lepenie vláknitých tkanín na kravatu
Lepenie vláknitých tkanín na kravatu
Prilepenie vláknovej optiky na kravatu
Prilepenie vláknovej optiky na kravatu

Nalepil som všetky drôty z optických vlákien na gumovú fóliu, aby som zabránil vytiahnutiu drôtov z gumovej fólie a aby bola kravata rovná.

Aby som sa ubezpečil, že som pri tlačení na svorku nelepil svorku na kravatu, vložil som medzi ňu papier. Nevyzerá to tak dobre, ale funguje to dobre. A nevidíte to, keď je zatvorené.

Potom, čo lepidlo zaschlo, som odrezal drôty na prednej strane a trochu odrezal gumový plech tesne nad najvyšším drôtom, pretože viazačka bola trochu dlhá.

Fotografie s bielou košeľou sú urobené predtým, ako som odstrihol posledný kúsok gumy.

Krok 8: Kód

Pod kódom, ktorý som napísal pre kravatu.

Všetky diódy LED majú nastavený „priemer“(v skutočnosti nie je priemer, ale stredný jas).

Hneď ako dosiahne tento priemer, rozhodne sa s šancou 3/4, že prejde na nižší jas. Tiež náhodne nastaví nový minimálny jas, maximálny jas, dobu čakania na minimálny a maximálny jas a rýchlosť, ktorú každé kolo (1-255) zvyšuje alebo znižuje z 5 prednastavených hodnôt. Potom urobí cyklus, kým opäť nedosiahne priemer. Vo vysokom cykle môžu byť súčasne iba 2 LED diódy.

Každý stav je reprezentovaný celočíselnou hodnotou (1-7) určujúcou, či bude priemerný, nízky, stredný, čakajúci nízky, aktualizovaný atď.

Informácie o odoslaní kódu do arduina nájdete na stránke www.arduino.cc

/ * Hviezdna obloha Tie * * Toto je skript na náhodne vyblednutie 5 diód LED z priemerného na nižší * alebo vyšší s náhodným nastavením nižšieho, vyššieho a načasovania * tak, aby vyzeral ako hviezdna obloha pri použití optických vlákien. * V tomto prípade budú implementované nerozhodne. * * Šanca hore/dole = 1/4 hore, 3/4 dole, pričom maximálne 2 * stúpa súčasne na maximum. * * Priemer zostáva rovnaký. * Minimálne, maximálne a časové možnosti sa náhodne menia * z 5 možností zakaždým, keď LED dióda opäť dosiahne priemer. * * Vytvoril Billy Jaspers, máj 2019. *

/ Vyhláste špendlíky

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

// Časové premenné

nepodpísaný dlhý aktuálny čas; nepodpísaný dlhý čakací čas [5]; nepodpísaný dlhý poslednýKruh;

// LED premenné

int brightMin [5] = {10, 10, 10, 10, 10}; // Minimálny jas int brightAvg [5] = {200, 200, 200, 200, 200}; // Priemerný jas int BrightMax [5] = {240, 240, 240, 240, 240}; // Maximálny jas za časWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // čakacia doba int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // čakacia doba int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // prírastok čakacieho času [5] = {2, 5, 4, 5, 2}; // Prírastok jasu int currentBright [5] = {200, 230, 210, 210, 235}; // Aktuálny jas

// Možnosti premenných LED

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minimálne možnosti jasu int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maximálne možnosti jasu za časLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Čas čakania na možnosti nízkeho jasu int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Čas čakania na možnosti vysokého jasu int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Čas čakania na možnosti priemerného jasu v prírastkochPos [5] = {2, 4, 5, 3, 1}; // prírastok v možnostiach jasu

// Premenné

bool startup = true; // Je potrebné spustiť nastavenia spustenia?

// Smerové premenné

/* 0 = priemerné čakanie 1 = prechod priem. Na nízky 2 = čakanie nízky 3 = prechod na nízky priemer 4 = prechod na priemer 5 = čakanie na max. 6 = prechod na vysoký priemer 7 = aktualizácia premenných*/ int statusLED [5] = {0, 0, 0, 0, 0}; int sumaHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // Čaká Led?

// Náhodné premenné

dlhé randomNumber; // Dlhé na uloženie náhodného čísla dlhé randomNumberTwo; // Dlhé na uloženie druhého náhodného čísla

// počítadlá

int i = 0; // Počítadlo pre hlavnú slučku

neplatné nastavenie () {

Serial.begin (115200); // Spustenie sériového randomSeed (analogRead (A0)); // Nastavte randomseed

// Deklarovanie výstupov

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

// Zapisujte údaje do LED diód

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

// Hlavná slučka

void loop () {if (startup) {// Nastavenia pri spustení lastRound = millis (); // Nastavte lastRound pre boot writeToLED (); // Zapisovanie štartovacích dát do LED startup = false; // Vypnutie spustenia} currentTime = millis (); // Nastavenie aktuálneho času

if (currentTime - lastRound> = refreshRate) {

pre (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Aktualizácia Led randomNumber = random (5); brightMin = brightMinPos [randomNumber]; // Nastavenie náhodnej hodnoty pre minimálny jas randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Nastavenie náhodnej hodnoty pre maximálny jas randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Nastavenie náhodnej hodnoty pre nízky čas čakania randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Nastavenie náhodnej hodnoty pre vysokú čakaciu dobu randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Nastaviť náhodnú hodnotu priemerného času čakania randomNumber = random (5); increment = incrementPos [randomNumber]; // Nastaviť náhodnú hodnotu pre prírastkovú hodnotu randomNumber = random (2); // Nastavenie náhodnej hodnoty pre smer randomNumberTwo = random (2); // Nastavte náhodnú hodnotu pre smer if (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Ak je v najnižšom bode: Prejdite na Čakajúci priemer} else {currentBright = currentBright +prírastok ; // Iná: Vyšší jas}} else if (statusLED == 2) {// -2- Waiting Low if (! StatusWaiting ) {// If not waiting: waitingTime = millis (); // Nastaviť stav času čakaniaWaiting = true; // Začnite čakať} else if (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Ak čakanie AND timeWaitAvg uplynulo: statusWaiting = false; // Stav zastavenia čakaniaLED = 3; // Nastav statusLed na Čaká na aktualizáciu}} else if (statusLED == 1) {// -1- Goggg to Low if (currentBright <= brightMin ) {statusLED = 2; // Ak je v najnižšom bode: Choďte na Waiting Low} else {currentBright = currentBright -increment ; // Iná: Nižší jas}} else if (statusLED == 6) {// -6- Maxing to Avg if (currentBright = timeWaitMax ) {// Ak čaká AND timeWaitAvg: statusWaiting = false; // Stav zastavenia čakaniaLED = 6; // Nastav statusLed na Čaká sa na aktualizáciu}} else if (statusLED == 4) {// -4- Goggg to Max if if (currentBright > = BrightMax ) {statusLED = 5; // Ak je v najnižšom bode: Choďte na Waiting High} else {currentBright = currentBright +prírastok ; // Iná: Vyšší jas}} else if (statusLED == 0) {// -0- priemerné čakanie, ak (! StatusWaiting ) {// Ak nečaká: waitTime = millis (); // Nastaviť stav času čakaniaWaiting = true; // Začnite čakať} else if (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Ak čakanie AND timeWaitAvg uplynulo: statusWaiting = false; // Stav zastavenia čakaniaLED = 7; // Nastav statusLed na Čakanie na aktualizáciu}}} i = 0; lastRound = millis (); // Nastaví sa, keď sa skončí posledné kolo. writeToLED (); // Zapisujte všetky údaje do diód LED}}

Krok 9: Konečný produkt

Image
Image
Finálny produkt
Finálny produkt
Finálny produkt
Finálny produkt

Myslím, že to dopadlo dobre. Kravata nie je príliš hrubá, tuhá, dlhá ani ťažká a efekt hviezdy vyzerá úžasne.

Odporúča: