Autoguided Telescope
by Orange Digital Center in Circuits > Robots
1038 Views, 24 Favorites, 0 Comments
Autoguided Telescope
This project was developed within the Orange Digital Center Morocco , a space dedicated to fostering innovation, creativity, and rapid prototyping. At the FabLab, individuals and teams have access to state-of-the-art tools, including 3D printers, laser cutters, and a variety of electronic and mechanical resources. The center provides a collaborative environment where innovators, entrepreneurs, and students can transform their ideas into tangible products. By focusing on sustainable and impactful solutions .
Imagine a telescope with a motorized Dobsonian mount that transforms stargazing into an awe-inspiring adventure. With just a selection, it automatically guides itself to your chosen star, using precise online data or ingenious offline calculations to navigate the cosmos. It's more than just a telescope—it's a gateway to the universe, empowering you to explore the stars with confidence and ease. Whether you’re an experienced astronomer or just beginning your celestial journey, this tool is a reminder that no star is too distant, no dream too big. Look up, select your target, and let this telescope take you there—because the universe is yours to explore!
The Cad Conseption
For a precise and efficient build, I used Onshape, an online CAD platform, to design the parts of the telescope. In projects like this, precise simulations are crucial to ensure all components fit together perfectly before starting physical assembly. Onshape allowed me to create detailed models of the telescope tube, Dobsonian mount, and motor housings, simulating how they would interact. This step saved time and materials by identifying potential alignment issues early in the process. Additionally, the collaborative features of Onshape made it easier to iterate on the design and ensure each part met the project’s objectives for smooth movement and accurate tracking.
Downloads
Building the Rotating Base (Z-Axis Desk)
The rotating desk is a key part of my telescope’s design, enabling smooth left-right (azimuth) rotation. I carefully designed it in two parts using Onshape, focusing on precision to avoid alignment issues.
- Lower Desk:
- I glued a toothed belt (similar to the ones used in 3D printers) around the edge of the lower desk to act as a gear system.
- This belt ensures smooth and controlled movement when engaged with the motor on the upper desk.
- Upper Desk:
- The stepper motor is mounted here, with a pulley that meshes with the belt on the lower desk for precise rotation.
- For enhanced stability and smooth rotation, I added three bearings, each positioned 120 degrees apart.
- Central Bearing:
- At the center of rotation, I placed an additional bearing to support the weight of the upper desk and ensure consistent movement.
- Material Choice:
- Both desk parts and the bearing holders were made from plexiglass to keep the structure lightweight yet sturdy.
This setup allows the telescope to move effortlessly along the Z-axis with minimal friction, ensuring precise azimuth alignment. The combination of the toothed belt system, multiple bearings, and lightweight materials ensures reliable and smooth tracking performance.
Building the X-Axis Rotation (Up-Down Movement)
For the X-axis rotation, which controls the telescope’s up and down movement, I designed a compact and efficient gear system to ensure smooth operation:
- Gear System:
- I used a small 11-tooth gear connected to the stepper motor, engaging with a larger 96-tooth gear.
- To save space and filament, I only printed half of the larger gear, providing the necessary range of motion without excess material.
- Mounting and Assembly:
- The gear system is held between two plexiglass plates, carefully aligned and secured with screws.
- To reduce vibrations and enhance stability, I added an extra support plate, keeping the structure solid during motor operation.
- I used a heat gun to bend the plexiglass plates into the required shape, allowing them to fit perfectly with the motor and telescope tube. This bending process gave the plates a custom fit while maintaining their structural integrity.
- Design Constraints and Considerations:
- Due to limited plexiglass, I kept the mount shorter, which slightly reduced the telescope’s altitude range. However, the system remains functional for most observations.
- Tip: When assembling, ensure that the plates are spaced properly to fit the telescope tube comfortably, allowing for smooth tilting without obstruction.
This setup offers smooth and precise altitude control, with the hot-bent plexiglass ensuring a tailored fit for the gears and motor. Despite material constraints, the system is stable, accurate, and free of vibration, ensuring reliable tracking during observations
Lenses
Magnification in a telescope is achieved by using lenses with very different focal lengths, according to the formula:
Magnification = (Focal Length of Objective) / (Focal Length of Eyepiece)
With the lenses I found:
- Objective Lens: 1 diopter = Focal Length of 1 meter
- Eyepiece Lens: 12 diopters = Focal Length of 83 mm
The magnification for this combination becomes:
Magnification=1 / 0.083 = x12 zoom
While a 12x magnification is sufficient for observing the Moon's craters and surface details, it falls short for detailed planetary observations. Though I explored additional lenses that could provide higher magnification, their size is not compatible with my DIY telescope design. These smaller lenses would introduce excessive light distortion, making them impractical and frustrating for the user. Thus, while the 12x setup serves as a decent starting point for lunar observations, it limits the potential for observing more distant celestial objects like planets.
Telescope Body
For the body of the telescope, I repurposed some tubes I had available at home. To ensure a smooth and precise movement, I 3D printed two parts that allow the smaller tube to slide inside the larger one with a secure and fixed translation. This design helps maintain stability while adjusting the focal length. Additionally, I created a holder part that features a simple screw nut system, which, combined with bearings, firmly secures the body to the previous assembly along the Y-axis.
For the lens installation, I designed and 3D printed specific fittings for each of the two parts, allowing them to attach directly to the tubes without the need for glue. This modular approach not only simplifies assembly but also makes it easier to replace or upgrade components in the future. Overall, these design choices contribute to the telescope's functionality and adaptability, ensuring a reliable structure for observing celestial objects.
Testing Mechanism
Wiring and Power Supply
Power Supply and Fuse Protection
- The 12V power supply delivers power to the stepper drivers and motors, ensuring smooth operation.
- A 3A fuse is connected in series with the power input to prevent electrical overload, protecting components from overcurrent or short circuits.
Arduino and Stepper Motor Control
- The Arduino Nano manages both stepper motors through two motor drivers, each responsible for driving the motors along:
- Z-axis rotation (Left-Right) for azimuth.
- X-axis rotation (Up-Down) for altitude.
Starting Position Switch (Pin 6)
- A momentary switch is connected to pin 6 of the Arduino. This switch is only used at the beginning to calibrate the telescope. Once the motor for the up-down movement (X-axis) reaches the switch, the Arduino use that point as a known reference angle,then the telescope goes to the 0 degrees telling the user that it is ready.
- After this initial calibration, the telescope no longer needs to reset at each startup. The Arduino will remember the motor positions throughout usage, allowing the telescope to resume smoothly from its last known position in subsequent sessions.
- after that the switch act as a limit stop , as it prevents the motor from over-rotating and damaging the telescope.
This method of calibration eliminates the need for extra components, such as gyroscopes, simplifying the system while ensuring reliable and accurate operation over multiple sessions
more shortly:
- Pin D2: Connected to the Step pin of the first stepper motor driver (top motor).
- Pin D3: Connected to the Dir pin of the first stepper motor driver.
- Pin D4: Connected to the Dir pin of the second stepper motor driver (bottom motor).
- Pin D5: Connected to the Step pin of the second stepper motor driver.
- Pin D6: Connected to the limit switch (used to set the starting position).
- VCC (Logic Voltage): Connected to the Arduino’s 5V pin.
- GND (Logic Ground): Connected to the Arduino’s GND pin.
- VMOT (Motor Power): Connected to the 12V power supply positive terminal.
- GND (Motor Power Ground): Connected to the 12V power supply ground.
- A1 & A2 of each driver: Connected to one coil of the stepper motor.
- B1 & B2 of each driver: Connected to the other coil of the stepper motor.
- MS1,MS2,MS3: connected to 5v to get the lowest speed (1/16 step).
Downloads
Design of the Remote Control
We can't talk about autoguided telescopes without talking about the remote used to control the them, the design of the remote control was centered around ease of use and functionality. It includes the following key components:
- Joystick: Used for navigating menus, selecting stars or celestial objects and confirm the selection by pressing, and manually moving the telescope.
- Two Buttons:
- Button 1: Dedicated to settings like adjusting the date and time.
- Button 2: Used to switch between the three modes: Offline mode, Online mode, and Manual mode.
The layout ensures that all components are accessible and intuitive for quick operation during telescope sessions. The LCD screen displays real-time information such as the selected mode, star names, or tracking status, helping the user stay informed during use.
In the next section, I will explain in more detail the role of each button and how the remote interacts with the Arduino.
Remote Control System for the Autoguided Telescope
For my setup, I used an LCD screen paired with a joystick and two buttons. One button is dedicated to settings like configuring the date and time, while the other button switches between three modes:
- Offline mode (for selecting preloaded sky objects based on equations).
- Online mode (for selecting more objects with more accuracy using a software ).
- Manual mode (for adjusting direct movement of the telescope using the joystick).
Initially, I connected the remote to the first Arduino Nano. However, I encountered a lot of electrical interference (parasitic signals) due to the 12V power supply, even after twisting the wires to reduce noise. To solve this issue, I introduced a second Arduino Nano exclusively for managing the remote functions.
The first Arduino now handles the motors while the second handles the remote and calculations, the joystick is connected to both Arduinos.This setup allows seamless control in manual mode inorder to save UART communication between the two Arduinos just for sharing the calculated altitude and azimuth. The two Arduinos are synchronized using two additional pins 9 and 8 of the second arduino connected to 10 and 11 of the first , which indicate the current mode state between them. This ensures that the first Arduino always knows what mode is active.
This configuration also prevents any accidental movement of the telescope when navigating menus or selecting stars, since the joystick is shared between the two Arduinos. The separation of control tasks significantly improved stability and avoided issues caused by the 12V power interference.
Power Supply and PCB Assembly
For the telescope's power system, I chose a 12V power supply to ensure compatibility with the stepper motors and other components. The assembly process went as follows:
Power Supply Connection:
To make the telescope easily portable and compatible with any power source, I attached a cable to the power supply that allows for quick and convenient plugging. This ensures that the telescope can be powered reliably without needing additional setup each time.
3D-Printed Components for Mounting:
- Power Supply Holder:
I designed and 3D-printed a holder to secure the power supply ensuring it remains suspended without touching the axis of rotation below it
- PCB Holder:
Another 3D-printed part was created to hold the PCB securely in place. This component ensures that the PCB is well-protected and firmly mounted, preventing any accidental disconnection or movement during operation.
PC Connection for Online Mode:
Finally, I added a dedicated hole in the telescope's body. This allows one of the Arduino boards to be connected to a computer via USB for online mode operation. The hole is positioned for easy access, enabling quick switching between offline and online modes without affecting the telescope's structural integrity or design.
This thoughtful assembly ensures a clean and efficient setup, with all components securely mounted and properly connected for optimal performance.
Downloads
Understanding the Math Behind Azimuth and Altitude Calculations
In this section, I’ll explain the basic calculations needed to find the azimuth and altitude of any star, based on its Declination (Dec) and Right Ascension (RA), as well as the time and location of the observer.
For those unfamiliar with astronomy, here's a quick overview:
- Right Ascension (RA) is like longitude for stars, telling us how far east a star is along the celestial sphere.
- Declination (Dec) is like latitude for stars, indicating how far north or south a star is from the celestial equator.
- Azimuth is the angle from the north point of the horizon (measured clockwise), showing the direction where the star appears in the sky.
- Altitude is how high the star is above the horizon.
These calculations allow us to pinpoint where a star or sky object is at any given time, based on our location on Earth.
To perform these calculations, we need the following parameters:
- Time: The time of observation is crucial because the positions of stars change throughout the day due to Earth's rotation.
- Location: The latitude and longitude of my location on Earth affect the position of stars in the sky.
For my telescope, I’ve simplified the math to avoid complex calculations. I can calculate the azimuth and altitude based on the star's RA and Dec, my location, and the current time, making it easier to track stars without needing overly complicated formulas.
A Note on Star Movement Over Time
One important thing to note is that the Declination (Dec) and Right Ascension (RA) of stars can change slightly over time, especially for nearby objects like the Sun, Moon, planets, and comets. These objects move across the sky in a noticeable way. However, for distant stars, their RA and Dec do not change significantly in short periods (except over long periods).
While the calculations in this document are effective for tracking stars and observing their movement, this small shift in RA and Dec over time can cause some variations. But for most practical uses and within short periods, these changes are negligible. By focusing on the simplified method, I avoid the need for more complex, time-consuming calculations.
Telescope and GUI Programming
This project combines Python and Arduino to create a fully automated and versatile telescope control system. The system allows users to align their telescope with celestial objects by fetching real-time altitude and azimuth data from Stellarium Web and sending these coordinates to an Arduino-controlled telescope mount. Additionally, it provides offline and manual control modes, making it adaptable to various needs, whether you're observing in remote areas or making precise adjustments with a joystick.
This project consists of two main components:
1. Python GUI Application
The Python program acts as the user interface, offering a simple yet powerful way to select celestial objects, retrieve their coordinates, and send data to the Arduino for motor control. Key features of the Python application include:
- Graphical User Interface (GUI): Built with Tkinter, the application features a list of sky objects, port detection, and a dynamic background for a better user experience.
- Web Integration: The program uses Selenium to scrape Stellarium Web for real-time altitude and azimuth data of the selected celestial object.
- Serial Communication: Once the coordinates are retrieved, they are sent to the Arduino via pySerial for motor control.
This application ensures a seamless way to control your telescope in online mode, allowing for precise alignment with celestial targets.
2. Arduino Stepper Motor Control
The Arduino code is the backbone of the telescope's movement and control. It is designed to handle both automatic and manual modes of operation. The code is divided into three main modes:
a. Online Mode (Serial Data from Python):
- In this mode, the Arduino receives altitude and azimuth data directly from the Python application via the serial port.
- The AccelStepper library is used to control two stepper motors (one for altitude and one for azimuth) with precise acceleration and deceleration.
- The telescope moves automatically to align with the desired celestial object based on the coordinates sent by the Python application.
- iIn my case, because I have two Arduinos communicating through the serial port, I need to use a serial port splitter to connect to the GUI. I use a software called 'Launch Virtual Serial Port Driver' for this purpose
b. Offline Mode:
- Offline mode enables the telescope to work without a PC or Python application.
- Users can input predefined or hardcoded values for altitude and azimuth directly into the Arduino sketch.
- This mode is particularly useful for remote areas where internet access or a computer is unavailable. The telescope can still align itself to common celestial objects using pre-programmed coordinates.
c. Joystick Adjustment Mode:
- The joystick mode allows for manual control of the telescope's movement.
- Users can move the telescope along the altitude (up/down) and azimuth (left/right) axes using a connected joystick.
- This mode is ideal for fine-tuning the telescope's position or for manually exploring the night sky.
- The joystick sensitivity threshold ensures smooth and responsive control, while the AccelStepper library guarantees precise motor movement.
Final Test and Future Improvements
For the final test, I added a green laser to assist in locating sky objects more easily when using the telescope in manual mode. This addition was particularly helpful since the telescope's image appears upside down, which can make object tracking more challenging. To securely attach the laser, I 3D-printed a custom holder This ensured the laser was aligned and stable during operation.
Testing and Imaging:
I tested the telescope at night, and while it is challenging to capture through-the-eyepiece photos that replicate what is seen directly by the human eye, I made an effort to edit the images for better clarity. The telescope performed well for observing objects like the Moon and big sky object like the C/2023 A3 comet that was at the peak of his appearance at that time.
Future Improvements
While the telescope is functional, there are a few enhancements I plan to implement in future iterations:
- Additional Small Telescope for Higher Zoom:
- Adding the smaller 80x zoom telescope I've mentioned before mounted on top of the current one would provide higher magnification for deeper sky observations.
- This addition would also aid in calibrating the center of mass when the telescope is fully extended, improving stability and balance.
- Following Mode for Star Tracking:
- Incorporating a following mode will allow the telescope to automatically track celestial objects as they move across the sky due to Earth's rotation.
- This feature would eliminate the need for manual adjustments, making the telescope more user-friendly for extended viewing sessions.
These improvements would elevate the telescope's usability and accuracy, transforming it into a more versatile and advanced tool for stargazing. The current version has laid a solid foundation, and I look forward to refining it further in future builds.