I’m using the Mini Maestro 12 to control 6 hobby servos for animation. I have it all hooked up and working from the computer controls using the Pololu Maestro Control Center software. I’ve set 45 (Test) frames with the servos moving in various speeds and amounts of movement in each frame.
The problem; When I switch over to the sequence tab and hit the Play Sequence button the servos only move for a split second before it moves to the next frame (before reaching the full movement of the previous frame). Which if I’m understanding this right is because of the Duration Setting is too short. Is their a way to do away with the duration setting and have the script move to the next frame only after it has completed the movement from the previous frame?
If not is their a easy way to find out how much time it takes to complete each Frame?
trying to time 45 frames with a stopwatch is one thing trying to do it with several hundred frames is another.
While I understand how to wire up a button I need help with the script
is their something / someplace that I could read up on how to use a button to start and/or stop a sequence. And on how to use a button to pause then resume a sequence with out it starting over from the beginning?
Using just the sequencer, you would need to adjust the delay for each movement manually as you mentioned. However, you can edit the script directly to try to get the behavior you want. For example, to have each movement wait for the subsequent movements to be complete before taking affect, you can use the GET_MOVING_STATE command, which returns 1 if any servos are still moving and 0 if they are all stopped, instead of a delay. Please note that for this command to work correctly, the servo channels must have a speed or acceleration setting configured. You can find more about this command and other commands available in a Maestro script in the “Command Reference” section of the Maestro User’s Guide. There is also a “Making smooth sequences with GET_MOVING_STATE” example in the “Example Scripts” section of that same guide; this is a good reference for using the GET_MOVING_STATE command in a subroutine to wait until the servos are at their final position before moving on to the next movement.
The behavior you described in your second question is a bit more difficult. The Maestro scripting language does not support interrupts, so to make a button pause and restart the script where it left off, you would need to be constantly checking to see if the button was pressed between every command. One way to do something like this might be to add some code to the “Making smooth sequences with GET_MOVING_STATE” example I mentioned earlier that checks to see if the button is pressed while the servos are still moving. When the button is pressed, you could have the script wait in a while loop until it is pressed again. The “Using a button or switch to control servos” in the “Example Scripts” section linked above shows how to wait for a button to be pressed between each servo movement (and it includes a small delay to eliminate noise or bounces on the input). You might find that useful as a guide for how to handle the button logic.
Thank You Brandon
That is exactly the info I needed.