Check out this cool GPS helmet cam project from stuff about code.
I’ve been snowboarding for the past 20 years, and for most of that time I’ve been video’ing mine and my buddies adventures with a helmet cam. An old video of me snowboarding in Morzine, France.
I wanted to make my own helmet cam which would also show data about what was going on (e.g. speed, altitude, temperature).
The starting point was my Raspberry Pi GPS Tracking Car Dash Cam, this gave me some code for gathering GPS data, recording video and generating data overlay video’s.
I came up with a 1 led, 1 button design; the led flashes when the cam is ‘ready’ (quickly when there isn’t a GPS fix, slowly when there is GPS fix), the led comes on when the camera is recording, a short button press starts / stops the camera and a long button press shutdowns the helmet cam.
I set about writing the code which would run at start-up of the Pi and control the camera, waiting for the button to be pressed, controlling the led, reading the GPS data and temperature data and start / stop the camera.
The program is multi-threaded and simply starts up a thread for each ‘thing’ (led, button, GPS, temperature sensor) that needs to be ‘controlled’, the main program then polls these controllers asking them if anything has changed and acts accordingly (e.g. starting / stopping the camera, shutting down the pi).
When the camera is started , the program uses the excellent python module, picamera, to start the video capture and writes the gps and temperature data to a file while the video is recording. I made a change to the picamera module (which has since been introduced), this gave me a function to read the current frame number while the video was being recorded, allowing me to sync the data I have read to an exact position in the video.
I then use the data file to create a data video which I ultimately overly on top of the video taken from the helmet cam. The data video is created in exactly the same way as my Raspberry Pi GPS Car Dash Cam, by creating individual images for each frame using PIL (python imaging library).
Featured Adafruit Product!
Adafruit Ultimate GPS Breakout – 66 channel w/10 Hz updates: We carry a few different GPS modules here in the Adafruit shop, but none that satisfied our every desire – that’s why we designed this little GPS breakout board. We believe this is the Ultimate GPS module, so we named it that. It’s got everything you want and more:
- -165 dBm sensitivity, 10 Hz updates, 66 channels
- 5V friendly design and only 20mA current draw
- Breadboard friendly + two mounting holes
- RTC battery-compatible
- Built-in datalogging
- PPS output on fix
- We have received reports that it works up to ~32Km altitude (the GPS theoretically does not have a limit until 40Km)
- Internal patch antenna + u.FL connector for external active antenna
- Fix status LED
…all for under $40!
Each Friday is PiDay here at Adafruit! Be sure to check out our posts, tutorials and new Raspberry Pi related products. Adafruit has the largest and best selection of Raspberry Pi accessories and all the code & tutorials to get you up and running in no time!