Le Pomoduino: faire un minuteur Pomodoro alimenté par Arduino

Publicité

Publicité
Publicité

La technique du pomodoro Couper à travers la procrastination avec ces applications et logiciels Pomodoro Couper à travers la procrastination avec ces applications et logiciels Pomodoro La procrastination est une maladie qui envahit les étudiants et les travailleurs aux quatre coins du monde et infecte les amateurs et les professionnels. En tant qu'écrivain, je souffre de la procrastination sur une base quotidienne. Certaines personnes ... Read More est un système de gestion du temps populaire qui consiste à briser le travail en morceaux de 25 minutes avec un repos de 5 minutes. Divers logiciels existent pour vous aider, mais que se passe-t-il si vous voulez utiliser le système pomodoro pendant que vous travaillez loin de votre ordinateur ou lorsque vous êtes sur votre établi? Faire un minuteur pomodoro alimenté par Arduino est un excellent projet d'introduction 10 Grands projets Arduino pour les débutants 10 Grands projets Arduino pour les débutants Compléter un projet Arduino vous donne un sentiment de satisfaction pas comme les autres. La plupart des débutants ne savent pas par où commencer, et même les projets de débutants peuvent sembler décourageants. Lire la suite pour vous aider à apprendre votre chemin autour d'un Arduino, et se traduira effectivement quelque chose d'utile.

Le but

Dans le cas où vous voudriez essayer de comprendre comment mettre en place ceci avant de regarder en avant, voici ce que nous essayons de faire. Nous aurons trois lumières; un pour "travail", un pour "pause", et un voyant d'avertissement. Le voyant de travail reste allumé pendant 25 minutes et le voyant s'allume également pendant les deux dernières minutes de cet intervalle. Au bout de 25 minutes, les feux de travail et d'avertissement s'éteindront, et le voyant de pause s'allumera pendant 5 minutes (le témoin s'allumera de nouveau pendant les deux dernières minutes).

Également inclus sera un bouton qui retardera le changement des lumières pendant deux minutes pour vous donner un peu plus de temps de travail ou de pause.

De quoi as-tu besoin

Pour ce projet, nous allons utiliser les parties suivantes - tout ce que vous devriez avoir dans votre kit de démarrage.

  • Microcontrôleur Arduino (nous avons utilisé un Mega, mais Uno fonctionnerait très bien aussi)
  • Planche à pain
  • cable USB
  • 6 fils
  • 3 résistances de 330 Ohm
  • 3 x LED (nous avons utilisé vert, jaune et bleu)
  • 1 bouton-poussoir

Étape 1: Tout configurer jusqu'à

Placez chacune des LED dans une colonne différente sur la planche à pain (c'est plus facile si elles sont espacées un peu), et placez le bouton un peu plus bas. Assurez-vous que le bouton est orienté dans la bonne direction - il y a deux jeux de deux broches sur un seul côté du bouton, et ces broches doivent être dans la même rangée.

pomoduino-setup1

Faites passer les fils des broches 5, 7 et 13 à la colonne qui contient la branche négative des DEL bleue, jaune et verte (la branche négative est la plus courte des deux). Ensuite, placez une résistance dans la même colonne que chaque jambe positive, et connectez-les au rail négatif sur le côté de la planche à pain (la bleue, bien que la couleur n'ait pas vraiment d'importance, c'est juste la convention d'utiliser le bleu pour plus de clarté) .

pomoduino-setup2

Exécutez également un fil du rail bleu sur la planche à pain à l'une des jambes sur le bouton, et un autre fil de l'autre jambe (du même côté) à la broche 2 sur l'Arduino. Mettez ensuite le rail bleu à la terre dans la broche GND de l'Arduino.

pomoduino-setup3

Voici un diagramme qui devrait éclaircir toute confusion:

pomoduino

C'est tout! Maintenant à la programmation.

Programmation de votre Arduino

Voici le code de la minuterie Pomoduino - lisez les commentaires en ligne, car ils expliquent ce que fait chaque étape du code.

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; } 

Remarque: lorsque vous testez ceci, vous ne voulez probablement pas attendre 25 minutes pour voir si cela fonctionne. Dans la vidéo ci-dessous, j'ai les intervalles réglés sur 5 secondes pour le vert, 2 secondes pour le bleu et 1 seconde pour le jaune. Utilisez un intervalle plus court pour vous assurer que tout fonctionne correctement avant de l'utiliser pour garder une trace du temps!

Une fois que vous avez tout câblé et le code entré dans l'IDE, vous êtes prêt à partir! Téléchargez l'esquisse et vous aurez une minuterie pomodoro fonctionnant avec un bouton de retard de 2 minutes. Si le voyant s'allume et que vous avez besoin de plus de temps, appuyez simplement sur le bouton.

Vous remarquerez peut-être que le bouton est directement relié à la broche d'entrée Arduino. En utilisant l'une des résistances pullup intégrées dans l'Arduino, vous n'avez pas besoin de passer un fil du port 5V au bouton ou d'utiliser une résistance en ligne avec lui. Vous pouvez obtenir plus d'informations sur la référence Arduino pour les broches numériques.

Plus de défis avancés

Si vous avez fait votre Pomoduino et que vous cherchez à prendre quelque chose de légèrement plus avancé, vous pouvez essayer l'une des solutions suivantes:

  • Ajouter une séquence de LED qui s'allume et servir de compteur du nombre de sessions de travail terminées
  • Faites en sorte que le bouton ajoute deux minutes à la minuterie pour chaque fois que vous appuyez dessus
  • Ajoutez un haut-parleur et faites du bruit quand il est temps de retourner au travail
  • Utilisez une batterie 9V pour le rendre portable
  • Au lieu d'utiliser un voyant, faites clignoter la lumière verte ou bleue pendant quelques minutes avant de changer
  • Afficher un compte à rebours sur un écran LED

Autres grands projets pour débutants

Si vous êtes nouveau sur Arduino, nous vous proposons de nombreux tutoriels amusants. Essayez un contrôleur de feux de circulation Programmation Arduino pour les débutants: Le contrôleur de feux de circulation Programmation Arduino pour les débutants: Le contrôleur de feux de circulation La semaine dernière, nous avons étudié la structure de base d'un programme Arduino. J'espère que vous avez saisi l'occasion d'expérimenter avec le code, en ajustant les horaires. Cette fois, ... Lire la suite, un cube LED futuriste Comment faire un cube LED Arduino pulsé qui semble venir de l'avenir Comment faire un cube LED Arduino pulsant qui semble venir du futur Si vous avez essayé avec quelques projets Arduino débutants, mais cherchent quelque chose d'un peu permanent et sur un tout autre niveau de génial, alors l'humble 4 x 4 x 4 LED cube est ... Lire la suite, une alarme de lever de soleil Arduino Night Light et Sunrise Alarm Project Arduino Night Light et Sunrise Alarm Project Aujourd'hui, nous allons faire un réveil au lever du soleil, qui vous réveillera doucement et lentement sans avoir recours à une machine de bruitage offensive. Lire la suite, ou un système d'alarme Comment faire un système d'alarme Arduino simple Comment faire un système d'alarme Arduino simple Détecter le mouvement, puis effrayer le diable d'un intrus avec une alarme aiguë et des lumières clignotantes. Cela vous semble-t-il amusant? Bien sûr que oui. C'est l'objectif du projet Arduino d'aujourd'hui, adapté ... Lire la suite. Si vous décidez de relever l'un des défis les plus avancés énumérés ci-dessus, laissez-nous savoir comment ça se passe!

In this article