Το Pomoduino: Δημιουργήστε έναν χρονομετρητή Pomodoro Powered by Arduino

Διαφήμιση

Διαφήμιση
Διαφήμιση

Η τεχνική pomodoro Cut Through Procrastination με αυτές τις τεχνικές Pomodoro Τεχνικές εφαρμογές και λογισμικό Cut μέσω της αναβλητικότητας με αυτές τις τεχνικές Pomodoro Apps & Λογισμικό Η αναβλητικότητα είναι μια ασθένεια που διεισδύει τους σπουδαστές και τους εργαζόμενους σε όλες τις γωνιές του κόσμου και μολύνει ερασιτέχνες και επαγγελματίες όσο. Ως συγγραφέας, υποφέρω καθημερινά από αναβολή. Μερικοί άνθρωποι ... Διαβάστε περισσότερα είναι ένα δημοφιλές σύστημα διαχείρισης του χρόνου που περιλαμβάνει το σπάσιμο της εργασίας σε 25 λεπτά κομμάτια με 5 λεπτά ανάπαυσης. Υπάρχουν διάφορα λογισμικά για να βοηθήσετε σε αυτό, αλλά τι γίνεται αν θέλετε να χρησιμοποιήσετε το σύστημα pomodoro ενώ εργάζεστε μακριά από τον υπολογιστή σας ή όταν βρίσκεστε στον πίνακα εργασίας σας; Δημιουργία ενός χρονομετρητή pomodoro powered by Arduino είναι ένα σπουδαίο εισαγωγικό έργο 10 Μεγάλα Έργα Arduino για Αρχάριους 10 Μεγάλα Έργα Arduino για Αρχάριους Η ολοκλήρωση ενός έργου Arduino σας δίνει μια αίσθηση ικανοποίησης όπως και καμία άλλη. Οι περισσότεροι αρχάριοι δεν είναι σίγουροι από πού να ξεκινήσουν όμως, και ακόμη και τα σχέδια για αρχάριους μπορεί να φανεί μάλλον τρομακτικό. Διαβάστε περισσότερα για να σας βοηθήσει να μάθετε το δρόμο σας γύρω από ένα Arduino, και στην πραγματικότητα θα οδηγήσει σε κάτι χρήσιμο.

Ο στόχος

Σε περίπτωση που θέλετε να προσπαθήσετε να μάθετε πώς να το ρυθμίσετε πριν κοιτάξετε μπροστά, εδώ προσπαθούμε να κάνουμε. Θα έχουμε τρία φώτα. ένα για "εργασία", ένα για "διάλειμμα", και ένα προειδοποιητικό φως. Το φως εργασίας θα παραμείνει αναμμένο για 25 λεπτά και η ενδεικτική λυχνία θα ανάψει και για τα δύο τελευταία λεπτά του εν λόγω διαστήματος. Μετά από 25 λεπτά, οι λυχνίες εργασίας και οι προειδοποιητικές λυχνίες θα σβήσουν και η λυχνία σπασίματος θα ανάψει για 5 λεπτά (η ενδεικτική λυχνία θα ανάψει και πάλι για τα τελευταία δύο λεπτά).

Συμπεριλαμβάνεται επίσης ένα κουμπί που θα καθυστερήσει την αλλαγή των φώτων για δύο λεπτά για να σας δώσει λίγο επιπλέον χρόνο εργασίας ή χρόνο διαλείμματος.

Ο, τι χρειάζεσαι

Για αυτό το έργο, θα χρησιμοποιήσουμε τα παρακάτω μέρη - όλα αυτά θα πρέπει να έχετε στο κιτ εκκίνησης.

  • Arduino microcontroller (χρησιμοποιήσαμε ένα Mega, αλλά το Uno θα δούλευε πολύ καλά)
  • Breadboard
  • καλώδιο USB
  • 6 καλώδια
  • 3 x 330 Ohm αντιστάσεις
  • 3 x LED (έχουμε χρησιμοποιήσει πράσινο, κίτρινο και μπλε χρώμα)
  • 1 πλήκτρο

Βήμα 1: Ρύθμιση όλων

Βάλτε κάθε μια από τις λυχνίες LED σε μια διαφορετική στήλη στο breadboard (είναι πιο εύκολο αν βρίσκονται σε απόσταση) και τοποθετήστε το κουμπί λίγο πιο κάτω. Βεβαιωθείτε ότι το κουμπί είναι στραμμένο προς τη σωστή κατεύθυνση - υπάρχουν δύο σετ δύο ακίδων σε μία πλευρά του κουμπιού και αυτές οι καρφίτσες πρέπει να βρίσκονται στην ίδια σειρά.

pomoduino-setup1

Εκτελέστε σύρματα από ακίδες 5, 7 και 13 στη στήλη που περιέχει το αρνητικό πόδι των μπλε, κίτρινων και πράσινων LED (το αρνητικό πόδι είναι το μικρότερο από τα δύο). Στη συνέχεια, βάλτε μια αντίσταση στην ίδια στήλη με κάθε θετικό πόδι και συνδέστε τις με την αρνητική σιδηροτροχιά στο πλάι του breadboard (το μπλε χρώμα, αν και το χρώμα δεν έχει σημασία, είναι απλά σύμβαση να χρησιμοποιείτε μπλε για λόγους σαφήνειας) .

pomoduino-setup2

Επίσης, εκτελέστε ένα σύρμα από τη μπλε σιδηροτροχιά στο πινέλο σε ένα από τα πόδια του κουμπιού και ένα άλλο σύρμα από το άλλο πόδι (στην ίδια πλευρά) στο pin 2 στο Arduino. Στη συνέχεια, γειώστε το μπλε σιδηροτροχιά στην καρφίτσα GND στο Arduino.

pomoduino-setup3

Εδώ είναι ένα διάγραμμα που θα πρέπει να ξεκαθαρίσει οποιαδήποτε σύγχυση:

pomoduino

Αυτό είναι! Τώρα στον προγραμματισμό.

Προγραμματισμός του Arduino σας

Παρακάτω είναι ο κώδικας για τον χρονομετρητή Pomoduino - έχετε διαβάσει μέσα από τα inline σχόλια, καθώς εξηγούν τι κάνει κάθε βήμα του κώδικα.

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

Σημείωση: όταν δοκιμάζετε αυτό, ίσως δεν θέλετε να περιμένετε για 25 λεπτά για να δείτε αν λειτουργεί. Στο παρακάτω βίντεο, έχω τα διαστήματα που έχουν ρυθμιστεί σε 5 δευτερόλεπτα για πράσινο, 2 δευτερόλεπτα για μπλε και 1 δευτερόλεπτο για κίτρινο. Χρησιμοποιήστε ένα συντομότερο διάστημα για να βεβαιωθείτε ότι όλα λειτουργούν σωστά, προτού τα χρησιμοποιήσετε για να παρακολουθείτε το χρόνο!

Μόλις έχετε τα πάντα συνδεδεμένα και ο κωδικός εισάγεται στον IDE, είστε έτοιμοι να πάτε! Μεταφορτώστε το σκίτσο και θα έχετε ένα ρολόι εργασίας pomodoro με ένα κουμπί καθυστέρησης 2 λεπτών. Εάν η προειδοποιητική λυχνία συνεχίσει και χρειάζεστε περισσότερο χρόνο, απλά πατήστε το κουμπί.

Ενδέχεται να παρατηρήσετε ότι το κουμπί είναι καλωδιωμένο απευθείας στην πύλη εισόδου Arduino. Χρησιμοποιώντας μία από τις αντιστάσεις pullup που είναι ενσωματωμένες στο Arduino, δεν χρειάζεται να τρέξετε ένα καλώδιο από τη θύρα 5V στο κουμπί ή να χρησιμοποιήσετε μια αντίσταση που ευθυγραμμίζεται με αυτό. Μπορείτε να λάβετε περισσότερες πληροφορίες σχετικά με την αναφορά Arduino για ψηφιακές καρφίτσες.

Προηγμένες προκλήσεις

Εάν έχετε κάνει το Pomoduino σας και θέλετε να πάρετε κάτι πιο προηγμένο, μπορείτε να δοκιμάσετε οποιοδήποτε από τα παρακάτω:

  • Προσθέστε μια σειρά LED που ανάβουν και χρησιμεύουν ως μετρητής του αριθμού των ολοκληρωμένων συνεδριών εργασίας
  • Κάντε το κουμπί προσθέστε δύο λεπτά στο χρονόμετρο για κάθε φορά που το πιέζετε
  • Προσθέστε ένα ηχείο και παίξτε ένα θόρυβο όταν ήρθε η ώρα να επιστρέψετε στη δουλειά
  • Χρησιμοποιήστε μια μπαταρία 9V για να την καταστήσετε φορητή
  • Αντί να χρησιμοποιείτε μια προειδοποιητική λυχνία, αναβοσβήνει το πράσινο ή το μπλε φως για ένα λεπτό πριν από τη μετάβαση
  • Εμφάνιση αντίστροφη μέτρηση σε μια οθόνη LED

Άλλα σπουδαία σχέδια για αρχάριους

Αν είστε νέος στο Arduino, έχουμε πολλά διασκεδαστικά μαθήματα για να συνεχίσετε. Δοκιμάστε έναν ελεγκτή φαντασμάτων Arduino Προγραμματισμός για αρχάριους: Ο ελεγκτής φωτισμού της κυκλοφορίας Arduino Προγραμματισμός για αρχάριους: Ο ελεγκτής φωτός της κυκλοφορίας Την περασμένη εβδομάδα μάθαμε για τη βασική δομή ενός προγράμματος Arduino και εξετάσαμε πιο προσεκτικά το παράδειγμα του blink. Ας ελπίσουμε ότι εκμεταλλευτήκατε την ευκαιρία να πειραματιστείτε με κώδικα προσαρμόζοντας τους χρόνους. Αυτή τη φορά, ... Διαβάστε περισσότερα, ένα φουτουριστικό LED κύβο Πώς να κάνει ένα παλλόμενο Arduino LED Cube που φαίνεται ότι έρχεται από το μέλλον Πώς να κάνει ένα παλλόμενο Arduino LED Cube που φαίνεται ότι έρχεται από το μέλλον Εάν έχετε dabbled με μερικούς αρχαίους σχεδιαστές Arduino, αλλά ψάχνουν για κάτι λίγο μόνιμο και σε ένα ολόκληρο άλλο επίπεδο φοβερό, τότε ο ταπεινός κύβος LED 4 x 4 x 4 είναι ... Διαβάστε περισσότερα, ένα ηλιοβασίλεμα συναγερμού Arduino Night Light και Sunrise Alarm Project Το νυχτερινό φως και το ηλιακό συναγερμό Arduino Σήμερα, θα φτιάξουμε ξυπνητήρι, που θα σας ξυπνήσει απαλά και αργά χωρίς να καταφύγετε σε μια επιθετική μηχανή θορύβου. Διαβάστε περισσότερα ή ένα σύστημα συναγερμού Πώς να κάνετε ένα απλό σύστημα συναγερμού Arduino Πώς να κάνετε ένα απλό σύστημα συναγερμού Arduino Εντοπίστε την κίνηση και, στη συνέχεια, τρομάξτε τον εαυτό σας από έναν εισβολέα με ήχους συναγερμού και αναλαμπές. Μήπως διασκέδαζε αυτό; Φυσικά το κάνει. Αυτός είναι ο στόχος του σημερινού προγράμματος Arduino, κατάλληλο ... Διαβάστε περισσότερα. Εάν αποφασίσετε να αναλάβετε μία από τις πιο προχωρημένες προκλήσεις που αναφέρονται παραπάνω, ενημερώστε μας για το πώς θα πάει!

In this article