Project: Solar system model

Hi All

I am a hobbyist in the process of creating a model of the solar system. I will model six planets and the Sun. I was planning to use six continuous rotation servos to drive the orbits and control them with a raspberry pi pico programmed in Python.

I will use a Github orbital calculator library and write some additional support code to then drive the motors. The idea is to calculate the position of the planets and then tell the servomotors to rotate them to the correct position.

Do you think it’s best to use servos or stepper motors for this?

Am I able to drive six motors simultaneously with the pico?

It’s my understanding that the pico uses micro Python. If I should require a full Python implementation what is the next board up?

Thank you !!!

Daniel.

1 Like

Servo motor sounds a better choice: Model of solar system - Project Guidance - Arduino Forum

2 Likes

Hi Daniel,

Both steppers or servos will work but each stepper will need to be connected via a stepper motor driver so it’s more complicated than necessary.

You can drive 6 servos from the Pico just by having a digital output pin per servo, and connecting all the servos to an external power supply.
The Pico will handle the control signals for each servo, but can’t supply enough power directly to actually move them, so you will need to identify a suitable power supply that will be able to drive all 6 servos. The voltage required will depend on the servo motors you choose.

Also, there are two main groups of servos out there:

  • Standard servos receive a signal representing a position and move to that position.
  • Continuous rotation servos receive a signal representing a speed and will rotate at the speed instructed.

Standard servos are likely a better choice for your solar system model.

3 Likes

Hi Trent.

I have often been puzzled by this statement.

This may not be the appropriate post to bring this up so feel free to transfer my thoughts to a separate post.

Servo speed is often quoted as ???degrees in ???seconds or ???degrees per second.
A 360Âș servo is basically a “standard” servo with the position feedback potentiometer disabled.
This disabled pot is set at an arbitrary 90Âș and at a pulse width of 1.5mSec the servo will remain stationary in that position.
When the input pulse departs from 1.5mSec the servo will move CW or CCW depending on which way the pulse goes. All OK.
Your statement above indicates the speed will be governed by how far this pulse differs from 1.5mSec. Exactly how is this achieved??? Surely if a 1.7mSec pulse is generated the servo will ramp up to full speed and stay there waiting for the position pot to get to the corresponding position. Now this pot is disabled so will never get there so the motor continues to rotate. AT FULL SPEED. I can’t see how changing the pulse width governs the SPEED.
Perhaps someone can enlighten me.

Some time ago I was interested in this so I purchased a 360Âș servo which was supposed to behave as you suggest. I thought good, a slow speed motor speed controlled in both directions with a single pot. BUT when I tried it all I got was a direction change when the pulse width was changed up or down from 1.5mSec. There may have been some minuscule control of speed with slight variations above and below 1.5mSec but I think this was largely my imagination.

This motor has been consigned to the “maybe I’ll find a use for it some time” basket as for now if the speed is not controllable it is of very little use.
Cheers Bob

1 Like

Hi Bob,

I agree continuous rotation servos generate quite a bit of confusion as they break the conventions of what a servo is and how it is supposed to operate.
They are quite popular though so it seems they will continue to be made where people want an easy-to-control all-in-one variable speed drive.
The speed should be proportional as the servo is fed a duty cycle further and further from the center duty-cycle.

Adafruit has a better-worded explanation than I can manage which you can find in this part of their motor selection guide.

3 Likes

Hi Trent.
All very interesting but I can assure you that the one I purchased is full speed as soon as the pulse differs from 1.5mSec.

This makes sense when you consider the hypothetical situation: Pulse applied directing the servo to move from 90Âș to 110Âș. Servo moves at its rated speed (??? degrees per second or whatever the rating is) and stops when it gets to 110Âș. It has moved this 20Âș at its full rated speed. Now if the feedback pot is disabled it will keep going AT THIS SPEED. In other words the pulse width has nothing to do with the speed and it has all to do with the final positioning. To have this work as a speed AND direction control something else has to happen inside these motors and they are no longer servos and could never be made to be servos by enabling the position feedback pot.

Anyway it is quite easy to have speed and direction control with a single pot with centre position being “OFF”. Can post a simple sketch if interested but it should be the subject of another post. Not hijack this one which was not my intention.
Cheers Bob

3 Likes