Агуулгын хүснэгт:

Помодоро таймер: 3 алхам (зурагтай)
Помодоро таймер: 3 алхам (зурагтай)

Видео: Помодоро таймер: 3 алхам (зурагтай)

Видео: Помодоро таймер: 3 алхам (зурагтай)
Видео: NOOBS PLAY GRANNY FROM START LIVE 2024, Арваннэгдүгээр
Anonim
Image
Image
Алхам 1: Контейнерээс гадуур гагнах, холбох хэлхээ
Алхам 1: Контейнерээс гадуур гагнах, холбох хэлхээ

Stepper Pomodoro бол ажлын цаг бүрийг 30 минутын сегмент болгон хувааж өдөр тутмын ажлын жагсаалтаа удирдахад туслах ширээний цаг хэмжигч юм. Гэсэн хэдий ч энгийн Помодоро таймераас ялгаатай нь үлдсэн хугацааг харуулснаар та санаа зовдоггүй. Үүний оронд ойролцоогоор гурван залгалтын аль нь дамжиж байгааг харуулна. Яг цагийг харуулахгүй байх нь үлдсэн цагийг байнга шалгаж байхаас илүүтэйгээр тухайн ажил дээрээ анхаарлаа төвлөрүүлэх боломжийг олгодог. Энэхүү Помодоро нь ажлын менежментийн хувьд хөнгөн, саадгүй бүтэцтэй хүмүүст тохиромжтой.

Багаж хэрэгсэл

• Гагнуурын төмөр

• Утас хуулагч

• Лазер таслагч (эсвэл таймерын залгуурыг хэрхэн үүсгэхийг хүсч байгаагаас хамааран зүлгүүр)

• Өрөм (би өрмийн дарагч ашиглан залгахад хангалттай том нүх гаргав)

Материал

• 1 Arduino Uno

• 1 ширхэг хагас хэмжээтэй талхны хавтан

• 3 H гүүр (би DRV8833 -ийг ашигласан, мотор бамбай нь надад цаг хугацаа, толгойны өвчин туссан)

• 3 Stepper мотор (би NEMA 17 steppers ашигласан)

• 1 товчлуур

• 1 220-1K ом эсэргүүцэл (хүрээний аль ч хэсэгт сайн)

• AC/DC адаптер (би 12V ашигладаг байсан, ийм хэмжээний stepper -д хэт том байж магадгүй)

• Цахилгаан тусгаарлагч

• USB A-B утас

• Талхны хавтангийн утас

• Гагнуур

• Таймерын савны материал

• Дуудлага хийх зориулалттай нийлэг

• Хумс эсвэл металл тээглүүр нь таймерын суурин гарны үүргийг гүйцэтгэнэ

Алхам 1: Алхам 1: Контейнерийн гадна гагнах, холбох хэлхээ

Энэ алхамыг хийхийн тулд би бүх H гүүрээ гагнахаас эхлэв (хэрэв та хөдөлгүүрийн бамбай худалдаж авбал эдгээрийг гагнах шаардлагагүй болно. Нэг гишгүүр бүрт H гүүртэй болсны дараа та stepper -үүдээ хэрхэн холбосон болохыг шалгаж болно.

ОБЕГ -ын 17 нь хоёр туйлт шаталсан мотор гэж нэрлэгддэг бөгөөд тэдгээр нь хөдөлгүүрийн нарийн хөдөлгөөнийг хангахын тулд туйлшралаа өөрчилдөг хоёр (нэг биш) ороомогтой гэсэн үг юм. Хоёр туйлт гишгүүр нь ихэвчлэн дөрвөн утастай, туйлт алхам нь ихэвчлэн зургаан утастай байдаг бөгөөд энэ нь онлайнаар өгсөн зааврыг арай төвөгтэй болгодог. Гэсэн хэдий ч та олон тоолуурыг хоёр утсанд холбож, холбосон эсэхийг шалгаж болно. ОБЕГ -ын 17 гишгүүрийн утасны захиалга нь улаан, саарал, саарал, ногоон гэсэн өнгөний дарааллаар хийгдсэн бөгөөд улаан, саарал нь туйлын эхний хос, шар, ногоон нь хоёр дахь туйлын хос байна. Хэрэв ямар ч үед stepper нь хүлээгдэж буй хөдөлгөөнийг дуусгахаас илүүтэйгээр мушгирч эхэлдэг бол таны утас ихэртэйгээ ямар нэгэн байдлаар зөв туйлшраагүй эсвэл нэг нь салгагдсан байдаг. Алхам бүрийг DRV8833 H гүүртэй холбосон дөрвөн гаралтын тээглүүрээр удирддаг. DRV8833 -ийн оролтын утаснуудын дараалал нь: IN1, IN2, Power, Ground, IN3, IN4. ОБЕГ нь гаралтын зориулалтаар зургаан голын дунд 4 -ийг улаан, саарал, шар, ногоон гэсэн дарааллаар холбодог. Одоо хүчийг холбоно уу. Би 2-13 дижитал портууд дээр өөрийн ОБЕГ -тай байна.

Үүнийг тэжээхийн тулд би 12V AC/DC адаптер худалдаж аваад Arduino болон бүх гишгүүрийг тэжээх боломжтой болсон. АНХААРУУЛГА: Боомтоос эрчим хүч хүлээн авсан Arduino -ийн цахилгаан болон газардуулгын утсыг AC/DC -ээс шууд тэжээл авдаг талбартай бүү холбоорой. Энэ нь таны самбарыг хуурах болно. Хананд залгагдсан 12V адаптераас салгагчийн нэг хэсэг нь шууд Arduino порт руу, нөгөө талхны хавтангийн эерэг ба сөрөг тал руу оржээ.

Эцэст нь товчлуурыг холбох цаг болжээ. Товчлуурын нэг талд хүч (манай эсэргүүцэл залгагдсан) болон гаралтын зүүг гагнах шаардлагатай болно (үүнийг талхны самбар дээрээс хийж болно). Нөгөө зүү нь бидний газар болно. Эдгээр гурван утсыг залгах ёстой: 5V эсэргүүцэлтэй хүчдэл, A0 гаралт, Arduino Uno самбар дээрх газардуулга.

Эндээс бид энд байгаа үндсэн stepper тестийн кодыг ашиглан steppers -ийг удирдахыг оролдох боломжтой байх ёстой. Arduino.cc дээрх энэ тайлбар нь танд хэрэгтэй бол би/нэг туйлт гишгүүрийн талаар илүү нарийвчилсан тайлбар өгдөг. Дараа нь Помодорогийн код руу орцгооё!

Алхам 2: Алхам 2: Кодыг байршуулж, хэрэгцээндээ тохируулна уу

Алхам 2: Кодыг байршуулж, өөрийн хэрэгцээнд нийцүүлэх
Алхам 2: Кодыг байршуулж, өөрийн хэрэгцээнд нийцүүлэх

Миний товчлууртай Pomodoro -ийн кодыг доор харуулав, үүнийг тохируулахын тулд дараах алхмуудыг дагана уу.

1. Хувийн алхмын төрөл нь нэг хувьсгалт хэдэн алхам болохыг тохируулна уу (ОБЕГ 17 нь 200 -тай бөгөөд үүнийг StepPerRevolution хэмээх тогтмол бүхэл тоонд жагсаасан болно).

2. Тогтвортой бүхэл тоогоор дууддаг buttonPin дээр таны товчлуур хаана оруулахыг тохируулна уу.

3. Stepper -ийг удирдахын тулд таны arduino хаанаас гарах ёстойг тохируулна уу (эдгээр хэсгүүд нь H гүүрний төрлүүдийн хооронд хамгийн их ялгаатай байж болно, учир нь олон номын сан өөр өөр номын сантай байдаг).

4. StepSpeed дахь RPM -д stepper -ийн хурдыг тохируулна уу (цагийн зүүний дагуу эргэхдээ 1 эрг / мин, цагийн зүүний эсрэг эргүүлэх үед 30 эрг / мин).

5. Хөлөө асаахаасаа өмнө гишгэгч бүрээ хэдэн удаа эргүүлэхийг хүсч байгаагаа тохируулаарай (миний алхамчид арван минут тоолдог тул 1 эргэлтэнд 10 удаа эргэдэг).

6 Үүнийг хэр удаан эргүүлэхийг хүсч байгаагаа тохируул.

#оруулах

const int stepsPerRevolution = 200; // миний stepper моторуудын бүтэн эргэлт бүрт хэдэн алхам хийх тогтмолыг тохируулах

const int buttonPin = A0; // миний товчлуурын оролтын тогтмол

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // тодорхой тээглүүр дээр stepper номын санг эхлүүлэх

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper гурав дахь Stepper (stepsPerRevolution, 10, 11, 12, 13); Stepper FirstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // эдгээр тээглүүр дээрх stepper номын санг дахин эхлүүлж, цаг хугацаа дууссаныг мэдэгдэх үед rpm -ийг дахин тохируулах боломжтой Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper гурав дахь StepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int stepper -ийн бүрэн хувьсгалыг тоолох

int timerState = LOW; // pomodoro таймерын одоогийн төлөв (HIGH = on, LOW = off/reset) int buttonState; // оролтын зүү int indButtonState = HIGH дээрх одоогийн уншилт; // оролтын зүүгээс өмнөх уншлага

// милисекундээр хэмжигдэх хугацаа, учир нь дараах хувьсагчид урт хугацааны тэмдэггүй байна.

// нь int дотор хадгалагдахаас хурдан том тоо болно. гарын үсэг зураагүй long lastDebounceTime = 0; // гаралтын зүү сүүлчийн удаа гарын үсэг зураагүй урт debounceDelay = 50; // татан буугдах хугацаа; гаралт нь анивчих тохиолдолд нэмэгдэнэ

хүчингүй тохиргоо () {

pinMode (buttonPin, INPUT_PULLUP); // товчлуурын тогтмолыг оролт болгон тохируулна

firstStepper.setSpeed (1); // алхам тутамд 10 минут тоолохын тулд хурдыг 1 эрг/ мин болгож тохируулнаStepper.setSpeed (1); ThirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // Помодоро secondStepperBack.setSpeed (30) -ийг дуусгасны дараа хугацаа дууссаныг анхааруулахын тулд хурдыг 30 эрг/ мин болгож тохируулна уу; гурав дахь StepperBack.setSpeed (30);

Цуваа эхлэх (9600); // цуваа дэлгэцийг 9600 baud хурдтайгаар эхлүүлэх

}

void loop () {

// шилжүүлэгчийн төлөвийг локал хувьсагч руу унших: int унших = 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) {// хэрэв одоогийн хоёр дахь утга нь өмнөх утгаас өөр байвал эхлээдStepper.step (stepsPerRevolution); // эргүүлэх алхам 200 алхам/1 эргэлт минут Тоолуур ++; Serial.print ("minutesCounter is"); Serial.println (минутын Тоолуур); }

if (11 <= minutesCounter && minutesCounter <21) {// хэрэв одоогийн хоёр дахь утга нь өмнөх утгаасаа ялгаатай бол secondStepper.step (stepsPerRevolution); // эргүүлэх алхам 200 алхам/1 эргэлт минут Тоолуур ++; Serial.print ("minutesCounter is"); Serial.println (минутын Тоолуур); }

if (21 <= minutesCounter && minutesCounter <31) {// хэрэв одоогийн байгаа хоёр дахь утга нь өмнөх утгаасаа ялгаатай байвал гурав дахь алхам (алхамPerRevolution); // эргүүлэх алхам 200 алхам/1 эргэлт минут Тоолуур ++; Serial.print ("minutesCounter is"); Serial.println (минутын Тоолуур); }

if (31 <= minutesCounter && minutesCounter <1031) {// хэрэв одоогийн хоёр дахь утга нь өмнөх утгаас ялгаатай бол эхлээдStepperBack.step (-1); // stepper-ийг 1 алхам дараалан эргүүлээд бүгд нэгэн зэрэг ажиллаж байгаа мэт харагдана secondStepperBack.step (-1); 3rdStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter is"); Serial.println (минутын Тоолуур); }} өөр {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 -ийг агуулсан болно

Би цагныхаа параллелограмм хэлбэрийг бий болгохоор шийдсэн. Улаан царс модны энэхүү хэлбэр, материалын сонголтыг дундад зууны дунд үеийн орчин үеийн тавилгаас санаа авсан болно. Надад хамгийн их бэрхшээлтэй байсан нэг зүйл бол алхаж буй хүмүүсийг нүх сүвээр нь залгах явдал байв.

Зөвлөмж болгож буй: