Sadržaj:
- Korak 1: Sheme i hardver
- Korak 2: Izrada PCB -a za postavljanje LED dioda
- Korak 3: Izrada kutije
- Korak 4: Priprema kravate
- Korak 5: Lijepljenje vlaknastih vlakana
- Korak 6: Provlačenje vlakana kroz kravatu
- Korak 7: Lijepljenje vlakana na kravatu
- Korak 8: Kôd
- Korak 9: Završni proizvod
Video: Zvjezdana nebeska kravata: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Prije nekog vremena pronašao sam dječju igračku s fiberopticima u trgovini za dolar i počeo razmišljati što bih mogao učiniti s njom.
Jedna od ludih ideja koju sam imao, bila je kravata s efektom zvjezdanog neba.
Još sam imao postavljenih arduino pro mini, adafruit ploča i baterija koje bi vjerojatno odgovarale ovom projektu.
Čim sam u zalagaonici u svom gradu našao lijepu široku kravatu i našao kutiju koja bi mogla odgovarati hardveru, odlučio sam otići i pokušati je izgraditi.
Ova instrukcija vam pokazuje kako sam to napravio.
Radi na arduino pro mini, adafruit powerboost 500 punjaču, emmerich icr 18650nh-sp i 5 bijelih LED dioda. Kod čini promjenu svjetline LED diode nasumičnom. (Prvih 40 sekundi videozapisa su 3x brzine)
Korak 1: Sheme i hardver
Koristim sljedeći hardver:
- PCB s ledeno bijelim LED diodama i otpornicima od 220 ohma.
-Arduino pro mini (koristio sam knockoff)
-Adafruit Powerboost 500 punjač
-Emmerich Li-ion accu ICR-18650NH-SP
- Optička vlakna (u različitim veličinama)
Korak 2: Izrada PCB -a za postavljanje LED dioda
Odrezao sam traku s PCB -a kako bih držao LED diode i upotrijebio LED pinove za lemljenje na glavnu PCB.
Spojio je sve katode (-) na GND, a polovicu pinova za lemljenje zalijepio na glavnu PCB.
Spojite sve anode (+) na otpornike, a kabelima na arduino.
Svaka LED dioda mora biti spojena na jedan od sljedećih PWM portova: 3, 5, 6, 9, 10, 11
Gluposti sam napravio mnogo pogrešaka s ovim projektom i zaboravio sam provjeriti ispravne PWM portove, pa sam ih kasnije morao ponovno spakirati. Testirano s High/Low pa sam to primijetio tek kasnije.
Počeo sam sa 7 LED dioda, ali bilo je samo 6 PWM priključaka i jedna od LED dioda koje sam ponovno lemio je umrla. Upravo sam zadržao 5 radnih LED dioda, a ne koristim 6.
Korak 3: Izrada kutije
Koristio sam Bosch GRO (poput Dremela) i bušilicu za izrezivanje oblika baterije, gumba, priključka za mikro-USB, zaglavlja s Arduina i optičkih vlakana. (koristite masku za prašinu!)
Zalijepili bateriju na kućište s 2 trake.
Korišteni vijci za montažu ploče Adafruit i PCB -a.
Trenje zbog otvaranja i zatvaranja oštetilo je neke žice. Morao sam ih ponovno lemiti i koristiti ljepilo da se to ne ponovi.
Korak 4: Priprema kravate
Uklonjeni su šavovi s donjeg dijela kravate kako bi odgovarali gumenom listu.
Da bih sakrio hardver i ipak mu mogao pristupiti ako je potrebno, odlučio sam upotrijebiti zatvarač.
Nisam dobar sa šivaćim strojem, pa je moja draga mama stavila patentni zatvarač na stražnju stranu kravate.
Nakon što sam to učinio, zalijepio sam gumeni lim za kravatu. Bojao sam se koristiti previše ljepila koje će zasititi tkaninu i biti vidljivo s prednje strane, pa sam ga pokušao izravnati i ne koristiti previše. Sveukupno izgleda dobro, ali na nekoliko mjesta primijetio sam previše ili premalo ljepila jer je prošao kroz tkaninu ili nije dobro zalijepio tkaninu. Srećom, ovo je jedva vidljivo iz blizine pri jakom svjetlu.
Kutija i kravata su sada gotovi. Vrijeme je za lijepljenje fiberoptika!
Korak 5: Lijepljenje vlaknastih vlakana
Igračka je imala jedan veliki snop optičkih žica koje su se lako raspadale. Prvo sam ih pokušao zalijepiti jedan po jedan, no ubrzo sam primijetio da bi bilo bolje napraviti male snopove i zalijepiti ih na LED odjednom. Tako bi bilo lakše održavati ga stabilnim dok se ljepilo ne osuši. Pogrešio je prvi LED koji je to shvatio.
Obavezno upotrijebite prozirno ljepilo! Ono koje sam koristio sušilo se vrlo sporo, a ljepilo za brzo sušenje koje sam isprobao na prvoj LED postalo je bijelo, pa su neka vlakna iz prve LED diode postala manje svijetla.
Zalijepila sam male crne gumene limove kako bih spriječila curenje svjetla s vrha i odvojila LED diode.
Jedan od listova spriječio je zatvaranje kućišta pa sam dodao gumicu kako bi poklopac bio zatvoren.
Korak 6: Provlačenje vlakana kroz kravatu
Počevši od dna, iglom sam probušio rupice i provlačio vlakna jedno po jedno. Vlakna svake LED diode nasumično se šire po kravati.
Zalijepila sam crnu traku na stražnju stranu koja je trebala ići sve do manjeg dijela kravate kako bi zadržala težinu kutije, ali nakon što sam provukla sve žice i osjetila napetost žica, odlučila sam zalijepiti sve do kravate bilo je bolja ideja i odrezati traku.
Budući da su optičke žice igračke bile tako kratke, bilo ih je teško namjestiti po kravati. Bio sam ograničen u postavljanju kutije i teško mi je bilo sve učiniti ravnim koliko sam htio.
Korak 7: Lijepljenje vlakana na kravatu
Zalijepila sam sve optičke žice na gumeni lim kako bih spriječila izvlačenje žica iz gumenog lima i kako bi kravata postala ravna.
Da bih bio siguran da nisam zalijepio stezaljku za kravatu pri pritisku na nju, stavio sam malo papira između. Ne izgleda tako sjajno, ali dobro radi. I ne vidite ga kad je zatvoren.
Nakon što se ljepilo osušilo, odrezao sam žice na prednjoj strani i odrezao malo gumeni lim neposredno iznad najviše žice, jer je kravata bila preduga.
Fotografije s bijelom košuljom nastaju prije nego što odrežem posljednji dio gume.
Korak 8: Kôd
Ispod koda koji sam napisao za kravatu.
Sve LED diode imaju postavljeni "prosjek" (zapravo nije prosjek, već srednja svjetlina).
Čim dosegne taj prosjek, odlučit će sa šansom 3/4 otići na nižu svjetlinu. Također nasumično postavlja novu minimalnu svjetlinu, maksimalnu svjetlinu, vrijeme čekanja na minimalnu i maksimalnu svjetlinu te brzinu koju povećava ili smanjuje svaki krug (1-255) s 5 unaprijed postavljenih vrijednosti. Zatim će raditi ciklus dok ponovno ne dosegne prosjek. Samo 2 LED diode mogu biti u visokom ciklusu istovremeno.
Svako stanje predstavljeno je cjelobrojnom vrijednošću (1-7) koja određuje ide li prosječno-nisko, nisko-prosječno, čeka nisko, ažurira se itd.
Za informacije o učitavanju koda na arduino, pogledajte www.arduino.cc
/ * Starry Sky Tie * * Ovo je skripta za nasumično blijeđenje 5 LED dioda sa prosječne na nižu * ili veću svjetlinu sa nasumičnim nižim, višim i vremenskim postavkama * kako bi izgledale poput zvjezdanog neba kada se koriste s fiberopticima. * U ovom slučaju to će biti provedeno neriješeno. * * Mogućnost gore/dolje = 1/4 gore, 3/4 dolje, s maksimumom 2 * u isto vrijeme do maksimuma. * * Prosjek ostaje isti. * Minimalne, maksimalne i vremenske opcije nasumično se mijenjaju * od 5 opcija svaki put kada LED ponovno dosegne prosjek. * * Izradio Billy Jaspers, svibanj 2019. *
/ Deklarirajte igle
int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;
// Vremenske varijable
unsigned long currentTime; bez potpisa dugo vrijeme čekanja [5]; unsigned long lastRound;
// LED varijable
int brightMin [5] = {10, 10, 10, 10, 10}; // Minimalna svjetlina int brightAvg [5] = {200, 200, 200, 200, 200}; // Prosječna svjetlina int brightMax [5] = {240, 240, 240, 240, 240}; // Maksimalna svjetlina int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Vrijeme čekanja int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Vrijeme čekanja int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Vrijeme čekanja int increment [5] = {2, 5, 4, 5, 2}; // Povećanje svjetline int currentBright [5] = {200, 230, 210, 210, 235}; // Trenutna svjetlina
// Mogućnosti LED varijabli
int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minimalne mogućnosti svjetline int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maksimalne mogućnosti svjetline int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Vrijeme čekanja pri mogućnostima niske svjetline int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Vrijeme čekanja na visokim mogućnostima svjetline int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Vrijeme čekanja na prosječnim mogućnostima svjetline int incrementPos [5] = {2, 4, 5, 3, 1}; // povećanje mogućnosti svjetline
// Varijable
bool pokretanje = istina; // Treba li pokrenuti početne postavke?
// Varijable smjera
/* 0 = Čekanje u prosjeku 1 = idući Prosjek na Nisko 2 = Čekanje Nizak 3 = Ide na Nisko do Prosjek 4 = Ide Prosjek na Maks 5 = čeka na Maks 6 = ide Visoko do Prosjek 7 = Ažuriranje varijabli*/ int statusLED [5] = {0, 0, 0, 0, 0}; int količinaHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // Čeka li Led?
// Slučajne varijable
long randomNumber; // Dugo za spremanje slučajnog broja dugo randomNumberTwo; // Dugo za spremanje drugog slučajnog broja
// brojači
int i = 0; // Brojač za glavnu petlju
void setup () {
Serial.begin (115200); // Pokretanje serijskog randomSeed (analogRead (A0)); // Postavi nasumično sjeme
// Deklariranje izlaza
pinMode (LED01, IZLAZ); pinMode (LED02, IZLAZ); pinMode (LED03, OUTPUT); pinMode (LED04, IZLAZ); pinMode (LED05, OUTPUT); }
// Zapisivanje podataka na LED diode
void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }
// Glavna petlja
void loop () {if (startup) {// Postavke pokretanja lastRound = millis (); // Postavi lastRound za pokretanje writeToLED (); // Zapis početnih podataka u LED startup = false; // Isključivanje pokretanja} currentTime = millis (); // Postavljanje trenutnog vremena
if (currentTime - lastRound> = refreshRate) {
za (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Ažuriranje Led randomNumber = slučajno (5); brightMin = brightMinPos [randomNumber]; // Postavljanje slučajne vrijednosti za minimalnu svjetlinu randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Postavljanje slučajne vrijednosti za maksimalnu svjetlinu randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Postavljanje slučajne vrijednosti za kratko vrijeme čekanja randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Postavljanje slučajne vrijednosti za veliko vrijeme čekanja randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Postavljanje slučajne vrijednosti za prosječno vrijeme čekanja randomNumber = random (5); inkrement = incrementPos [randomNumber]; // Postavljanje slučajne vrijednosti za povećanje vrijednosti randomNumber = random (2); // Postavljanje slučajne vrijednosti za smjer randomNumberTwo = random (2); // Postavljanje slučajne vrijednosti za smjer if (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Ako je na najnižoj točki: Idite na Prosjek čekanja} else {currentBright = currentBright +prirast ; // Inače: veća svjetlina}} else if (statusLED == 2) {// -2- Waiting Low if (! StatusWaiting ) {// Ako se ne čeka: waitTime = millis (); // Postavljanje vremena čekanja statusWaiting = true; // Počni čekati} else if (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Ako je čekanje AND timeWaitAvg prošlo: statusWaiting = false; // status zaustavljanja statusLED = 3; // Postavi statusLed na Čekanje ažuriranja}} else if (statusLED == 1) {// -1- Going Avg to Low if (currentBright <= brightMin ) {statusLED = 2; // Ako je na najnižoj točki: Idite na Waiting Low} else {currentBright = currentBright -increment ; // Ostalo: Niža svjetlina}} else if (statusLED == 6) {// -6- Idemo na Max do Avg if (currentBright = timeWaitMax ) {// Ako je čekanje AND timeWaitAvg prošlo: statusWaiting = false; // status čekanja statusLED = 6; // Postavi statusLed na Čekanje na ažuriranje}} else if (statusLED == 4) {// -4- Going Avg to Max if (currentBright > = brightMax ) {statusLED = 5; // Ako je na najnižoj točki: Idite na Waiting High} else {currentBright = currentBright +prirast ; // Inače: veća svjetlina}} else if (statusLED == 0) {// -0- Čeka se u prosjeku if (! StatusWaiting ) {// Ako se ne čeka: waitTime = millis (); // Postavljanje vremena čekanja statusWaiting = true; // Počni čekati} else if (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Ako je čekanje AND timeWaitAvg prošlo: statusWaiting = false; // status čekanja statusLED = 7; // Postavi statusLed na Čekanje ažuriranja}}} i = 0; lastRound = millis (); // Postavi kada je posljednji krug završen. writeToLED (); // Zapišite sve podatke u LED diode}}
Korak 9: Završni proizvod
Mislim da je dobro ispalo. Kravata nije previše gusta, čvrsta, duga ili teška, a efekt zvijezde izgleda nevjerojatno.
Preporučeni:
Radna kravata za kravatu: 6 koraka
Radna kravata za kravate: Osamdesete su donijele mnoga velika postignuća u modi i glazbi. Tu je bila sintetička glazba, funky keytar, tajice i klasična muška klavirska kravata. Ove su kravate ironično (i unironično) nosile mnoge moderne (i nemodne)
Zvjezdana vrata za vašu radnu površinu - dizajn PCB -a: 6 koraka (sa slikama)
Zvjezdana vrata za vašu radnu površinu - dizajn PCB -a: Ako vam se sviđa ovaj projekt, razmislite o glasovanju za njega na natječaju za PCB (pri dnu stranice)! Stargate SG -1 je moja omiljena TV emisija svih vremena - tačka. U posljednjih nekoliko mjeseci tjerao sam svoju djevojku da gleda i gleda
Zvjezdana staza - Arduino Powered Star Pointer i Tracker: 11 koraka (sa slikama)
Star Track - Arduino Powered Star Pointer i Tracker: Star track je Arduino sustav za praćenje zvijezda inspiriran GoTo montažom. Može usmjeravati i pratiti bilo koji objekt na nebu (nebeske koordinate date su kao ulaz) s 2 Arduina, žiroskopom, RTC modulom, dva jeftina koračna motora i 3D ispisanom strukturom
Kravata sam sa sobom-sa svjetlima !!: 9 koraka (sa slikama)
DIY leptir-mašna --- Sa svjetlima !!: Ovo je izvrsno za vjenčanja, maturalne zabave, posebne događaje, noćne izlaske i kad god želite biti najhladnija osoba u prostoriji! Zašto ne biste htjeli upaliti leptir-mašnu ? Također, nemojte biti sramežljive djevojke, možete potpuno ljuljati i leptir mašnu :) Photo Cred
Uredno umotajte kabele bez kravata i zapetljaja: 5 koraka (sa slikama)
Uredno omotajte kabele bez kravata i zapetljaja: cilj: način da brzo umotate kabele (slušalice, napajanje itd.) Bez vezica ili čičak traka, koji se ne raskidaju i brzo se poništavaju. Evo jedne metode, ima li boljih prijedloga? Više vodiča: http://www.curiousinventor.com/guidesVideo showi