John D.
Hi, my name is John and I’m a rising sophomore at Regis High School. I chose the Raspberry Pi Wi-Fi Enabled Camera for my main project which is a touchscreen camera that uploads all the pictures that are taken to Dropbox. I built it based on this article from AdaFruit. I wanted to build this project because I’ve worked with Raspberry Pi’s before and I felt like this was a challenging project to build, but would be very useful. For my starter project, I chose the voice changer because I thought it would be fun to build and use, and would be a good soldering challenge. It takes voice input from the microphone and can modify it 4 ways. The kit was from this site.
Engineer
John D.
Area of Interest
Software Engineer, Developer, Mechanical Engineer
School
Regis High School
Grade
Rising Sophomore
Final Milestone
My completed project is a Raspberry Pi WiFi Camera. It can take pictures and videos and uploads them to Dropbox. I built this because I thought it would be very useful and I already upload all the pictures and videos I take to Dropbox. To make this project, I first downloaded the Jessie operating system that was configured to work with the PiTFT touchscreen. I burned the image to an SD card and put it into the Pi. Then I connected the camera, touchscreen display, and power supply to the Pi and booted it up. After configuring the settings and downloading the camera software, I tested it by taking a picture. The picture was taken when the screen was tapped. After I knew that it worked, I set up Dropbox uploading and tested that. The next step was setting up buttons and video capture. For video capture, I created a function that started and stopped video recording. The function initially had a specific time that it would record the video for. After I tested the actual ability to record video, I set up a button that would stop the recording. The video recording was still started by tapping the screen, and so the code would have to be changed every time you wanted to switch from recording videos to taking photos. I fixed this by setting up two more buttons- one that would start video recording and one that would take photos. A function would constantly run and check if a button was pressed, and if so, which button. Depending on the button that was pressed, the function would call a function. That function would then call the photo or video functions. The camera was still being run off of a mobile battery pack and using buttons built into the screen. I set up a rechargeable battery pack that would allow the camera itself to be charged. I also set up a shutter button and start and stop recording video buttons that were not on the screen and removed the ones on the screen. The final step was designing and printing a case for the Pi. Unfortunately, I made the bottom of the case too thin, which caused the bottom to warp and make the case hard to use. I learned a lot about Python code while making the project, since the main camera code was written in Python. I also learned how to use the GPIO pins on the Pi to attach buttons that would call function in Python. Finally, I learned how to design a functional model by using CAD, even though the case didn’t turn out as expected. The main hurdles of my project were finding a usable operating system that would work well with the touchscreen, figuring out how to set up buttons to start video recording and take a picture, and designing the case in time to be able to print it out. I had to get help from one of our instructors with the buttons since he knew a lot about Python. I also read a lot of online documentations of the software and finally figured out how to make it work. I am happy with my final product and I think it was a good project.
Materials:
- Raspberry Pi 3 Model B
- PiTFT Plus 2.8″ Touchscreen
- Raspberry Pi Camera v2
- 8 GB MicroSD Card
- Micro USB Cable
- On/Off Switch
- LiPo Rechargeable Battery 3.7 V 2500 mAh
- LiPo USB Booster 5V
- LED Pushbutton
- 2 Tactile Switches
- 3D Printed Enclosure
Project Code:
Reflection
My favorite parts of this project were working on the Python code and figuring out how to set up buttons on the Pi. I also enjoyed soldering all the hardware components together. I would like to use my new knowledge of Python in the future and develop more Python programs. I would also like to use what I learned about using CAD to design objects to 3D print. It feels very fulfilling to have a working project and to finally have everything work. It was a challenge to find a good operating system that worked with the touchscreen and configuring the buttons to work with the Pi, and both of those took multiple days to figure out, but in the end I was able to produce a working product. I feel more confident in my ability to work through problems even if it seems like there is no solution. I am very happy that I worked on this project.