
castlephelps
USA
Asked
— Edited

The robot that I am building is going to have DC motors for XY and Z movement as well as elbow bending, wrist turning, etc. I will probably wind up with eight DC motors when I'm done.
Now that I've learned how to drive a DC motor with an H-bridge which works for two motors how do I drive the remaining six motors ? One of the motors will require the use of a SyRen 50 controller.
My plan is to use 10 turn potentiometers on the motors for position feedback.
Dave,
The encoder details mentions 500 PPR is that equivalent to 125 CPR ?
are 125 CPR enough for speed control (PID) low speeds ?
Is there a minimum CPR when working with kangaroo ?
@ptp, You're asking the wrong person for these math tech questions. I only know real life results. LOL.
All I know it that the Roo has performed nicely with the low quality pots I've used with it and this encoder. I have this encoder installed at my hip joint motor that moves very slowly and for a very short distance. I can set speeds using feedback from this encoder that just creeps along like a snail. I hope that is what your asking? The manual does say: "Encoders can be either push-pull or open collector type. With open collector encoders, it may be necessary to add stronger 1k ohm pull-ups between the A,B and I channels and 5V if a long encoder cable is used. " It also says ". Values from 16 counts per revolution to over 1000 are common." So I would say it will support low CPR just fine.
The only real issue I've had with a feedback device is a cheap 10 turn pot I have in my Radar section. If used without speed ramping enabled in the DeScribe software the motor to will start and go right to speed nicely then stop at the proper location. If I enable speed ramping in DeScribe I'll get a stuttering and jumping effect when the motor starts up. This may be because of the cheap and noisy pot.
Hi all and Merry Christmas!
I have been head down building my robot mechanicals but did notice that with the saber tooth/kangaroo combo it moves the motor to the desired location an then holds it there / if I push on the arm there is no movement but if I power off the controller then I can push the arm but when I power it back up it moves the arm back to the selected location. I don't know if all servos do this but I like it. One question is - How do you reset a kangaroo to repurpose it?
Castle
Merry Christmas back at you and your family Castle. Peace, hope, health and happy robot building to all you love and care about.
I don't know much how servos act when controlled with RC commands sent by a RC controller. However the behaviour you're explaining sounds like it's working just like it should when controlled with a microcontroller. I would think the release behaviour would be the same in both modes but not sure.
Now, as far as a servo acts; regular analog servos will hold their position just like you describe your setup is doing till you release them somehow with either a release command or cut power. Some Digital servos will hold position even after you send a release command and only relax when power is cut. From what I've read recently, once released, servos should stop holding position and act like no power is being sent to them. All my analog servos act like power has been turned off when I send a release command. However I have one high end Hitec digital servo ("Ultra Torque" HS-7950TH) that still holds position when a release command is sent. I don't know about other types of digital servos then this one but from the research I've done they all should act like power has been turned off and relax when released. I just don't know as this "Ultra Torque" HS-7950TH is the only digital servo I've ever worked with. I don't like the buzzing digital servos do and my purpose really doesn't need the advantages a digital servo provides. I'm pretty sure all the servos EZ Robot sells at this time are analog servos. My guess is that they only sell the analog servos and include them in the Revolution robots is because analog servos are less expensive, less complicated, the little robots don't need the extreme holding power and level of precision digital servos provide. All this and you don't get the high pitched buzzing with analog servos either. I'm sure analog servos makes for much quieter EZ Robot Revolution robots.
However, this is all just speculation on my part and I'm wandering off subject.
As far as how to release your setup, I can only guess as we've never been able to use the Kangaroo in RC mode till you solved the puzzle. If the servo is not heating up under load, constantly fighting to keep position when not needed or sucking power from a battery you could just leave it holding it's position. I have two servos in my Robot arm I do not want energized and fighting to hold position so I make sure I release them when they are done moving. Hower I'm sending simple serial commands through the Uart port. If you really want the servo to release in your RC mode through the digital ports you're attached to you could try sending a servo Release command. This would look like this:
To shut down power to the servo in question you could try to turn off the digital port. Not sure what the effect would be but couldn't hurt to try:
You may need to turn it on again befor can use it again. However, again, I'm not sure so you'll have to experiment:
Now, I'm not sure what you mean by repurpose the Kangaroo. Do you mean resetting it so all values are at zero? There are ways to reset it but if you're using encoders you will have to rehome them each time you use this motor again. With encoders the Roo does not know where the encoder is at start up and needs to go through a homing routine to find that out. That is not a problem with a pot. There's always voltage going through a pot and the Roo know exactly what that reading is right away on startup and compares that value to your tuned values it has stored onboard. This may be an issue if using an encoder in RC mode and then turning off the digital port as I described above. Turning off the port in RC mode may shut down the Roo and force a reset (or repurpose) . Once again, I'm not sure but is something to keep in mind and test for yourself.
I can answer this question of resetting the Roo if you are sending commands in Simple Serial through the Uart port of EZB. The Roo will reset to powered up values if you send a command to "Start" the channel the motor is attached to on the Sabertooth (remember the Sabertooth/Roo has two motor channels. One for each of the two motors it can control). As you may already know This command must be sent before any other commands or nothing will work. The basic commands look like this: 1,start or 2,start depending on what channel you want to start. If sending through the Uart port of EZB from EZ Robot it must be formatted like this (this example also shows this being sent from a third EZB of 3 being used):
Remember to first start the Uart port (only needed to be done once on EZB power up:
You can also power down a motor using one of the Roo's simple serial commands of 1, powerdown or 2, powerdown . Looks like this when sending through the Uart port:
One other thing about powering down a motor through the Sabertooth/Roo. You can set the motor to automatically power down after each move from inside the DeScribe software and then upload this setting to the Roo. Then the motor should cut power after each move. This approach works great for my big windshield wiper DC motor I'm using at the elbow of my robot arm. Without powering down the motor it will heat up a lot and keep drawing power. Using this setting I don't even have to think about using the powerdown command. You'll find it towards the top of the Control section in the DeScribe software in the Kangaroo setting. I think it's called something like Cut Power after move.
Good luck and hope this helps somehow.
Dave Schulpius
Hi Dave!
What I meant by repurpose is - if I want to use the saber tooth/kangaroo with a different motor and application or input sensor is there a way to set it back to factory defaults if there are any?
An example of this is that I had the potentiometer input all set up and working perfectly on S1 so then I wanted to try the quadrature input so I installed it on S2, moved the input from the EZ-B to S2 and the motor to M2. I switched dip switch 2 to ON for quadrature input. I then did a Teach Tune auto tune and it completed successfully! I then power cycled everything, connected the computer to the EZ-B and tried moving the servo but no response from the motor...
I don't know anything about using UARTs. With my pot input I just ran a wire from D0 on the EZ-B to the S1 input on the Roo and added a Horizontal servo in ARC and configured it for D0 and then when I move the arrows the motor moved correspondingly. I assumed the same set up would work with the quad but it didn't / trying to figure out why? It should be the same signal to the Roo which should move the motor like a big servo...
I remember reading something about quadrature needing something extra - like a known starting point but don't know what that means or how to do it...
You will need to use one of the UART ports if you want to read data from the motor encoder with the ezb... The way you are doing it now is just basically one way communication out of the ezb.... Using a UART port you can have bidirectional communication where you will be able to read motor encoder counts from the roo
See this thread... Sabertooth/Kangaroo