Innholdsfortegnelse:

Stepper Pomodoro Timer: 3 Steps (med bilder)
Stepper Pomodoro Timer: 3 Steps (med bilder)

Video: Stepper Pomodoro Timer: 3 Steps (med bilder)

Video: Stepper Pomodoro Timer: 3 Steps (med bilder)
Video: getting 10k steps a day has been so easy #fitness #fitnessjourney #homegym 2024, Juli
Anonim
Image
Image
Trinn 1: Lodding og tilkobling av krets utenfor beholderen
Trinn 1: Lodding og tilkobling av krets utenfor beholderen

Stepper Pomodoro er en skrivebordstimer for å hjelpe en med å administrere sin daglige oppgaveliste ved å dele hver arbeidsperiode i segmenter på 30 minutter. I motsetning til en vanlig Pomodoro -timer, gjør det deg imidlertid ikke engstelig ved å vise hvor lang tid det er igjen. I stedet viser tiden omtrent hvilken av de tre ringene som tikker. Ved ikke å vise det nøyaktige klokkeslettet, lar du deg faktisk fokusere på oppgaven, snarere enn å konstant sjekke tiden igjen. Denne Pomodoro er perfekt for de som trenger en lett og diskret struktur for oppgavehåndteringen.

Verktøy

• Loddejern

• Wire strippere

• Laserskjærer (eller slipemaskin avhengig av hvordan du vil lage urskiven til timeren)

• Drill (jeg brukte en borepresse til å slå hull som var store nok til hjulene)

Materialer

• 1 Arduino Uno

• 1 halvstort brødbrett

• 3 H broer (jeg brukte DRV8833, et motorskjold ville ha spart meg for litt tid og hodepine)

• 3 trinnmotorer (jeg brukte NEMA 17 stepper)

• 1 knapp

• 1 220-1K ohm motstand (alt innenfor rekkevidde er bra)

• AC/DC -adapter (jeg brukte en 12V, sannsynligvis for stor for denne mengden stepper)

• Kraftdeler

• USB A-B-ledning

• Brødbrettsledninger

• Lodding

• Materialer til beholder med timer

• Akryl for urskiver

• Spiker eller metallpinner for å fungere som en stasjonær tidsur

Trinn 1: Trinn 1: Lodding og tilkobling av krets utenfor beholderen

I dette trinnet begynte jeg med å lodde sammen alle mine H -broer (hvis du kjøper motorskjoldet, burde du ikke trenge å lodde disse. Når du har en H -bro for hver stepper, kan du sjekke hvordan trinnene dine er koblet.

NEMA 17 -ene er det som er kjent som bipolare trinnmotorer, noe som betyr at de har to (i stedet for en) spoler i motoren som endrer polaritet for å muliggjøre presis bevegelse av motoren. Bipolare steppere har normalt fire ledninger og Polar stepper har normalt seks, dette kompliserte instruksjonene litt på nettet. Du kan imidlertid feste en multimeter til to ledninger og se om de er tilkoblet eller ikke. NEMA 17 stepper har sin trådrekkefølge i RØD, GUL, GRÅ, GRØNN farge, med rødt og grått som det første polparet og det gule og grønne er det andre polparet. Hvis stepperen på et tidspunkt begynner å rykke i stedet for å fullføre den forventede bevegelsen, er det sannsynlig at ledningene på en eller annen måte ikke er korrekt polarisert til tvillingen eller at en er koblet fra. Hver stepper styres via fire utgangspinner som kobles til DRV8833 H -broene. Ledningsrekkefølgen for inngangen til DRV8833 er: IN1, IN2, Power, Ground, IN3, IN4. For utgangsformål kobler NEMA seg bare til de fire midterste av de seks pinnene i rekkefølgen: RØD, GRÅ, GUL, GRØNN. La oss nå koble til strøm. Jeg har mine NEMAer på digitale porter 2–13.

For å drive dette kjøpte jeg en 12V AC/DC -adapter med splitter for å kunne drive både Arduino og alle trinnene. ADVARSEL: Ikke koble strøm- og jordledningene fra Arduino som allerede mottar strøm fra porten til brødbrettet som mottar direkte strøm fra AC/DC. Det vil steke brettet ditt. Fra 12V -adapteren som var koblet til veggen, gikk den ene delen av splitteren rett til Arduino -porten og den andre til det positive og negative på brødbrettet.

Til slutt er det på tide å koble til knappen. Den ene siden av knappen trenger både strøm (med motstanden spleiset inn) så vel som utgangsstiften loddet på (dette kan også gjøres fra brødbrettet). Den andre pinnen blir vår bakken. Disse tre ledningene bør kobles til: Strøm med motstand til 5V, utgang til A0, og jord til jord alt på selve Arduino Uno -kortet.

Herfra burde vi være i stand til å prøve å kontrollere stepperne ved hjelp av denne grunnleggende stepper testkoden som finnes her. Denne forklaringen på Arduino.cc gir også en mer grundig forklaring av bi/unipolare steppers hvis du trenger det. La oss deretter komme inn i koden for Pomodoro!

Trinn 2: Trinn 2: Last opp kode og juster den etter dine behov

Trinn 2: Last opp kode og juster den etter dine behov
Trinn 2: Last opp kode og juster den etter dine behov

Nedenfor er koden for min Pomodoro med knapp, for å tilpasse den til oppsettet ditt, følg disse trinnene:

1. Angi hvor mange trinn per omdreining din personlige stepper type har (NEMA 17s har 200 og det er oppført i det konstante heltallet som heter stepsPerRevolution).

2. Angi hvor knappen skal skrives inn i knappen for konstanttall som ringer opp PinPin.

3. Angi hvor din arduino skal komme fra for å styre stepperne (disse delene kan variere mest mellom H -brotyper, siden mange har forskjellige biblioteker de bruker).

4. Sett trinnhastigheten i o / min i.setSpeed (jeg har min satt til 1 o / min når du snur med klokken og 30 o / min når du snur mot klokken).

5. Angi hvor mange ganger du vil at hver av stepperne skal snu før den går videre (stepperne mine teller ti minutter, så de roterer ti ganger med 1 o / min).

6 Angi hvor lenge du vil at den skal rotere bakover.

#inkludere

const int stepsPerRevolution = 200; // sette konstant hvor mange trinn det er i hver full omdreining av mine steppermotorer

const int buttonPin = A0; // innstillingskonstant for min knappinngang

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // initialiser stepper -biblioteket på visse pins

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepper (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // reinitialiser stepper -biblioteket på disse pinnene for å kunne tilbakestille turtallet for når du varsler om at tiden er utløpt Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int teller fulle revolusjoner av stepper

int timerState = LAV; // gjeldende tilstand for pomodoro -timeren (HIGH = on, LOW = off/reset) int buttonState; // gjeldende avlesning fra inngangspinnen int lastButtonState = HIGH; // forrige lesning fra inndatapinnen

// følgende variabler er usignerte lange fordi tiden, målt i milisekunder, // vil raskt bli et større tall enn det som kan lagres i en int. unsigned long lastDebounceTime = 0; // siste gang utgangspinnen ble byttet usignert lang debounceDelay = 50; // avvisningstiden; øke hvis utgangen blinker

ugyldig oppsett () {

pinMode (buttonPin, INPUT_PULLUP); // sett konstant knapp som inngang

firstStepper.setSpeed (1); // sett hastigheten til 1 rpm for å telle 10 minutter per stepper secondStepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // sett hastigheten til 30 o/ min for å varsle om at tiden er utløpt etter at Pomodoro har fullført secondStepperBack.setSpeed (30); thirdStepperBack.setSpeed (30);

Serial.begin (9600); // start seriell skjerm med en baudhastighet på 9600

}

void loop () {

// les tilstanden til bryteren til en lokal variabel: int reading = digitalRead (buttonPin);

// sjekk om du nettopp trykket på knappen

// (dvs. inngangen gikk fra LAV til HØY), og du har ventet // lenge nok siden forrige trykk for å ignorere støy:

// Hvis bryteren endret seg på grunn av støy eller trykk:

if (reading! = lastButtonState) {// reset the thebouncing timer lastDebounceTime = millis (); } hvis ((millis () - lastDebounceTime)> debounceDelay) {// uansett lesing er på, har det vært der lenger // enn forsinkelsen, så ta det som den faktiske nåværende tilstanden:

// hvis knappestatusen er endret:

if (reading! = buttonState) {buttonState = reading;

// bare bytte timer -aktiveringen hvis den nye knappen viser at den ble trykket

// trykk én gang for å slå på, trykk igjen for å slå av hvis (buttonState == LOW) {timerState =! timerState; Serial.print ("Timer State is"); Serial.println (timerState); }}}

hvis (timerState == HIGH) {

Serial.println ("Pomodoro -timeren har begynt"); if (minutesCounter <11) {// hvis gjeldende andre verdi er forskjellig fra forrige verdi, så firstStepper.step (stepsPerRevolution); // sving stepper 200 trinn/1 omdreininger Minutter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (11 <= minutesCounter && minutesCounter <21) {// hvis gjeldende andre verdi er forskjellig fra den forrige verdien, så secondStepper.step (stepsPerRevolution); // sving stepper 200 trinn/1 omdreininger Minutter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (21 <= minutesCounter && minutesCounter <31) {// hvis gjeldende andre verdi er annerledes enn den forrige verdien, så thirdStepper.step (stepsPerRevolution); // sving stepper 200 trinn/1 omdreininger Minutter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (31 <= minutesCounter && minutesCounter <1031) {// hvis gjeldende andre verdi er forskjellig fra den forrige verdien, så firstStepperBack.step (-1); // snu stepper tilbake 1 trinn i rekkefølge for å se ut som om alle kjører samtidig secondStepperBack.step (-1); thirdStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }} else {Serial.println ("Pomodoro -timeren er slått av"); } // lagre avlesningen. Neste gang gjennom løkken, // blir det lastButtonState: lastButtonState = reading; }

Trinn 3: Trinn 3: Inneholder Stepper og Arduino hvis du ønsker det

Trinn 3: Inneholder Steppers og Arduino hvis du ønsker det
Trinn 3: Inneholder Steppers og Arduino hvis du ønsker det
Trinn 3: Inneholder Steppers og Arduino hvis du ønsker det
Trinn 3: Inneholder Steppers og Arduino hvis du ønsker det
Trinn 3: Inneholder Steppers og Arduino hvis du ønsker det
Trinn 3: Inneholder Steppers og Arduino hvis du ønsker det

Jeg valgte å lage en parallellogramform for klokken min. Denne formen og materialvalgene til rød eik ble inspirert av moderne møbler fra midten av århundret. En del jeg hadde mest problemer med var å montere stepperne med urskiver gjennom portholene for å bli sett fra.

Anbefalt: