Taula de continguts:

Temporitzador Stepod Pomodoro: 3 passos (amb imatges)
Temporitzador Stepod Pomodoro: 3 passos (amb imatges)

Vídeo: Temporitzador Stepod Pomodoro: 3 passos (amb imatges)

Vídeo: Temporitzador Stepod Pomodoro: 3 passos (amb imatges)
Vídeo: 50/10 Pomodoro Timer ★︎ Cozy Room with Lofi Music for Relaxing, Studying and Working ★︎ 3 x 50min 2024, Desembre
Anonim
Image
Image
Pas 1: soldar i connectar el circuit fora del contenidor
Pas 1: soldar i connectar el circuit fora del contenidor

El Stepper Pomodoro és un temporitzador d’escriptori per ajudar-vos a gestionar la llista de tasques diàries dividint cada període de treball en segments de 30 minuts. Tanmateix, a diferència d’un temporitzador Pomodoro normal, no us fa ansietat en mostrar la quantitat de temps que queda. En lloc d’això, mostra aproximadament l’hora a través de la qual s’activa un dels tres dials. En no mostrar l'hora exacta, us permet centrar-vos en la tasca que porteu a terme, en lloc de comprovar constantment el temps que us queda. Aquest Pomodoro és perfecte per a aquells que necessiten una estructura lleugera i discreta per a la seva gestió de tasques.

Eines

• Soldador

• Decapants de filferro

• Tallador làser (o polidora segons com vulgueu crear els dials del temporitzador)

• Broca (he utilitzat una broca per perforar forats prou grans per a les esferes)

Materials

• 1 Arduino Uno

• 1 tauleta de pa de mida mitjana

• Ponts de 3 H (he utilitzat DRV8833, un escut del motor que m’ha estalviat temps i mals de cap)

• 3 motors pas a pas (he utilitzat passos NEMA 17)

• 1 botó

• 1 resistència de 220-1K ohm (qualsevol dins del rang és bo)

• Adaptador de CA / CC (he utilitzat un 12V, probablement massa gran per a aquesta quantitat de passos)

• Repartidor de potència

• Cable USB A-B

• Fils de taulers de pa

• Soldar

• Materials per a contenidors de temporitzador

• Acrílic per esferes

• Ungles o passadors metàl·lics per actuar com a braç estacionari del temporitzador

Pas 1: pas 1: soldar i connectar el circuit fora del contenidor

Per a aquest pas, vaig començar soldant tots els meus ponts H (si adquiriu el blindatge del motor, no hauríeu de soldar-los. Un cop tingueu un pont H per cada pas, podeu comprovar com estan connectats els vostres passos.

Els NEMA 17 són el que es coneix com a motors pas a pas bipolars, és a dir, que tenen dos (en lloc d’un) conjunt de bobines dins del motor que canvien de polaritat per permetre un moviment precís del motor. Els passos bipolars normalment tenen quatre cables i els passos polars normalment en tenen sis, cosa que ha complicat una mica les instruccions en línia. Tanmateix, podeu connectar un multímetre a dos cables i veure si estan connectats o no. Els passos NEMA 17 tenen el seu ordre de fils en ordre de color VERMELL, GROC, GRIS, VERD, sent el primer i el vermell i el gris el primer parell polar i el groc i el verd el segon parell polar. Si en qualsevol moment el pas a pas comença a crispar-se en lloc de completar el moviment esperat, és probable que els cables no estiguin polaritzats correctament al seu bessó o que un estigui desconnectat. Cada pas es controla a través de quatre pins de sortida que es connecten als ponts DRV8833 H. L'ordre de cablejat de l'entrada al DRV8833 és: IN1, IN2, alimentació, terra, IN3, IN4. A efectes de sortida, el NEMA només es connecta als quatre mitjans dels sis pins en l'ordre de: VERMELL, GRIS, GROC, VERD. Ara permet connectar l'alimentació. Tinc els meus NEMA als ports digitals 2-13.

Per alimentar-ho, he comprat un adaptador de 12 V CA / CC amb divisor per poder alimentar tant l'Arduino com tots els steppers. ADVERTÈNCIA: No connecteu els cables d’alimentació i de terra de l’Arduino que ja reben alimentació des del port a la placa de recepció que rep alimentació directa des de CA / CC. Fregireu el vostre tauler. Des de l'adaptador de 12V connectat a la paret, una part del divisor anava directament al port d'Arduino i l'altra al positiu i negatiu de la placa de pa.

Per últim, és hora de connectar el botó. Un costat del botó necessitarà tant l’alimentació (amb la nostra resistència empalmada) com el pin de sortida soldat (això també es pot fer des de la placa). L’altre passador serà el nostre terreny. Aquests tres cables s’han d’endollar: Alimentació amb resistència a 5 V, sortida a A0 i connexió a terra a la mateixa placa Arduino Uno.

A partir d’aquí hauríem de poder intentar controlar els steppers mitjançant aquest codi de prova stepper bàsic que es troba aquí. Aquesta explicació a Arduino.cc també proporciona una explicació més completa dels passos bi / unipolars si ho necessiteu. A continuació, entrem al codi del Pomodoro.

Pas 2: Pas 2: penjar codi i ajustar-lo a les vostres necessitats

Pas 2: pengeu codi i ajusteu-lo a les vostres necessitats
Pas 2: pengeu codi i ajusteu-lo a les vostres necessitats

A continuació es mostra el codi del meu Pomodoro amb botó, per personalitzar-lo segons la configuració, seguiu aquests passos:

1. Definiu quants passos per revolució té el vostre pas a pas personal (els NEMA 17 en tenen 200 i apareix al número enter constant anomenat stepsPerRevolution).

2. Estableix on entra el botó al botó Pin de la persona que truca constant.

3. Definiu d'on hauria de sortir el vostre arduino per comandar els steppers (aquestes parts poden variar més entre els tipus de pont H, ja que molts tenen biblioteques diferents que utilitzen).

4. Estableix la velocitat del pas en RPM a.setSpeed (tinc la meva configurada per a 1 rpm quan giri en sentit horari i 30 rpm quan giri en sentit antihorari).

5. Definiu quantes vegades voleu que giri cadascun dels vostres passos abans que es posi en marxa (els passos passen de deu minuts, de manera que giren deu vegades a 1 RPM).

6 Definiu quant de temps voleu que giri cap enrere.

#incloure

const int stepsPerRevolution = 200; // configuració constant de quants passos hi ha en cada revolució completa dels meus motors pas a pas

const int buttonPin = A0; // configurant la constant de l'entrada del meu botó

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // inicialitzeu la biblioteca pas a pas en determinats pins

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepper (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // reinicieu la biblioteca stepper en aquests pins per poder restablir rpm per quan aviseu que el temps ha caducat Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int comptant les revolucions completes dels steppers

int timerState = BAIX; // l'estat actual del temporitzador pomodoro (HIGH = activat, LOW = apagat / restablert) int buttonState; // la lectura actual del pin d'entrada int lastButtonState = HIGH; // la lectura anterior del pin d'entrada

// les següents variables són llargues sense signar perquè el temps, mesurat en mil·lisegons, // es convertirà ràpidament en un nombre més gran del que es pot emmagatzemar en un int. unsigned long lastDebounceTime = 0; // l'última vegada que es va alternar el pin de sortida sense signar llarg debounceDelay = 50; // el temps de rebut; augmenta si la sortida parpelleja

configuració nul·la () {

pinMode (buttonPin, INPUT_PULLUP); // estableix la constant del botó com a entrada

firstStepper.setSpeed (1); // Estableix la velocitat a 1 rpm per comptar 10 minuts per segon Stepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // Estableix la velocitat a 30 rpm per avisar que el temps ha expirat després que Pomodoro hagi completat secondStepperBack.setSpeed (30); thirdStepperBack.setSpeed (30);

Serial.begin (9600); // iniciar el monitor sèrie amb una velocitat de 9600 baud

}

bucle buit () {

// llegir l'estat del commutador en una variable local: int reading = digitalRead (buttonPin);

// comproveu si acabeu de prémer el botó

// (és a dir, l'entrada va de BAIX a ALT) i heu esperat // prou temps des de la darrera premsa per ignorar qualsevol soroll:

// Si l’interruptor ha canviat, a causa d’un soroll o d’una pressió:

if (reading! = lastButtonState) {// restableix el temporitzador de debouning lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// sigui quina sigui la lectura, ha estat allà durant més temps // que el retard de rebounce, així que preneu-lo com l'estat actual real:

// si l'estat del botó ha canviat:

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

// només canvieu l’activació del temporitzador si el nou estat del botó indica que s’ha premut

// premeu una vegada per activar, torneu a prémer per apagar si (buttonState == LOW) {timerState =! timerState; Serial.print ("L'estat del temporitzador és"); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println ("El temporitzador Pomodoro ha començat"); if (minutesCounter <11) {// si el segon valor actual és diferent del valor anterior, llavors FirstStepper.step (stepsPerRevolution); // Gireu pas a pas 200 passos / 1 revolució minuts Comptador ++; Serial.print ("minutesCounter és"); Serial.println (minutesCounter); }

if (11 <= minutesCounter && minutesCounter <21) {// si el segon valor actual és diferent del valor anterior, llavors SecondStepper.step (stepsPerRevolution); // Gireu pas a pas 200 passos / 1 rev minuts Minutador ++; Serial.print ("minutesCounter és"); Serial.println (minutesCounter); }

if (21 <= minutesCounter && minutesCounter <31) {// si el segon valor actual és diferent del valor anterior, thenStepper.step (stepsPerRevolution); // Gireu pas a pas 200 passos / 1 revolució minuts Comptador ++; Serial.print ("minutesCounter és"); Serial.println (minutesCounter); }

if (31 <= minutesCounter && minutesCounter <1031) {// si el segon valor actual és diferent del valor anterior, llavors FirstStepperBack.step (-1); // retrocedeix el pas a pas 1 pas en seqüència perquè aparegui com si tots s'executessin simultàniament secondStepperBack.step (-1); thirdStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter és"); Serial.println (minutesCounter); }} else {Serial.println ("El temporitzador Pomodoro està desactivat"); } // desa la lectura. La propera vegada a través del bucle, // serà l'últimButtonState: lastButtonState = lectura; }

Pas 3: Pas 3: conteniu els Steppers i Arduino si ho desitgeu

Pas 3: conteniu els Steppers i Arduino si ho desitgeu
Pas 3: conteniu els Steppers i Arduino si ho desitgeu
Pas 3: conteniu els Steppers i Arduino si ho desitgeu
Pas 3: conteniu els Steppers i Arduino si ho desitgeu
Pas 3: conteniu els Steppers i Arduino si ho desitgeu
Pas 3: conteniu els Steppers i Arduino si ho desitgeu

Vaig optar per crear una forma paral·lelograma per al meu rellotge. Aquesta forma i les opcions materials del roure vermell es van inspirar en els mobles moderns de mitjan segle. Una part amb la que vaig tenir més dificultats va ser encaixar els passos amb esferes a través de les seves portes perquè es veiés.

Recomanat: