A couple of weeks back I started thinking about a new LEGO Mindstorms project. After a few nice, but too complex ideas, I decided I wanted to build a pinhole camera out of LEGO Mindstorms.
There are already a few examples online of standard pinhole models, but I did not want to make a typical one. I wanted to use Mindstorms to add some automation to it.
After a long think and a couple off GT’s I had a set of characteristics, I’d like to give it:
- Printing on photographic paper. I’d like to skip the negative part, and be able to extract the paper with the exposures and develop them directly.
- Transport mechanism. The camera should be able to take a few pictures before I have to take out the “Cartridge” in a dark-room.
- Timed shutter open and close. Depending on the amount of light, I’d need a longer or shorter exposure.
I started building a week ago and after some initial problems, the main design is complete. I’ve managed to find enough pieces to make the (quite big) box and put all the mechanics inside.
Once done, I wrote a small NXT program to see if it all works and the result was great. I can open/close the shutter using the shutter release button.
Also after making a picture the transport mechanism will wind up the cartridge enough to make the next picture, leaving a bit of margin between exposures.
The paper I use in these images are strips of normal paper taped together. Basically because I did not want us waste my last pack of photographic paper in the process. As you can see from the below picture, the transport mechanism works well. I have not yet estimated how much paper I fill the roll with, but I can guess I’ll be able to take about 20 shots.
After this, I have added a layer of black cardboard in the camera’s interior, to make sure it’s light-tight and I attached the Mindstorms Colour sensor.

The next part involves creating a NXT program that allows me to
- Read out the light
- Calculate the shutter time X
- Open Shutter
- Wait for X Time
- Close Shutter
- Wind paper
I’ve started to program the timer. This took me most of my Sunday morning, as I did not read/know that the Colour sensor that can function as a light meter only does that when it’s plugged in into port 3 of the controller block. I can now read out the raw light values, add them to a variable and do a calculation that I then feed into the Pause between the shutter open/close. I’ll add the program here when it’s done (and working well).
Technorati Tags: Mindstorms, Photography, Pinhole