Tabla de contenido:

Temporizador Pomodoro paso a paso: 3 pasos (con imágenes)
Temporizador Pomodoro paso a paso: 3 pasos (con imágenes)

Video: Temporizador Pomodoro paso a paso: 3 pasos (con imágenes)

Video: Temporizador Pomodoro paso a paso: 3 pasos (con imágenes)
Video: La verdad detrás del método Pomodoro 2024, Noviembre
Anonim
Image
Image
Paso 1: Circuito de soldadura y conexión fuera del contenedor
Paso 1: Circuito de soldadura y conexión fuera del contenedor

Stepper Pomodoro es un temporizador de escritorio que ayuda a administrar su lista de tareas diarias dividiendo cada período de trabajo en segmentos de 30 minutos. Sin embargo, a diferencia de un temporizador Pomodoro normal, no te pone ansioso al mostrar la cantidad de tiempo que queda. En cambio, muestra la hora aproximadamente a través de cuál de los tres diales está marcando. Al no mostrar la hora exacta, le permite concentrarse realmente en la tarea en cuestión, en lugar de verificar constantemente el tiempo restante. Este Pomodoro es perfecto para aquellos que necesitan una estructura ligera y discreta para la gestión de sus tareas.

Instrumentos

• Soldador

• Pelacables

• Cortadora láser (o lijadora dependiendo de cómo desee crear los diales del temporizador)

• Taladro (utilicé un taladro para perforar agujeros lo suficientemente grandes para los diales)

Materiales

• 1 Arduino Uno

• 1 protoboard de tamaño medio

• Puentes de 3 H (utilicé DRV8833, un protector de motor me habría ahorrado algo de tiempo y dolores de cabeza)

• 3 motores paso a paso (utilicé paso a paso NEMA 17)

• 1 botón

• 1 resistor de 220-1K ohmios (cualquiera dentro del rango es bueno)

• Adaptador AC / DC (utilicé un 12V, probablemente demasiado grande para esta cantidad de steppers)

• Divisor de potencia

• Cable USB A-B

• Cables de tablero

• Soldar

• Materiales para contenedor de temporizador

• Acrílico para diales

• Clavos o pasadores de metal para actuar como brazo fijo del temporizador

Paso 1: Paso 1: Circuito de soldadura y conexión fuera del contenedor

Para este paso, comencé soldando juntos todos mis puentes H (si compras el protector del motor, no deberías necesitar soldarlos. Una vez que tengas un puente H para cada paso a paso, puedes verificar cómo están conectados tus pasos.

Los NEMA 17 son lo que se conoce como motores paso a paso bipolares, lo que significa que tienen dos (en lugar de uno) conjuntos de bobinas dentro del motor que cambian la polaridad para permitir un movimiento preciso del motor. Los steppers bipolares normalmente tienen cuatro cables y los steppers polares normalmente tienen seis, esto complicó un poco las instrucciones en línea. Sin embargo, puede conectar un multímetro a dos cables y ver si están conectados o no. Los steppers NEMA 17 tienen su orden de cables en orden de color ROJO, AMARILLO, GRIS, VERDE, siendo el rojo y el gris el primer par polar y el amarillo y el verde el segundo par polar. Si en algún momento el paso a paso comienza a contraerse en lugar de completar el movimiento esperado, es probable que sus cables no estén polarizados correctamente de alguna manera con su gemelo o que uno esté desconectado. Cada paso a paso se controla a través de cuatro pines de salida que se conectan a los puentes DRV8833 H. El orden de cableado para la entrada al DRV8833 es: IN1, IN2, Power, Ground, IN3, IN4. Para propósitos de salida, el NEMA simplemente se conecta a los cuatro del medio de los seis pines en el orden de: ROJO, GRIS, AMARILLO, VERDE. Ahora conectemos la energía. Tengo mis NEMA en los puertos digitales 2-13.

Para alimentar esto, compré un adaptador de 12 V CA / CC con divisor para poder alimentar tanto el Arduino como todos los motores paso a paso. ADVERTENCIA: No conecte sus cables de alimentación y tierra del Arduino que ya recibe energía del puerto a la placa de prueba que recibe energía directa de CA / CC. Freirá tu tabla. Desde el adaptador de 12V enchufado a la pared, una parte del divisor fue directamente al puerto de Arduino y la otra al positivo y negativo de la placa de pruebas.

Por último, es hora de conectar el botón. Un lado del botón necesitará tanto energía (con nuestra resistencia empalmada) como el pin de salida soldado (esto también se puede hacer desde la placa de pruebas). El otro alfiler será nuestro suelo. Estos tres cables deben conectarse a: Alimentación con resistencia a 5 V, salida a A0 y tierra a tierra, todo en la placa Arduino Uno.

Desde aquí, deberíamos poder intentar controlar los steppers usando este código de prueba básico de stepper que se encuentra aquí. Esta explicación en Arduino.cc también ofrece una explicación más detallada de los motores paso a paso bi / unipolares si la necesita. ¡A continuación, entremos en el código del Pomodoro!

Paso 2: Paso 2: Cargar el código y ajustarlo a sus necesidades

Paso 2: Cargar el código y ajustarlo a sus necesidades
Paso 2: Cargar el código y ajustarlo a sus necesidades

A continuación se muestra el código de mi Pomodoro con el botón, para personalizarlo según su configuración, siga estos pasos:

1. Establezca cuántos pasos por revolución tiene su tipo de paso a paso personal (los NEMA 17 tienen 200 y se enumeran en el entero constante llamado stepsPerRevolution).

2. Establezca dónde está ingresando su botón en el número entero constante buttonPin de la persona que llama.

3. Establezca desde dónde debe salir su arduino para controlar los steppers (estas partes pueden variar más entre los tipos de puentes H, ya que muchos tienen diferentes bibliotecas que utilizan).

4. Configure la velocidad paso a paso en RPM en.setSpeed (tengo la mía configurada para 1 rpm cuando gira en el sentido de las agujas del reloj y 30 rpm cuando gira en el sentido contrario a las agujas del reloj).

5. Establezca cuántas veces desea que gire cada uno de sus steppers antes de que se mueva (mis steppers cuentan diez minutos, por lo que giran diez veces a 1 RPM).

6 Establezca cuánto tiempo desea que gire hacia atrás.

#incluir

const int stepsPerRevolution = 200; // establecer la constante de cuántos pasos hay en cada revolución completa de mis motores paso a paso

const int buttonPin = A0; // estableciendo constante de la entrada de mi botón

Paso a paso firstStepper (stepsPerRevolution, 2, 3, 4, 5); // inicializa la biblioteca paso a paso en ciertos pines

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepper (stepsPerRevolution, 10, 11, 12, 13); Paso a paso firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // reinicializar la biblioteca de pasos en estos pines para poder restablecer las rpm cuando se alerta que el tiempo ha expirado Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int contando revoluciones completas de steppers

int timerState = LOW; // el estado actual del temporizador pomodoro (HIGH = on, LOW = off / reset) int buttonState; // la lectura actual del pin de entrada int lastButtonState = HIGH; // la lectura anterior del pin de entrada

// las siguientes variables no tienen signo largo porque el tiempo, medido en milisegundos, // se convertirá rápidamente en un número mayor que el que se puede almacenar en un int. unsigned long lastDebounceTime = 0; // la última vez que se alteró el pin de salida unsigned long debounceDelay = 50; // el tiempo de rebote; aumentar si la salida parpadea

configuración vacía () {

pinMode (buttonPin, INPUT_PULLUP); // establece la constante del botón como entrada

firstStepper.setSpeed (1); // establece la velocidad a 1 rpm para contar 10 minutos por segundo paso a pasoStepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // establece la velocidad a 30 rpm para alertar que el tiempo ha expirado después de que Pomodoro haya completado secondStepperBack.setSpeed (30); ThirdStepperBack.setSpeed (30);

Serial.begin (9600); // iniciar el monitor en serie con una velocidad de 9600 baudios

}

bucle vacío () {

// lee el estado del conmutador en una variable local: int reading = digitalRead (buttonPin);

// verifica si acabas de presionar el botón

// (es decir, la entrada pasó de BAJA a ALTA), y ha esperado // lo suficiente desde la última vez que lo presionó para ignorar cualquier ruido:

// Si el interruptor cambió, debido a ruido o presionando:

if (reading! = lastButtonState) {// reinicia el temporizador antirrebote lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// cualquiera que sea la lectura, ha estado ahí por más tiempo // que el retardo de rebote, así que tómelo como el estado actual real:

// si el estado del botón ha cambiado:

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

// solo cambia la activación del temporizador si el nuevo estado del botón indica que fue presionado

// presione una vez para encender, presione nuevamente para apagar if (buttonState == LOW) {timerState =! timerState; Serial.print ("El estado del temporizador es"); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println ("El temporizador Pomodoro ha comenzado"); if (minutesCounter <11) {// si el segundo valor actual es diferente al valor anterior, entonces firstStepper.step (stepsPerRevolution); // gira paso a paso 200 pasos / 1 rev minutosCounter ++; Serial.print ("minutesCounter es"); Serial.println (contador de minutos); }

if (11 <= minutesCounter && minutesCounter <21) {// si el segundo valor actual es diferente al valor anterior, entonces secondStepper.step (stepsPerRevolution); // gira paso a paso 200 pasos / 1 rev minutosCounter ++; Serial.print ("minutesCounter es"); Serial.println (contador de minutos); }

if (21 <= minutesCounter && minutesCounter <31) {// si el segundo valor actual es diferente al valor anterior, entonces thirdStepper.step (stepsPerRevolution); // gira paso a paso 200 pasos / 1 rev minutosCounter ++; Serial.print ("minutesCounter es"); Serial.println (contador de minutos); }

if (31 <= minutesCounter && minutesCounter <1031) {// si el segundo valor actual es diferente al valor anterior, entonces firstStepperBack.step (-1); // retrocede paso a paso 1 paso en secuencia para que parezca que todos se están ejecutando simultáneamente secondStepperBack.step (-1); thirdStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter es"); Serial.println (contador de minutos); }} else {Serial.println ("El temporizador Pomodoro está apagado"); } // guarda la lectura. La próxima vez a través del ciclo, // será el lastButtonState: lastButtonState = reading; }

Paso 3: Paso 3: contenga los Steppers y Arduino si lo desea

Paso 3: contenga los Steppers y Arduino si lo desea
Paso 3: contenga los Steppers y Arduino si lo desea
Paso 3: contenga los Steppers y Arduino si lo desea
Paso 3: contenga los Steppers y Arduino si lo desea
Paso 3: contenga los Steppers y Arduino si lo desea
Paso 3: contenga los Steppers y Arduino si lo desea

Elegí crear una forma paralelogramo para mi reloj. Esta forma y las opciones de materiales del roble rojo se inspiraron en los muebles modernos de mediados de siglo. Una parte con la que tuve más dificultades fue colocar a los steppers con diales a través de sus ojos de buey para ser vistos.

Recomendado: