4. First tried to make GoTo from the Seben mount with steppers driving a 100:1 gearbox.
Shaft rods 8 mm and 10mm flexed and had a huge backlash. Construction was very unstable
and a decision was made to rebuild.
5. Mars observation with Seben scope
Mars angular size 3.5″ – 25.1″
Screen width 0.2 degrees = 60 min/5= 112’ *60= 720’’
640 pixels *3.5/720 =3 pixels
640 pixels *25/720 =22 pixels
Mars was crossing the screen in one minute without tracking
General tracking requirements:
during one second 360/86400 = 0.0041667 degrees/s
speed 360/86400*60 0.25 degree per minute
We could see Mars with Logitech C610 webcam and Seben telescope.
Image was very shaky because the telescope was standing on the wooden
floor.
6. Stepper-Online Nema 17 motors with gearbox
100:1 are used. Motors without a gearbox do did
not provide equal 0.1 degree steps and movements
were jerky so that all mount was vibrating even
with 16x microstepping.
Nylon wheels are from a HomeDepo .
One side was flattened on a lathe.
7. Motor turns a nylon wheel of 16cm (12cm) diameter via a GT2 belt 852mm (600mm)
like in 3D printers. Nylon wheels are supported by 60mm diameter thrust bearings.
Nylon wheels are toothless . Friction is enough to hold and provides frictional clutch.
This worked out better than expected. Telescope motion is very smooth.
Backlash < 0.1 degree.
10. //Telescope control with Arduino grbl shield. Written on Processing 2.2.1
import static javax.swing.JOptionPane.*; import java.awt.*; import processing.serial.*;
Serial myPort; PFont f; float x, y; int z, now; String id;
Button x1_btn, x2_btn, y1_btn, y2_btn, z1_btn, z2_btn, gtx_btn, gty_btn, setx_btn, sety_btn;
void setup() {now = millis();f = createFont("Arial",16,true); printArray(Serial.list());
myPort = new Serial(this, Serial.list()[0], 115200); delay (3000); size (250, 300); smooth();
x1_btn = new Button("X-", 0, 100, 50, 50); x2_btn = new Button("X+", 50, 100, 50, 50);
y1_btn = new Button("Y+", 100, 80, 50, 50); y2_btn = new Button("Y-", 100, 130, 50, 50);
z1_btn = new Button("track",200,75, 50, 50); z2_btn = new Button("stop", 200, 125, 50, 50);
gtx_btn = new Button("gotoX", 00, 0, 50, 50); gty_btn = new Button("gotoY", 100, 00, 50, 50);
setx_btn = new Button("setX", 00, 200, 50, 50);sety_btn = new Button("setY", 100, 200, 50, 50);
}
void draw() {x1_btn.Draw(); x2_btn.Draw(); y1_btn.Draw();y2_btn.Draw();z1_btn.Draw();
gtx_btn.Draw();gty_btn.Draw();z2_btn.Draw(); setx_btn.Draw(); sety_btn.Draw();
if (millis() - now > 100) { now = millis();
if (z == 1) {myPort.write("g91 g1 x0.00041667 F0.25 n g91 g1 y-0.0002 F0.25 n");}
myPort.write("?");
while (myPort.available() > 0) {String inBuffer = myPort.readString();
if (inBuffer != null) {print(inBuffer); fill(0); textFont(f,16);
textAlign(LEFT); fill(175);rect(0,250, 250, 50); fill(0); text(inBuffer,-230,270);}}}
}
void mousePressed() {
if (x1_btn.MouseIsOver()) {println(x); x--;myPort.write("g91 g1 x-1 F15 n");}
if (x2_btn.MouseIsOver()) {println(x); x++; myPort.write("g91 g1 x1 F15 n");}
if (y1_btn.MouseIsOver()) {println("y+");y--; myPort.write("g91 g1 y1 F15 n");}
if (y2_btn.MouseIsOver()) {println("y-");y--; myPort.write("g91 g1 y-1 F15 n");}
if (z1_btn.MouseIsOver()) {println("tracking");z=1;}
if (z2_btn.MouseIsOver()) {println("stoped ");z=0;}
if (gtx_btn.MouseIsOver()) {id = showInputDialog("GoTo X: "); if (id == null) id="";
println("GoToX:",id); myPort.write("g90 g1 x");myPort.write(id);myPort.write(" F150 n");}
if (gty_btn.MouseIsOver()) {id = showInputDialog("GoTo Y: "); if (id == null) id="";
println("GoToY:",id); myPort.write("g90 g1 y");myPort.write(id);myPort.write(" F150 n");}
if (setx_btn.MouseIsOver()) {id = showInputDialog("Set new global coordinate X: "); if (id == null) id="";
println("set X to: ",id); myPort.write("g92 x");myPort.write(id); myPort.write(13);}
if (sety_btn.MouseIsOver()) {id = showInputDialog("Set new global coordinate Y: "); if (id == null) id="";
x=1;y=1;println("set Y to: ", id); myPort.write("g92 y");myPort.write(id); myPort.write(13);}
}
void keyPressed() { if (key == CODED) {
if (keyCode == LEFT) {myPort.write("g91 g1 x-0.1 F15"); myPort.write(13); delay(100);}
if (keyCode == RIGHT) {myPort.write("g91 g1 x0.1 F15"); myPort.write(13); delay(100);}
if (keyCode == UP) {myPort.write("g91 g1 y0.1 F15"); myPort.write(13); delay(100);}
if (keyCode == DOWN) {myPort.write("g91 g1 y-0.1 F15"); myPort.write(13); delay(100);}
}}
class Button {String label; float x, y, w, h;
Button(String labelB, float xpos, float ypos, float widthB, float heightB)
{label = labelB; x = xpos; y = ypos; w = widthB; h = heightB;}
void Draw() { fill(218); stroke(141); rect(x, y, w, h, 10); textAlign(CENTER, CENTER);
fill(0); text(label, x + (w / 2), y + (h / 2));}
boolean MouseIsOver() {if (mouseX > x && mouseX < (x + w) && mouseY > y && mouseY < (y + h))
{return true; } return false; }
}
PC soft in Processing language
• Buttons allow 1 degree incremental movements.
• Keyboard arrow keys change angle by 0.1 degree.
• Popup form allow to enter GoTo values
• Popup form to enter coordinate value for calibration.
• "Track" button starts slow motion 10 times/s
for tracking celestial bodies.
11. Photo taken with an Android
CATS30 phone 5Mpix camera
Photo through the telescope
using a Logitech HD webcam
Test Location view from a window
12. From map triangle calculations skunu to Swedbank with a ruler
horizontal displacement : 20.71 cm
vert ical displacement : 1.57 cm
hipothenuse: 20.8 cm
Calculated the angle:
arctan 4.34 degrees
arccos 5.33 degrees
arcsin 4.33 degrees
Google maps coordinates:
Swedbank sign 56.949329, 24.090011
Left corner of the building 56.949040, 24.089878
Right corner of the building 56.949481, 24.089934
Šķūņu street window 56.948627, 24.107615
Meter definition says from pole to equator is 10 000km.
90 degrees on globe is 10000 km
Google maps coordinates: North East
Left corner: 56.949040, 24.089878
Swedbank sign: 56.949329, 24.090011
Right corner: 56.949481, 24.089934
Šķūņu street window: 56.948627, 24.107615
Swedbank –Skunu = 0.000702deg, 0.017604deg=0.078km, 1.956km
arctan(0.078/1.956) =2.28 degrees
Something does not fit
Test location distance and angle calculations from Google maps
13. Logitech C615 HD webcam is used.
Logitech soft allows an electronic focus
adjustment and exposure up to 2 seconds.
15. 40. Lens 75 mm diameter, 600 mm focus length
In Russian search for:
Подзорная труба
USSR Monocular KOMZ
Telescope ZRT-457 with two discrete-replaceable (fixed) 30x and 60x
magnifications
ЗРТ-457M
Зрительная труба ЗРТ-452 КОМЗ 1957 г/в (г. Казань) Часть №1
ЗРТ-460М зрительная труба
Монокулярная зрительная труба 40x
Soviet marine 40 sigting scope
16. This scope is protected from dust and bugs.
More suited for automated unatended observations than a regular telescope.
Soviet marine 40 sigting scope
GoTo mount and attached Webcam
17. Canon DSLR
Popular in astrophotography
allows to get long exposures and better signal to noise ratio.
18. View from the window with a Canon EOS 450D 55 mm objective