The design that I eventually implemented has a number of advanced features:
- 2 joysticks provide continuously-variable speed lens control. Moving the right stick forward and back controls synchronized zoom and focus, and moving the left stick side to side controls just focus. The implementation of speed control also helps keep the servo noise down to acceptable levels.
- There are 6 programmable "goto" zoom/focus settings that can be programmed on the fly from the Wii Classic, and that will move the zoom and focus to the desired position just by pushing a button (left shoulder for widest zoom, right shoulder for most zoom, and a, b, x and y for any zoom/focus position).
- The maximum lens movement settings can also be programmed on the fly to ensure that the servos don't try to rotate beyond the limits of the lens's zoom and focus positions.
- D-pad provides single degree movements of zoom (up and down pad) and focus (left and right pad) to make precise adjustments for critical focus/zoom.
Here's a demonstration of how the synchronized zoom - focus works on my GH2 with a Nikon 28 - 85mm zoom lens:
In this instructable I'll cover the basics of how to build your own version of this controller, including the Arduino code and instructions for mounting the servos to a rail-based camera rig. I'll mention how I built my rig, but since I'm not really happy with it, I won't go into detailed steps on that and will leave it to you to figure out your own solution based on the pictures of my rig and some notes about how I made it.
This was my first attempt at building something with Arduino, though I've had some programming experience so it wasn't too difficult for me to learn the basics of Arduino code. However, if you want to tackle this project and you haven't already gained familiarity with setting up and programming an Arduino, I recommend that you go through the tutorials on the Arduino site, especially those for Servos. http://arduino.cc/en/Tutorial/HomePage