Мазмұны:

Помодоро таймері: 3 қадам (суреттермен)
Помодоро таймері: 3 қадам (суреттермен)
Anonim
Image
Image
1 -қадам: Контейнердің сыртында дәнекерлеу және қосу схемасы
1 -қадам: Контейнердің сыртында дәнекерлеу және қосу схемасы

Қадамдық Помодоро - бұл әр жұмыс кезеңін 30 минуттық сегменттерге бөлу арқылы күнделікті тапсырмалар тізімін басқаруға көмектесетін үстел таймері. Дегенмен, қарапайым Pomodoro таймерінен айырмашылығы, ол қалған уақытты көрсетіп, сізді алаңдатпайды. Оның орнына, ол шамамен үш терудің қайсысы таңдалғанын көрсетеді. Нақты уақытты көрсетпеу сізге бос уақытты үнемі тексеріп отыруға емес, тапсырманы шешуге мүмкіндік береді. Бұл Помодоро жұмысты басқаруға жеңіл және қарапайым құрылымды қажет ететіндер үшін өте қолайлы.

Құралдар

• Пісіру үтігі

• Сымды тазартқыштар

• Лазерлік кескіш (немесе таймердің терулерін қалай жасағыңыз келетініне байланысты тегістеуіш)

• Бұрғылау (мен бұрғылау басқышын пайдаланып, теру үшін жеткілікті үлкен тесіктер жасадым)

Материалдар

• 1 Arduino Uno

• 1 жарты өлшемді нан тақтасы

• 3 H көпірі (мен DRV8833 қолдандым, мотор қалқаны мені біраз уақыт пен бас ауруларын үнемдеді)

• 3 қадамдық қозғалтқыш (мен NEMA 17 қадамдарын қолдандым)

• 1 түйме

• 1 220-1К Ом резисторы (кез келген ауқымдағы жақсы)

• Айнымалы ток/тұрақты ток адаптері (мен 12 вольтты қолдандым, бәлкім, степерлердің саны үшін тым үлкен)

• Қуат бөлгіш

• USB A-B сымы

• Тақтаға арналған сымдар

• Дәнекер

• Таймер контейнеріне арналған материалдар

• Теруге арналған акрил

• Таймердің қозғалмайтын тұтқасы ретінде әрекет ететін шегелер немесе металл түйреуіштер

1 -қадам: 1 -қадам: Контейнердің сыртында дәнекерлеу және қосу схемасы

Бұл қадамды мен барлық H көпірлерін дәнекерлеу арқылы бастадым.

NEMA 17 - биполярлық қадамдық қозғалтқыштар, олар қозғалтқыштың нақты қозғалысына мүмкіндік беру үшін полярлықты өзгертетін екі (бір емес) катушкалар жиынтығын білдіреді. Биполярлық степперлерде әдетте төрт сым бар, ал полярлық степерлерде әдетте алты болады, бұл интернеттегі нұсқауларды біршама қиындатады. Бірақ сіз екі сымға мультиметрді қосып, олардың қосылғанын немесе қосылмағанын біле аласыз. NEMA 17 степерлерінің сым тәртібі ҚЫЗЫЛ, САРЫ, СҰРЫ, ЖАСЫЛ реңктерінде болады, қызыл және сұр - бірінші полярлық жұп, ал сары мен жасыл - екінші полярлық жұп. Егер кез келген сәтте степпер күтілетін қозғалысты аяқтамай, дірілдей бастаса, онда сіздің сымдарыңыз егізге дұрыс поляризацияланбаған немесе біреуі ажыратылған. Әрбір қадам DRV8833 H көпірлеріне қосылатын төрт шығыс түйреуіш арқылы басқарылады. DRV8833 кірісінің сым тәртібі: IN1, IN2, Power, Ground, IN3, IN4. Шығу мақсаттары үшін NEMA алты түйреуіштің төртеуінің төртеуіне ретімен қосылады: ҚЫЗЫЛ, СҰР, САРЫ, ЖАСЫЛ. Енді қуатты қосамыз. Менде NEMA -лар 2-13 цифрлық порттарда бар.

Мұны істеу үшін мен Arduino -ны да, барлық қадамдарды да қуаттай алатын 12 В айнымалы ток/адаптер сатып алдым. ЕСКЕРТУ: Ардуинодан қуат пен жерге қосылатын сымдарды порттан қуат алатын, тікелей айнымалы токтан алатын нан тақтасына қоспаңыз. Бұл сіздің тақтаны қуырады. Қабырғаға қосылған 12В адаптерден бөлгіштің бір бөлігі тікелей Ардуино портына, ал екіншісі нан тақтасының оң және теріс жағына кетті.

Ақырында, түймені қосатын уақыт келді. Түйменің бір жағына қуат қажет болады (біздің резистор қосылғанда), сонымен қатар дәнекерленген шығыс түйреуіші (мұны нан тақтасынан да жасауға болады). Басқа түйреуіш біздің жеріміз болады. Бұл үш сымды қосу керек: 5 В резисторы бар қуат, A0 шығысы және жерге тұйықталу Arduino Uno тақтасының өзінде.

Осы жерден біз осы жерден табылған негізгі қадамдық сынақ кодын қолданып, степперлерді басқаруға тырысуымыз керек. Arduino.cc сайтындағы бұл түсініктеме сізге қажет болған жағдайда би/бір полярлы степперлер туралы егжей -тегжейлі түсіндірме береді. Содан кейін Pomodoro кодына кіруге рұқсат етіңіз!

2 -қадам: 2 -қадам: кодты жүктеу және оны сіздің қажеттіліктеріңізге реттеу

2 -қадам: кодты жүктеу және оны сіздің қажеттіліктеріңізге бейімдеу
2 -қадам: кодты жүктеу және оны сіздің қажеттіліктеріңізге бейімдеу

Төменде менің түймешігі бар Pomodoro коды бар, оны баптауға баптау үшін мына қадамдарды орындаңыз:

1. Жеке қадам түрінің айналуы бойынша қанша қадам болатынын орнатыңыз (NEMA 17 -де 200 бар және ол StepPerRevolution деп аталатын тұрақты бүтін санға енгізілген).

2. Тұрақты бүтін санға қоңырау шалушы buttonPin түймесі енгізілетін орынды орнатыңыз.

3. Степперлерді басқару үшін сіздің arduino қай жерден шығуы керек екенін орнатыңыз (бұл бөліктер H көпірінің түрлері арасында ең көп өзгеруі мүмкін, себебі көптеген кітапханаларда олар пайдаланылады).

4. Қадамдық айналу жиілігін.setSpeed ішіне орнатыңыз (менде сағат тілімен бұрылғанда 1 айн / мин, сағат тіліне қарсы бұрылғанда 30 айн / мин).

5. Әр қадам басқанға дейін қанша рет айналдырғыңыз келетінін орнатыңыз (менің қадамшыларым он минутты есептейді, сондықтан олар 1 айналу жиілігінде он рет айналады).

6 Оның артқа бұрылуын қанша уақыт қалайтыныңызды орнатыңыз.

#қосу

const int stepsPerRevolution = 200; // менің қадамдық қозғалтқыштарымның әрбір толық айналымында неше қадам болатындығының тұрақтылығын орнату

const int buttonPin = A0; // батырманың кірісінің тұрақты мәнін орнату

Stepper firstStepper (StepPerRevolution, 2, 3, 4, 5); // белгілі бір түйреуіштердегі қадамдық кітапхананы инициализациялау

Stepper secondStepper (StepPerRevolution, 6, 7, 8, 9); Stepper ThirdStepper (StepPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // осы істікшелердегі қадамдық кітапхананы қайта іске қосу үшін, бұл уақыт аяқталғанын ескерту үшін, айн/ мин қалпына келтіру Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper ThirdStepperBack (StepPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int толық қадамдарды санау

int timerState = LOW; // pomodoro таймерінің ағымдағы күйі (HIGH = қосулы, LOW = өшіру/қалпына келтіру) int buttonState; // кіріс пинінен ағымдағы көрсеткіш int lastButtonState = HIGH; // кіріс түйреуіштен алдыңғы оқу

// келесі айнымалылар ұзақ белгісіз, себебі уақыт миллисекундпен өлшенеді, // int ішінде сақталатыннан тезірек үлкен санға айналады. белгісіз ұзақ lastDebounceTime = 0; // шығыс түйрегіші соңғы рет қол қойылмаған ұзақ debounceDelay = 50; // шығу уақыты; шығыс жыпылықтаса жоғарылайды

жарамсыз орнату () {

pinMode (buttonPin, INPUT_PULLUP); // батырманың тұрақтылығын кіріс ретінде орнатыңыз

firstStepper.setSpeed (1); // секундына StepStepper.setSpeed (1) 10 минут санау үшін жылдамдықты 1 айн/ мин. орнатыңыз; ThirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // Pomodoro secondStepperBack.setSpeed (30) аяқтағаннан кейін уақыт аяқталғанын ескерту үшін жылдамдықты 30 айн/ мин етіп орнатыңыз; ThirdStepperBack.setSpeed (30);

Serial.begin (9600); // 9600 беру жылдамдығымен сериялық мониторды іске қосыңыз

}

void loop () {

// коммутатордың күйін жергілікті айнымалыға оқыңыз: int reading = digitalRead (buttonPin);

// түймені жай ғана басқанын тексеріңіз

// (яғни кіріс LOW -дан HIGH -ға дейін өсті), және сіз // соңғы күткеннен бері кез келген шуды елемеу үшін жеткілікті ұзақ күттіңіз:

// Егер қосқыш шуылға немесе басуға байланысты өзгерсе:

if (оқу! = lastButtonState) {// жою туралы таймерді қалпына келтіру lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// оқылым қандай болса да, ол шығарудың кідірісінен ұзақ // болды, сондықтан оны нақты ағымдағы күй ретінде қабылдаңыз:

// егер түйменің күйі өзгерсе:

if (оқу! = buttonState) {buttonState = оқу;

// егер жаңа түйме күйі оның басылғанын көрсетсе, таймерді белсендіруге ғана ауысады

// қосу үшін бір рет басыңыз, өшіру үшін қайтадан басыңыз, егер (buttonState == LOW) {timerState =! timerState; Serial.print («Таймер күйі»); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println («Pomodoro таймері басталды»); if (minutesCounter <11) {// егер ағымдағы екінші мән алдыңғы мәннен өзгеше болса, онда firstStepper.step (stepsPerRevolution); // қадамды 200 қадамға айналдырыңыз/1 айналым минутқа қарсы ++; Serial.print («minutesCounter is»); Serial.println (minutesCounter); }

if (11 <= minutesCounter && minutesCounter <21) {// егер ағымдағы екінші мән алдыңғы мәннен өзгеше болса, онда secondStepper.step (stepsPerRevolution); // қадамды 200 қадамға айналдырыңыз/1 айналым минутқа қарсы ++; Serial.print («minutesCounter is»); Serial.println (minutesCounter); }

if (21 <= minutesCounter && minutesCounter <31) {// егер ағымдағы екінші мән алдыңғы мәннен өзгеше болса, онда 3rdStepper.step (stepsPerRevolution); // қадамды 200 қадамға айналдырыңыз/1 айналым минутқа қарсы ++; Serial.print («minutesCounter is»); Serial.println (minutesCounter); }

if (31 <= minutesCounter && minutesCounter <1031) {// егер ағымдағы екінші мән алдыңғы мәннен өзгеше болса, онда firstStepperBack.step (-1); // қадамды артқа бұру, барлығы бір мезгілде іске қосылып тұрғандай көрінуі үшін 1 қадам ретімен secondStepperBack.step (-1); үшіншіStepperBack.step (-1); minutesCounter ++; 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 бар

Мен сағаттарым үшін параллелограммды құруды таңдадым. Қызыл еменнің бұл формасы мен материалдық таңдауы ортағасырлық заманауи жиһаздан алынған. Маған ең қиын болған нәрсе - бұл қадамды иллюминатор арқылы теру арқылы орнату.

Ұсынылған: