Espacio y AstronomíaIngeniero

Seguidor de estrellas tipo barn-door motorizado para tu cámara

Dos tablas, una bisagra y un motor paso a paso giran tu cámara con el cielo para que las estrellas salgan nítidas en exposiciones de varios minutos.

NivelIngeniero
Tiempo6 h
Costo est.~$101
Pasos5

La Tierra gira una vez cada 23 h 56 min, así que las estrellas se mueven durante una exposición larga. Un seguidor barn-door gira sobre un eje que apunta al polo celeste, y una varilla roscada lo abre exactamente a la velocidad correcta.

⚠ SEGURIDAD
Trabaja en la oscuridad con una linterna roja, mantén los cables ordenados para no tropezar y asegúrate de que la cámara esté bien fija en la rótula.

Pasos de la misión

  1. Arma las tablas

    Une dos tablas con una bisagra de calidad. Perfora el hoyo de la varilla exactamente a 228.6 mm del eje de la bisagra para una varilla M6 (paso de 1.0 mm).

  2. Monta el mecanismo

    Acopla el motor 28BYJ-48 a una tuerca o varilla M6 con un engranaje o acople impreso, y contrólalo con la placa ULN2003 desde los pines GP2–GP5 del Pico.

  3. Programa la velocidad sideral

    A 228.6 mm la varilla debe girar a 1 rpm; el código también corrige el error de tangente para que puedas exponer más tiempo.

  4. Alinea con el polo

    Apunta la bisagra a la Estrella Polar (o al polo celeste sur) con un popote o mira pequeña sobre la línea de la bisagra, y monta la cámara con la rótula.

  5. Fotografía

    Empieza con exposiciones de 1 a 2 minutos a 24–50 mm, revisa las estrellas al 100% y afina el valor de pasos por vuelta.

Código

# MicroPython: tangent-corrected barn-door drive (28BYJ-48 + ULN2003)
from machine import Pin
import time, math

pins = [Pin(p, Pin.OUT) for p in (2, 3, 4, 5)]
SEQ = [(1,0,0,0),(1,1,0,0),(0,1,0,0),(0,1,1,0),(0,0,1,0),(0,0,1,1),(0,0,0,1),(1,0,0,1)]
STEPS_PER_REV = 4096      # half-steps; real motors are close to 4076 - calibrate
R_MM, PITCH_MM = 228.6, 1.0
W = 2 * math.pi / 86164.1  # sidereal rate, rad/s

done, i = 0, 0
t0 = time.ticks_ms()
while True:
    t = time.ticks_diff(time.ticks_ms(), t0) / 1000
    target = R_MM * math.tan(W * t) / PITCH_MM * STEPS_PER_REV
    while done < target:
        i = (i + 1) % 8
        for p, v in zip(pins, SEQ[i]): p.value(v)
        done += 1
        time.sleep_ms(2)
    time.sleep_ms(5)

Code comments are in English, like most libraries and docs — a good habit for makers.

Preguntas

¿Cuánto tiempo puedo seguir antes de reiniciar?

Con la corrección de tangente, tanto como dé la varilla: cerca de una hora de recorrido por cada 6 cm a este radio. Luego cierra las tablas y reinicia.