10/04/2015

Automating the Darkroom:Part 1 The Concept


I was recently attending the Intel Developers Forum in San Franscisco as part of my job. In addition to all the tech Intel plans to offer up they also had a large section dedicated to the Maker community. It is interesting to see what was once a nerdy hobby of mine (electronics and programming) is now quite trendy. Here there were many Makers showing off their wares. Intel keen to get into this trend was offering their own versions of open computing platforms based in part on the Arduino community. (If you have at been interested in learning more about programming computers I encourage you to check this out. The community is friendly and the whole thing is much easier to learn than when I was in Junior High. It is relatively cheap and simple to get results.)

So Intel was giving away their Galileo boards which are Arduino compatible. Not being able to resist something free I picked one up with a vague idea that had been bouncing around in my head. I had been contemplating getting an enlarger timer but I do mostly split filter printing and two timers seemed like it would take a lot of room and while RH Designs has a very nice system it is too expensive for my budget. Now of course I had the basis to start another project and as my wife will attest I am not one to shy away from a project. As usual my ideas also get away with themselves and so the scope expanded. So what started out as an enlarger timer expanded...

Some thought had led me to set out what I wanted to have.
  • Control of enlarger light for split filter timings.
  • Automatic selection of filters (Hard vs Soft).
  • Control of a light source for flashing paper. 
  • Must help with test strips (normal, split filter, and flashing)
  • Develop/stop/fix timings
  • Audible queues and metronome for timings
  • Friendly/Simple user interface.
  • Ability to operate it manually. 
  • Complete override it if the whole thing packs up.

The Parts

For a user interface I decided on a small touch screen LCD from Adafruit. This was the most expensive part of the system have come from America ($45) but I wanted to make sure it was of good quality. I got what I wanted. It is 2.8" and supports a simple one touch interface.
Touchscreen
Controlling the enlarger lamp is simple enough and so I bought a relay board to handle 220v. It is controlled with a single GPIO from the Galileo/Arduino. It has actually two relays and I only use one.
Relay Board
For the Filter control I opted for a below-the-lens approach using a half wheel populated with 4 filter holes. (Open, Safe (red), Soft, and Hard). These are arranged around 180 degrees (so actually half a wheel). I opted to control this with a simple servo used by radio control airplane enthusiasts. These can be simply programmed to position at different angles from 0-180 degrees. I could have opted for a larger stepper motor which could rotate through 360 degrees but it adds the expense in interfacing. The cost of this decision though is that the half wheel is not quite twice the diameter to hold the 4 filters than a full wheel rotated through 360 degrees, The half wheel may also have trouble with the unbalanced load.  The consequences will have to be seen later.

Servo
For paper flashing I re-purposed a cheap battery powered LED light controlled from the Arduino processor. I can adjust the brightness as well as the timing from software. I used a FET transistor board to drive the LEDs (3) as the Arduino cannot drive them directly. It is overkill in terms of current.

FET Driver for LEDs


A small speaker driven from software provides sounds.
Speaker
I learned in my early prototyping that the Intel board I started with was a poor substitute for a real Arduino so I ordered one of those (£10). Arduino has the concept of 'shields' which for me are mezzanine boards that are stacked to connect together. With Arduino as the base I would then add a breadboard for connecting the interfaces and then stack on top the touchscreen display. (A computer sandwich.)
Arduino Board
Breadboard that stacks on Arduino (speaker underneath)

Touchscreen stacks on top of the breadboard
 The breadboard has a speaker I soldered on the back and the connections to the different enlarger interfaces. The black connectors on the edges pass the signals from the Arduino to the boards stacked above.

(To be Continued.)

No comments: