Բովանդակություն:

Stepper Pomodoro ժամաչափ. 3 քայլ (նկարներով)
Stepper Pomodoro ժամաչափ. 3 քայլ (նկարներով)

Video: Stepper Pomodoro ժամաչափ. 3 քայլ (նկարներով)

Video: Stepper Pomodoro ժամաչափ. 3 քայլ (նկարներով)
Video: Stepper Pomodoro 2024, Հուլիսի
Anonim
Image
Image
Քայլ 1. Uitոդում և միացում միացում տարայից դուրս
Քայլ 1. Uitոդում և միացում միացում տարայից դուրս

Stepper Pomodoro- ն գրասեղանի ժամաչափ է, որն օգնում է կառավարել իրենց ամենօրյա առաջադրանքների ցուցակը ՝ աշխատանքի յուրաքանչյուր ժամանակահատվածը բաժանելով 30 րոպեանոց հատվածների: Այնուամենայնիվ, ի տարբերություն սովորական Pomodoro ժամաչափի, այն ձեզ չի անհանգստացնում ՝ ցույց տալով մնացած ժամանակը: Փոխարենը, այն ցույց է տալիս մոտավորապես այն ժամանակը, որի միջոցով երեք թվանշաններից որն է թռչում: Showingույց չտալով ճշգրիտ ժամանակը, դա թույլ է տալիս իրականում կենտրոնանալ առաջադրանքի վրա, այլ ոչ թե անընդհատ ստուգել մնացած ժամանակը: Այս Pomodoro- ն կատարյալ է նրանց համար, ովքեր կարիք ունեն թեթև և աննկատ կառուցվածքի իրենց առաջադրանքների կառավարման մեջ:

Գործիքներ

• oldոդման երկաթ

• մետաղալարեր մերկացնողներ

• Լազերային կտրիչ (կամ սրբիչ `կախված այն բանից, թե ինչպես եք ցանկանում ստեղծել ժամաչափի հավաքիչներ)

• Գայլիկոն (ես օգտագործել եմ փորված մամլիչ ՝ հավաքիչների համար բավական մեծ անցքեր բացելու համար)

Նյութեր

• 1 Arduino Uno

• 1 կես չափի տախտակ

• 3 H կամուրջներ (ես օգտագործել եմ DRV8833- ը, շարժիչի վահանը ինձ փրկել է որոշ ժամանակ և գլխացավեր)

• 3 քայլ շարժիչ (ես օգտագործել եմ NEMA 17 տափակ)

• 1 կոճակ

• 1 220-1K Օմ դիմադրություն (ցանկացած միջակայքում լավ է)

• AC/DC ադապտեր (ես օգտագործել եմ 12 Վ, հավանաբար չափազանց մեծ այս քանակությամբ տափաստանների համար)

• Հոսանքի բաժանարար

• USB A-B լար

• Գրատախտակի լարեր

• oldոդող

• Materամաչափի տարայի համար նյութեր

• Ակրիլային հավաքիչ

• Եղունգներ կամ մետաղական կապում `որպես ժամաչափի ստացիոնար թև

Քայլ 1: Քայլ 1. Uitոդում և միացում միացում տարայից դուրս

Այս քայլի համար ես սկսեցի իմ բոլոր H կամուրջները միասին զոդել (եթե դուք գնում եք շարժական վահանը, դրանք պետք չէ զոդել: Երբ յուրաքանչյուր աստիճանի համար H կամուրջ ունեք, կարող եք ստուգել, թե ինչպես են ձեր տափաստանները միացված:

NEMA 17- երն այն են, ինչ հայտնի է որպես երկբևեռ քայլող շարժիչներ, ինչը նշանակում է, որ նրանք շարժիչի ներսում ունեն երկու (ոչ թե մեկ) կծիկ, որոնք փոխում են բևեռականությունը `շարժիչի ճշգրիտ շարժումը թույլ տալու համար: Սովորաբար երկբևեռ քայլողներն ունեն չորս լար, իսկ բևեռային աստիճաններ ունեցողները ՝ վեց, սա մի փոքր բարդացրեց առցանց հրահանգները: Այնուամենայնիվ, դուք կարող եք մի քանի մետր ամրացնել երկու լարերին և տեսնել, արդյոք դրանք միացված են, թե ոչ: NEMA 17 տափաստաններն ունեն մետաղալարերի կարգը ԿԱՐՄԻՐ, ԴԵELLԻՆ, ՄՈAYՅՆ, Կանաչ գույնի կարգով, կարմիր և մոխրագույնը ՝ առաջին բևեռային զույգը, իսկ դեղինը և կանաչը ՝ երկրորդ բևեռային զույգը: Եթե ինչ -որ պահի քայլափողը սկսում է ցնցվել, այլ ոչ թե ավարտել ակնկալվող շարժումը, հավանականությունն այն է, որ ձեր լարերը ինչ -որ կերպ ճիշտ բևեռացված չեն իրենց երկվորյակին կամ մեկը անջատված է: Յուրաքանչյուր սլաքը վերահսկվում է չորս ելքային կապում, որոնք միանում են DRV8833 H կամուրջներին: DRV8833- ի մուտքի էլեկտրագծերի կարգը հետևյալն է `IN1, IN2, Power, Ground, IN3, IN4: Ելքային նպատակների համար NEMA- ն պարզապես միանում է վեց կապոցների միջնամասին `ԿԱՐՄԻՐ, ՄՈAYՅՆ, ԴԵELLԻՆ, Կանաչ: Հիմա եկեք միացնենք հոսանքը: Ես ունեմ իմ NEMA- ն թվային 2-13 նավահանգիստների վրա:

Այս սնուցման համար ես գնել եմ 12V AC/DC ադապտեր ՝ պառակտիչով, որպեսզի կարողանամ սնուցել ինչպես Arduino- ն, այնպես էլ բոլոր քայլերը: Ո WՇԱԴՐՈԹՅՈՆ. Մի միացրեք ձեր հոսանքի և գրունտի լարերը Arduino- ից, որոնք արդեն էներգիա են ստանում նավահանգստից, AC/DC- ից անմիջական էներգիա ստացող տախտակին: Դա տապակելու է ձեր տախտակը: Պատին միացված 12 Վ ադապտերից պառակտիչի մի մասը ուղիղ գնաց Արդուինոյի նավահանգիստ, իսկ մյուսը `հացի տախտակի դրական և բացասական կողմերի:

Ի վերջո, ժամանակն է միացնել կոճակը: Կոճակի մի կողմը կպահանջի ինչպես հոսանք (մեր դիմադրության մեջ միացված), այնպես էլ ելքային կապը կպցրած (դա կարելի է անել նաև տախտակից): Մյուս քորոցը կլինի մեր հիմքը: Այս երեք լարերը պետք է միացված լինեն. Հոսանքի դիմադրիչ ՝ մինչև 5 Վ, ելք ՝ A0, և հողից մինչև գետն ՝ բոլորը Arduino Uno տախտակի վրա:

Այստեղից մենք պետք է կարողանանք փորձել վերահսկել քայլին ՝ օգտագործելով այստեղ գտնված այս հիմնական աստիճանական թեստի կոդը: Arduino.cc- ի այս բացատրությունը նաև անհրաժեշտության դեպքում ավելի մանրակրկիտ բացատրում է երկբևեռ բեկորների մասին: Հաջորդը եկեք մուտքագրենք Pomodoro- ի ծածկագիրը:

Քայլ 2: Քայլ 2. Վերբեռնեք ծածկագիրը և այն հարմարեցրեք ձեր կարիքներին

Քայլ 2: Վերբեռնեք ծածկագիրը և այն հարմարեցրեք ձեր կարիքներին
Քայլ 2: Վերբեռնեք ծածկագիրը և այն հարմարեցրեք ձեր կարիքներին

Ստորև բերված է կոճակով իմ Pomodoro- ի ծածկագիրը, այն ձեր կարգավորումների վրա հարմարեցնելու համար հետևեք այս քայլերին.

1. Սահմանեք, թե քանի քայլ է կատարում յուրաքանչյուր հեղափոխության ձեր անձնական աստիճանի տիպը (NEMA 17 -երը ունեն 200 հատ և այն նշված է stepPerRevolution կոչվող մշտական ամբողջ թվով):

2. Սահմանեք, թե որտեղ է ձեր կոճակը մուտքագրվում մշտական ամբողջ զանգահարողի կոճակին:

3. Տեղադրեք, թե որտեղից պետք է ձեր arduino- ն դուրս գա ՝ քայլողներին հրամայելու համար (այս մասերը կարող են ամենաշատը տարբերվել H կամուրջների տեսակների միջև, քանի որ շատերն ունեն տարբեր գրադարաններ, որոնք օգտագործում են):

4. Սահմանեք արագաչափի արագությունը RPM- ով:

5. Սահմանեք, թե քանի անգամ կցանկանայիք, որ ձեր քայլողներից յուրաքանչյուրը շրջվեր նախքան այն շարժվելը (իմ քայլողները հաշվում են տասը րոպե, այնպես որ նրանք տասը անգամ պտտվում են 1 RPM- ով):

6 Սահմանեք, թե որքան ժամանակ եք ցանկանում, որ այն հետ պտտվի:

#ներառում

const int stepsPerRevolution = 200; // հաստատում, թե քանի քայլ կա իմ լիարժեք շարժիչների յուրաքանչյուր ամբողջական պտույտում

const int buttonPin = A0; // իմ կոճակի մուտքի հաստատունի սահմանում

Stepper firstStepper (քայլեր PerRevolution, 2, 3, 4, 5); // նախաստորագրեք stepper գրադարանը որոշակի կապում

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepper (քայլեր PerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (քայլերPerRevolution, 2, 3, 4, 5); // վերագործարկեք stepper գրադարանը այս կապում, որպեսզի կարողանաք վերականգնել rpm- ը այն ժամանակ, երբ զգուշացնեք, որ ժամանակը լրացել է Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int րոպեCounter = 0; // int հաշվելով քայլողների ամբողջական հեղափոխությունները

int timerState = LOW; // pomodoro ժամաչափի ներկայիս վիճակը (HIGH = միացված, LOW = անջատված/վերակայված) int կոճակ Պետություն; // ընթացիկ ընթերցումը մուտքային կապից int lastButtonState = HIGH; // նախորդ ընթերցումը մուտքային փինից

// հետևյալ փոփոխականներն անստորագիր երկարատև են, քանի որ ժամանակը, որը չափվում է միլիվայրկյաններով, // արագ կդառնա ավելի մեծ թիվ, քան կարող է պահվել int- ում: անստորագիր երկար lastDebounceTime = 0; // վերջին անգամ, երբ ելքային քորոցը միացվել է անստորագիր երկար debounceDelay = 50; // բեկանման ժամանակը; ավելանալ, եթե ելքը թարթվի

void setup () {

pinMode (buttonPin, INPUT_PULLUP); // կոճակի հաստատուն սահմանել որպես մուտքագրում

firstStepper.setSpeed (1); // սահմանել արագությունը 1 պտույտ/ րոպե 10 վայրկյանում մեկ stepper. Sepper.setSpeed- ի համար 10 րոպե հաշվելու համար; thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // արագությունը սահմանել 30 պտույտ/ րոպե `ազդանշան տալու համար, որ ժամանակն ավարտվել է այն բանից հետո, երբ Պոմոդորոն ավարտել է secondStepperBack.setSpeed- ը (30); thirdStepperBack.setSpeed (30);

Serial.begin (9600); // սկսել սերիական մոնիտոր 9600 բաուդ արագությամբ

}

դատարկ շրջան () {

// կարդալ անջատիչի վիճակը տեղական փոփոխականի: int reading = digitalRead (buttonPin);

// ստուգեք ՝ պարզապես սեղմե՞լ եք կոճակը

// (այսինքն ՝ մուտքագրումը OWԱOWՐԻ to բարձրից բարձր է դարձել), և դուք սպասել եք // այնքան երկար, որքան վերջին մամուլը ՝ աղմուկն անտեսելու համար.

// Եթե անջատիչը փոխվել է, աղմուկի կամ սեղմման պատճառով.

եթե (ընթերցում! = lastButtonState) {// վերակայել դեբոնինգի ժամանակաչափը lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// ինչ ընթերցում էլ որ լինի, այն այնտեղ ավելի երկար է //

// եթե կոճակի վիճակը փոխվել է.

եթե (ընթերցում! = buttonState) {buttonState = ընթերցում;

// միացրեք ժամաչափի ակտիվացումը միայն այն դեպքում, երբ նոր կոճակի վիճակը ցույց է տալիս, որ այն սեղմված է

// մի անգամ սեղմեք ՝ միացնելու համար, նորից սեղմեք ՝ անջատելու համար, եթե (buttonState == LOW) {timerState =! timerState; Serial.print («erամաչափի վիճակն է»); Serial.println (timerState); }}}

եթե (timerState == HIGH) {

Serial.println («Pomodoro ժամաչափը սկսվել է»); if (minutesCounter <11) {// եթե ընթացիկ երկրորդ արժեքը տարբերվում է նախորդ արժեքից, ապա firstStepper.step (stepsPerRevolution); // պտտել stepper 200 քայլ/1 պտույտ րոպե Counter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (11 <= minutesCounter && minutesCounter <21) {// եթե ընթացիկ երկրորդ արժեքը տարբերվում է նախորդ արժեքից, ապա secondStepper.step (stepsPerRevolution); // պտտել stepper 200 քայլ/1 պտույտ րոպե Counter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (21 <= minutesCounter && minutesCounter <31) {// եթե ընթացիկ երկրորդ արժեքը տարբերվում է նախորդ արժեքից, ապա thirdStepper.step (stepsPerRevolution); // պտտել stepper 200 քայլ/1 պտույտ րոպե Counter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (31 <= minutesCounter && minutesCounter <1031) {// եթե ընթացիկ երկրորդ արժեքը տարբերվում է նախորդ արժեքից, ապա firstStepperBack.step (-1); // քայլը հետ դարձնել 1 քայլ հաջորդականությամբ, որպեսզի տեսնեն, որ բոլորը միաժամանակ աշխատում են secondStepperBack.step (-1); thirdStepperBack.step (-1); րոպե Հաշվիչ ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }} else {Serial.println ("Pomodoro ժամաչափը անջատված է"); } // պահպանել ընթերցումը: Հաջորդ անգամ օղակի միջոցով, // դա կլինի lastButtonState: lastButtonState = ընթերցում; }

Քայլ 3. Քայլ 3. Պարունակեք Steppers և Arduino, եթե ցանկանում եք

Քայլ 3. Պարունակեք Steppers և Arduino, եթե ցանկանում եք
Քայլ 3. Պարունակեք Steppers և Arduino, եթե ցանկանում եք
Քայլ 3. Պարունակեք Steppers և Arduino, եթե ցանկանում եք
Քայլ 3. Պարունակեք Steppers և Arduino, եթե ցանկանում եք
Քայլ 3. Պարունակեք Steppers և Arduino, եթե ցանկանում եք
Քայլ 3. Պարունակեք Steppers և Arduino, եթե ցանկանում եք

Ես ընտրեցի զուգահեռագիր ձև ստեղծել ժամացույցիս համար: Այս ձևը և կարմիր կաղնու նյութական ընտրությունը ոգեշնչված էին միջին դարերի ժամանակակից կահույքով: Մի մասը, որի մեջ ես ամենաշատն էի դժվարանում, դա այն էր, որ հետիոտններին թվանշաններ հավաքելն իրենց սյուների միջով էր երեւում:

Խորհուրդ ենք տալիս: