Cosmic Compass in action
Space is cool. Let's find things in space!
What it does
The Cosmic Compass locates and points to objects in the solar system, including the International Space Station and the major planets, Moon, and Sun.
How I built it
We've used a stepper motor and servo in order to control a pointer in terms of azimuth and elevation angles. These measurements are commonly used in astronomy to locate objects in the night sky about a specific location on the surface of the Earth. The Arduino itself is primarly mapping azimuth and elevation angles onto the stepper motor and servo. In order to get live tracking data from the ISS, we've set up a set of python scripts to take the most recent set of ISS orbital elements and calculate the actual position of the Space Station at this point in time. We then pass the relevant values to the Arduino via serial.
Challenges I ran into
The math for calculating positions of astronomical bodies is EXTREMELY complicated. We ended up using a few approximations and had to resort to doing the processing of the orbital elements on a laptop instead of locally on the Arduino. We'd also intended to use a laser cutter or 3D printer to build the pointer, but we ran into time limitations.
Accomplishments that I'm proud of
I'm super happy that we have accurate ISS data coming in live, and the ability to toggle between solar system objects. Some of the processing is complex and we sank a lot of time into getting the maths to work out.
What I learned
Math is hard. Space is hard. Glue guns suck. Sleep more, and your code won't be terrible.
What's next for Cosmic Compass
We could do with shifting the processing onto the microcontroller instead of having to compute it separately. This will require something more powerful than an ATmega328, for instance, an STM32 class chip. We'd also like to to be able to work via the user's GPS coordinates and update its data automatically online