On Wed, 16 Sep 2020 07:36:14 -0700 (PDT), in
gmane.comp.hardware.beagleboard.user Pavel Yermolenko
<[email protected]> wrote:
>I noticed that many servo motor manufacturers don't provide datasheets for
>their products (for example for my servo it's the case)
>Generic values that can be found on the web don't work for every servo.
>For example what should be pulse width for 0/90/180/360 degrees.
>I suppose the value of pulse widths depends on a particular model.
>
Very few servos have a 360 rotation range... +/- 90 degree is more
common (the exception being servos that have had the position feed back
logic removed and act as variable speed continuous motors).
https://www.jameco.com/jameco/workshop/howitworks/how-servo-motors-work.html
1.5mS pulse should be the "neutral" position (middle of the range).
https://learn.adafruit.com/adafruit-motor-selection-guide/rc-servos
https://learn.adafruit.com/adafruit-motor-selection-guide/continuous-rotation-servos
>For example I noticed that if pulse width in quite low, the servo heats up
>as an iron.
Likely you are over (under) driving the position, and the servo can not
physically move to the position you are requesting -- this leaves the coils
energized with the servo pushing against the internal end-stop.
My suggestion would be that you write a short calibration program with
which you adjust the pulse width from neutral, one step at a time, until
the servo reaches an end point (ie; the control "horn" stopped moving while
you changed the pulse width), then back up until you just detect the horn
has moved off the end-stop. Record that value and repeat for the other
direction. Maybe put a sticker on the servo with the values of the
end-point pulse widths -- neutral position should be the average of those
two values.
Do that for all your servos, and either use the minimum span for all,
or program the limits per servo (if using Python, install Adafruit Blinka
and libraries for CircuitPython -- the servo class allows override of
min/max pulse width; they default to 0.5 - 2.5ms, but do state that
"standard" servos are supposed to work with 1.0 - 2.0ms width).
https://learn.adafruit.com/circuitpython-essentials/circuitpython-servo
https://learn.adafruit.com/circuitpython-on-raspberrypi-linux (ignore the
R-Pi, it works for BBB also)
https://learn.adafruit.com/using-servos-with-circuitpython/high-level-servo-control
--
Dennis L Bieber
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/nkb4mfd0pbjeigumqjvhb0k8gur9qql2ed%404ax.com.