Hi, I’m thinking of using a Micro Maestro Controller to my continuous servo. I´m going to use 4 button to control the different servo positions/movement.
The 4 different buttons is:
- Using a push button to rotate to a “zero” position.
- Using a push button to rotate 360 degrees forward and then 360 degrees backward (starting from zero position and end at zero position)
- Using a momentary button to rotate forward as jog function (within zero position and +360 degrees)
4, Using a momentary button to rotate backwards as jog function (within zero position and -360 degrees
Is this possible to use a Micro Maestro to achive this?
You can write a Maestro script to handle the button presses and logic for moving the servo, but the behavior your described is not something a continuous rotation servo can do by itself. Continuous rotation servos typically sacrifice their position control for the ability to turn continuously. More details about this can be found in our “Continuous-rotation servos and multi-turn servos” blog post. If you need position control with a continuous rotation servo, one solution might be to add some external sensors or limit switches to detect specific positions. Alternatively, as mentioned in the blog post linked above, there are 1 turn and multi-turn servos available that retain their position control through their range of motion, which might be a good option since it sounds like 1 or 2 turns is enough for your application. You should be able to find these kinds of specialty servos with an Internet search for “sail winch servo”. They typically still accept standard RC servo signals, so the Maestro should be able to control them.
Depending on your application, another solution might be to use a stepper motor instead of a servo; however, if you need to have a “zero” position, you would probably either need a stepper motor with an absolute encoder, or some kind of limit switch to indicate this position to your controller.
Great , I have a sail servo that retain position in 5 turns. I have tried it manually in the Pololu USB software and it position it to zero position at 1500
Do I have to write the code by myself or is it possible to use USB software to achieve this?
The Maestro Control Center has a sequencer and a script editor; but the sequencer can not handle inputs (i.e. it is only for creating a series of servo movements). You can write a custom script to read your pushbuttons and move the servo accordingly in the “Script” tab of the Maestro Control Center. If you are new to the Maestro scripting language, I would recommend reading through “The Maestro Scripting Language” section of the Maestro user’s guide. You could start getting familiar with the programming by going through the example scripts. Additionally, the “Step Script” button in the “Script” tab of the Maestro Control Center is very helpful for debugging or understanding what each line of code does. When you are ready to try writing your own custom script, the “Using multiple buttons or switches to control servos” is a probably a good place to start.
If you run into problems when writing your script, you can post what you have so far here and I would be glad to take a look.