Project in progress

Spirograph is a geometric drawing toy that produces mathematical roulette curves of the variety technically known as hypotrochoid.

• 1,246 views
• 0 respects

## Components and supplies

 Arduino Nano R3
×1
 Rotary potentiometer (generic)
×2
 DC motor (generic)
×1
 SparkFun Full-Bridge Motor Driver Breakout - L298N
×1

## Necessary tools and machines

 Hot glue gun (generic)

## Apps and online services

 Arduino IDE

Spirograph is a geometric drawing toy that produces mathematical roulette curves of the variety technically known as hypotrochoids and epitrochoids. It was developed by British engineer Denys Fisher and first sold in 1965.

The name has been a registered trademark of Hasbro Inc. since 1998 following purchase of the company that had acquired the Denys Fisher company. The Spirograph brand was relaunched worldwide with original product configurations in 2013 by Kahootz Toys.

Consider a fixed outer circle {\displaystyle C_{o}}

centered at the origin. A smaller inner circle {\displaystyle C_{i}}

is rolling inside {\displaystyle C_{o}}

and is continuously tangent to it. {\displaystyle C_{i}}

will be assumed never to slip on {\displaystyle C_{o}}

(in a real Spirograph, teeth on both circles prevent such slippage). Now assume that a point {\displaystyle A}

lying somewhere inside {\displaystyle C_{i}}

is located a distance {\displaystyle \rho <r}

from {\displaystyle C_{i}}

's center. This point {\displaystyle A}

corresponds to the pen-hole in the inner disk of a real Spirograph. Without loss of generality it can be assumed that at the initial moment the point {\displaystyle A}

was on the {\displaystyle X}

as the inner circle is set in motion.

Now mark two points {\displaystyle T}

on {\displaystyle C_{o}}

and {\displaystyle B}

on {\displaystyle C_{i}}

. The point {\displaystyle T}

always indicates the location where the two circles are tangent. Point {\displaystyle B}

however will travel on {\displaystyle C_{i}}

and its initial location coincides with {\displaystyle T}

. After setting {\displaystyle C_{i}}

in motion counterclockwise around {\displaystyle C_{o}}

, {\displaystyle C_{i}}

has a clockwise rotation with respect to its center. The distance that point {\displaystyle B}

traverses on {\displaystyle C_{i}}

is the same as that traversed by the tangent point {\displaystyle T}

on {\displaystyle C_{o}}

, due to the absence of slipping.

Now define the new (relative) system of coordinates {\displaystyle (X', Y')}

with its origin at the center of {\displaystyle C_{i}}

and its axes parallel to {\displaystyle X}

and {\displaystyle Y}

. Let the parameter {\displaystyle t}

be the angle by which the tangent point {\displaystyle T}

rotates on {\displaystyle C_{o}}

and {\displaystyle t'}

be the angle by which {\displaystyle C_{i}}

rotates (i.e. by which {\displaystyle B}

travels) in the relative system of coordinates. Because there is no slipping, the distances traveled by {\displaystyle B}

and {\displaystyle T}

along their respective circles must be the same, therefore

{\displaystyle tR=(t-t')r}

or equivalently

{\displaystyle t'=-{\frac {R-r}{r}}t.}

It is common to assume that a counterclockwise motion corresponds to a positive change of angle and a clockwise one to a negative change of angle. A minus sign in the above formula ({\displaystyle t'<0}

) accommodates this convention.

Let {\displaystyle (x_{c}, y_{c})}

be the coordinates of the center of {\displaystyle C_{i}}

in the absolute system of coordinates. Then {\displaystyle R-r}

represents the radius of the trajectory of the center of {\displaystyle C_{i}}

, which (again in the absolute system) undergoes circular motion thus:

{\displaystyle {\begin{array}{rcl}x_{c}&=&(R-r)\cos t, \\y_{c}&=&(R-r)\sin t.\end{array}}}

As defined above, {\displaystyle t'}

is the angle of rotation in the new relative system. Because point {\displaystyle A}

obeys the usual law of circular motion, its coordinates in the new relative coordinate system {\displaystyle (x', y')}

obey:

{\displaystyle {\begin{array}{rcl}x'&=&\rho \cos t', \\y'&=&\rho \sin t'.\end{array}}}

In order to obtain the trajectory of {\displaystyle A}

in the absolute (old) system of coordinates, add these two motions:

{\displaystyle {\begin{array}{rcrcl}x&=&x_{c}+x'&=&(R-r)\cos t+\rho \cos t', \\y&=&y_{c}+y'&=&(R-r)\sin t+\rho \sin t', \\\end{array}}}

where {\displaystyle \rho }

is defined above.

Now, use the relation between {\displaystyle t}

and {\displaystyle t'}

as derived above to obtain equations describing the trajectory of point {\displaystyle A}

in terms of a single parameter {\displaystyle t}

:

{\displaystyle {\begin{array}{rcrcl}x&=&x_{c}+x'&=&(R-r)\cos t+\rho \cos {\frac {R-r}{r}}t, \\[4pt]y&=&y_{c}+y'&=&(R-r)\sin t-\rho \sin {\frac {R-r}{r}}t.\\\end{array}}}

(using the fact that function {\displaystyle \sin }

is odd).

It is convenient to represent the equation above in terms of the radius {\displaystyle R}

of {\displaystyle C_{o}}

and dimensionless parameters describing the structure of the Spirograph. Namely, let

{\displaystyle l={\frac {\rho }{r}}}

and

{\displaystyle k={\frac {r}{R}}.}

The parameter {\displaystyle 0\leq l\leq 1}

represents how far the point {\displaystyle A}

is located from the center of {\displaystyle C_{i}}

. At the same time, {\displaystyle 0\leq k\leq 1}

represents how big the inner circle {\displaystyle C_{i}}

is with respect to the outer one {\displaystyle C_{o}}

.

It is now observed that

{\displaystyle {\frac {\rho }{R}}=lk, }

and therefore the trajectory equations take the form

{\displaystyle {\begin{array}{rcl}x(t)&=&R\left[(1-k)\cos t+lk\cos {\frac {1-k}{k}}t\right], \\[4pt]y(t)&=&R\left[(1-k)\sin t-lk\sin {\frac {1-k}{k}}t\right].\\\end{array}}}

Parameter {\displaystyle R}

is a scaling parameter and does not affect the structure of the Spirograph. Different values of {\displaystyle R}

would yield similar spirograph drawings.

The two extreme cases {\displaystyle k=0}

and {\displaystyle k=1}

result in degenerate trajectories of the Spirograph. In the first extreme case when {\displaystyle k=0}

we have a simple circle of radius {\displaystyle R}

, corresponding to the case where {\displaystyle C_{i}}

has been shrunk into a point. (Division by {\displaystyle k=0}

in the formula is not a problem since both {\displaystyle \sin }

and {\displaystyle \cos }

are bounded functions).

The other extreme case {\displaystyle k=1}

corresponds to the inner circle {\displaystyle C_{i}}

of the outer circle {\displaystyle C_{o}}

, i.e. {\displaystyle r=R}

. In this case the trajectory is a single point. Intuitively, {\displaystyle C_{i}}

is too large to roll inside the same-sized {\displaystyle C_{o}}

without slipping.

If {\displaystyle l=1}

then the point {\displaystyle A}

is on the circumference of {\displaystyle C_{i}}

In this case the trajectories are called hypocycloids and the equations above reduce to those for a hypocycloid.

The work is still in process and I planed to 3D print it.

I'm here now and could draw these spirographs with the first prototype.

• 10 projects
• 61 followers

#### Published on

April 26, 2019
See similar projects
you might like

#### Polar Drawing Machine

Project showcase by David

• 53,058 views
• 319 respects

#### Caravaggio, A Drawing Machine

Project showcase by Michele

• 31,291 views
• 170 respects

#### CNC Machine

Project tutorial by Manan Thareja

• 24,659 views
• 49 respects

#### The Drawing Machine

Project showcase by Kramick Saha

• 17,248 views
• 22 respects

#### ULTRASONIC LEVITATION Machine Using ARDUINO

Project tutorial by edison science corner

• 6,867 views