Night Vision Helmet With Pi 0 and OV5647 Camera
by hotcup_97 in Circuits > Raspberry Pi
773 Views, 9 Favorites, 0 Comments
Night Vision Helmet With Pi 0 and OV5647 Camera
I run an Etsy store selling 3D printed products. A large majority of my inventory is cosplay/prop items. I have always enjoyed making helmets, so I thought it would be fun (and also a unique challenge) to create a DIY nightvision helmet. The Death Trooper helmet seemed like a perfect fit for this type of thing. This is not a step-by-step tutorial as a large portion of the process was experimenting with variables that will likely be hard to totally replicate (lens focal lengths, etc). To replicate will require tinkering and work on your end, but the goal of this instructible is to provide the reader with the process I took along with tons of material to reference along the way. This "tutorial" assumes the reader is competent and familiar with 3D modeling/printing and general microcontroller electronics. Fusion 360 was used to both create the 3D renders seen here as well as create the 3D models for the camera module
Supplies
- (Preferably) Large 3D printer with PLA. This helmet weighs 1.3kg
- Death Trooper helmet from Nikko Industries Note: Any helmet can be used; however this is the one I used. Modifications will need made to this helmet for this to work.
- Windows PC with Fusion 360 and "3D Builder" installed (or a similar software)
- A VR headset you're willing to sacrifice - I found one at goodwill for $2
- Raspberry Pi Zero W
- At least 8gb micro sd card
- 1.3 inch LCD Display Hat for Raspberry Pi
- OV5647 camera - The OV5647 has integrated sensors that detect light levels. If it gets dark enough, the IR beams will kick on automatically. This makes night vision very easy.
- Assorted hex screw kit
- Metric threaded heat-press inserts
- Assorted Raspberry Pi spacers
Acquire Your VR Headset and Disassemble
Acquire a VR headset. All you really need is a single lens, so don't worry about getting anything overly expensive. I found a perfectly usable headset at our local Goodwill for $2. Find a headset, disassemble it, and set aside a lens.
Find the Focal Length of Your Lens
You'll need to find the proper focal length of your lens. The easiest way I have found to do this is the following process.
- On a table, spread out a tape measure.
- Place your lens at the beginning of the tape measure.
- Take a small object and place near the lens in its view path. Slowly move the object further away from the lens until it comes in focus. Mark this location on the tape measure. This is how far you will need your screen to be mounted away from the lens.
Write this number down and remember it for the following step.
Model a Lens/screen Mount
Unless the focal length of your lens is the same as mine (pretty unlikely), you will need to model a new mount. The .stl's of my mount are included above and are free to use, and the Fusion 360 file is included here for ease of modification. If you decide to make your own design, keep in mind that you will need to mount the screen, Pi 0, and the OV5647 camera on the end of the mount. Model in holes for the threaded inserts (as seen in my files) that will allow you to screw in and mount the electronics. I used a modified version of this thingiverse design to house the camera itself.
Included here is my Fusion 360 file of my camera module creation as well as exploded views of the complete camera module. I did delete the helmet from the Fusion file as it was obtained from a separate seller linked to above :)
Downloads
Open a Spot in the Helmet for the Lens/camera Module to Fit
We will need to modify your original helmet file in such a way that allows the camera/lens module to fit. I like to use Windows 3D Builder for jobs such as this. First import your helmet into 3D Builder. Then import your camera module files. Position your camera module in a location that lines up with your eye in the helmet. Once your module is properly placed, select all camera module parts, and click "Edit" and then "Merge". This will make your camera module one single body. Now that your camera module is a single piece, ensure that it is selected and click "Subtract". This will erase all portions of the helmet that the camera module touches. Your finished product should have a large void where the module was. Export your modified helmet as an .stl.
Print the Helmet!
This was a 40 hr print for me, and it used 1.3kg of material. I used a highly modified Tronxy X5SA 400 pro running Klipper. I post processed this with multiple rounds of 80 grit, followed by 120 grit, followed by filler primer, followed by more 120 grit, and then finally satin black/gloss clear coat to finish it off.
Electronics
Setup a Raspberry Pi 0 with Raspbian Lite OS. Raspberry Pi imager is an amazing tool that makes this quite easy. Plug in the OV5647 camera into your Pi 0's camera ribbon cable port. Plug the 1.3 inch LCD screen hat into the Pi's GPIO pins. Follow these instructions to get the screen working with your Pi. Attached is my python code. I made this a service in order for it to run on boot by following the top answer on this forum post.
Assemble the electronics. Attached are photos of the built module.
Downloads
Assemble Everything
With the camera module fully assembled and functional, insert it in the helmet.
Test It Out!
Test out your helmet! Attached is a quick test video I tried to record... Couldn't quite get my phone camera lined up with the lens fully, but you get the idea.
Be Proud of Your Work
Post it all over social media; show it off to your friends; scare your friends and family by watching them in the dark - the possibilities are endless.