Բովանդակություն:
- Քայլ 1: Սխեմատիկա և սարքավորում
- Քայլ 2. Ստեղծեք LED- ների տեղադրման PCB- ն
- Քայլ 3: Տուփ պատրաստելը
- Քայլ 4: Վզկապի պատրաստում
- Քայլ 5: Fiberoptics- ի սոսնձում
- Քայլ 6: Fiberoptics- ի կապի միջոցով դնելը
- Քայլ 7: Fiberoptics- ը սոսնձել փողկապին
- Քայլ 8: Կոդ
- Քայլ 9: Վերջնական արտադրանք
Video: Starry Sky Led փողկապ. 9 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Քիչ առաջ դոլարի խանութում ես գտա մանկական մանրաթելային խաղալիքներով խաղալիք և սկսեցի մտածել, թե ինչ կարող եմ անել դրա հետ:
Իմ խենթ գաղափարներից մեկը աստղալից երկնքի ազդեցությամբ փողկապ սարքելն էր:
Ես դեռ ունեի arduino pro mini- ի, adafruit տախտակներ և մարտկոցներ, որոնք հավանաբար կհամապատասխանեին այս նախագծին:
Այսպիսով, հենց որ ես գտա գեղեցիկ լայն փողկապ իմ քաղաքի գրավատանը և գտա մի տուփ, որը կարող էր հարմարվել տեխնիկային, ես որոշեցի գնալ դրա համար և փորձել կառուցել այն:
Այս հրահանգը ցույց է տալիս, թե ինչպես եմ դա պատրաստել:
Այն աշխատում է arduino pro mini, adafruit powerboost 500 լիցքավորիչով, emmerich icr 18650nh-sp և 5 սպիտակ LED- ներով: Կոդը LED- ի փոփոխության պայծառությունը դարձնում է պատահական: (Տեսանյութի առաջին 40 վայրկյանը 3x արագություն է)
Քայլ 1: Սխեմատիկա և սարքավորում
Ես օգտագործում եմ հետևյալ սարքավորումները.
- PCB սառցե սպիտակ LED- ներով և 220 Օմ դիմադրիչներով:
-Arduino pro mini (ես օգտագործել եմ թակոց)
-Adafruit Powerboost 500 լիցքավորիչ
-Emmerich Li-ion accu ICR-18650NH-SP
- օպտիկական մանրաթելեր (տարբեր չափերի)
Քայլ 2. Ստեղծեք LED- ների տեղադրման PCB- ն
Ես կտրեցի մի կտոր PCB- ից ՝ LED- ները պահելու համար և օգտագործեցի LED կապումներն այն հիմնական PCB- ին կպցնելու համար:
Միացրեք բոլոր կաթոդները (-) GND- ին և օգտագործեց կապումներից կեսը ՝ այն կպցնելով հիմնական PCB- ին:
Բոլոր անոդները (+) միացրեց դիմադրողներին, իսկ մալուխներով ՝ արդուինոյին:
LED- ները յուրաքանչյուրը պետք է միացված լինի հետևյալ PWM նավահանգիստներից մեկին ՝ 3, 5, 6, 9, 10, 11
Հիմարն ինձ շատ սխալներ թույլ տվեց այս նախագծի հետ և մոռացավ ստուգել ճիշտ PWM նավահանգիստները, ուստի ստիպված եղա մի քանի անգամ վերավաճառել: Փորձարկված է բարձր/ցածր, այնպես որ ես դա հետագայում նկատեցի միայն:
Ես սկսեցի 7 LED- ով, բայց այնտեղ կար ընդամենը 6 PWM նավահանգիստ, և LED- ներից մեկի վերավաճառվածներից մեկը մահացավ: Ես պարզապես պահեցի 5 աշխատանքային LED- ները և չեմ օգտագործում 6 -րդը:
Քայլ 3: Տուփ պատրաստելը
Ես օգտագործեցի Bosch GRO- ն (ինչպես Dremel- ը) և գայլիկոն, որպեսզի կտրեմ մարտկոցի ձևը, կոճակը, միկրո USB պորտը, Arduino- ի վերնագրերը և օպտիկական մանրաթելերը: (օգտագործեք փոշու դիմակ)
Մարտկոցը սոսնձեց պատյանին 2 ժապավենով:
Օգտագործված պտուտակներ ՝ Adafruit տախտակը և PCB- ն ամրացնելու համար:
Բացումից և փակվելուց շփումը վնասեց որոշ լարեր: Ես ստիպված էի դրանք վերավաճառել և սոսինձ օգտագործել, որպեսզի դա չկրկնվի:
Քայլ 4: Վզկապի պատրաստում
Հեռացրեց կարի փողկապի ներքևի մասից կարվածը `ռետինե թերթին տեղավորելու համար:
Սարքաշարը թաքցնելու և անհրաժեշտության դեպքում դեռ հասանելի լինելու համար որոշեցի օգտագործել կայծակաճարմանդ:
Ես կարի մեքենայով լավ չեմ, այնպես որ իմ անուշ մայրիկը կայծակաճարմանդ դրեց փողկապի հետևի մասում:
Դա անելուց հետո ես ռետինե թերթիկը սոսնձեցի փողկապի մեջ: Ես վախենում էի չափազանց շատ սոսինձ օգտագործելուց, որը կհագեցներ գործվածքը և տեսանելի կլիներ առջևից, ուստի փորձեցի այն հավասարեցնել և շատ չօգտագործել: Ընդհանուր առմամբ, այն լավ է թվում, բայց մի քանի վայրերում ես շատ կամ շատ քիչ սոսինձ նկատեցի, որովհետև այն ներթափանցեց կտորի միջով կամ շատ լավ չկպչեց գործվածքներին: Բարեբախտաբար, դա միայն հազիվ տեսանելի է մոտ տարածությունից ՝ պայծառ լույսի ներքո:
Տուփն ու փողկապն արդեն պատրաստ են: Timeամանակն է սոսնձել մանրաթելային օպտիկամանրաթելերը:
Քայլ 5: Fiberoptics- ի սոսնձում
Խաղալիքը ուներ մեկ մեծ փաթեթ օպտիկամանրաթելային լարեր, որոնք հեշտությամբ բաժանվում էին: Սկզբում փորձեցի դրանք սոսնձել մեկ -մեկ, բայց շուտով նկատեցի, որ ավելի լավ կլինի փոքր կապոցներ պատրաստել և դրանք միանգամից կպցնել LED- ին: Դա ավելի հեշտ կդարձնի այն կայուն պահել մինչև սոսինձը չորանա: Խառնեց առաջին LED- ը ՝ պարզելով դա:
Համոզվեք, որ օգտագործեք թափանցիկ սոսինձ: Իմ օգտագործածը չորացավ շատ դանդաղ, իսկ արագ չորացող սոսինձը, որը փորձեցի առաջին LED- ով, սպիտակվեց ՝ առաջին LED- ի որոշ մանրաթելեր ավելի քիչ պայծառ դարձնելով:
Ես սոսնձեցի սև փոքրիկ ռետինե սավաններ, որպեսզի կանխվի լույսի արտահոսքը վերևից և առանձնացնեմ LED- ները:
Սավաններից մեկը թույլ չտվեց, որ գործը փակվի, այնպես որ ես ավելացրեցի ռետինե ժապավենը `ծածկը փակ պահելու համար:
Քայլ 6: Fiberoptics- ի կապի միջոցով դնելը
Սկսած ներքևից, ես ասեղով սեղմեցի անցքերն ու մանրաթելերը հատ -հատ դրեցի: Յուրաքանչյուր LED- ի մանրաթելերը պատահականորեն տարածվում են փողկապի վրայով:
Ես հետևի մի սև ժապավեն սոսնձեցի, որը պետք է անցներ մինչև փողկապի ավելի փոքր հատվածը, որպեսզի պահպաներ տուփի քաշը, բայց բոլոր լարերը ներս մտնելուց և լարերի լարվածությունը զգալուց հետո որոշեցի սոսնձել: փողկապի համար ամեն ինչ ավելի լավ գաղափար էր և կտրեց շերտը:
Քանի որ խաղալիքի օպտիկամանրաթելային լարերը այնքան կարճ էին, դժվար էր դրանք կապել ամբողջ փողկապի վրա: Ես սահմանափակ էի տուփը տեղադրելու հարցում և դժվարությամբ էի ամեն ինչ հարթեցնում, ինչպես ուզում էի:
Քայլ 7: Fiberoptics- ը սոսնձել փողկապին
Ես օպտիկամանրաթելային բոլոր լարերը սոսնձեցի ռետինե թերթի վրա, որպեսզի լարերը չհանվեն ռետինե թերթից և փողկապը հարթ լինի:
Որպեսզի համոզվեմ, որ սեղմիչը փողկապին չեմ կպցրել, երբ դրա վրա ճնշում եմ գործադրում, ես թուղթ եմ դնում դրանց միջև: Այն այնքան էլ հիանալի տեսք չունի, բայց լավ է աշխատում: Եվ դուք չեք տեսնում այն, երբ այն փակ է:
Սոսինձը չորացնելուց հետո ես կտրեցի առջևի լարերը և մի փոքր կտրեցի ռետինե թերթից ամենաբարձր մետաղալարից վերև, որովհետև փողկապը մի փոքր երկար էր:
Սպիտակ վերնաշապիկով լուսանկարներն արված են մինչ կաուչուկի վերջին կտորը կտրելը:
Քայլ 8: Կոդ
Ստորև բերված փողկապի համար գրված կոդը:
Բոլոր LED- ները ունեն «միջին» (իրականում ոչ թե միջին, այլ միջին պայծառություն):
Հենց որ հասնի այդ միջինին, 3/4 շանսով կորոշի ավելի ցածր պայծառության գնալ: Այն նաև պատահականորեն սահմանում է նոր նվազագույն պայծառություն, առավելագույն պայծառություն, նվազագույն և առավելագույն պայծառության սպասման ժամանակ և այն արագությունը, որը մեծանում կամ նվազում է յուրաքանչյուր փուլում (1-255) 5 նախադրված արժեքներից: Այնուհետև այն կկատարի ցիկլ, մինչև նորից հասնի միջինին: Միայն 2 LED- ը կարող են միաժամանակ լինել բարձր ցիկլում:
Յուրաքանչյուր վիճակ ներկայացված է ամբողջ արժեքով (1-7) `որոշելով, թե արդյոք այն կգնա միջինից ցածր, ցածր միջին, ցածր սպասման, թարմացման և այլն:
Arduino- ում կոդը վերբեռնելու մասին տեղեկությունների համար այցելեք www.arduino.cc
/ * Starry Sky Tie * * Սա սցենար է, որը պատահականորեն մարում է 5 լուսադիոդային լուսարձակներ միջինից մինչև ցածր * կամ ավելի բարձր պայծառություն ՝ պատահական ավելի ցածր, ավելի բարձր և ժամանակային պարամետրերով * ՝ աստղալից երկնքի տեսք ունենալու համար, երբ օգտագործվում է մանրաթելային ապարատների հետ: * Այս դեպքում դրանք կիրականացվեն ոչ -ոքի: * * Վեր/վար շանս = 1/4 վեր, 3/4 ներքև, առավելագույնը 2 * միաժամանակ բարձրանում է առավելագույնի: * * Միջինը մնում է նույնը: * Նվազագույն, առավելագույն և ժամկետների ընտրանքները փոխվում են պատահականորեն * 5 տարբերակից, ամեն անգամ, երբ LED- ը նորից հասնում է միջինին: * * Ստեղծվել է Բիլի Յասպերսի կողմից, 2019 թ. Մայիս: *
/ Հայտարարել կապում
int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;
// Timeամանակի փոփոխականներ
անստորագիր երկար ընթացիկ ժամանակ; անստորագիր երկար սպասման ժամանակ [5]; unsigned long lastRound;
// LED փոփոխականներ
int brightMin [5] = {10, 10, 10, 10, 10}; // Նվազագույն պայծառություն int brightAvg [5] = {200, 200, 200, 200, 200}; // Միջին պայծառություն int brightMax [5] = {240, 240, 240, 240, 240}; // Առավելագույն պայծառություն int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Սպասման ժամանակը int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Սպասման ժամանակը int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Սպասման ժամանակը int increment [5] = {2, 5, 4, 5, 2}; // պայծառության բարձրացում int currentBright [5] = {200, 230, 210, 210, 235}; // Ընթացիկ պայծառություն
// LED փոփոխականների հնարավորություններ
int brightMinPos [5] = {5, 20, 40, 5, 20}; // Պայծառության նվազագույն հնարավորություններ int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Պայծառության առավելագույն հնարավորություններ int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // brightածր պայծառության հնարավորությունների սպասման ժամանակը int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Բարձր պայծառության հնարավորությունների սպասման ժամանակը int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Միջին պայծառության հնարավորությունների սպասման ժամանակը int incrementPos [5] = {2, 4, 5, 3, 1}; // պայծառության հնարավորությունների ավելացում
// փոփոխականներ
bool startup = true; // Արդյո՞ք անհրաժեշտ է սկսել մեկնարկի կարգավորումները:
// Ուղղորդված փոփոխականներ
/* 0 = Սպասում է միջինը 1 = միջինից իջնում է 2 = սպասում է ցածր 3 = իջնում է միջինը 4 = գնում է միջինը առավելագույնը 5 = սպասում է առավելագույնը 6 = բարձրանում է միջինը 7 = փոփոխում է փոփոխականները*/ int կարգավիճակը LED [5] = {0, 0, 0, 0, 0}; int գումարը HighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {կեղծ, կեղծ, կեղծ, կեղծ, կեղծ}; // Արդյո՞ք Led- ը սպասում է:
// Պատահական փոփոխականներ
երկար պատահական Թիվ; // Երկար պատահական համարը պահելու համար երկար randomNumberTwo; // Երկար ՝ երկրորդ պատահական թիվը պահելու համար
// հաշվիչներ
int i = 0; // Հաշվիչ հիմնական հանգույցի համար
void setup () {
Serial.begin (115200); // Սկսել սերիական randomSeed (analogRead (A0)); // Սահմանել պատահական սերմ
// Արդյունքների հայտարարում
pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }
// Տվյալներ գրել LED- ների վրա
void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, ընթացիկԲայլ [1]); analogWrite (LED03, ընթացիկԲայլ [2]); analogWrite (LED04, ընթացիկԲայլ [3]); analogWrite (LED05, ընթացիկԲայլ [4]); }
// Հիմնական հանգույց
void loop () {if (գործարկում) {// Գործարկման կարգավորումներ lastRound = millis (); // Սահմանել lastRound- ը boot writeToLED- ի համար (); // Գրեք մեկնարկի տվյալները LED startup = false; // Անջատել գործարկումը} currentTime = millis (); // Սահմանել ընթացիկ ժամանակը
if (currentTime - lastRound> = refreshRate) {
համար (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Թարմացում Led randomNumber = պատահական (5); brightMin = brightMinPos [պատահական թիվ]; // Սահմանել պատահական արժեք նվազագույն պայծառության randomNumber = պատահական (5); brightMax = brightMaxPos [պատահական համար]; // Սահմանել պատահական արժեք առավելագույն պայծառության randomNumber = պատահական (5); timeWaitLow = timeLowPos [պատահական թիվ]; // Սահմանել պատահական արժեք ցածր սպասման ժամանակ randomNumber = պատահական (5); timeWaitMax = timeHighPos [պատահական Թիվ]; // Սահմանել պատահական արժեք բարձր սպասման ժամանակ randomNumber = պատահական (5); timeWaitAvg = timeAvgPos [պատահական Թիվ]; // Սահմանել պատահական արժեք միջին սպասման ժամանակ randomNumber = պատահական (5); ավելացում = աճող դրական [պատահական թիվ]; // Սահմանել պատահական արժեք ավելացման արժեքի համար randomNumber = պատահական (2); // Սահմանել պատահական արժեք ուղղության randomNumberTwo = պատահական (2); // Եթե պատահական արժեք սահմանեք, եթե (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Եթե ամենացածր կետում. Գնալ դեպի սպասման միջին} այլ {currentBright = currentBright +հավելում ; // Այլ ՝ ավելի բարձր պայծառություն}} այլ դեպքում (statusLED == 2) {// -2- Սպասում է ցածր, եթե (! StatusWaiting ) {// Եթե չես սպասում.; // Սահմանել սպասման ժամանակը statusWaiting = true; // Սկսեք սպասել} այլ դեպքում, եթե (statusWaiting && currentTime-սպասումTime > = timeWaitLow ) {// Եթե սպասումը ԵՎ ժամանակն անցել է. StatusWaitAvg անցել է. // Դադարեցնել սպասման կարգավիճակը LED = 3; // Սահմանել statusLed to Waiting for Update}} այլ դեպքում (statusLED == 1) {// -1- Միջին մակարդակի իջեցում ցածր (currentBright <= brightMin ) {statusLED = 2; // Եթե ամենացածր կետում. Գնալ դեպի Սպասող ցածր} else {currentBright = currentBright -inkrement ; // Ուրիշ. Ստորին Պայծառություն}} այլ դեպքում (statusLED == 6) {// -6- Առավելագույնը դեպի միջին, եթե (currentBright = timeWaitMax ) {// Եթե սպասումը ԵՎ ժամանակըWaitAvg անցել է: statusWaiting = false; // Դադարեցնել սպասման կարգավիճակը LED = 6; // Սահմանել statusLed to Waiting for update}} այլ դեպքում, եթե (statusLED == 4) {// -4- Միջին անցնել առավելագույնը եթե (currentBright > = brightMax ) {statusLED = 5; // Եթե ամենացածր կետում. Գնալ դեպի Սպասում բարձր} else {currentBright = currentBright +հավելում ; // Այլ ՝ ավելի բարձր պայծառություն}} այլ դեպքում (statusLED == 0) {// -0- Միջին սպասում, եթե (! StatusWaiting ) {// Եթե չես սպասում ՝ սպասումTime = millis (); // Սահմանել սպասման ժամանակը statusWaiting = true; // Սկսեք սպասել} այլ դեպքում, եթե (statusWaiting && currentTime-waitTime > = timeWaitAvg ) {// Եթե սպասումը ԵՎ ժամանակը անցել է. StatusWaitAvg = false; // Դադարեցնել սպասման կարգավիճակը LED = 7; // Սահմանել statusLed- ը Սպասում է թարմացման}}} i = 0; lastRound = millis (); // Սահմանել, երբ վերջին տուրն ավարտվի: writeToLED (); // Գրեք բոլոր տվյալները LED- ների վրա}}
Քայլ 9: Վերջնական արտադրանք
Կարծում եմ, որ դա լավ ստացվեց: Փողկապը չափազանց հաստ, թունդ, երկար կամ ծանր չէ, և աստղային էֆեկտը զարմանալի տեսք ունի:
Խորհուրդ ենք տալիս:
Կառուցեք եղանակի վահանակ ՝ օգտագործելով Dark Sky API- ն ՝ 5 քայլ (նկարներով)
Կառուցեք եղանակի վահանակ ՝ օգտագործելով Dark Sky API- ն. Dark Sky- ը մասնագիտացած է եղանակի կանխատեսման և արտացոլման մեջ: Dark Sky- ի ամենաթեժ կողմը եղանակային API- ն է, որը մենք կարող ենք օգտագործել աշխարհի գրեթե ցանկացած վայրից եղանակի տվյալները վերցնելու համար: Եղանակը ոչ միայն անձրևոտ է կամ արևոտ, այլև ջերմաստիճանը
Dark Sky API PyPortal & Եղանակի վահանակ ՝ 6 քայլ
Dark Sky API PyPortal & Եղանակի վահանակ. Այս նախագիծն ընդունում է այն, ինչ մենք արել էինք նախկինում ՝ Dark Sky API եղանակի վահանակը: Այս անգամ Raspberry Pi- ի փոխարեն մենք կօգտագործենք Adafruit PyPortal- ը `եղանակի տվյալները ցուցադրելու և այդ տվյալները ուղարկելու համար Նախնական վիճակ: Երկու վահանակ մեկի աշխատանքի համար:
Հոլի փողկապ. 8 քայլ (նկարներով)
Holi-Tie: Սա Holi-Tie- ն է, տոնական փողկապ, որը նախատեսված է արձակուրդների ժամանակ կրելու համար: Հեշտությամբ հիմնված Becky Stern- ի Ampli-Tie- ի վրա, որն օգտագործում է Flora տախտակ, Holi-Tie- ն օգտագործում է Circuit Python Express (CPX) միկրոկոնտրոլեր `NeoPixel անիմացիաները վարելու համար
SKY CAM օդային տեսախցիկի լուծում. 10 քայլ (նկարներով)
SKY CAM- ը օդային տեսախցիկի լուծում. Այս հրահանգը կօգնի ձեզ իմանալ, թե ինչպես եմ ես դպրոցում պատրաստել GCSE էլեկտրոնային արտադրանքի նախագծի հեռակառավարման վահանակ (կիսամյակային ինքնավար) և հուսով եմ, որ ձեզ հնարավորություն կտա ստեղծել ձեր սեփական համակարգը: Սա նախատեսված է որպես կոպիտ ուղեցույց
DIY Bow փողկապ --- լույսերով !!: 9 քայլ (նկարներով)
DIY Bow փողկապ --- Լույսերով !! ? Բացի այդ, մի ամաչեք աղջիկներ, դուք նույնպես կարող եք ամբողջովին ճոճել վառվող փողկապը :) Լուսանկարը ՝ Cred