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
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.
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
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.
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).
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
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.
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
I responded to your post on the original thread we were discussing this on. Let’s continue our conversation there: