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: Provođenje vlakana kroz kravatu
- Korak 7: Lijepljenje vlakana na kravatu
- Korak 8: Kôd
- Korak 9: Finalni proizvod
Video: Zvezdana nebeska kravata: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Prije nekog vremena pronašao sam dječju igračku s fiberopticima u trgovini dolara i počeo razmišljati o tome š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 vjerovatno 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. Kôd čini promjenu svjetline LED diode nasumičnom. (Prvih 40 sekundi videozapisa su 3x brzine)
Korak 1: Sheme i hardver
Koristim sljedeći hardver:
- PCB sa 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 ih za LED lemljenje na glavnu PCB.
Spojio je sve katode (-) na GND i 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
Blesavi, napravio sam mnogo grešaka s ovim projektom i zaboravio sam provjeriti ispravne PWM portove, pa sam ih morao kasnije ponovno spakirati. Testirano sa High/Low pa sam to primijetio tek kasnije.
Počeo sam sa 7 LED dioda, ali bilo je samo 6 PWM portova i jedna od LED dioda koje sam ponovno lemio je umrla. Upravo sam zadržao 5 radnih LED dioda i ne koristim 6.
Korak 3: Izrada kutije
Koristio sam Bosch GRO (poput Dremela) i bušilicu za izrezivanje oblika baterije, dugmeta, priključka za mikro-USB, zaglavlja iz Arduina i optičkih vlakana. (koristite masku za prašinu!)
Zalijepili bateriju na kućište sa 2 trake.
Korišteni vijci za montažu Adafruit ploče i PCB -a.
Trenjem pri otvaranju i zatvaranju oštećene su 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ćom mašinom, 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 pokušao izravnati i ne koristiti previše. Sve u svemu, 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 jedno po jedno, ali ubrzo sam primijetio da bi bilo bolje napraviti male snopove i zalijepiti ih na LED diodu odjednom. To bi olakšalo održavanje stabilnosti dok se ljepilo ne osuši. Pogrešio je prvi LED koji je ovo shvatio.
Obavezno upotrijebite prozirno ljepilo! Ono koje sam koristio sušilo se vrlo sporo i 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.
Zalijepio sam male crne gumene limove kako bih spriječio curenje svjetla na vrhu i odvojio LED diode.
Jedan od listova spriječio je zatvaranje kućišta pa sam dodao gumicu kako bi poklopac bio zatvoren.
Korak 6: Provođ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.
Zalijepio 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 provukao sve žice i osjetio napetost žica, odlučio sam zalijepiti sve do kravate je bila bolja ideja i odrezali su 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 bilo mi je teško 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 prilikom pritiska na nju, stavio sam malo papira između njih. Ne izgleda tako sjajno, ali dobro funkcionira. I ne vidite ga kad je zatvoren.
Nakon što se ljepilo osušilo, odrezao sam žice na prednjoj strani i odrezao malo gumeni lim odmah iznad najviše žice, jer je kravata bila preduga.
Fotografije s bijelom košuljom nastaju prije nego što odseč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 dostigne taj prosjek, odlučit će sa 3/4 šanse da pređe na nižu svjetlinu. Također nasumično postavlja novu minimalnu svjetlinu, maksimalnu svjetlinu, vrijeme čekanja na minimalnu i maksimalnu svjetlinu i brzinu koju povećava ili smanjuje svaki krug (1-255) sa 5 unaprijed postavljenih vrijednosti. Zatim će raditi ciklus dok ponovo ne dostigne prosjek. Samo 2 LED diode mogu biti u visokom ciklusu istovremeno.
Svako stanje je predstavljeno 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, većim i vremenskim postavkama * kako bi izgledalo poput zvjezdanog neba kada se koristi s vlaknima. * U ovom slučaju to će biti provedeno nerešeno. * * Mogućnost gore/dolje = 1/4 gore, 3/4 dolje, s maksimalnim 2 * povećanjem do maksimuma u isto vrijeme. * * Prosek ostaje isti. * Minimalne, maksimalne i vremenske opcije nasumično se mijenjaju * od 5 opcija svaki put kada LED ponovo dosegne prosjek. * * Kreirao Billy Jaspers, maj 2019. *
/ Deklarirajte pinove
int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;
// Vremenske varijable
unsigned long currentTime; nepotpisano 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}; // Vreme č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 velike mogućnosti 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 startup = true; // Treba li pokrenuti početne postavke?
// Smjerne varijable
/* 0 = Prosječno čekanje 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 na Prosjek 7 = Ažuriranje varijabli*/ int statusLED [5] = {0, 0, 0, 0, 0}; int iznosHighLED = 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)); // Postavljanje randomseed -a
// Deklariranje izlaza
pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); 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) {
for (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Ažuriranje Led randomNumber = random (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 tački: Idite na Waiting Avg} 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; // prestanak čekanja statusLED = 3; // Postavi statusLed na Čekanje ažuriranja}} else if (statusLED == 1) {// -1- Prosječno na Nisko if (currentBright <= brightMin ) {statusLED = 2; // Ako je na najnižoj tački: Idite na Waiting Low} inače {currentBright = currentBright -povećanje ; // Ostalo: Smanji svjetlinu}} else if (statusLED == 6) {// -6- Prelazak na Max do Prosj. If (currentBright = timeWaitMax ) {// Ako je čekanje AND timeWaitAvg prošlo: statusWaiting = false; // status prestanka čekanjaLED = 6; // Postavi statusLed na Čekanje ažuriranja}} else if (statusLED == 4) {// -4- Prosječno na Max ako (currentBright > = brightMax ) {statusLED = 5; // Ako je na najnižoj tački: Idite na Waiting High} inače {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 zaustavljanja statusLED = 7; // Postavi statusLed na Čekanje ažuriranja}}} i = 0; lastRound = millis (); // Postavi kada je posljednji krug završen. writeToLED (); // Zapišite sve podatke na LED diode}}
Korak 9: Finalni proizvod
Mislim da je dobro ispalo. Kravata nije previše gusta, čvrsta, dugačka ili teška, a efekt zvijezde izgleda nevjerojatno.
Preporučuje se:
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) sa Rpi-imagerom i slikama: 7 koraka (sa slikama)
Kako: Instaliranje Raspberry PI 4 Headless (VNC) s Rpi-imagerom i slikama: Planiram koristiti ovaj Rapsberry PI u hrpi zabavnih projekata na svom blogu. Slobodno provjerite. Htio sam se vratiti korištenju svog Raspberry PI -a, ali nisam imao tipkovnicu ili miš na novoj lokaciji. Prošlo je dosta vremena od postavljanja maline
Radna kravata za kravatu: 6 koraka
Radna kravata za kravatu: Osamdesete su donijele mnoga velika dostignuća u modi i muzici. Tu je bila sintetička muzika, funky keytar, helanke i klasična muška klavirska kravata. Ove su kravate ironično (i unironično) nosile mnoge moderne (i nemodne)
B102-6 Kravata za kosu: 8 koraka
B102-6 Kravata za kosu: Napravite sami uređaj koji će vam pomoći vezati kosu jednom rukom
Kravata uradi sam --- sa svjetlima !!: 9 koraka (sa slikama)
Uradi sam kravatu-sa svjetlima !!: Odlične su za vjenčanja, maturalne večeri, posebne događaje, noćne izlaske i u bilo koje vrijeme kad želiš biti najhladnija osoba u prostoriji! Zašto ne biste htjeli upaliti leptir-mašnu ?? Takođe, ne budite stidljive djevojke, možete i potpuno zapaliti leptir mašnu :) Photo Cred
Uredno omotajte kabele bez kravata i zapetljaja: 5 koraka (sa slikama)
Uredno omotajte kabele bez kravata i zapetljaja: cilj: način da brzo uvijete kablove (slušalice, napajanje itd.) Bez vezica ili čičak traka, brzo se poništavaju i brzo se poništavaju. Evo jedne metode, ima li boljih prijedloga? Više vodiča: http://www.curiousinventor.com/guidesVideo showi