This will be my first project for an Arduino, and as such, I would like to seek some advice on what things are possible, and what sorts of components I should use.
Basic Project Outline:
I have written a synthesis program using Pure Data. The basic premise is that each of the parameters in the synthesizer are randomly produced, based on various constraints. The Arduino interface I want to build will be used to control these constraints in real-time.
For each of the parameters, there will be a hardware module used to control its constraints. This will require that the Arudino interface be able to handle multiple modules (my first implementation will include 6 of these modules).
As there are some constraints that are just selecting from 2 or more options, I will be using a set of switches to do that selection. But other constraints will be continuous values over a wide range, and as such, I would like to use a Rotary Potentiometer to control them. This Potentiometer needs to be able to rotate completely around, and its position should NOT indicate a specific value (this will allow changing the value of that constraint from within the Computer interface itself, and not have to worry about having that reflected in the hardware interface). Also, this potentiometer should be able to rotate freely, without any steps, or end points. This will allow the changing of the sensitivity and range to control that constraint.
Well, I hope this is understandable in as much as being able to offer some suggestions on what components to use. I have started to look into some components, and will make subsequent posts here to show which ones.
Summary: you want to take some input from some switches (binary) and analogue inputs from mechanical devices that provide a human interface. Is that reasonable accurate?
Potentiometer needs to be able to rotate completely around, .... Also, this potentiometer should be able to rotate freely, without any steps, or end points.
So it needs to be able to rotate more than 360 degrees?
If it does rotate more than 360 degrees, does its value wrap back around? A value can't increase or decrease for ever. It has to have some bound to its value. So how should this work?
There is usually the issue of what the value does when it gets 'to the end' to think through. If this is not an issue, then you are not describing a potentiometer; you want a 'rotating input thinggy'.
These have some of the mechanics of what you describe, but be careful, because some give an absolute position value, which appears to be different from what you describe.
If you just want to know that the user is turning a control in a direction (clockwise or anticlockwise) and you want the flexibility to decide what happens, then have a look for "rotary encoder" or "quadrature encoder". There are lots of explanations of the principles as well as ready made products.
Mechanical (ball) mice and some trackballs contain quadrature encoders. You can make a device something like you describe from an encoder wheel rescued from a mechanical mouse and a few optical (usually infrared) photodetectors. These are mass-market items, and so quite cheap. Feed the pulses (from the photodetector) into an Arduino pin, and count or time them to detect that the user is moving it, and how fast.
After looking more at this, I think that I might be more inclined to use a joystick for at least 2 of these constraints, and as you say, it might be better to use the "encoders". You're right, I am not really interested in specific values, but tracking how much of a change that is to be made at a given time.
I am beginning to think that using a "Thumb Joystick" for each of these constraints might be a better solution. Which might even allow for the "linking" of two of these constraints so they could be controlled from the same joystick at the same time.
If you have the money, you might look at using a Wii Nunchuk
(lots of threads, but this seemed helpful: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1235588779
which provides quite a lot of parameter control (5 analogue+buttons I think) in a one handed device.