Things used in this project
|Parts & Materials:|
|Hand tools and fabrication machines:|
I was asked by my friend Matt Griffin to make a project for World Maker Faire 2016 and we landed on a gif camera.
My thought process was that I wanted to create a camera that recalled those days when disposable cameras were a thing. Anyone with intermediate making/printing/coding skills should be able to put this together pretty easily.
Everything about this camera is designed to be modified.
- Want the body of the camera to be a different shape? Play around with the 123D Design files.
- Want longer gifs or a different exposure? Dig into the code!
- Should it upload to twitter or straight to an SD card?
- A 2200mAh lipo battery will give you around 7 hours of use.
- A 2500mAh lipo battery will give you around 8 hours of use.
The designs went through several iterations.
I went through lots of versions to land on one that I really liked.
It's recommended that you set up the SD card on the Raspberry Pi Zero before you put it into the camera.
- PiCamera -- http://picamera.readthedocs.org/
- GraphicsMagick -- http://www.graphicsmagick.org/
- (Optional) twython -- https://github.com/ryanmcgrath/twython
- Run -- sudo apt-get update
- Run -- sudo apt-get upgrade
- Install PiCamera -- sudo apt-get install python-picamera
- Install GraphicsMagick -- sudo apt-get install graphicsmagick
- Install Gitcore -- sudo apt-get install git-core
- Install GifCam -- sudo git clone https://github.com/nickbrewer/gifcam.git
- Optional, Install twython -- https://github.com/ryanmcgrath/twython
- Optional, install mount USB - http://www.raspberrypi-spy.co.uk/2014/05/how-to-mount-a-usb-flash-disk-on-the-raspberry-pi/
Create Autorun Script:
- Run -- sudo crontab -e
- add this line to end of that file - @reboot sh /home/pi/gifcam/launcher.sh (The launcher.sh in this git is setup for the basic gifcam, if you want to use twython or USB you'll have to modify this)
- If hitting "permission denied" run - sudo chown -R pi /home/pi/gifcam/
- Multimeter - to test connections
- Wire Strippers
- Exacto Knife
- 3rd hands/panavise
- Hot Glue Gun
- Hot Air Gun
- Soldering Iron
- 3D Printed Parts
- Micro SD Card
- 16mm pushbutton
- USB Drive (optional)
- USB Wifi (optional)
- 2200 cylinder or 2500 mAh lipo battery
- Powerboost 500c
- Raspberry Pi Zero v1.3
- Raspberry Pi Camera + Cable
- M2.5 screws
- M2 screws
Tap the posts on the 3D Printed parts with a M2.5. Don't tighten these down too tight or you'll strip the hole. This step will make it much easier to assemble later.
Wire the components separately, then assemble them into the camera body and solder to the Raspberry Pi Zero after it's installed.
Wire the Powerboost 500c
Wire the illuminated pushbutton (don't forget to add a resistor to the LED)
Wire the LED that will attach to the camera back.
Attach the Raspberry Pi Camera to the front and attach the front to the camera body. Make sure the ribbon cable is oriented correctly and use caution, it is fragile.
Attach the battery to the camera body (if you use a 2200 mAh cylinder lipo, it will snap into the right side of the body) using hot glue, and attach the Powerboost 500c to the case. DO NOT plug the battery into the powerboost just yet, save that for the end.
Attach the ribbon cable to the Raspberry Pi Zero and place the Zero into the case. Put in the pushbutton as well.
Wire the pushbutton, powerboost, and the back LED to the Pi Zero GPIO pins.
Wire the PowerBoost to the back switch and hot glue the LED into place. Don't go overboard here, a little will do.
Make sure the switch is off and plug the battery into the powerboost. Nothing should happen, but if you turn the switch on, the blue ON light should come on.
Test it out and if everything's working, close it up and go have fun!
We also have 5 printable wrappers that you can cut out and put around the camera to give it that 90s disposable camera feel.
Custom parts and enclosures
PIX-E Thingiverse Page
gifcam Github Page
Did you replicate this project? Share it!I made one
Love this project? Think it could be improved? Tell us what you think!