3 axis planetarium projector via software control


I am a newbie to Arduino. I am not sure where to start to organize the Arduino into my project.

I have a pretty strong background in Analog electronics relating to synthesizers. The only programming\digital work I have done is writing hex code to represent a sine / cos wave on an eeprom, controlling it with a variable clock and running it through a DAC for a ‘digilog’ output. I am embarking on a more ambitious project and am largley in the dark.

I am building an optical planetarium projector. There are three axis of rotation: 1- the base of the machine to derive annual and precessional motion. 2- the fork \yoke attached to the base wherein latitude can be derived. 3- the starball wherein diurnal motion is derived.

All of which will be driven by steppers with planetary gearboxes and gt2 timing belts. So far no problem.

What I would like to accomplish is a control platform as some sort of console, with the capability to ‘dial in’ commands on the fly. For example displaying diurnal (daily star motion) and controlling the speed and simultaneously changing the latitude axis etc. Ideally, i would like to interface this with “Stellarium” software, whereby I can set the date and time and the projector will follow the software. The software is currently equipped to manage clock drives on telescopes.

At this point, I am not sure where to go for advice and guidance to accomplish this. I have a 3-axis ‘Bob’s CNC’ with an arduino controller running GRBL and interfacing with Gcode, which interfaces to my CAD software. It seems that what I wish to do is along the same lines. Perhaps I am barking up the wrong tree?

A picture is attached of what my design is based on.

Thank you for your help!

No picture. See this Image Guide

I wonder could you achieve what you want with some custom Gcode. It is really very simple to produce - just the x, y and z movements or positions. Maybe you could program another Arduino (or a PC or RaspberryPi would be much easier) so it would play back a sequence of Gcode steps to cause a particular motion using GRBL.

Maybe you could write a simple PC program (using Python, perhaps) to create the Gcode files.


I am embarking on a more ambitious project and am largley in the dark.

Well, that's actually a good idea for a planetarium.

Are you sure you want to use stepper motors? While the stepping motion might look ok on the surface of the projector, by the time the light is projected on the walls, the stepping will be quite jerky.