dadcanyouhelp wrote:
Undertand why it wasn't moving now! The only thing is, we feel like there's resistance when its hooked up to the pi, whereas when its not got any power, the servo can be turned by hand? Is this normal? Just wanting to check. Dad thinks the fact that it feels like it's being "held" in position is wasting power?
This is exactly what is happening, as Joan said. It is using power to maintain its position, but if the load on the motor is small (like, say, a cocktail umbrella) then very little power will be used to hold the position. I think servoblaster will allow you to write a 0 to the servo output, which will turn it off and allow the servo to be moved again by hand. Again, since you have a small load, once the servo has reached its commanded position it's not going to move away from that position by itself.
As for writing a pattern or sequence of movements, is it simple a case of writing a list of echo commands with varying values between 50 and 200? I'm guessing there's a better way...
Katie

Now that you are an expert on mechatronic art installations (no, really, there's nothing more to it other than wiring up a thousand servos) you have discovered there is no magic, and you have to do all the work yourself. Simply writing a list of echo commands with varying values over time is *exactly* what you will do. The trick is to do it in an efficient way that is easy for you to type in or change without losing your patience.
Here's one suggestion. Picture a player-piano with a paper roll with holes in it to play a tune. Over time, the paper roll passes over pins that drive the piano keys. The holes make a sound. No hole=no sound. You could do something similar. Have a text file where each line represents a unit of time, say 0.2 seconds, so 5 lines is one second. On each line have 16 columns. In each column, enter the desired position of each servo at that time. Now write a program (in Python, of course) that opens the file, reads a line, extracts 16 numbers, writes 16 control values to servoblaster (using echo, or some other method), waits 0.2s and then reads the next line.
That would Just Work.
There are probably a hundred other ways to do this, and I may do a bit of googling for alternative for you, since this project is interesting. Basically, if you want the motors to move to a series of positions over time, you have to make something that sends the appropriate position values at the appropriate time.