El Pomoduino: crea un temporizador Pomodoro con Arduino.

Anuncio

Anuncio
Anuncio

La técnica de pomodoro Elimine la dilación con estas aplicaciones y software de la técnica Pomodoro Elimine la dilación con estas aplicaciones y software de la técnica Pomodoro La procrastinación es una enfermedad que afecta a estudiantes y trabajadores en todos los rincones del mundo e infecta tanto a aficionados como a profesionales. Como escritor, sufro de procrastinación a diario. Algunas personas ... Read More es un popular sistema de administración del tiempo que implica dividir el trabajo en trozos de 25 minutos con un descanso de 5 minutos. Existen diversos programas para ayudar con esto, pero ¿qué sucede si desea utilizar el sistema pomodoro mientras trabaja lejos de su computadora o mientras se encuentra en su banco de trabajo? Hacer un temporizador pomodoro con Arduino es un gran proyecto introductorio 10 Grandes proyectos de Arduino para principiantes 10 Grandes proyectos de Arduino para principiantes Completar un proyecto de Arduino le proporciona una sensación de satisfacción como ninguna otra. La mayoría de los principiantes no están seguros de por dónde empezar, e incluso los proyectos para principiantes pueden parecer bastante desalentadores. Lea más para ayudarlo a aprender a manejar un Arduino, y en realidad resultará en algo útil.

La meta

En caso de que quiera intentar descubrir cómo configurar esto antes de mirar hacia el futuro, esto es lo que estamos tratando de hacer. Tendremos tres luces; uno para "trabajo", uno para "descanso" y una luz de advertencia. La luz de trabajo permanecerá encendida durante 25 minutos, y la luz de advertencia también estará encendida durante los últimos dos minutos de ese intervalo. Después de 25 minutos, las luces de trabajo y de advertencia se apagarán, y la luz de corte se encenderá durante 5 minutos (la luz de advertencia volverá a encenderse durante los dos últimos minutos).

También se incluirá un botón que retrasará el cambio de las luces durante dos minutos para darle un poco más de tiempo de trabajo o tiempo de descanso.

Que necesitas

Para este proyecto, utilizaremos las siguientes partes, todas las cuales debe tener en su kit de inicio.

  • Microcontrolador Arduino (utilizamos un Mega, pero Uno funcionaría muy bien también)
  • Tablero de circuitos
  • cable USB
  • 6 cables
  • 3 resistencias de 330 Ohm
  • 3 x LED (hemos usado verde, amarillo y azul)
  • 1 pulsador

Paso 1: configurar todo

Coloque cada uno de los LED en una columna diferente en la placa (es más fácil si están un poco espaciados) y coloque el botón un poco más abajo. Asegúrese de que el botón esté orientado en la dirección correcta: hay dos juegos de dos pines en un solo lado del botón, y esos pines deben estar en la misma fila.

pomoduino-setup1

Pase los cables de los pines 5, 7 y 13 a la columna que contiene la pata negativa de los LED azules, amarillos y verdes (la pata negativa es la más corta de las dos). A continuación, coloque una resistencia en la misma columna que cada pata positiva, y conéctelas al riel negativo del costado de la placa de prueba (la azul, aunque el color en realidad no importa, es una convención usar azul para mayor claridad) .

pomoduino-setup2

También ejecute un cable desde el riel azul en el tablero hasta una de las patas del botón, y otro cable desde la otra pata (en el mismo lado) hasta el pin 2 en el Arduino. Luego conecte a tierra el riel azul en el pin GND en el Arduino.

pomoduino-setup3

Aquí hay un diagrama que debería aclarar cualquier confusión:

pomoduino

¡Eso es! Ahora a la programación.

Programando su Arduino

A continuación se muestra el código del temporizador Pomoduino: lea los comentarios en línea, ya que explican qué está haciendo cada paso del código.

int green = 13; int yellow = 7; int blue = 5; int ledStateGreen = LOW; int ledStateBlue = LOW; long previousMillis = 0; long interval; int buttonPin = 2; int buttonState = 1; bool pressed = 0; long pressTime = 0; int phase = 0; void setup() { pinMode(green, OUTPUT); pinMode(yellow, OUTPUT); pinMode(blue, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); digitalWrite(buttonPin, HIGH); } void loop() { // update current time and state of button unsigned long currentMillis = millis(); int buttonState = digitalRead(buttonPin); // measure time since last button press long progress = currentMillis - previousMillis; // check to see if button has been pressed // over 2 seconds since last press // (to prevent multiple presses registering) if ((pressTime - currentMillis)>2000){ if(buttonState == 0){ pressed = 1; pressTime = currentMillis;} else{ pressed = 0;} } // phase 0 is "work" phase // if button has been pressed, add 2 minutes to work timer if (phase == 0){ if (pressed == 1){ interval = 1620000;} // if interval is over, record current // time for measuring next interval if(currentMillis - previousMillis>interval) { previousMillis = currentMillis; // set green and blue LED states if (ledStateGreen == LOW){ ledStateGreen = HIGH; ledStateBlue = LOW;} else { ledStateGreen = LOW;} // apply LED states to LEDs // reset interval and switch to "break" phase digitalWrite(green, ledStateGreen); digitalWrite(blue, ledStateBlue); interval = 1500000; buttonState = 1; phase = 1; } } else { // if button has been pressed, add 2 minutes to break timer if (pressed == 1){ interval = 420000;} // if interval is over, record current // time for measuring next interval if(currentMillis - previousMillis>interval) { previousMillis = currentMillis; // set blue and green LED states if (ledStateBlue == HIGH){; ledStateBlue = LOW; } else { ledStateBlue = HIGH; ledStateGreen = LOW;} // apply LED states to LEDs // reset interval and set to "work" phase digitalWrite(green, ledStateGreen); digitalWrite(blue, ledStateBlue); interval = 300000; buttonState = 1; phase = 0; } } // calculate time left in interval unsigned long timeLeft = (interval - progress); // if there are less than two minutes left, light up yellow LED if (timeLeft< 120000) { digitalWrite(yellow, HIGH); } else { digitalWrite(yellow, LOW); } // reset pressed variable pressed = 0; } 

Nota: cuando pruebas esto, probablemente no quieras esperar 25 minutos para ver si funciona. En el siguiente video, tengo los intervalos establecidos en 5 segundos para verde, 2 segundos para azul y 1 segundo para amarillo. Use un intervalo más corto para asegurarse de que todo esté funcionando correctamente antes de usarlo para controlar el tiempo.

Una vez que tenga todo conectado y el código ingresado en el IDE, ¡ya está listo! Suba el boceto y tendrá un temporizador pomodoro en funcionamiento con un botón de retardo de 2 minutos. Si la luz de advertencia se enciende y necesita más tiempo, simplemente presione el botón.

Puede observar que el botón está conectado directamente al pin de entrada Arduino. Al usar una de las resistencias pullup integradas en el Arduino, no necesita ejecutar un cable desde el puerto de 5V al botón o usar una resistencia en línea con él. Puede obtener más información sobre la referencia de Arduino para los pines digitales.

Retos más avanzados

Si has creado tu Pomoduino y estás buscando algo ligeramente más avanzado, puedes probar cualquiera de los siguientes:

  • Agregue una secuencia de LED que se encienda y sirva como un contador de la cantidad de sesiones de trabajo completadas
  • Haga que el botón agregue dos minutos al temporizador cada vez que lo presione
  • Agregue un parlante y haga ruido cuando llegue el momento de volver al trabajo
  • Usa una batería de 9V para que sea portátil
  • En lugar de utilizar una luz de advertencia, parpadee la luz verde o azul durante unos minutos antes de cambiar
  • Muestra una cuenta regresiva en una pantalla LED

Otros grandes proyectos para principiantes

Si eres nuevo en Arduino, tenemos muchos y divertidos tutoriales para que tomes. Pruebe un controlador de semáforo Programación de Arduino para principiantes: el controlador de semáforo Programación de Arduino para principiantes: el controlador de semáforo La semana pasada, aprendimos sobre la estructura básica de un programa Arduino y echamos un vistazo más de cerca al ejemplo de "parpadeo". Con suerte aprovechó la oportunidad para experimentar con el código, ajustando los tiempos. Esta vez, ... Leer más, un cubo LED futurista Cómo hacer un cubo LED Arduino pulsante que parece venir del futuro Cómo hacer un cubo LED Arduino pulsante que parece que viene del futuro Si has incursionado con algunos proyectos para principiantes de Arduino, pero están buscando algo un poco permanente y en otro nivel impresionante, entonces el humilde cubo de 4 x 4 x 4 LED ... Leer más, una alarma de amanecer Arduino Night Light y Sunrise Alarm Project Proyecto de alarma Arduino Night Light y Sunrise Hoy haremos un despertador de amanecer, que lo despertará lenta y despacio sin recurrir a una máquina ofensiva para hacer ruido. Lea más, o un sistema de alarma Cómo hacer un sistema simple de alarma Arduino Cómo hacer un sistema simple de alarma Arduino Detecte el movimiento y luego asuste a un intruso con un sonido de alarma aguda y luces parpadeantes. Suena divertido? Claro que lo hace. Ese es el objetivo del proyecto Arduino de hoy, adecuado ... Leer más. Si decides enfrentarte a uno de los desafíos más avanzados enumerados anteriormente, ¡cuéntanos cómo funciona!

In this article