Skip to content

A system that aims to track and predict the movements of celestial objects with a fair amount of accuracy.

License

Notifications You must be signed in to change notification settings

celestialheroes/celestial-tracker

Repository files navigation

Real-Time Celestial Object Movement Tracking and Prediction System

A system that tracks and predicts the real-time location of celestial objects with simplified calculations and component setup. To view the project demo and the computations, please click here.


Table of Contents


Materials Required

Component Link
3 X Arduino Uno Amazon
16x2 LCD Display Flipkart
Push Button Switches RobotShop
L298N Motor Driver IC Amazon
28BYJ-48 5V DC Step Motors RobotShop
Jumper Wires Amazon
Breadboard Amazon

Installation:

Install the required dependencies:

pip install numpy
pip install astropy
pip install skycoord
pip install plotly
pip install tkinter
pip install sqlite3
pip install scipy
pip install astroquery
pip install threading

Steps for Construction

1. Construct the Circuit

Prepare the Arduino:

  • Mount the Arduino boards and connect them to your PC via USB.

Connect the Azimuth Stepper Motor:

Plug the azimuth stepper motor into the ULN2003 driver.

Arduino Pin ULN2003 Pin
D8 IN1
D9 IN2
D10 IN3
D11 IN4
5V VCC
GND GND

Connect the Altitude Stepper Motor:

Repeat the steps for the altitude stepper motor:

Arduino Pin ULN2003 Pin
D2 IN1
D3 IN2
D4 IN3
D5 IN4
5V VCC
GND GND

Note: To enable counterclockwise rotation, swap the connections as needed.

Connect the LCD User Interface (Arduino 3):

  • Connect the LCD to the third Arduino and attach buttons for mode and celestial object selection.
Arduino Pin LCD Pin
D12 RS
D11 E
D5 D4
D4 D5
D3 D6
D2 D7
5V VCC
GND GND

Buttons:

Arduino Pin Button
D8 ButtonUp
D9 ButtonDown
D10 ButtonSelect
D13 ButtonReset

Power the Arduinos:

  • If running on USB power, ensure all Arduinos are connected to separate USB ports.
  • For external power supply, connect 5V DC to ULN2003 VCC pins.

2. Create an Elegant Case

  • LCD Interface: Cut holes in a box for buttons and the LCD display. Enclose the circuit and fix the components in place.
  • Celestial Object Locator: Mount motors on a tripod and attach a stick for azimuth and altitude alignment.

Usage

Setting up the System

  1. Verify hardware connections.
  2. Install software dependencies and upload codes.
  3. Power on the system.

Operating the LCD Interface

  1. Start the System: The LCD will display a welcome screen and prompt for mode selection.
  2. Select the Mode: Use Up/Down buttons to choose between:
    • Real-Time Mode: Track celestial objects in real-time.
    • Prediction Mode: Predict celestial object positions.

Using Real-Time Mode

  1. Navigate Celestial Objects: Scroll through the list and select an object.
  2. Track Object: The LCD shows "Tracking " and adjusts motor positions.
  3. View Results: Observe the motors aligning with the object.
  4. Reset/ Switch: Press Reset to return to the mode selection.

  5. Using Prediction Mode

    1. Trigger Prediction: The LCD shows "Triggering Prediction." Enter values such as object name and observation dates.
    2. Enter Values: Provide observation start/stop dates and prediction times.
    3. Observe and Record: The system predicts positions and updates the motors and 3D visualization.

    Maintaining and Troubleshooting

    1. Calibrate Motors: Test and ensure both motors move in the correct direction for positive and negative angles. If the movement is incorrect, swap the motor connections and re-test.

    2. Debug Serial Communication: Use the Arduino IDE's Serial Monitor to verify that each Arduino correctly receives data from the Python program.

    3. Reset for Errors: If any issue arises during tracking or prediction, press the Reset (D13) button to return to the main menu.

    4. Check Hardware Connections: Ensure all wires and connections are secure. Verify that the power supply is adequate for the motors and servos.

    5. Note: To enable the functionality of rotating the shaft anticlockwise for the altitude and azimuth stepper motors when pointing at celestial bodies or tracing their orbits, interchange the connections of the motor's input ports to the Arduino's Digital ports. Test-run the code to check if the motors move anticlockwise. Iterate until the desired movement is achieved. One of the motors must move anticlockwise for positive angles, and for negative angles, similarly.


    Scope for Improvement

    1. Accuracy Enhancements: Incorporate more accurate orbital mechanics and real-time GPS for location updates.
    2. Space Debris Tracking: Modify the system to monitor space debris.
    3. Advanced Sensors: Add gyroscopic/accelerometer sensors for precise positioning.
    4. Deep-Space Objects: Extend the system to track exoplanets, comets, etc.
    5. Portability: Design a weatherproof enclosure for outdoor use.
    6. Multi-Object Tracking: Support multiple object tracking with additional motors.
    7. User Accessibility: Integrate voice control or a smartphone app.
    8. Renewable Power: Power the system using solar energy for sustainability.

    Contributors

    • Krish Praneeth G
    • Vishnu Kumar K

    Contact the creators:
    Vishnu Kumar K

    vkneutromaster@gmail.com
    Krish Praneeth G
    gkrishpraneeth@gmail.com