Achieving a randomly rotating servo or motor


I’d like to build a setup where I have a servo or motor that when switched on turns randomly clockwise or anticlockwise at a random speed and for a random duration, then goes again turning in a random direction at a random speed for a random duration.

Does anyone have suggestions of the most suitable type of servo or motor for the job? It would need the capability of being able to turn multiple times in either direction, for that reason I don’t think a standard servo would be suitable.

An outline of events:
Turn circuit on
Servo start to turn in a random direction (clockwise or anti-clockwise)
Servo starts to turn at random speed (speed randomly selected between 2 defined limits)
Servo turn for a random amount of time (time set between 2 set limits) alternatively servo turns a certain number of degrees (set between 2 limits)
Once it has turned for the randomly set time it restarts the above cycle again.

I have worked with servos and Arduino a little before, so was thinking it might be a most simple way of achieving this. Does anyone have any advice or suggestions?

I can help with the code, but have no idea about the right type of servo/motor. You could check out pololu though.

Are you intending to use a continuous rotation "servo" or a servo ?

i was thinking of using a continuous rotation servo do you think thats best way forward with this kind of project?

1 Like

That depends what sort of movement you want the servo to make

ideally a smooth continuous movement rather than a judery movement. If that's what you asking?

What I meant was, does the servo need to move more than 180 degrees, which is the normal maximum for standard RC servos

Several times you've said something like this. Do you have any numbers for the "2 limits" ?Same for duration limits. Numbers are much easier to work with than English e.g. if the degrees are more than about 180 then a standard servo won't work. But if you need to control a position in degrees then a continuous rotation servo won't work (and speed control for most of those things doesn't work well either).

Sorry to make it confusing, i was trying to make it simple, and obviously made it more confusing.

The servo would need to be able to turn at least 540 degrees preferably closer to 720.

The use: the servo will be mounted in the centre of a circular table, with an arm (broom handle) mounted to it that protrudes the radius of the table. The only weight it will move is its own weight (arm). Id like the arm to turn randomly clockwise and anticlockwise, and randomly from 0-540 degrees. I'm not so concerned about the time it takes, if the servo can turn at different speeds, i would like it to randomly select a speed to turn to the randomly selected amount of degrees it will turn. But if the servo cant turn at various speeds, it's not a problem.

After its made its movement id like it to chosen another amount of degrees to turn and a direction to turn in. It doesn't matter to the project for the servo to have a defined centre point where it starts every time.

I hope this makes the intentions a bit clearer?

Thanks for your time

A continuous rotation "servo" could do what you describe but would need to be quite powerful to move a broom handle. A further complication is that unless the servo is at the centre point of the broom handle, which I would guess is not the case, then the weight of the broom handle will need to be taken by the output bearing of the servo. This is far from ideal

A stepper motor could be used to provide the same output movements, but once again the lop sided weight of the broom handle would be a problem

How long does the pointer need to be and could it be something much lighter than a broom handle, such as a length of piano wire ?

The pointer would be about 60cm. Yes, it could certainly be something lighter than a broom handle. I think a piano wire might be slightly too thin, but the top end of a fishing rod would work. This would be much lighter than a broom handle.

But almost certainly still too heavy. The bearings on a servo or stepper motor are not designed to deal with forces in this direction.

Could you use a double ended pointer shaped like an arrow with a pointer on one end and "feathers" on the other ? This would allow the servo/motor to be connected to the centre of the pointer thus balancing the forces applied to the output shaft.

You know what? Servos are cheap. Buy two, make the pointer as light as feasible, and try it. I bet it lasts for ages.

If it does fail, well then you can do a little engineering to support the pointer between a pair of ball bearings, and attach the second servo you bought.

The weight is a minor consideration, the moment of inertia (MoI) is the important thing - and that scales with radius-squared and mass, so 60cm means anything will have a large MoI, unless its super super light.

If the load is not balanced that is another important consideration as this creates an imbalance torque (that scales with radius and mass).

The mass itself is only a consideration for bearing loading.

I repeat my advice: try it. Then you'll know; no speculation or expert opinions required.

Yes, i could use a double-ended pointer to balance the weight. I imagine i could get away with a shorter side with a heavier load and a longer side that is lighter. As long as the load is equal on each side.

With regard to type of servos and motors, do you think it's best to try with a continuous rotation servo or a winch servo or something else?

I have found a winch and a CR servo:

61g Digital Sail Winch Servo 6-Turn programmable KingMax It delivers 12.3kg (4.8V) 14.5kg (6V) Torque.

Hitec HSR-2645CRH Continuous Rotation Digital Robot Servo it delivers between 8-12kg of torque between 4.8-74V.

Or do you think there is a more suitable starting point?

Learning to calculate these things is far more empowering - you'll always be able to get things right in the future. Learning basic mechanics will really help avoid going down blind alleys of design.

You'd not recommend ignoring V=IR for designing simple circuits would you?
Same thing in mechanics, much benefit to be had from a simple few equations...

You make an excellent point, and one I agree with completely, as I'm an ex-educator myself.

However, it does depend on what the OP actually wants. Do they want to learn some physics, or do they just want a solution for this particular challenge? I don't think we should assume the former, and I must admit that I assumed the latter from the wording of the original question.

Also, the physics involved can quickly explode into more complexity than might be appropriate for a learner to worry about. As well as the moment of inertia calculations, the OP might have to find information which isn't readily available, such as the load limits on the servo bearings; the maximum rate of acceleration that the servo can produce and how that is affected by the inertia of the pointer; the stiffness, damping and resonant frequency of the pointer; how to calculate the MOI of tapered (or other shapes) of the pointer; how to handle non-homogeneous materials, such as wood; and so on.

There is a lot to be said for developing a "feel" for the materials and forces, and that is never done by working with calculations - hands on experiments, failures, breakages and successes are essential.

So, your approach is academically beyond reproach, but I would argue it isn't always the best approach.

Indeed, "best" is very context-dependent. Often long term v. short term is in conflict!

Thanks for the feedback.

I guess the main objective is to make the servo/arm successfully. Secondly, it's to learn about the technical elements. I'm someone that learns more through doing and getting a feel for the materials.

At the moment the intention is for the servo to be operational for an art exhibition that will last roughly 8 hours. The aim would be to have it working for this entire duration, it's not something that needs to last a lifetime.

The reason I wrote to the forum was to get an understanding or idea on the most suitable direction to take, for example, what type of servos or motors are best suited to this kind of project. What type should I start testing with, and are there any things I should avoid.