Sadržaj:

Steper Pomodoro mjerač vremena: 3 koraka (sa slikama)
Steper Pomodoro mjerač vremena: 3 koraka (sa slikama)

Video: Steper Pomodoro mjerač vremena: 3 koraka (sa slikama)

Video: Steper Pomodoro mjerač vremena: 3 koraka (sa slikama)
Video: Miletov cuveni pad sa bicikla. :D 2024, Srpanj
Anonim
Image
Image
Korak 1: Lemljenje i spojni krug izvan spremnika
Korak 1: Lemljenje i spojni krug izvan spremnika

Stepper Pomodoro je stolni mjerač vremena koji pomaže u upravljanju popisom dnevnih zadataka razbijajući svako razdoblje rada u segmente od 30 minuta. Međutim, za razliku od uobičajenog Pomodoro mjerača vremena, ne čini vas uznemirenim pokazujući preostalo vrijeme. Umjesto toga, prikazuje vrijeme otprilike kroz koji od tri brojača otkucava. Ne pokazujući točno vrijeme omogućuje vam da se zapravo usredotočite na zadatak koji imate, a ne da stalno provjeravate preostalo vrijeme. Ovaj Pomodoro savršen je za one kojima je potrebna lagana i nenametljiva struktura za upravljanje zadacima.

Alati

• Lemilica

• Skidači žica

• Laserski rezač (ili brusilica, ovisno o tome kako želite stvoriti brojčanike timera)

• Bušilica (upotrijebio sam bušilicu za bušenje rupa dovoljno velikih za brojčanike)

Materijali

• 1 Arduino Uno

• 1 ploča veličine pola

• 3 H mosta (koristio sam DRV8833, motorni štit bi mi uštedio neko vrijeme i glavobolje)

• 3 koračna motora (koristio sam stepere NEMA 17)

• 1 gumb

• 1 220-1K ohmski otpornik (svaki unutar dometa je dobar)

• AC/DC adapter (koristio sam 12V, vjerojatno prevelik za ovu količinu stepera)

• Razdjelnik snage

• USB A-B žica

• Žice za razvojnu ploču

• Lemljenje

• Materijali za spremnik mjerača vremena

• Akril za biranje

• Čavli ili metalne igle djeluju kao nepomični krak mjerača vremena

Korak 1: Korak 1: Lemljenje i spojni krug izvan spremnika

Za ovaj korak započeo sam lemljenjem svih svojih H mostova (ako kupite štitnik motora, ne morate ih lemiti. Nakon što za svaki steper imate H most, možete provjeriti kako su ožičeni vaši steperi.

NEMA 17 su poznati kao bipolarni koračni motori, što znači da imaju dva (umjesto jednog) skupa zavojnica unutar motora koji mijenjaju polaritet kako bi omogućili precizno kretanje motora. Bipolarni steperi obično imaju četiri žice, a Polarni stepenici obično šest, što je malo zakompliciralo upute na internetu. Međutim, možete priključiti višemetarski mjerač na dvije žice i vidjeti jesu li spojeni ili nisu. Steperi NEMA 17 imaju redoslijed žica u CRVENOJ, ŽUTOJ, SIVOJ, ZELENOJ boji, pri čemu su crvena i siva prvi polarni par, a žuta i zelena drugi polarni par. Ako se u bilo kojem trenutku steper počne trzati, a ne dovršiti očekivano kretanje, velika je vjerojatnost da vaše žice nekako nisu ispravno polarizirane na svog blizanca ili je jedna od njih isključena. Svakim korakom upravlja se putem četiri izlazna pina koji se spajaju na mostove DRV8833 H. Redoslijed ožičenja za ulaz na DRV8833 je: IN1, IN2, Napajanje, Uzemljenje, IN3, IN4. U svrhe izlaza, NEMA se samo povezuje sa srednja četiri od šest pinova po redoslijedu: CRVENA, SIVA, ŽUTA, ZELENA. Sada spojimo napajanje. Imam svoje NEMA -e na digitalnim priključcima 2–13.

Za napajanje sam kupio 12V AC/DC adapter s razdjelnikom kako bih mogao napajati i Arduino i sve stepere. UPOZORENJE: Nemojte povezivati žice za napajanje i uzemljenje s Arduina koji već prima napajanje iz priključka na matičnu ploču koja prima izravno napajanje iz AC/DC -a. Pržit će vam ploču. Iz 12V adaptera koji je priključen na zid jedan dio razdjelnika išao je ravno do luke Arduina, a drugi do pozitivnog i negativnog dijela ploče za kruh.

Na kraju, vrijeme je da spojite gumb. S jedne strane gumba trebat će i napajanje (s ugrađenim otpornikom), kao i izlazni pin zalemljen (to se može učiniti i s matične ploče). Drugi pin će biti naše tlo. Ove tri žice trebaju biti priključene na: Napajanje s otpornikom na 5V, izlaz na A0 i uzemljenje sve na samoj ploči Arduino Uno.

Odavde bismo trebali pokušati kontrolirati stepere pomoću ovog osnovnog koda koračnog testa koji se ovdje nalazi. Ovo objašnjenje na Arduino.cc također daje temeljitije objašnjenje bi/unipolarnih stepera ako vam zatreba. Slijedi ulaz u kod za Pomodoro!

Korak 2: Korak 2: Prijenos koda i njegovo prilagođavanje vašim potrebama

Korak 2: Učitajte kôd i prilagodite ga svojim potrebama
Korak 2: Učitajte kôd i prilagodite ga svojim potrebama

Ispod je kôd za moj Pomodoro s gumbom, kako biste ga prilagodili vašim postavkama, slijedite ove korake:

1. Postavite koliko koraka po okretaju ima vaš osobni tip koraka (NEMA 17 ima 200 i navedeno je u konstantnom cijelom broju koji se naziva stepsPerRevolution).

2. Postavite mjesto na koje vaš gumb unosi u konstantnom cijelom broju caller buttonPin.

3. Postavite odakle bi vaš arduino trebao izlaziti da zapovijeda steperima (ti se dijelovi mogu najviše razlikovati između tipova H mostova jer mnogi imaju različite knjižnice koje koriste).

4. Podesite koračnu brzinu u RPM -ovima u.setSpeed (ja sam postavio 1 okretaj u minuti pri okretanju u smjeru kazaljke na satu i 30 o / min pri okretanju u smjeru suprotnom od kazaljke na satu).

5. Postavite koliko puta želite da se svaki vaš steper okrene prije nego što krene dalje (moji steperi broje deset minuta pa se okreću deset puta pri 1 RPM).

6 Postavite koliko dugo želite da se rotira unatrag.

#uključi

const int stepsPerRevolution = 200; // postavljanje konstante koliko koraka ima u svakom punom okretu mojih koračnih motora

const int buttonPin = A0; // postavljanje konstante unosa s moje tipke

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // inicijaliziranje knjižnice koraka na određenim pinovima

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepper (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // ponovno inicijaliziranje knjižnice koraka na ovim pinovima kako bi se moglo poništiti broj okretaja u minuti kada se upozori da je vrijeme isteklo Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (koraciPerRevolution, 10, 11, 12, 13);

int minuteCounter = 0; // int brojanje punih okretaja koraka

int timerState = LOW; // trenutno stanje pomodoro timera (HIGH = on, LOW = off/reset) int buttonState; // trenutno očitanje s ulaznog pina int lastButtonState = HIGH; // prethodno očitavanje s ulaznog pina

// sljedeće varijable su bez znakova jer je vrijeme, mjereno u milisekundama, // brzo će postati veći broj nego što se može pohraniti u int. unsigned long lastDebounceTime = 0; // zadnji put kad je izlazni pin preklopljen unsigned long debounceDelay = 50; // vrijeme debounce; povećati ako izlaz treperi

void setup () {

pinMode (buttonPin, INPUT_PULLUP); // postavlja konstantu gumba kao ulaz

firstStepper.setSpeed (1); // postavimo brzinu na 1 o/ min za brojanje 10 minuta po steperu secondStepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // postavite brzinu na 30 o/ min radi upozorenja da je vrijeme isteklo nakon što je Pomodoro dovršio secondStepperBack.setSpeed (30); thirdStepperBack.setSpeed (30);

Serial.begin (9600); // pokretanje serijskog monitora s brzinom prijenosa od 9600

}

void loop () {{100} {101}

// čita stanje prekidača u lokalnu varijablu: int reading = digitalRead (buttonPin);

// provjeravate jeste li samo pritisnuli gumb

// (tj. unos je prešao s LOW na HIGH), a vi ste čekali // dovoljno dugo od zadnjeg pritiska da zanemarite bilo kakvu buku:

// Ako se prekidač promijenio zbog buke ili pritiska:

if (čitanje! = lastButtonState) {// resetiranje mjerača debouncing lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// bez obzira na očitanje, tamo je bilo duže // od kašnjenja debounce, pa ga uzmite kao stvarno trenutno stanje:

// ako se stanje gumba promijenilo:

if (čitanje! = buttonState) {buttonState = čitanje;

// prebacuje aktivaciju timera samo ako novo stanje gumba pokazuje da je pritisnuto

// pritisnite jednom za uključivanje, pritisnite ponovno za isključivanje if (buttonState == LOW) {timerState =! timerState; Serial.print ("Stanje timera je"); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println ("Pomodoro timer je počeo"); if (minutesCounter <11) {// ako je trenutna druga vrijednost različita od prethodne vrijednosti tada firstStepper.step (stepsPerRevolution); // okrenite steper 200 koraka/1 okretaj minutaCounter ++; Serial.print ("brojač minuta je"); Serial.println (brojač minuta); }

if (11 <= minutesCounter && minutesCounter <21) {// ako je trenutna druga vrijednost različita od prethodne vrijednosti onda secondStepper.step (stepsPerRevolution); // okrenite steper 200 koraka/1 okretaj minutaCounter ++; Serial.print ("brojač minuta je"); Serial.println (brojač minuta); }

if (21 <= minutesCounter && minutesCounter <31) {// ako je trenutna druga vrijednost različita od prethodne vrijednosti then thirdStepper.step (stepsPerRevolution); // okrenite steper 200 koraka/1 okretaj minutaCounter ++; Serial.print ("brojač minuta je"); Serial.println (brojač minuta); }

if (31 <= minutesCounter && minutesCounter <1031) {// ako je trenutna druga vrijednost različita od prethodne vrijednosti tada firstStepperBack.step (-1); // okrenite steper unatrag 1 korak u nizu da biste izgledali kao da svi rade istovremeno secondStepperBack.step (-1); thirdStepperBack.step (-1); brojač minuta ++; Serial.print ("Brojač minuta je"); Serial.println (brojač minuta); }} else {Serial.println ("Pomodoro timer je isključen"); } // spremi čitanje. Sljedeći put kroz petlju, // to će biti lastButtonState: lastButtonState = reading; }

Korak 3: Korak 3: Sadržite Steppere i Arduino ako želite

Korak 3: Sadržite Steppere i Arduino ako želite
Korak 3: Sadržite Steppere i Arduino ako želite
Korak 3: Sadržite Steppere i Arduino ako želite
Korak 3: Sadržite Steppere i Arduino ako želite
Korak 3: Sadržite Steppere i Arduino ako želite
Korak 3: Sadržite Steppere i Arduino ako želite

Odlučio sam stvoriti paralelografski oblik za svoj sat. Ovaj oblik i odabir materijala za crveni hrast inspirirani su modernim namještajem iz sredine stoljeća. Jedan dio s kojim sam imao najvećih poteškoća bio je postavljanje stepera s brojčanicima kroz njihove prozore za gledanje.

Preporučeni: