Skip to content

WolftheGrey/StarTracker_BarnDoor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Barndoor Star Tracker

Астротрекер типа barndoor с прямой шпилькой (равнобедренный треугольник) для компенсации вращения Земли при астрофотографии.

Особенности

  • ✅ Компенсация тангенциальной ошибки прямой шпильки (cos²(θ/2))
  • ✅ Аппаратный таймер для максимально плавного движения
  • ✅ Автоматическое сохранение позиции в память
  • ✅ Концевой датчик для точной парковки
  • ✅ Управление через прерывания кнопки
  • ✅ Три режима работы: Пауза, Рабочий ход, Парковка

Оборудование

  • Контроллер: M5Stack Atom Lite (ESP32)
  • Двигатель: 28BYJ-48 (биполярный) с редуктором 63.68395:1
  • Драйвер: DRV8825 с микрошагом 1/32
  • Шпилька: М6 стандартная (шаг 1мм)
  • Плечо: 200мм (настраивается в коде)
  • Концевой датчик: Оптический или механический (HIGH при достижении стартового положения)

Подключение

Пины управления DRV8825:

  • STEP: GPIO 33
  • DIR: GPIO 23
  • MICROSTEP_EN: GPIO 22 (все джамперы MS1, MS2, MS3 подключены к этому пину)

Концевой датчик:

  • ENDSTOP: GPIO 25 (HIGH когда достигнуто стартовое положение)

Кнопка:

  • Встроенная кнопка Atom Lite (GPIO 39)

RGB LED:

  • Встроенный RGB светодиод Atom Lite

Настройка Arduino IDE

  1. Установите поддержку ESP32:

    • File → Preferences → Additional Boards Manager URLs
    • Добавьте: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Tools → Board → Boards Manager → найдите "ESP32" и установите
  2. Установите библиотеку M5Atom:

    • Sketch → Include Library → Manage Libraries
    • Найдите "M5Atom" и установите
  3. Настройте плату:

    • Tools → Board → ESP32 Arduino → M5Stack-ATOM
    • Tools → Port → выберите COM порт вашего устройства
    • Tools → Upload Speed → 115200 (или выше, если поддерживается)
    • Tools → CPU Frequency → 240MHz (WiFi/BT)
    • Tools → Flash Frequency → 80MHz
    • Tools → Flash Size → 4MB (32Mb)
    • Tools → Partition Scheme → Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)

Режимы работы

STATE_PAUSE (Пауза)

  • Индикация: Мигающий желтый LED
  • Действие: Мотор остановлен
  • Стартовое состояние: Система запускается в этом режиме

STATE_WORKING (Рабочий ход)

  • Индикация: Зеленый LED
  • Действие: Движение вперед с компенсацией вращения Земли
  • Микрошаг: Включен (1/32)
  • Скорость: Сидерическая скорость с компенсацией тангенциальной ошибки
  • Автопауза: При достижении максимального угла (60°)

STATE_PARKING (Парковка)

  • Индикация: Мигающий красный LED
  • Действие: Движение назад к стартовому положению
  • Микрошаг: Выключен (максимальная скорость)
  • Скорость: 10°/сек
  • Остановка: При достижении концевого датчика (HIGH)

Управление

Короткое нажатие кнопки:

  • PAUSE → WORKING: Запуск рабочего хода
  • WORKING → PAUSE: Остановка и пауза
  • PARKING → PAUSE: Прерывание парковки

Длинное нажатие кнопки (3 секунды):

  • Любой режим → PARKING: Запуск парковки

Настройки в коде

Все основные параметры задаются через константы в начале файла StarTracker_barndoor.ino:

Механика:

#define ARM_LENGTH_MM      200.0   // Длина плеча в мм
#define SCREW_PITCH_MM     1.0     // Шаг резьбы М6 в мм

Двигатель:

#define MOTOR_STEPS_PER_REV    32          // Шагов на оборот двигателя
#define GEAR_RATIO             63.68395     // Передаточное число редуктора
#define MICROSTEP_DIVISOR      32          // Делитель микрошага (1/32)

Углы:

#define START_ANGLE_DEG        5.0         // Стартовый угол в градусах
#define MAX_ANGLE_DEG          60.0       // Максимальный угол раскрытия

Скорости:

#define PARKING_SPEED_DEG_PER_SEC    10.0   // Скорость парковки в градусах/сек

Инверсия направления:

#define INVERT_DIRECTION    false   // true = инвертировать направление

Компенсация тангенциальной ошибки

Система автоматически компенсирует тангенциальную ошибку прямой шпильки. Скорость движения корректируется по формуле:

v(θ) = v₀ / cos²(θ/2)

где:

  • v₀ - базовая сидерическая скорость (0.004178°/сек)
  • θ - текущий угол раскрытия

Это обеспечивает точное отслеживание звезд на всех углах.

Сохранение позиции

Угол и позиция автоматически сохраняются в память:

  • Каждые 2048 шагов в рабочем режиме
  • Каждые 64 шага в режиме парковки
  • При каждом обороте шпильки
  • При любой смене режима

При перезапуске система восстанавливает позицию, если не была припаркована.

Концевой датчик

Концевой датчик должен быть подключен к GPIO 25 и выдавать HIGH когда достигнуто стартовое положение.

При переходе концевика из HIGH в LOW система:

  • Сбрасывает позицию на 0
  • Устанавливает угол на стартовый (5°)
  • Помечает систему как припаркованную

Структура проекта

StarTracker_barndoor/
├── StarTracker_barndoor.ino  # Основной файл прошивки
├── README.md                 # Документация
├── arduino_setup.md          # Инструкция по настройке Arduino IDE
└── .gitignore                # Игнорируемые файлы Git

Лицензия

MIT License

Автор

WolftheGrey

Ссылки

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages