In the Micro Maestro documentation it says I can copy/paste frames in the sequence tab and paste frame data into a spreadsheet,modify it and paste the frames back into the sequence.
I cannot get this to work, if I select a frame and click edit- copy, nothing happens, I can’t paste the frame back into the sequence or paste it anywhere for that matter. Am I missing something? I can copy and paste ok in the script tab.
I’m new to the programming side of this and am trying to control 6 servos that push 11 buttons on a key pad. I need to have it push 5 buttons then pause about 20 seconds, push another 5 buttons, pause etc. My problem is how to efficiently turn a list of say 400 numbers in a spreadsheet into the sequences necessary to move the servos.
Example: I have a list of 100 four digit numbers (1000 - 1100). I have sequences that cause the servos to press a 0-9 digit on a keypad. How do I stream all these numbers from the computer to the controller so it pushes 1-0-0-0 , waits 20 seconds then pushes 1-0-0-1, waits, pushes 1002 etc?
Thanks for any help or pushes in the right direction.
Frame copying is a relatively new feature. Please tell me what version of the Maestro Control center you have by clicking “Help -> About”. The latest version is 184.108.40.206.
As for the keypad hacking, there are many ways you could achieve this using some combination of internal scripting and/or computer control.
Here’s how I would do it:
- Click “Copy All Sequences to Script”. This should give you a script with 10 subroutines where each subroutine performs the sequence of movements needed to press a specific button. Give the subroutines good names like press_button_0, press_button_1, etc. Replace the “return” statement of each subroutine with a “quit” statement. Put the subroutines in order so that press_button_0 comes first and press_button_9 comes last. Save this script to the Maestro by clicking “Apply Settings”.
- Get the Pololu USB SDK and use it to make a program that calls the subroutines in your script from the computer (alternatively you could use the Command Port if you are comfortable with serial communication). I would simply modify UscCmd. Replace all the code after “Usc usc = new Usc(item);” with your own code.
- To make the Maestro press a button, you can use “usc.restartScriptAtSubroutine(x)” where x is the number of the subroutine to run (which is equal to the number of the button to press because you put your subroutines in the right order). After calling restartScriptAtSubroutine you should either have your program sleep for the amount of time it will take for subroutine to finish, or you should poll the Maestro using “MaestroVariables v; getVariables(out v);” to figure out when the script is done running.
- Once you have those basic pieces working, it’s just an exercise in C# programming to get the Maestro press the buttons in the sequence that you want it to.
Thanks for the comprehensive reply David, very helpful.
I knew this would be a challenge given my limited programming experience, but that’s half the fun.
Just checked my Maestro Control center and it’s 220.127.116.11 so that’s probably the cause.
Just a follow up: After downloading 18.104.22.168 I was able to do what I needed using the MID and IF functions in Excel to generate sequence frames that I can now just paste into the Maestro Control center and run the sequences from there, nice and simple.
Thanks for the help.
Good! I’m glad that the copy/paste feature was useful to you!