Introduction: Galileino 1 - Hardware Simulator of Earth and Sun in Motion

Galileino 1 - Hardware simulator of Earth and Sun in motion

Behind the idea of building a hardware emulator of the Earth rotating and revolving around the Sun there is the fact that software models, even when producing powerful and magnificent graphics scenarios on a screen, are somewhat less intuitive and impressive than real rotating balls,that can be touched and inspected in the real 3D world. This applies specially for very young children,for whom few real world impressions may well be more effective than lots of pictures and stories.

The idea was suggested by the need to show rotation and revolution of the Earth to very young children in the pre-school phase of a kindergarten. Such a system could explain the alternation of night and day and possibly even the alternation of seasons.

Accordingly, a model of the Sun/Earth system should have shown both rotation and revolution and arrange the rotation axis with its proper angle and position during the yearly revolution. To do this, a small globe had to be mounted on a support that would keep the same orientation during a rotation around a center. The easiest solution was to mount the globe on the disk of a revolving pulley, connected to a fixed pulley in the centre by a toothed belt; the two pulleys needed to have the same number of teeth and the same diameter, so that one revolution around the centre would correspond exactly to a 360°rotation of the revolving pulley.

The rotating globe had to be mounted with a support and a motor on the rotating pulley at an angle of 23.5°, i.e.the actual angle of the Earth rotation axis; the easiest solution was to use a small stepper motor with the axis directly connected to the rotation axis, the latter implemented with a screw rod; the stepper motor, then commanding the globe rotation, would be easily controlled by an Arduino mounted on the revolving pulley. Since a central control circuit had necessarily to be in a fixed position during the revolution and rotation of the globe, there was the need to have some sliding contacts in the pulleys;slip rings were used to that purpose.

A first idea was to mount the whole model on a big basis panel containing the whole revolution orbit, but the object would have been bulky, heavy and not easily portable. So, another solution was searched and finally adopted, with the revolving pulley and the globe mounted on a rotating arm that could just be placed on any free lower surface wide enough to contain that orbit (a table,the floor etc.).

The actuation of the revolution with some central motor was considered, but the motor should have been quite powerful to apply the required torque to the revolving arm and to the pulley with the globe from the revolution centre, and finally the idea was instead followed, to use a rubber wheel at the radial end of the arm, moving on the lower surface (vehicle-like arrangement); then the corresponding motor would need a much lower torque to displace the wheel along its circular track on the lower surface.

Originally it was thought to control also this motor with another Arduino, and have a central controller (possibly a Raspberry Pi or another Arduino) communicating via USB with the two Arduinos controlling the globe rotation and revolution motors, with the possibility also to freely position the globe in correspondence of a desired time and date,set by the user in the central control; then for reasons of time the first built version of the model was limited to perform just an independent start/stop and speed control of rotation and revolution and a DC motor with a gearbox adaptor was used, with a simple control of the DC supply voltage.

To have stability of the central position (that should not move under the push of the “vehicle-like” rubber wheel) some substantial weight had to be arranged in that position; a brick was used, with a support arrangement having height-adjustable feet. With this weight, the force applied to the arm by the motor at the radial end results only in a rotation of the arm which is centered in the hub.

An easily available tube-shaped table leg with a flange was cut and bored, to be used as a central hub, with power and signal cables running inside. Hexagonal bolts were embedded in a laser cut acrylic layer of the brick holding arrangement, protruding from the top, so that the flange, together with the arm portion, could be quickly and easily fixed to the brick with wing nuts. This arrangement results in the apparatus being made of just two parts, i.e. the heavy hub support with the brick and protruding bolts, and the rotating arm with globe, pulleys and motors up to the flange; these two parts are so separately and easily transportable, so that the apparatus can be quickly and easily assembled to provide the Earth motion simulation setup on the desired surface.

For the sun a translucent globe lamp has been an easy and effective solution; as the slip ring occupies the central position of the fixed pulley, the easiest solution was just to hang the lamp.

The control circuit was much simplified with respect to the original intentions, for reasons of time and finally the stepper motor was controlled by Arduino by means of an analog input. A flat cable with all the connections from the hub was connected to a control box (implemented with laser cut MDF) containing just a simple circuit with power supplies and variable voltage generations.

The flat cable used for the connection allows the whole system to be arranged on a table (as in the pictures here)or on the floor without creating substantial obstacles for the movement of the rubber wheel,that can easily pass over it.

The device was used very effectively with the children in a Kindergarten to show the motion of the Earth during a theatrical activity where I played myself the character of the scientist Galileo Galilei.


Future developments and perspectives

A “version 2.0” of the device is already in consideration, for use in schools with children of a higher range of age. Ideas for this version are:

- Addition of an optical absolute encoder in the hub and optical detectors in the rotating arm, so as to get, in every Earth revolving position, the information of the calendar day; the encoder could be designed also to take account of the effect of the eccentricity of the Earth orbit just in the calendar (while still having an actual circular orbit – not so much different in shape from a circular one - to avoid great mechanical complications).

- Test of the use of a stepper motor also for the rubber coated wheel,with an additional Arduino on the rotating arm controlling this motor and the calendar day reading, and use of a bigger slip ring in the fixed pulley for an additional number of connections.

- Lowering the position of the whole system by putting the hub brick closer to the basis surface,while still keeping the feet adjustable,with improved mechanical stability (This would reduce the undesired torque applied by the rubber wheel, which tends to cause an undesired torsion and rotation of the arm orthogonal to its axis).

- Addition of intelligence in the central controller,possibly an Arduino or Raspberry Pi communicating with the two mobile Arduinos via USB.

- Implementation of a user input/output arrangement (small keyboard or encoder and display) in the central controller.

- Implementation of a much more complete software (partially already implemented) to have different modes of operations, with speed controls of rotation and revolution,if desired also dependent on each other, and setting at will the Earth to a predetermined position defined by calendar date and time.

- Addition of a removable lens on the rotating arm, along the light path from the central lamp to the globe, to focus on the latter the lamp light and have a more abrupt shadowing on the globe.

Finally, even a third version could be envisaged, with addition of the Moon rotating around the Earth, which would involve a major increase of mechanical and control complexity.

Step 1: The Rotating Globe

For the Earth a 12 cm globe was used, available from Amazon :

An advantage of this inexpensive globe is the high quality of the physical geographical representation and the presence of two holes in the poles, perfectly matched to an M6 threaded rod, which is used as Earth rotation axis.

For the Earth's rotation the inexpensive 28BYJ-48 geared unipolar stepper motor was used, available from various providers together with an ULN2003-based driver circuit, e.g. : and well known for easy interfacing with Arduino.

The threaded rod was directly coupled at one end to the geared motor's axis by means of a short piece of plastic pipe (the type for watering plants), tighten at the motor's axis and at the threaded rod by means of two fasteners with screw, nut and washers (the fasteners were segments of a 4 mm zip ties with bored holes for M2 screws).

The motor was encased in a matched 3D printed basis structure of PLA, adapted to be secured to the upper disk of the revolving pulley (see below) with M4 screws and providing w.r.t. this disk's surface a tilt of 23.43°, corresponding to the actual tilt of the Earth rotation axis. The basis structure was also adapted, in combination with a bearing structure and 4x M4 threaded rods, to form a support structure for the rotating globe.

The bearing structure was made of two 3D printed parts, a main member with a recess for a 6 mm ball bearing for the globe axis rod and a cover to close and fasten this ball bearing.

Beside some pictures of the rotating globe system, files for 3D printing the structure members are included, in both .scad (OpenScad) and .stl formats.

Remark: the figures show also the presence, between the basis structure and the bearing structure, of a disk-like element with an optical pattern mounted on the globe axis; this disk was originally meant to provide an optical reference for the earth rotation for positioning instructions, but in the end it was not used in Galileino's first version.

Step 2: The Control of the Rotating Globe

The rotating globe is controlled by an Arduino Nano, commanding the ULN 2003 driver that comes with the motor; this setup for the control of the stepper motor is per-se well known, see e.g. .

The control program is finally very simple, as only a speed control based on an input analog voltage has been implemented in Galileino's first version; the Arduino sketch is here included. Arduino's 8-11 terminals were used as digital outputs to the ULN 2003 driver, together with ground and +5V connections; analog input pin A0 was used to control the speed. The library stepper.h was used and the sketch was based on the already available Example Software Sketch.

The circuit was mounted in a 3D printed case of PLA secured on the upper disk of the rotating pulley, with a transparent laser cut plexiglas cover, having a hole for the cables connecting to the motor and to the 6 line slip ring in the centre of the pulley, which finally uses two lines for ground, two for +5V (power supply to Arduino, the ULN2003 controller and the motor), and one line for the speed control input analog voltage.

Beside a picture of the circuit case, files for 3D printing this case and laser cutting its transparent cover are included in different formats, as well as the Arduino sketch.

Step 3: Toothed Belt and Pulleys

As explained in the introduction, the orientation of the Earth axis is kept constant during the revolution by means of a fixed pulley in the revolution center and a revolving pulley connected by a toothed belt.

Furthermore, to carry power and signals with no entanglements of the cables, slip rings with sliding contacts have been embedded in the centers of the pulleys; such slip rings are cheap and easily available from different Internet suppliers, e.g. .

To design the whole system, it is important to determine a relation between the total length of the toothed belt and other parameters of the system and then to make a proper choice of the involved sizes; at the end an inexpensive 6T5 150 cm belt was chosen (e.g.;ARTICLE=138430;SEARCH=zahnriem ). The pulleys diameter was then chosen at 19.4 cm, which resulted in a Sun-Earth distance of 44.5 cm and a radius of 54.2 cm of the circle occupied by the system in operation (see notes at the end of this step for more details).

The pulleys were realized each by laser cutting 2 equal wheel profiles in 5mm thick plexiglas (see files mobile_pulley_5, both in .svg and in .pdf formats) and gluing these two wheel profiles together, so as to get 10 mm thickness, which fits well with the 6mm wide toothed belt.

Both pulleys are sandwiched each between a somewhat larger upper disk and a lower disk, so as to prevent the belt from sliding away. The mobile pulley is mounted by means of a rotatable ring-shaped ball bearing (e.g. ) on a plate fixed on the rotating arm.

For the mobile pulley the upper disk is defined by the files scheibe_fh (both .svg and .pdf ), with holes in the middle to accommodate the slip ring, and the lower disk by the files scheibe_l2 (both .svg and .pdf). In the upper disk then 3x 4mm holes where drilled to secure the Earth globe support and 2x 3mm holes to secure the control circuit case, in positions corresponding to holes in the lower portion of these parts and not interfering with the plexiglas parts; the slip ring was mounted with the flange on the lower side of the upper disk. In the lower disk, holes were drilled in correspondence of those of the inner ring of the ring-shaped ball bearing.

When assembling the mobile pulley, the slip ring, the control circuit case and the Earth globe support should be first mounted to the upper face of the disk by means of 4M and 3M screws and nuts, then the ring-shaped ball bearing should be mounted to the lower face of the lower disk with 3M screws and kept distant from this lower face by means of intermediate nuts (so that the lower disk can freely rotate w.r.t. the outer ring of the ring-shaped ball bearing); finally the so assembled upper and lower disk should be connected together with 4x 4M screws in their respective holes.

For the fixed pulley the upper disk is still defined by the file scheibe_fh and the lower disk by the file fixed_pulley_ldisk (both .svg and .pdf). The slip ring is mounted with the flange on the upper side of the upper disk and the lower disk has a central hole large enough to accommodate the end of the hub and holes to secure L-shaped supports that connect to the hub.

When assembling the fixed pulley, once the rotating arm has been put in position (see next steps), first the lower disk should be secured to the 4x L-shaped members on the hub, then the slip ring should be mounted in the center of the upper disk with the flange on the upper side and the wires should be passed through the hub up to the base, then finally the upper and lower disks should be tighten with the plexiglas pulley.


If we call d the diameter of the pulleys (equal to each other), b the distance between their centers, R the radius of the circle occupied by the system during the revolution and L the total length of the belt, we have the following relations:

b=0.5*(L-πd) ; R=0.5*[L-(π-1)d]

When choosing the involved parameters it should be kept in mind that:

- d should be big enough so that the revolving pulley may accommodate the support of the rotating globe and the case of its control circuit, as well as a slip ring in the center; also, the support of the rotating globe and the globe on the axis should be positioned such that the center of the globe is vertically aligned with the center of the pulley (otherwise the orbit circle would not be properly centered on the center of the fixed pulley);

- R should have a value that guarantees portability of the system, as the surface on which the rubber wheel moves should be large enough to accommodate a circle having diameter 2R;

- b should be a good compromise to show the Earth movements, taking into account the size of the Earth globe and of the Sun lamp.

Step 4: Revolution Motor, Gearbox and Rubber Wheel

To actuate the Earth revolution a motor with a gearbox and a rubber wheel was arranged at the movable end of the rotating arm.

The rubber wheel should provide enough friction to move without sliding on most surfaces; e.g. the chosen one has been used with good results on an MDF panel, on smooth paperboard laid on the floor and on wooden tables with plastic coating; portions covered with an adhesive tape (e.g. at joints between paperboard portions or across the flat connection cable) were also easily crossed during the revolution movement.

Rubber wheels good to this purpose are easily available at DIY stores, e.g. , originally meant to be used for furniture, trolleys etc.

Although a future development foresees the use of a second Arduino controlled stepper motor, in the first version a recycled DC motor was used and the adaptation of the DC motor rotation to the slow speed of the rubber wheel during Earth revolution required the use of a gear reducer.

As for my project I recycled a DC motor I had at hand (recovered from an old turntable or cassette deck or similar), I had to design and realize myself the gear reducer based on the characteristics of the motor and of the whole system. This DC motor was available to me also with a small pulley and a larger pulley connected by a small toothed belt, providing already a speed reduction ratio of 1:3.8.

As I don’t expect this DC motor, with pulleys and toothed belt, to be easily available on the Internet, the gearbox will have anyway to be designed depending on the specific type of motor used; I will try here to provide clues for such design, rather than describing in all details the one I realized.

Plastic gearwheels for use in the gearbox can be easily found among article for model building, e.g. :

The gearwheels were mounted on M4 and M3 threaded rods, easily available at DIY stores; they were fastened to the rod by means of two nuts with star washers, tightened in opposite directions.

The rubber wheel had first to be freed from its support, by sawing its hub; then, as the central hole was 6mm diameter, it had to be reduced to 4mm to fit an M4 rod. To this purpose, a 6mm aluminum-tube can be used (see e.g. and inserted in the center of the rubber wheel, by filing an end so as to easy the introduction, hammering it in the wheel, cut it with a saw (to obtain a bush) and hammer it back with the help of the cut hub, so as to finally have the diameter of the central hole reduced to 4mm.

Then it can be mounted on an M4 threaded rod, next to a toothed wheel a few millimeters smaller (e.g. with 40 teeth) and tightened with star and elastic washer and nuts in opposite direction.

The 6mm alu-tube can be also cut to prepare spacers, as they may be needed on a shaft, and bushes for holes in the shaft supports, all fastened by counter-tightened nuts with star and elastic washers.

All the shafts are supported by two laser-cut plexiglas panels, with holes for the shafts, for structural threaded rod connections; on the upper side they are adjustably fastened to slits in another plexiglas member, so that the height of the revolving arm can be adjusted to remain horizontal.

In my case the DC motor was also fastened to slits, to adjust the tension of the small toothed belt.

In order to design the gearbox it would be useful to make a drawing of the plexiglas supports and of all the wheels together (as in gearbox_1.pdf) and to obtain from this a drawing of the two supports (as in gearbox_2.pdf, green indicating boreholes for the rods in the front and back panels, whereas for the motor red indicates a hole in the front and green a hole in the back).

For the gear reduction ratio, a calculation can be based on the maximum speed of the motor and on the desired maximum speed of the rotating arm.

E.G. if the motor maximum speed is 18 turns/s and the maximum speed of the rotating arm is one revolution in 30s, as the rubber wheel is positioned at about 550 mm from the hub, the max. speed fo the rubber wheel has to be 550*2π/30s = 116 mm/s ; as the diameter of the rubber wheel is 38 mm, this corresponds to 116 mm/s / 38*π mm = 0.97 turns/s. Therefore the total reduction ratio has to be 18/0.97 = 18.56:1. The small toothed belt already provides a reduction of 3.8:1 ; accordingly the gearbox should have totally a reduction ratio of 4.88:1.

Step 5: Revolving Arm and Hub

As the movement of the revolving arm is determined by the motor at the revolving end and the rotation is very slow, on the central hub there is little mechanical demand.

The central hub has been made with part of a tube-shaped table leg, already available with a 5 screw flange (e. g. ); the flange can be unscrewed from the tube by simple rotation of the latter. The leg tube had to be saw cut at a distance of 80-85 mm from the contact with the flange and the so cut tube portion prepared with some boreholes and a filed/milled recess (see hub_drawing.pdf).

The revolving arm was made with a C-shaped aluminum bar, saw cut at the desired length. 4x members with a loop end were laser cut in plexiglas (see files mobile_hub2 in .svg and .pdf) so as to match the inside of the C-shaped bar and the hub tube; then 3x of them had to be glued together and inserted in the bar; the 4th was meant to stay outside the C-shaped bar, parallel to the others. The 4x members were then also fastened to each other with two screws, each with a nut as spacer in the position corresponding to the C-shaped bar thickness, so obtaining a hub matching member for the hub side end of the revolving arm; this member provides a rotatable coupling of the arm with the hub and, in view of the low mechanical demands of this coupling, no special measure to reduce friction were necessary but just a bit of grease.

The hub matching member was secured to the C-shaped arm by 3x M4 screws with plain and elastic washers and nuts; correspondingly normal holes were drilled in the C-shaped arm, but elongated slits were laser cut instead in the 4x members with a loop, so as to allow a length adjustment of the radius of the revolution for the revolving arm, which allows to set the tension of the big toothed belt between the fixed pulley and the revolving pulley.

4x L-shaped supports for the lower disk of the fixed pulley were fixed to the upper end of the tube hub, with all the distances determined such that the fixed pulley, the revolving pulley and the big toothed belt lie exactly in the same plane, parallel to the C-shaped arm.

When mounting, first the hub tube had to be cut, then prepared with drilling and filing/milling, then the 3x m4 screws under the lower plexiglas ring had to be fixed with nuts having a flat side up anf then the lower plexiglas ring had to be put in place. After spreading a bit of grease above that ring and on the hub tube, the prepared hub matching member could be put in place and finally the 4x L-shaped supports put in place. On those L-shaped support than the lower disk of the fixed pulley can be fastened. The slip ring in the middle of the fixed pulley can then be fixed to the upper disc, with the flange on the upper side; the cables from the lower part should be held together and passed through the upper part of the hub tube, through the hole drilled in the inner partition wall of the hub tube and through the filed/milled notch in the bottom. Once the cables are passed, the fixed pulley can be completely assembled, a rubber ring can be arranged around the cables at the height of the notch and finally the lower flange of the leg tube used for the hub can be screwed, finalizing in this way the hub side of the revolving arm.

On the moving end of the revolving arm, an MDF plate was mounted to accommodate the ring bearing with the revolving pulley. This MDF plate was laser cut (see files mobile_plate2) corresponding holes in the revolving arm were drilled.

Two plexiglas support members (see files height_adapter_2) were prepared, to be mounted through L-shaped supports to the moving end of the revolving arm; these support members had slits in correspondence of screws to fix them with adjustable height to the revolution motor and gears.

A hole for passing cables from the lower side to the upper side and a corresponding support were arranged along the length of the revolving arm.

Step 6: Central Base

A central base, to which the revolving arm hub is connected, must have an important weight, so that it remains still while the motor of the revolving arm applies its torque at the moving end of the arm.

A simple solution was to use a brick I had available in my garden.

Screws matching with the hub flange had to be arranged on the upper side of the brick, and on its lower side feet had to be arranged, with adjustable height and good friction in their contact with the underlying surface, so as to match the height of the revolving pulley on the underlying surface, containing the path of the rubber wheel, and to provide stability on that surface.

The brick was painted black and sandwiched between two rectangular MDF plates large enough to accommodate 4x M6 threaded rods with nuts, elastic and fixed washers on both ends to clamp the brick in position. On the upper side a plexiglas plate was arranged between the brick and the MDF plate, having the same size of the latter and with 5x laser cut hexagonal holes to accommodate the hexagonal head of 5x M5 bolts, whose threaded portion would protrude from the upper MDF plate, so that the whole central base could be easily fastened to the central hub flange without tools, just by tightening winged screws on these protruding portions.

4x M6 threaded screw-nut-elements to be hammered ( see e.g. ) were used in the lower MDF panel to receive threaded adjustable feet. These feet were made with an an M6 screw (see e.g. ) holding with a nut a slider washer at the lower end (see e.g. ), to which an adhesive slide stopper was fixed (see e.g. ) to guarantee the required good friction; nuts tightened in opposite direction were used at the other end of the screws, to render the feet easily hand adjustable.

Step 7: The Control Circuit

The control circuit is very simple, it has just to provide:

(1) an adjustable power supply to the revolution DC motor,

(2) a fixed +5V power supply for the rotation stepper motor and Arduino and

(3) the variable analog voltage to be detected by Arduino and used to adjust the speed of the stepper motor.

The DC motor used for the revolution had a nominal voltage of 9V; it turned out that a variable (1) voltage 3-15V was the most suitable to control its operation. The required current was less than 0.5 A (tipically 300 mA). I had already in my storage a variable power supply with 25 V 1A max. based on the LM317 integrated circuit and I just changed an original voltage adjusting potentiometer with another one having a smaller value wih a fixed resistor in series. Anyway any easily available adjustable power supply in that range can be used (see e.g. ), and the range 3-15V can always be obtained by replacing in the same way a potentiometer that generates a reference voltage with a different one with resistors in series. E.g. in the shown figure a potentiometer with value Rt may be replaced by one with value Rx with two resistors R1 and R2 in series, to obtain the voltages as shown in the formulas; at best Rt' should be as close as possible to Rt.

For the (2) voltage a current of about 300 mA is necessary for the stepper motor alone and somewhat less than 1 A may be required by Arduino; altogether, the current provided by a standard 7805 regulator will be more than sufficient. A figure with the schematics of such a regulator is included, as well as a figure of the arrangements of its components on a board with a dot matrix and underlying copper strips, cut in appropriate points to produce some “PCB-like” circuit.

Finally, the (3) analog voltage may be easily obtained by these +5 V with a potentiometer.

Therefore two power supplies are necessary; at best they could be powered by a single transformer with two secondary windings. This was actually my case, as I used a transformer I had in my storage, with a 220 V primary winding and two secondary winding having different taps; I used taps at respectively 6 V for the (2) voltage and 18 V for the (1).

Anyway, other solutions may well be chosen, e.g. by recycling AC adapters of old DC appliances.

The two circuits were arranged on opposite sides of the transformer; a general switch (interrupting the 220V input connection) with a 3D-printed push-button and a sliding switch to exclude just the power supply for the (1) voltage were also provided in the front panel; for the connection of the flat cable to the control unit a connector on a small PCB recovered from a computer appliance was used.

The case of the control unit was made with laser cut MDF panels (see included plans), connected at their corner by means of aluminium segments from a square section bar and self tapping screws.