Thank you Andy Payne!

On Friday, Nov 7th I attended Andy’s second Firefly workshop, which focused on mechanisms, motor control, and OpenSound Control (OSC). I was only able to stay for the presentation he did on motors and that worked great for me! I already knew a little bit about servo motors (really, though, I was working with them blindly) but he really cleared it up!! The PWM/Servo driver I am using uses pwm (pulse width modulation) functions instead of servo.write(); or servo.attach(); functions, for example, that the Servo library uses. I’ve always used the Servo library in Arduino so I didn’t pay too much attention to pwm at all. After Andy’s lecture, though, I understand it! (Todd Debreceni’s book I’ve been reading also has a section on servo motors so this in addition has cleared up and deepened my understanding this weekend!)

What I learned:

-Servos have potentiometers that provide feedback (which I want! I need my motor to know when it is in a programmed neutral position, and where the next position is, etc.), allow the servo to be positioned very precisely, and results in the servo having a rotation of 0-180 degrees;

-the gears inside of it provide it with more torque than motors without gears (but this also produces noise, though I don’t mind, I think it adds to the piece, giving the face its “breathing” sound);

-when the servo receives a pulse, this means it is a high time or is equivalent to receiving a digitalWrite(HIGH) command, the servo will rotate. It’s ending position will be/it will stop rotating when the pulse ends (at the end of the width/duration/length of time of the pulse). And then there will be a low time or digitalWrite(LOW) when it doesn’t receive a pulse. This is a delay until it receives a pulse. This is used for more precision and as a substitute for servo.write(position), ex: servo.write(45). Andy provided this example:

minimum: if pulse width = 1 millisecond, position = 0 degrees

neutral: if pw = 1.5 ms, pos = 90 degrees

maximum: if pw = 2 ms, pos = 180 degrees

“Send a HIGH signal for milliseconds, then delay for x seconds, until the next HIGH signal and go to position p degrees.”


Other helpful and inspirational topics were Linear Motors. Like the name suggests, these motors and/or mechanisms aren’t rotational. We learned about traditional ones such as the Rack & Pinion Drive (which I think could come in handy for me) as well as more abstract “motors”.

rack & pinion

Examples of abstract motors:

this is the video for the last link

What I love about Soft Robotics: Everything! But mostly I am very attracted to the use of a pliable material (shares that characteristic with the silicone I am using for the skin of the face) and the organic movements, expansion, and contractions that occur. I would love to look more into this and explore the possibilities of it as it relates to my piece, however it will have to be for the next iteration of my piece and not for the one I am currently working on (since there is only a month left!!).