I am Deblina Chattopadhyay, a college student from India, an undergrad at Netaji Subhash Engineering College and in my prefinal year. I built my hack 'Pomodoro Timer' this weekend and am cross-submitting it to the following hackathons:
- PrideHacks II
- SimpliHacks 2.0 Taking into consideration that all three mentioned hackathons allow cross-submission to multiple hackathons happening at the same weekend and that my hack was built in the dedicated hackathon timeframe.
Summer and its diversity was the inspiration behind this hack. During summers while students from one part of the world are enjoying their break and hitting the beaches, somewhere across the globe another student is giving their exams in monsoons, or reading a book calmly in the cold of winter.
What it does
This Pomodoro Timer is a compact tool that will come in handy for anyone and everyone. Be it whether you are hitting beaches or the summer BBQ, or even if you are a student who needs to focus to do their assignments, Pomodoro Timer will be your ultimate reminder buddy. For those who are not a fan of carrying phones to beaches, are on a digital detox, or need fewer distractions to focus on their upcoming exams, the Pomodoro timer is just perfect for them. In this Pomodoro Timer there are two modes that one can select:
- Tan: That will start the preset Sunbathing timer, which will instruct them to lay on back, left, right or front for getting an ideal sun tan. And the preset times are according to the advised time for sun exposure.
- Man: This is the manual timer selection mode, where one will be able to select their time for reminder depending on their requirement. For now, the available options are for 5 mins, 25 mins, 1 hour, 2 hours, and 3 hours respectively.
How I built it
The timer is totally built using the Arduino microcontroller, I used a 16X2 character LCD to display the timings and the Interfacing. I used pushbuttons as inputs for the timer. The whole function is achieved by programming the microcontroller by precise timing and exception handling like when I need to pause when I need to exit and so on.
Challenges I ran into
Okay, so first things first as one Engineer said “Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away". This leads us to talk about the overall challenge I faced while making the timer, it seems very simple at first but when I dive into tackle each segment of the project I find I have to eliminate many unwanted circumstances. Simply taking where I wanted to use the buttons as an Input but realized it's not only about reading the state of the button, i.e high or low, I had to debounce the circuit to eliminate unwanted clicks that happen at a microseconds level, overcome it, then realized I need to do the edge detection to eliminate the unwanted increasing of button counter, used acute placing of control check statements for exiting, pausing, resuming. With that being said, it was quite challenging for me to prepare the whole working prototype and also I learned things might seem very simple from the other side but definitely, the grass is not greener on the other side.
Accomplishments that we're proud of
From inspiration to scatch Ideas in my head to the final working prototype is the greatest achievement for this hackathon. When time is ticking while building a time ticking machine within a span of a few hours, and when it works correctly with optimizations, it feels the ah-ha moment. And debouncing the button was a weird challenge I overcame. 🙂 PS. I don't know-how, while building these projects 1 minute = 1 secs happens... 😦
What we learned
Starting with the button Inputs, I learned about the edge detection, debouncing circuits, why we should and shouldn't use delay in programming because halts the system, but for tradeoffs how we can use the delay to obtain results that might consume less power than the program that had to check for some timing variables and many more. Learned how to use an I2C expander when you have an I/O shortage thus more about the I2C LCD display that I used Finally, I gained a big experience in real-time programming and its bottlenecks.
What's next for Pomodoro Timer
We would try to make a marketable product, but that is much in the future.