The idea of an Orrery has always intrigued me. They are typically a mechanically geared device that simulates the orbital periods of our solar system. There are some fine examples that you can find photos of online that are magnificent in their workmanship and materials. But I wanted to make one that could show me what the orientation of planets were on any given day, with the ability to present a static display or show the planets orbiting at the correct rates. Of course, an Orrery is anything but accurate in terms of, well anything really. Planets don’t orbit the Sun in concentric circles, or maintain a constant speed (Relative to the earth as they are elliptical in orbit around the sun). About the only thing that is similar is that they are all orbiting on the same plane. Probably the greatest difference is the spacing, if you were to accurately scale up the orbital periods from the marble sized planets I am using, Neptune would be 12km away!
I decided that stepper motors and some type of micro-controller would be the best way to control the planets with precise individual control. Many would say that the choice of an Arduino was less than ideal considering the mathematics required to calculate Heliocentric Planetary locations, and they would be right. The use of a Raspberry Pi is almost ideal for the application. Powerful, small, and a complete pain for me to use. I have tried and failed to come to terms with programming them. The C++ variant of an Arduino just makes sense to me, and I have used dozens of them over the years for projects. The Due fit the bill.
I came up with the idea of driving everything off jack shafts through a central hub. Originally, I was going to make the entire drive train out of gears driven directly off of the stepper motors, but it gradually evolved into a belt drive system. It took me quite a few months to come up with a system that I liked with the visual items that seemed to be right in my minds eye. The central system came together relatively quickly once I committed to the central stacked bearing design. For the first time that I can recall for a project, I did not have a clear plan on what the Orrery was going to look like at the very end.
With the hardware sorted, all that was left was painting and the still unresolved programming. I hate painting. That’s all I am going to say about that. What’s more intriguing is 1’s and 0’s! Its amazing what a $30 Arduino can do in the hands of someone with no formal training outside of high school and a handful of parts from China,. Apparently the limit is the meat behind the keyboard. Pretty astonishing really. But I digress. Throughout the project -almost from day one- I knew that the program to orientate the planets would be tough. Allot of barriers stood in the way for me. Understanding the orbital mathematics is about as far outside of my wheelhouse as working on the JPL lander. I tried to bash together a formula based on orbital periods of planets from an orientation. Utter failure is the best way to describe this attempt! Next up, lookup tables? Making tables for each planet consisting of 5,000 data points was as appealing as dental surgery… After a few nights searching I stumbled upon some papers written by a Swede Along with Kepler’s formulas. Now trigonometry is not my strong suit, so tackling the orbital math was quite daunting. Dozens of hours were spent trying to get the formulas to work in excel before converting into C++. Thankfully the blind luck of selecting the Due made this viable. The Due is unique in the Arduino family for having exceptional extended math capabilities. Thankfully programming fell into place shortly afterwards. 10 months of on and off fabrication and design has turned into an educational and visually appealing piece that I hope sparks many years of enjoyment.