This Cosmic Clock Can Display the Time and the Planets
With its wide array of displays and lights, this timekeeping device can show each planet's location in the sky and sunrise/sunset times.
Tracking celestial bodies
Looking up at the night sky and observing its stars/planets has been one of humanity's oldest pastimes, and even with the advent of modern smartphones, finding more information about where specific bodies are can be tedious. Rich Stevens' Cosmic Clock attempts to make this easier by displaying the position of the sun, moon, and several planets relative to the Earth in a convenient format. The device includes a pair of microcontrollers and a real-time clock (RTC) to track the time, as well as a multitude of displays and inputs for further configuration.
Building the frame
The build process began by affixing a pair of picture frames together for more depth, and it was followed by adding a backing and front PVC sheet. In order for the LEDs and display segments to shine through, Stevens carefully hand-cut slots and countersunk holes with a combination of drills and files until it matched his template. Lastly, decorative elements were attached for labeling and to hide minor imperfections.
Front panel and displays
Readouts of precise, numerical values are provided by a set of seven-segment LED modules. The five at the top show the celestial body, its angles relative to the Earth, and the amount of expected illumination. In the center are four more modules that are mostly time based, with three for the date and the final one showing the degree of rise. LEDs on either side indicate if certain planets are visible, and the ring around the central displays shows a variety of effects.
Assembling the circuit
Due to the large number of inputs and outputs, a single, simple microcontroller would not suffice. Instead, Stevens went with both an ATmega644 and an ATmega328P to split up the tasks. The clock contains a large number of LEDs- even more than can be driven individually by the MCUs combined, so four MAX7219 display drivers were needed for the multiplexing requirements. Other components included a DS18B20 temperature sensor, DS3231 RTC, an LDR for getting ambient light levels, and a whole host of passive components.
Timekeeping
The ATmega644 holds nearly all of the timekeeping and planet-indicating logic, and the code Stevens wrote has a plethora of configurability for nearly any location on the globe. By inputting one's coordinates, timezone offset, and azimuth angle offset, nearly every planet can be tracked based on the current time. The central yellow ring of LEDs is meant to display the number of seconds and users can pick from a total of up to 18 animations. Meanwhile, the ATmega328P handles the hour display on its ring of pink LEDs.
Using the cosmic clock
Powering on the cosmic clock presents the user with a wide variety of buttons and options that can be used to set/display the time/date, alter the display mode, and adjust which animations are being played. To see more about this incredibly built and documented project, you can read Stevens' write-up here on Instructables or watch this video on his YouTube channel.