I set out at Easter to build a motion time-lapse camera as I really wanted to take some beautiful photos of the Cornish sunrise when we are on holiday this summer. Little I did realise at the time how much this project would grow and how much I would get out of doing it.
Rather than this being a normal blog of how I built a project I want to share a little bit more about the journey I went on and the skills developed at the same time.
Aim: To build some sort of Pi based motion time-lapse camera rig
Final outcome: Motorised pan and tilt camera rig programmed and controlled by an Arduino Uno triggering photos to be taken on the Pi.
Step 1 was probably the hardest and now seems really simple. I started with a second hand very cheap Arduino board and a single servo motor which I mounted a camera on to. Here was the first challenge. I had never used an Arduino before and didn’t know the language. But within a few days I had the servo moving up and down and an LED flashing on an off. The Python code for the Pi was really easy but every photo came out a little bit blurry!
Step 2: I thought to overcome the shake I would need some sort of housing for the camera so it didn’t get blown by the wind. So I built a simple housing for it using a recycle Easter Egg box.
Step 3: Whilst the project now started to look better most of the images were still shaky. It was at this point I thought it is time to give up and forget the project. So rather than giving up I left it for a couple of weeks. Coming back to the project I decided I needed to rethink how the Pi took the photos. With the first prototype I had no method of synchronising the motor and the camera taking the photo.
I decided to buy an Arduino Uno (clone) and redesign the project so that the Arduino controlled the direction and speed of movement but also had control over the camera.
Step 4: After a bit of redesign and salvaging of other boards and bases the basic structure of the new camera rig was born.
The plan was the Uno would control the motion and trigger a photo taken with the new Pi Zero. You might notice that the camera cable is held on with tape - sadly during the experimenting phase the pi camera connector got broken. It took quite a few attempts to realise that if the Pi was upside down the cable wouldn’t get caught.
Step 5 - I was making progress but I soon hit a snag. I could not figure out an easy way to connect safely the Arduino to the Pi to trigger the photos. After much thought I landed on a 5V DC relay. Using a digital out pin from the Arduino I was able to power the relay. The relay could then act simply as a switch to trigger the photo on the Pi. I was really pleased with this!
Step 6 - With most things now working I was able to think about how you program the Arduino and see what is happening. A quick look on Amazon and I ordered a cheap LCD display which is very easy to program with the Arduino. This would be used for both setting up the sequences and displaying the position during the sequence.
Step 7 - Adding an input method. I decided on using a 4x4 membrane keypad (thanks Ryanteck) as my main input of settings for the camera. This was interesting, fun and challenging to wire up. It was very easy to input single key presses but to take three digits and convert them from a string to an integer gave me a stressful evening.
Step 8. With everything now working I had to design the user menu. In the end I went for completely programmed, default movement and manual control.
Step 9 It was time to replace my broken PiZero with a new one and test things out!
Step 10: Building a case for it. I bought two craft boxes from Hobbycraft which became the shell for the camera. To add extra waterproof and strength the whole case is covered in gaffer tape (much to the amusement of some!) I know it isn’t pretty or built on a 3D printer or laser cut perspex, but it is mine, designed, built and programmed by me!
I genuinely feel proud of this project. I have learnt so much during this and can’t wait for the next one.