Pololu Robotics & Electronics
Menu
My account Comments or questions? About Pololu Contact Ordering information Distributors

Pololu Forum

Maestro 6 channel starting sequence

Hello I have a Maestro 6 channel servo controller and I have servos in all 6 channels. My question is I need to run the sequence of servos , which is in the controller, from a momentary contact button the sequence then runs to the end and then restarts on the push of the button again. Can this be done?. I don’t do code at all it has been programed from the downloaded servo controller. Any help would be appreciated

Hello.

Each channel on the Maestro servo controllers has three modes it can be configured in: Servo, Input, or Output. There is not a separate pin available for connecting a button; it should be connected to a channel configured as an input as shown in the “Attaching Servos and Peripherals” section of the Maestro user’s guide. That being said, you might be able to still use 6 servos if two of your servos are always moving together (e.g. receiving the same signal) by using something like a Y Splitter Cable to connect them both to a single channel on the Maestro, freeing up a pin to be used as your button input.

Alternatively, you could achieve something similar if you power the Maestro from a switch and configure the Maestro to start the script as soon as it receives power. Then, each time you power the Maestro (e.g. turn the switch off and back on), the Maestro could run through the script once. To do this, you can check the “Run script on startup” option in the “Script” tab of the Maestro Control Center software. Also, if you want the script to only run once, you can terminate it with the QUIT command.

Brandon

Many thanks for the reply I like the idea of switching off then on I will buy more channels next time

Hello I have freed up a channel and can now use it as an input to start my servo sequence, Now I don’t code so I have no idea how to get this to work. I have seen the wiring for the pull up resistor and can sort that out and the switch is a SP ST momentary contact. Any Help would be greatly appreciated

Hello, sparky.

To start your script with the push of a button, you can add some code at the beginning of your BEGIN/REPEAT loop that stays in a while loop until a button is pushed. For example, you have your button connected as an input on channel 5, you can add this while loop to have the script wait for the button before continuing:

begin  
  5 get_position 500 greater_than while  #wait in while loop until button connected to channel 5 is pushed
repeat

If you try adding something like this to your script and have problems, you can post the script you have so far and I would be happy to help troubleshoot.

Brandon

Hi Brandon!

I have tried this method, and keep getting the following error:

The script has stopped because of an error. You must restart the device to continue.

Any ideas? I am using a Maestro 12 and my button is on the last channel (11).

begin
11 get_position 200 greater_than while #wait in while loop until button connected to channel 5 is pushed

750 6784 256 13120 3456 10944 0
0 0 0 0 0 frame_0…10 # Start
1000 4814 frame_1 # Tilt Right
1000 256 6125 frame_1_2 # Tilt Left
1000 13120 frame_2 # Face Forward
500 4160 frame_0 # Jaw Open 1
500 6784 frame_0 # Jaw Closed 1
500 4160 frame_0 # Jaw Open 2
1000 6743 frame_0 # Jaw Closed Two
5000 2727 8800 frame_3_4 # Start Pour
1000 3456 10944 frame_3_4 # End Pour
repeat

sub frame_0…10
10 servo
9 servo
8 servo
7 servo
6 servo
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return

sub frame_1
1 servo
delay
return

sub frame_1_2
2 servo
1 servo
delay
return

sub frame_2
2 servo
delay
return

sub frame_0
0 servo
delay
return

sub frame_3_4
4 servo
3 servo
delay
return

Hello, CapitalLlama.

I am sorry you are having problems adding the while loop to your script. Patrick has posted a response to your problem in the thread you started on this topic.

Brandon

Hello Brandon,
I’m not sure what I’m doing wrong. There is so much I don’t know. I have contacts connected to ch 12 and it is set as an input. I can see the value change when in the status tab. I’d like it to be active low. I have a short test sequence that pulls ch 0 low for 5 seconds. I added the sequence mentioned to the script (using the script tab)

0000: – # test1
0000: – begin
0000: 020C2E02C828070C00 – 12 get_position 200 less_than while
0009: 060000 – repeat
000C: –
000C: – begin
000C: 03208813401F401F401F401F401F401F401F401F401F401F401F401F000000000000 – 5000 8000 8000 8000 8000 8000 8000
002E: – 8000 8000 8000 8000 8000 8000
002E: 80 – 0 0 0 frame_0…11_15…17 # Frame 0
002F: 03048813920F81 – 5000 3986 frame_0 # Frame 1
0036: 03048813401F81 – 5000 8000 frame_0 # Frame 2
003D: 060C00 – repeat
0040: –
0040: – sub frame_0…11_15…17
0040: 02112A – 17 servo
0043: 02102A – 16 servo
0046: 020F2A – 15 servo
0049: 020B2A – 11 servo
004C: 020A2A – 10 servo
004F: 02092A – 9 servo
0052: 02082A – 8 servo
0055: 02072A – 7 servo
0058: 02062A – 6 servo
005B: 02052A – 5 servo
005E: 02042A – 4 servo
0061: 02032A – 3 servo
0064: 02022A – 2 servo
0067: 02012A – 1 servo
006A: 02002A – 0 servo
006D: 08 – delay
006E: 05 – return
006F: –
006F: – sub frame_0
006F: 02002A – 0 servo
0072: 08 – delay
0073: 05 – return
0074: –
0074: –

Subroutines:
Hex Decimal Address Name
00 000 0040 FRAME_0…11_15…17
01 001 006F FRAME_0

I do not get any response from my switch no matter what position it is in and the only way I get the sequence to run (and it does so on a loop) is to click “run script” in the script tab window
I’m not even sure of the process of editing the script, much less how to load it into the maestro. Should I be able to have the Maestro connected to the computer and start the sequence with the switch and monitor it in the status window? As for the script I’m supposed to add to the end that waits till the switch is opened and closed again (Patrick helped me with this)…I have no idea where to add it? at the very end of all the text in the script? I’ve tried everything I can think of and I just get errors. I’m out of replies on the original thread (saying thank you took care of that)
Any idea what I’m doing wrong
Thanks
Tim

Hello, Tim.

I responded to your post on the original thread we were discussing this on. Let’s continue our conversation there:

- Patrick