In zoom classes, we’re often sitting for long hours. Turns out, we shouldn’t be sitting for longer than 30 minutes at a time! However, not sitting is easier said than done. Schools mandate cameras on your face, making it difficult to move around, and sometimes, we simply forget to take breaks.
What it does
The watch has a timer and it counts how much time it has been since the last time you moved. To do this, it will light up a new color every 3 minutes. Once the last color lights up, it will be thirty minutes since you’ve last moved and it will make a bleeping sound to remind you to move. Since this is just a demo, we changed the time to 10 seconds instead of 30 minutes. It can sense once you move and the time will reset and the same process will continue. It also has a button that you can press to stop the timer and all animations, this button comes in handy during sleep because nobody wants to be distracted when they're sleeping. The camera moves using two servo motors driven by the UNO R3 and is plugged to a computer where the software follows the faces in the camera. The software will try to find the face of the person on the camera and send a message to the Arduino to make the camera move in order to get the detected face in the center of the frame. If the detected face is in the center of the camera frame, a green LED will light up. If the camera cannot find a face, the python software will send a message to the Arduino to make it “search” for a face and turn on the red light. However, if a face is detected but not in the center, a yellow light will turn on. The interactions between the Arduino and the software is done through the USB.
How we built it
We were able to modify a python code on GitHub that allows face detection. We decided to add LED lights to make it more interesting and easier to tell what the camera is seeing. Once the camera could detect my face, we worked on uploading the executable code for the UNO R3 using Arduino. After the software was mostly finished and uploaded to the board and PC, we started working on the hardware (with mentor help). The LED lights are powered using the breadboard, 220-ohm resistors and the 5V from the UNO R3. Then, we connected the servos to the breadboard and attached it to the camera. Since the camera has to be light enough to move, we 3D printed a custom stand for the servos to rotate the camera. After assembling the parts, we were able to set our camera up to follow our face!
Challenges we ran into
The code for the Adafruit Board had many errors in it. It took us a long time to debug it. Also, downloading the code onto the board was not the simplest task either, the computer would crash, or the WIFI would take forever.
Since we are beginners to both hardware and software, we used a python code on Github for face detection. We wanted to modify the code for LED lights and install libraries on to python in order for our lights to work. Wiring the servos to the circuit board and breadboard was also a challenge because there were many tiny holes that we did not understand at first. However, after help from a mentor and understanding more about the connection between the circuits, we were able to connect the wires properly after many tries.
Lastly, we had to be able to tell which servo was going to rotate our camera horizontally and vertically. This took many test tries and fixing.
Accomplishments that we're proud of
We are proud of being able to get the code working and colors in sync for the watch. In addition, we were able to collaborate, despite having problems with internet connection.
We are also very happy that our project actually ended up working in such a short amount of time.
What we learned
What's next for change this later
With more time, we plan on adding features including reminders to drink water, or to turn in assignments. Being able to control the volume is also a good idea. That way, your voice won’t be faint when you’re farther from the microphone while walking if you aren’t wearing a microphone.