Përmbajtje:
- Hapi 1: Skemat dhe hardueri
- Hapi 2: Bërja e PCB që mbajnë LED -të
- Hapi 3: Bërja e Kutisë
- Hapi 4: Përgatitja e kravatës
- Hapi 5: Ngjitja e Fiberoptics
- Hapi 6: Vendosja e fiberoptikës përmes kravatës
- Hapi 7: Ngjitja e Fiberoptics në kravatë
- Hapi 8: Kodi
- Hapi 9: Produkti Përfundimtar
Video: Kravata Starry Sky Led: 9 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Pak kohë më parë gjeta një lodër për fëmijë me fibra optike në një dyqan dollarësh dhe fillova të mendoja se çfarë mund të bëja me të.
Një nga idetë e çmendura që kisha, ishte të bëja një kravatë me efektin e një qielli me yje.
Unë ende kisha disa arduino pro mini, dërrasa adafruit dhe bateri të vendosura përreth që ndoshta do t'i përshtateshin këtij projekti.
Kështu, sapo gjeta një kravatë të bukur të gjerë në një dyqan pengjesh në qytetin tim dhe gjeta një kuti që mund t'i përshtatej pajisjeve, vendosa të shkoja për të dhe të provoja ta ndërtoja.
Ky udhëzues ju tregon se si e kam bërë atë.
Punon me një karikues arduino pro mini, adafruit powerboost 500, emmerich icr 18650nh-sp dhe 5 LED të bardhë. Kodi e bën ndriçimin e LED të ndryshojë rastësisht. (40 sekondat e para të videos janë me shpejtësi 3x)
Hapi 1: Skemat dhe hardueri
Unë jam duke përdorur pajisjet e mëposhtme:
- PCB me LED të bardhë akulli dhe rezistorë 220 Ohm.
-Arduino pro mini (kam përdorur një knockoff)
-Ngarkues Adafruit Powerboost 500
-Emmerich Li-ion accu ICR-18650NH-SP
- Fijet optike (në madhësi të ndryshme)
Hapi 2: Bërja e PCB që mbajnë LED -të
Kam prerë një shirit nga një PCB për të mbajtur LED dhe kam përdorur kunjat LED për ta bashkuar atë me PCB kryesore.
Lidhi të gjitha katodat (-) me GND dhe përdori gjysmën e kunjave për ta bashkuar atë të ngjitur në PCB kryesore.
Lidhur të gjitha anodat (+) me rezistorët, dhe me kabllo me arduino.
LEDs secila duhet të lidhet me një nga portat e mëposhtme PWM: 3, 5, 6, 9, 10, 11
Silly me bëri shumë gabime me këtë projekt dhe harrova të kontrolloj portat e sakta PWM, kështu që më duhej të rishitesha disa më vonë. Testuar me Lartë/E Ulët kështu që këtë e vura re vetëm më vonë.
Fillova me 7 LED, por kishte vetëm 6 porte PWM dhe një nga LED -ët e rishitur vdiq. Unë vetëm mbajta 5 LED që punojnë dhe nuk po përdor të 6 -at.
Hapi 3: Bërja e Kutisë
Kam përdorur një Bosch GRO (si Dremel) dhe një stërvitje për të prerë formën e baterisë, butonin, portën e mikro-usb, titujt nga Arduino dhe fijet optike. (përdorni një maskë pluhuri!)
Ngjiteni baterinë në kasë me 2 breza.
Përdorni vida për të montuar bordin Adafruit dhe PCB.
Fërkimi nga hapja dhe mbyllja dëmtoi disa tela. Më duhej t'i rishitja ato dhe të përdorja zam për të parandaluar që ajo të ndodhte përsëri.
Hapi 4: Përgatitja e kravatës
Hoqi qepjen nga pjesa e poshtme e kravatës për t'iu përshtatur fletës së gomës.
Për të fshehur harduerin dhe për të qenë akoma në gjendje të hyj në të nëse është e nevojshme, vendosa të përdor një zinxhir.
Unë nuk jam mirë me një makinë qepëse, kështu që nëna ime e ëmbël vendosi një zinxhir në pjesën e pasme të kravatës.
Pasi kjo ishte bërë, unë ngjita fletën e gomës në kravatë. Kisha frikë të përdorja shumë zam që do të ngopte pëlhurën dhe do të ishte e dukshme nga përpara, kështu që u përpoqa ta zbardhja atë dhe të mos përdor shumë. Në përgjithësi duket mirë, por në disa vende vura re shumë ose shumë pak zam, sepse erdhi përmes pëlhurës ose nuk e ngjiti pëlhurën shumë mirë. Për fat të mirë kjo është vetëm mezi e dukshme nga distanca e afërt në dritë të ndritshme.
Kutia dhe kravata tani janë bërë. Koha për të ngjitur fibrat optike!
Hapi 5: Ngjitja e Fiberoptics
Lodra kishte një pako të madhe fibrash optike që u copëtuan lehtë. Unë u përpoqa t'i ngjisja ato një nga një në fillim, por shpejt vura re se do të ishte më mirë të bëja tufa të vogla dhe t'i ngjisja ato menjëherë në LED. Kjo do ta bënte më të lehtë për ta mbajtur atë të qëndrueshëm derisa zamja të ishte tharë. Rrëmbeu LED -in e parë duke e kuptuar këtë.
Sigurohuni që të përdorni një zam transparent! Ajo që kam përdorur thahet shumë ngadalë dhe ngjitësi i tharjes së shpejtë që provova në LED -in e parë u bë i bardhë, duke i bërë disa fibra nga LED -ja e parë më pak të ndritshme.
Unë ngjita çarçafë të vegjël gome të zi për të parandaluar rrjedhjen e dritës në majë dhe për të ndarë LED -të.
Njëra prej çarçafëve e pengoi mbylljen e kasës, kështu që shtova një brez gome për ta mbajtur kapakun të mbyllur.
Hapi 6: Vendosja e fiberoptikës përmes kravatës
Duke filluar nga fundi, i shtrëngova vrimat me një gjilpërë dhe i vendosa fijet një nga një. Fijet e secilit LED përhapen rastësisht në kravatë.
Unë ngjita një shirit të zi në anën e pasme që duhej të shkonte deri në pjesën më të vogël të kravatës për të mbajtur peshën e kutisë, por pasi i futa të gjitha telat dhe ndjeva tensionin e telave, vendosa të ngjit gjithçka për kravatë ishte një ide më e mirë dhe preu shiritin.
Meqenëse telat me fibra optike nga lodra ishin aq të shkurtra, ishte e vështirë t'i vendosësh ato në të gjithë kravatën. Isha i kufizuar në pozicionimin e kutisë dhe e kisha të vështirë të bëja gjithçka aq të sheshtë sa doja.
Hapi 7: Ngjitja e Fiberoptics në kravatë
I ngjita të gjitha telat me fibër optike në fletën e gomës për të parandaluar tërheqjen e telave nga fleta e gomës dhe për ta bërë kravatën të sheshtë.
Për t'u siguruar që nuk e kam ngjitur kapësen në kravatë kur bëja presion mbi të, vendosa pak letër në mes. Nuk duket aq mirë, por funksionon mirë. Dhe nuk e shihni kur është e mbyllur.
Pasi zamja u tha, i preva telat në pjesën e përparme dhe e preva pak nga fleta e gomës pak mbi telin më të lartë, sepse lidhja ishte shumë e gjatë.
Fotografitë me këmishën e bardhë janë bërë para se të pres pjesën e fundit të gomës.
Hapi 8: Kodi
Poshtë kodit që kam shkruar për kravatë.
Të gjitha LED kanë një "mesatare" të caktuar (jo në fakt një mesatare, por një shkëlqim të mesëm).
Sapo të arrijë atë mesatare, do të vendosë me një shans 3/4 për të shkuar në një shkëlqim më të ulët. Ai gjithashtu vendos rastësisht një shkëlqim të ri minimal, shkëlqim maksimal, kohë të pritjes për ndriçimin minimal dhe maksimal dhe shpejtësinë që rrit ose zvogëlon çdo raund (1-255) nga 5 vlera të paracaktuara. Pastaj do të bëjë një cikël derisa të arrijë përsëri mesataren. Vetëm 2 LED mund të jenë në një cikël të lartë në të njëjtën kohë.
Çdo gjendje përfaqësohet nga një vlerë e plotë (1-7) që përcakton nëse do të jetë mesatarisht e ulët, mesatare e ulët, pritje e ulët, azhurnim, etj.
Për informacion në lidhje me ngarkimin e kodit në arduino, ju lutemi hidhini një sy www.arduino.cc
/ * Starry Sky Tie * * Ky është një skenar për të zbehur rastësisht 5 LED nga një shkëlqim mesatar në një më të ulët * ose më të lartë me cilësime të rastësishme më të ulëta, më të larta dhe të kohës * për t'u dukur si një qiell me yje kur përdoret me fibra optike. * Në këtë rast këto do të zbatohen në barazim. * * Shansi lart/poshtë = 1/4 lart, 3/4 poshtë, me një maksimum prej 2 * duke shkuar deri në maksimum në të njëjtën kohë. * * Mesatarja mbetet e njëjtë. * Opsionet minimale, maksimale dhe të kohës ndryshojnë rastësisht * nga 5 opsione sa herë që një LED arrin përsëri mesataren. * * Krijuar nga Billy Jaspers, maj 2019. *
/ Shpallni kunjat
int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;
// Ndryshoret e kohës
aktual i panënshkruar aktual Koha; pritje e gjatë e panënshkruar Koha [5]; i panënshkruar gjatë lastRound;
// Variablat LED
int brightMin [5] = {10, 10, 10, 10, 10}; // Shkëlqimi minimal int brightAvg [5] = {200, 200, 200, 200, 200}; // Ndriçimi mesatar int brightMax [5] = {240, 240, 240, 240, 240}; // Ndriçimi maksimal int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Koha e pritjes në kohënWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Koha e pritjes int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Koha e pritjes në rritje [5] = {2, 5, 4, 5, 2}; // Rritja e shkëlqimit brenda rrymësBright [5] = {200, 230, 210, 210, 235}; // Shkëlqimi aktual
// Mundësitë e ndryshoreve LED
int brightMinPos [5] = {5, 20, 40, 5, 20}; // Mundësitë minimale të ndriçimit int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Mundësitë maksimale të shkëlqimit në kohëLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Koha e pritjes në mundësitë e shkëlqimit të ulët int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Koha e pritjes për mundësitë e shkëlqimit të lartë int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Koha e pritjes mesatare mesatare e shkëlqimit int incrementPos [5] = {2, 4, 5, 3, 1}; // rritje në mundësitë e shkëlqimit
// Variablat
bool startup = true; // A duhet të fillojnë cilësimet e fillimit?
// Ndryshoret e drejtimit
/* 0 = Pritja në Mesatare 1 = kalimi mesatar në të ulët 2 = pritja e ulët 3 = zbritja e ulët në mesatare 4 = shkuar mesatarisht në maksimum 5 = pritja në maksimumin 6 = shkuarja lartë në mesataren 7 = Përditësimi i variablave*/ int statusLED [5] = {0, 0, 0, 0, 0}; int sasiHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // A po pret Led?
// Ndryshore të rastësishme
numri i rastësishëm i gjatë; // Long për të ruajtur numrin e rastit long randomNumberTwo; // I gjatë për të ruajtur numrin e dytë të rastësishëm
// sportelet
int i = 0; // Counter për lak kryesor
void setup () {
Serial.fillo (115200); // Fillo serial randomSeed (analogRead (A0)); // Vendos farën e rastësishme
// Deklaroni rezultatet
pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }
// Shkruani të dhëna në LED
void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, aktualBright [1]); analogWrite (LED03, aktualBright [2]); analogWrite (LED04, aktualBright [3]); analogWrite (LED05, aktualBright [4]); }
// lak kryesor
void loop () {if (startup) {// Cilësimet e nisjes lastRound = millis (); // Vendos lastRound për boot writeToLED (); // Shkruani të dhënat e fillimit në nisjen LED = false; // Çaktivizo fillimin} currentTime = millis (); // Vendosni kohën aktuale
nëse (aktualeTime - lastRound> = refreshRate) {
për (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Përditësimi i Led randomNumber = rastësor (5); brightMin = brightMinPos [Numri i rastësishëm]; // Vendosni vlerën e rastësishme për ndriçimin minimal randomNumber = random (5); brightMax = brightMaxPos [Numri i rastësishëm]; // Vendosni vlerën e rastësishme për shkëlqimin maksimal randomNumber = random (5); timeWaitLow = timeLowPos [Numri i rastësishëm]; // Vendosni vlerën e rastësishme për kohën e ulët të pritjes randomNumber = random (5); timeWaitMax = timeHighPos [numri i rastësishëm]; // Vendosni vlerën e rastësishme për kohën e lartë të pritjes randomNumber = random (5); timeWaitAvg = timeAvgPos [Numri i rastësishëm]; // Vendosni vlerën e rastësishme për kohën mesatare të pritjes randomNumber = random (5); rritje = rritjePos [Numër i rastësishëm]; // Vendosni vlerën e rastësishme për vlerën në rritje randomNumber = random (2); // Vendosni vlerën e rastësishme për drejtimin randomNumberTwo = e rastësishme (2); // Vendosni vlerën e rastësishme për drejtimin nëse (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Nëse në pikën më të ulët: Shkoni te Mesatarja e pritjes} tjetër {currentBright = currentBright +rritje ; // Tjetër: Ndriçim më i lartë}} tjetër nëse (statusLED == 2) {// -2- Pritja e ulët nëse (! StatusPritja ) {// Nëse nuk pret: koha e pritjes = milis (); // Cakto statusin e kohës së pritjesPritja = e vërtetë; // Filloni të prisni} tjetër nëse (statusWaiting && currentTime-prisTime > = timeWaitLow ) {// Nëse pritja DHE kohaWaitAvg ka kaluar: statusWaiting = false; // Ndalo statusin e pritjesLED = 3; // Cakto statusLed to Waiting for update}} tjetër nëse (statusLED == 1) {// -1- Shkon mesatarisht në Low nëse (currentBright <= brightMin ) {statusLED = 2; // Nëse në pikën më të ulët: Shkoni te Pritja e ulët} tjetër {currentBright = currentBright -rritje ; // Tjetër: Ndriçimi më i ulët}} tjetër nëse (statusLED == 6) {// -6- Shkon në Max në mes nëse (currentBright = timeWaitMax ) {// Nëse pritja DHE kohaWaitAvg ka kaluar: statusPritja = e rreme; // Ndalo statusin e pritjesLED = 6; // Cakto statusLed në Pritje për përditësim}} tjetër nëse (statusLED == 4) {// -4- Shkon mesatarisht në Max nëse (currentBright > = brightMax ) {statusLED = 5; // Nëse në pikën më të ulët: Shkoni te Pritja e Lartë} tjetër {currentBright = currentBright +rritje ; // Tjetër: Ndriçim më i lartë}} tjetër nëse (statusLED == 0) {// -0- Pritja në Mesatare nëse (! StatusPritja ) {// Nëse nuk pret: pritjaKoha = milis (); // Cakto statusin e kohës së pritjes Pritja = e vërtetë; // Filloni të prisni} tjetër nëse (statusWaiting && currentTime-prisTime > = timeWaitAvg ) {// Nëse pritja DHE kohaWaitAvg ka kaluar: statusWaiting = false; // Ndalo statusin e pritjesLED = 7; // Cakto statusLed në Pritje për përditësim}}} i = 0; lastRound = milis (); // Vendoseni kur të përfundojë raundi i fundit. writeToLED (); // Shkruani të gjitha të dhënat tek ZHEL}}
Hapi 9: Produkti Përfundimtar
Unë mendoj se ka funksionuar mirë. Kravata nuk është shumë e trashë, e ngurtë, e gjatë ose e rëndë dhe efekti i yllit duket i mahnitshëm.
Recommended:
Ndërtoni një pult të motit duke përdorur API Dark Sky: 5 hapa (me fotografi)
Ndërtoni një pult të motit duke përdorur API Dark Sky: Dark Sky specializohet në parashikimin dhe vizualizimin e motit. Aspekti më interesant i Dark Sky është API i tyre i motit që mund të përdorim për të tërhequr të dhënat e motit nga pothuajse kudo në botë. Nuk është vetëm moti me shi apo diell, por temperatura
Dark Sky API PyPortal & Paneli i motit: 6 hapa
Dark Sky API PyPortal & Weather Dashboard: Ky projekt është një vlerësim i atij që kemi bërë më parë, Paneli i Motit Dark Sky API. Këtë herë në vend të një Raspberry Pi, ne do të përdorim një Adafruit PyPortal për të shfaqur të dhënat e motit dhe për t'i dërguar ato në Gjendjen Fillestare. Dy pult, për punën e njërit
Si të çmontoni një kompjuter me hapa të thjeshtë dhe fotografi: 13 hapa (me fotografi)
Si të çmontoni një kompjuter me hapa dhe fotografi të lehta: Ky është një udhëzim se si të çmontoni një kompjuter. Shumica e përbërësve bazë janë modularë dhe hiqen lehtë. Sidoqoftë, është e rëndësishme që të jeni të organizuar në lidhje me të. Kjo do t'ju ndihmojë të mos humbni pjesë, dhe gjithashtu në bërjen e ri -montimit
SKY CAM një zgjidhje e kamerës ajrore: 10 hapa (me fotografi)
SKY CAM një zgjidhje për kamerën ajrore: Ky udhëzues do t'ju tregojë se si kam bërë një telekomandë (gjysmë autonome) të sistemit të kabllove të kabllove për Projektin tim të Produkteve Elektronike GCSE në shkollë dhe shpresoj t'ju mundësojë që të jeni në gjendje të krijoni sistemin tuaj! Ky është menduar si një udhëzues i përafërt
RGB LED Light Stick (për fotografi gjatë natës dhe dritë të lirë): 4 hapa (me fotografi)
RGB LED Light Stick (për fotografinë gjatë natës dhe Freezelight): Çfarë është shkopi fotografik i dritës LED RGB? Nëse ju pëlqen fotografia dhe veçanërisht fotografia gjatë natës, atëherë jam shumë i sigurt, ju tashmë e dini se çfarë është kjo! Nëse jo, mund të them se është një pajisje mjaft e mrekullueshme që mund t'ju ndihmojë në krijimin e mrekullueshëm