The Pomoduino Lag en Arduino-Powered Pomodoro Timer

The Pomoduino Lag en Arduino-Powered Pomodoro Timer / DIY

Pomodoro-teknikken Kutt gjennom prostrastering med disse Pomodoro-teknikkene Apps og programvare kutt gjennom utryddelse med disse Pomodoro-teknikkene Apps & Software Procrastination er en sykdom som gjennomsyrer studenter og arbeidere i alle verdenshjørner, og det smitter både amatører og fagfolk. Som forfatter, lider jeg av utsagn på daglig basis. Noen mennesker ... Les mer er et populært tidsstyringssystem som innebærer å bryte arbeidet i 25 minutters biter med 5 minutters hvile. Forskjellige programmer finnes for å hjelpe med dette, men hva om du vil bruke pomodoro-systemet mens du jobber borte fra datamaskinen din, eller mens du er på arbeidsbenken? Å lage en Arduino-drevet pomodoro-timer er et flott introduksjonsprosjekt 15 Great Arduino-prosjekter for nybegynnere 15 Great Arduino-prosjekter for nybegynnere Interessert i Arduino, men ikke sikker på hvor du skal begynne? Her er noen av våre beste Arduino-prosjekter for nybegynnere å komme i gang med! Les mer for å hjelpe deg med å lære deg rundt en Arduino, og vil faktisk resultere i noe nyttig.

Målet

Hvis du vil prøve å finne ut hvordan du konfigurerer dette før du ser fremover, er det det vi prøver å gjøre. Vi har tre lys; en for “arbeid,” en for “gå i stykker,” og et advarselslys. Arbeidslyset lyser i 25 minutter, og advarselslyset vil også være på de siste to minuttene av det intervallet. Etter 25 minutter vil arbeids- og varsellysene slås av, og pause lyset slås på i 5 minutter (advarselslyset vil igjen være på de siste to minuttene).

Også inkludert vil være en knapp som vil forsinke lysendringen i to minutter for å gi deg litt ekstra arbeidstid eller pause tid.

Hva trenger du

For dette prosjektet bruker vi de følgende delene - alt du bør ha i startpakken.

  • Arduino microcontroller (vi brukte en Mega, men Uno ville fungere fint også)
  • bread~~POS=TRUNC
  • USB-kabel
  • 6 ledninger
  • 3 x 330 ohm motstander
  • 3 x LED (vi har brukt grønn, gul og blå)
  • 1 trykknapp

Trinn 1: Stille alt opp

Sett hver LED-lampe inn i en annen kolonne på brødbrettet (det er enklest hvis de er plassert litt), og legg knappen litt lenger nede. Pass på at knappen vender mot høyre side. Det er to sett med to pinner på en enkelt side av knappen, og disse pinnene må være i samme rad.

Kjør ledninger fra pinnene 5, 7 og 13 til kolonnen som inneholder det negative benet i de blå, gule og grønne lysdiodene (det negative benet er den kortere av de to). Sett deretter motstand i samme kolonne som hvert positivt ben, og koble dem til den negative skinnen på siden av brødbrettet (den blå, selv om fargen egentlig ikke betyr noe, det er bare konvensjon å bruke blå for klarhet).

Kjør også en ledning fra den blå skinnen på brødbrettet til en av bena på knappen, og en annen ledning fra den andre siden (på samme side) til pin 2 på Arduino. Deretter males den blå skinnen i GND-pinnen på Arduino.

Her er et diagram som bør rydde opp forvirring:

Det er det! Nå videre til programmeringen.

Programmering av din Arduino

Nedenfor er koden for Pomoduino-timeren - les gjennom inline-kommentarene, da de forklarer hva hvert trinn i koden gjør.

 int grønn = 13; int gul = 7; int blå = 5; int ledStateGreen = LOW; int ledStateBlue = LOW; lang tidligereMillis = 0; langt intervall; int knappPin = 2; int buttonState = 1; bool presset = 0; lang pressetid = 0; int fase = 0; tomt oppsett () pinMode (grønn, UTGANG); pinMode (gul, OUTPUT); pinMode (blå, OUTPUT); pinMode (buttonPin, INPUT_PULLUP); digitalWrite (buttonPin, HIGH);  tomgangsløype () // oppdatering nåværende tid og tilstand av knapp usignert long currentMillis = millis (); int buttonState = digitalRead (buttonPin); // Mål tid siden siste knapp trykk lang fremgang = currentMillis - previousMillis; // Sjekk for å se om knappen har blitt trykket // i løpet av 2 sekunder siden siste trykk // (for å hindre at flere presser registreres) hvis ((pressTime - currentMillis)> 2000) if (buttonState == 0) pressed = 1; presse = currentMillis; else pressed = 0; // fase 0 er "work" fase // hvis knappen er trykket, legg 2 minutter til arbeidstimer hvis (fase == 0) hvis (trykket == 1 ) interval = 1620000; // hvis intervallet er over, registrer nåværende // tid for å måle neste intervall hvis (currentMillis - previousMillis> intervall) previousMillis = currentMillis; // sett grønne og blå LED-tilstander hvis (ledStateGreen == LOW) ledStateGreen = HIGH; ledStateBlue = LOW; else ledStateGreen = LOW; // bruke LED-statene til lysdioder // tilbakestill intervall og bytt til "break" phase digitalWrite (green, ledStateGreen); digitalWrite (blå, ledStateBlue); intervall = 1500000; buttonState = 1; fase = 1;  annet // hvis knappen er trykket, legg til 2 minutter for å bryte timeren hvis (trykket == 1) interval = 420000; // hvis intervallet er over, ta opp nåværende // tid for å måle neste intervall hvis (currentMillis - forrigeMillis> intervall) previousMillis = currentMillis; // sett blå og grønn LED-tilstand hvis (ledStateBlue == HIGH) ; ledStateBlue = LOW;  ellers ledStateBlue = HIGH; ledStateGreen = LOW; // bruk LED-statene til lysdioder // tilbakestill intervall og sett til "work" phase digitalWrite (green, ledStateGreen); digitalWrite (blå, ledStateBlue); intervall = 300000; buttonState = 1; fase = 0;  // beregne tiden igjen i intervallet usignert long timeLeft = (intervall-fremgang); // hvis det er mindre enn to minutter igjen, lyse opp gul LED hvis (timeLeft < 120000)  digitalWrite(yellow, HIGH);  else  digitalWrite(yellow, LOW);  // reset pressed variable pressed = 0; 

Merk: Når du tester dette, vil du sannsynligvis ikke vente i 25 minutter for å se om den fungerer. I videoen nedenfor har jeg intervaller satt til 5 sekunder for grønt, 2 sekunder for blått og 1 sekund for gult. Bruk et kortere intervall for å sikre at alt fungerer riktig før du bruker det for å holde oversikt over tid!

Når du har alt kablet opp og koden er inn i IDE, er du klar til å gå! Last opp skissen, og du vil ha en fungerende pomodoro-timer med en 2-minutters forsinkelsesknapp. Hvis advarselampen lyser og du trenger mer tid, bare trykk på knappen.

Du kan merke at knappen er koblet direkte til Arduino-inngangspinnen. Ved å bruke en av pullup-motstandene som er innebygd i Arduino, trenger du ikke å koble en ledning fra 5V-porten til knappen eller bruke en motstand i tråd med den. Du kan få mer informasjon om Arduino-referansen for digitale pinner.

Mer avanserte utfordringer

Hvis du har laget din Pomoduino og du ønsker å ta på noe litt mer avansert, kan du prøve noe av følgende:

  • Legg til en serie med lysdioder som lyser opp og tjene som en teller for antall ferdige arbeidsøkter
  • Gjør knappen legg to minutter til timeren for hver gang du trykker på den
  • Legg til en høyttaler og spill en støy når det er på tide å komme seg tilbake til jobb
  • Bruk et 9V batteri for å gjøre det bærbart
  • I stedet for å bruke et advarselslampe, blink det grønne eller blå lyset i et minutt før du bytter
  • Vis nedtelling på LED-skjerm

Andre flotte nybegynnerprosjekter

Hvis du er ny i Arduino, har vi mange morsomme opplæringsprogrammer for deg å ta på. Prøv en trafikklysregulator Arduino Programmering for nybegynnere: Trafikklyskontrolleren Arduino Programmering for nybegynnere: Trafikklyskontrolleren I forrige uke lærte vi om grunnstrukturen til et Arduino-program og tok en nærmere titt på "blink" -eksemplet. Forhåpentligvis tok du muligheten til å eksperimentere med kode, justere timingen. Denne gangen ... Les mer, en futuristisk LED-kube Hvordan lage en pulserende Arduino LED-kube som ser ut som den kom fra fremtiden Hvordan lage en pulserende Arduino LED-kube som ser ut som den kom fra fremtiden Hvis du har dabbled med noen nybegynner Arduino-prosjekter, men leter etter noe lite permanent og på et helt annet nivå, fantastisk, så er den ydmyke 4 x 4 x 4 LED-kuben ... Les mer, en soloppgangslarm Arduino nattlys og soloppgangsprosjekt Arduino nattlys og Sunrise Alarm Project I dag skal vi lage en soloppgangsvekkerklokke, som forsiktig og sakte vil vekke deg uten å benytte seg av en støtende støymaskin. Les mer eller et alarmsystem Hvordan lage et enkelt Arduino Alarmsystem Hvordan lage et enkelt Arduino Alarmsystem Oppdag bevegelse, og skrem deg så mye av en inntrenger med høylydende alarmlyder og blinkende lys. Lyder det morsomt? Selvfølgelig gjør det det. Det er målet med dagens Arduino-prosjekt, egnet ... Les mer. Hvis du bestemmer deg for å ta på en av de mer avanserte utfordringene som er nevnt ovenfor, gi oss beskjed om hvordan det går!

Utforsk mer om: Arduino, Time Management, Timer Software.