habrahabr

Самодельная монтировка телескопа на ESP32

  • пятница, 29 августа 2025 г. в 00:00:11
https://habr.com/ru/companies/ruvds/articles/939374/

Искра

Несколько лет назад благодаря таким ютуберам, как Nebula Photos, у меня появился интерес к астрофотографии. Вооружённый OM System OM-5 и объективом Olympus на 15-140 мм, я смог сделать со штатива достаточно приличные снимки туманности Ориона, сняв 300 кадров с двухсекундной экспозицией и затем объединив их в Siril.

Понимая, что могу получить более качественные результаты при помощи трекинга, я примерно за €200 купил трекер Move Shoot Move. Он позволил использовать более долгую экспозицию, но находить объекты для съёмки и обеспечивать правильную привязку к полюсам всё равно было довольно сложно. В итоге я потратил кучу времени на изучение подходящих монтировок телескопов с функциями GOTO (автоматического наведения) и трекинга, почти решившись на приобретение моделей в ценовом диапазоне от €1200 до €4000. Для хобби, в котором я пока был новичком, подобные вложения показались мне перебором.

Один из первых снимков туманности Ориона
Один из первых снимков туманности Ориона

Пробуждение печатной платы

В конце 2024 года я случайно наткнулся на YouTube-видео о проектировании печатных плат, и меня оно сразу же увлекло.

У меня имелась большая коллекция микроконтроллерных плат, поэтому мысль об отказе от хаотичных монтажных плат в пользу специализированных дешёвых печатных стала настоящим откровением. В своём первом проекте я заменил домашний термостат на устройство с ESP32 и дисплеем на электронных чернилах.

Завершив этот проект, я вернулся к идее о монтировке телескопа, на этот раз уже с новообретёнными навыками проектирования печатных плат. Возник вопрос: а сложно ли это будет?

В глубину кроличьей норы

У меня выкристаллизовался план на основе гармонических приводов (волновых передач) — вида монтировок телескопов, любимого сегодня многими за его превосходное качество и компактные размеры. Концепция казалась мне простой: двигатель, микроконтроллер, вспомогательная передача и волновая передача, заключённые в прочный корпус.

Я занялся поиском компонентов на AliExpress и изучением готовых самодельных сборок. Оказалось, что AliExpress обладает наихудшими функциями поиска за всю историю электронной торговли. Самым надёжным моим инструментом стал site:aliexpress.com в Google. Я потратил несколько часов на изучение технических чертежей всех возможных гармонических приводов и поиск подходящих вариантов, пытаясь не сойти с ума от сотен почти одинаковых товаров разных продавцов.

Бесценную информацию я извлёк из следующих самодельных проектов:

  • HEMY — экваториальная монтировка на волновой передаче.

  • HrEM — экваториальная монтировка с волновым редуктором.

  • DHEM — двойная экваториальная монтировка с волновым редуктором.

  • DIY EQ Mount V2 — подробное руководство по сборке.

Вскоре я уже занимался изучением работы шаговых двигателей, вентильных двигателей, векторного управления (Field Oriented Control, FOC) и различных опенсорсных реализаций FOC наподобие SimpleFOC.

Конструкторские решения

Если откровенно, для этого устройства не нужна индивидуально спроектированная печатная плата, вполне подошла бы плата FYSETC E4 или даже ESP32 на макетной плате. Но я хотел создать нечто прекрасное с нуля, ощутить радость самостоятельного творчества. Впрочем, корпус всё равно должен быть прочным и спроектированным под устройство.

Я начал изучать FreeCAD и параллельно KiCad, спроектировав примерно восемь черновых конструкций корпуса, прежде чем концепция обрела окончательный вид.

FreeCAD Design
Конструкция во FreeCAD

Архитектура

  • Ось прямого восхождения (RA): сервопривод 42AIM15 с волновым редуктором Type 17 (редукция 100:1).

  • Ось склонения (DEC): шаговый двигатель MKS Servo042D с волновым редуктором Type 14 (редукция 100:1).

  • Монтировка: штативная голова Arca Swiss (совместимая с креплением уже купленного трекера Move Shoot Move).

  • Режимы: GEM или ALTAZ.

  • Микроконтроллер: ESP32-S3.

  • Питание: источник USB-C, обеспечивающий до 24 В/4 А.

  • Привод двигателей: порты step/dir/en через ULN2003 + порты MODBUS и CANBUS.

  • Дополнительно: оставшиеся контакты GPIO, выведенные для использования на будущее.

42AIM15 обеспечивает 32768 шагов на оборот с возможностью настройки до 65536 шагов с оверсэмплингом 2x. MKS Servo042D поддерживает микрошаги до 1/256. Оба двигателя выбраны из-за интегрированных в них драйверов, что существенно упростило конструкцию печатной платы. С FOC и микрошаговым режимом другие самодельные устройства демонстрировали приличную точность трекинга без промежуточной редукции. Через CANBUS я могу управлять микрошаговым режимом шагового двигателя. При поворотах я устанавливаю микрошаги с 128 на 256, обеспечивая повышенную скорость поворота в градусах/секундах, не слишком нагружая микропроцессор.

Конструкция печатной платы

KiCad PCB Design
Структура печатной платы в KiCad: виден полукруглый форм-фактор и размещение компонентов

Печатная плата имеет полукруглый форм-фактор, предназначенный для плотной установки в корпус. Эти уникальные форма и расположение существенно не увеличивают размер монтировки, которая, по моим ощущениям, уже становилась слишком крупной. Я использовал микроконтроллер ESP32-S3 без антенны печатной платы, поэтому модуль можно было установить в любом месте платы. Первыми проложенными дорожками стали дорожки питания дифференциальной пары USB. Мне удалось разместить микроконтроллер так, что дифференциальная пара идёт по прямой линии.

Питание подаётся через USB-C благодаря интегральной плате AP33772, выполняющей power negotiation через контакты CC разъёма USB-C. Пауэрбанки с поддержкой USB PD 3.0, способные выдать 12 В, превосходно подходят для того, чтобы сделать устройство портативным. Выражаю огромную благодарность ребятам из CentyLab за их схему PicoPD и конструкции печатных плат с использованием AP33772. Они стали важным источником вдохновения при размещении моих компонентов. Дорожка вывода очень широкая, чтобы обеспечить поддержку нужного тока, и содержит четыре крупных конденсатора. Теперь я думаю, что эти конденсаторы, возможно, были перебором, потому что двигатели при таком использовании едва ли будут вызывать резкие скачки мощности, и хорошего источника питания USB PD, вероятно, вполне было бы достаточно до обеспечения достаточной ёмкости.

В процессе моих исследований я заметил, что у многих интегрированных двигателей есть функции CANBUS/MODBUS, поэтому тоже их добавил. Оставшиеся контакты GPIO ESP32 я просто вывел куда-то поближе к краю платы, чтобы их можно было использовать в будущем.

Также я продумал выбор подходящих разъёмов, монтируемых на плату, остановившись на серии JST PH из-за её компактности и способности держать до 2 А на контакт. В выборе мне очень помогла статья Мэтта Миллмана Common JST Connector Types.

Первая ошибка на печатной плате

Изначально я проектировал плату на основе AP33772S. Буквально в последнюю минуту JLCPCB заменила этот компонент, потому что он закончился на складах; мне стоило бы полностью пересмотреть совместимость контактов, но нетерпеливость победила и я всё равно заказал плату, заменив AP33772S на AP33772.

В результате связь по I2C стала невозможной из-за того, что контакты NO-CONNECT ошибочно были соединены с заземлением, а ручное изменение напряжения VBUS на 24 В при помощи внешней платы триггера PD привело к внезапному появлению крошечной дырки на корпусе чипа и синему дыму. Этот урок не прошёл для меня зря. Вторая версия платы была тщательно проверена, и после получения работала идеально. Кроме того, я добавил на плату существенно больше тест-пойнтов, и этой практики собираются придерживаться в дальнейшем. Первая версия платы тоже вполне справляется с управлением монтировкой, но у неё отсутствует интегрированная подача питания.

Completed PCB
Вторая версия печатной платы

Интеграция с OnStepX

OnStepX — это ПО монтировок телескопов, поддерживающее множество микроконтроллерных платформ. Изначально оно было разработано Говардом Даттоном, чтобы предотвратить моральное устаревание его монтировки. С тех пор оно превратилось в крупный опенсорсный проект с большим сообществом.

Без OnStepX подобные самодельные монтировки телескопов были бы невозможны для многих умельцев. В качестве способа связи я выбрал поддержку WiFi ESP32, однако при первоначальном тестировании во время операций поворотов WiFi демонстрировала нестабильность. Это неудивительно, ведь поворот на цель существенно увеличивает количество отправляемых на двигатели импульсов в секунду, и наш маленький ESP32 просто переставал со всем этим справляться.

Проблемы со стабильностью удалось решить при помощи двух изменений:

  1. Уменьшением частоты поворотов или увеличением размеров шагов с меньшей дробностью микрошагов (настраиваемых «на лету» через хуки OnStepX в дженерик-классах двигателя).

  2. Конфигурированием устройства в качестве WiFi-клиента, а не точки доступа.

OnStepX отлично заработал «из коробки», достаточно было лишь добавить файл структуры контактов и код для снижения дробности микрошагов при поворотах.

Изготовление и сборка

Всем изготовлением занималась JLCPCB — и производством печатной платы, и ЧПУ-обработкой. Отправка файлов для обработки без распечатанных на 3D-принтере прототипов было просчитанным риском, который оправдал себя: когда я получил посылку, всё (почти) идеально встало на свои места.

Assembly Process
Монтировка в полном сборе. Да, телескоп крепится на хомутах за 5 евро для водосточных труб.

Требовалось лишь одно небольшое изменение: красная крышка на оси RA тёрлась об волновую передачу. Проблема возникла, потому что я моделировал внутренности корпуса без учёта крепёжных винтов волновой передачи. Устранил эту неполадку я при помощи простой шайбы. Меня очень впечатлило высокое качество компонентов. Для сборки всей конструкции мне достаточно было нарезать в отверстиях резьбу метчиками M3 или M4 и скрепить всё болтами. Нарезать резьбу вручную я решил, чтобы сэкономить при изготовлении.

Реальные результаты

Я потратил бесчисленные ночи на освоение привязки к полюсам, настройку телескопа и исследование особенностей KStarsEkos и INDI server. Первые безоблачные ночи обычно заканчивались разочарованием: рассвет наступал ещё до того, как я успевал разобраться с привязкой к полюсам, проблемами с WiFi, проблемами с indi server, проблемами с фотоаппаратом, проскальзывающими муфтами двигателей и конфигурацией ПО. Был момент, когда я радовался тому, что достиг точности в 0,1 угловую секунду!; но потом обнаружил, что PHD2 был настроен с неверными параметрами фокусного расстояния, а потому сообщал искажённые результаты.

Пока максимальной достигнутой точностью стали 1-2 угловых секунды, замеренные при помощи PHD2 — более чем достаточно для 30-секундной выдержки и объектива second Sigma с фокусным расстоянием 600 мм. Камера продолжает работать в интервальном режиме, благодаря чему сигнал находится где-то посередине гистрограммы. Обычно я использую ISO 3200 с отключёнными стабилизацией датчика и шумоподавлением. Наложение кадров выполняется в Siril, однако для наложения серии снимков, сделанных в разные ночи, требуется серьёзное планирование, удача и дисциплина.

Telescope Mount in Action
Монтировка в полном сборе

Экономика

Суммарные затраты на проект достигли приблизительно €1700; сюда включены также многоразовые инструменты наподобие резьбовых метчиков, различная фурнитура M3/M4/M5 и инструменты для коннекторов JST. Иногда стоимость увеличивалась из-за того, что компоненты продавались по несколько штук или имелись ограничения на минимальную стоимость покупки. Также я купил два неиспользованных двигателя MS6010v3 для экспериментов и оценки их пригодности в будущих сверхкомпактных сборках. И, разумеется, лишние траты возникли из-за переделки печатной платы.

По расчётам, стоимость одного устройства примерно равна €800, и потенциально её можно уменьшить при оптовых закупках. Если сравнивать с доступными на рынке GOTO-монтировками по цене €1200-€4000, то экономика выглядит конкурентоспособной (хоть экономия никогда и не была для меня основным мотиватором).

Подробная разбивка цен

Компонент

Категория

Суммарная стоимость (€)

За единицу (€)

Метчик Cuttin Tap 1/4-20 UNC

Инструменты

2,89

1

Метчик Cutting Tap Form D - UNC 3/8 x 16

Инструменты

12,88

1

Набор из 220 винтов M5

Инструменты

10,59

1

Набор из 440 винтов M4

Инструменты

13,21

1

Набор из 440 винтов M3

Инструменты

9,14

1

Набор метрических метчиков MetricssMann M53250-B

Инструменты

27,38

1

Набор для обжимки PEBA JST PH 2.0

Инструменты

31,11

1

Всего по инструментам

107,2

Шаговый двигатель с замкнутым контуром MKS SERVO42D NEMA17

Монтировка

73,2

36,6

Волновая передача 2x

Монтировка

144,44

144

Налог на импорт волновой передачи 2x

Монтировка

30,24

100

Сервопривод 2x

Монтировка

216,46

151,7

Налог на импорт сервопривода x2

Монтировка

86,94

MS6010v3 (2x)

Исследования

216,94

Налог на импорт MS6010v3 (2x)

Исследования

57,05

Детали с ЧПУ-обработкой

Монтировка

215,76

273,8

Налог на импорт ЧПУ

Монтировка

58,04

Печатная плата (5x)

Монтировка

178,74

Налог на импорт печатной платы

Монтировка

33,54

Печатная плата 2 (5x)

Монтировка

178,74

42,46

Налог на импорт печатной платы 2

Монтировка

33,54

Дополнительный генератор гармонических колебаний 8 мм

Монтировка

44,59

44,59

Таможенная пошлина на генератор гармонических колебаний

Монтировка

36

Суммарная стоимость проекта

1711,42

799,15

Стоимость за единицу — это цена одной монтировки без покупки больших партий, ограничений на минимальную стоимость заказов и многоразовых инструментов.

Вывод

Проект полностью себя оправдал.

Неудача с первой версией печатной платы научила меня никогда пропускать этап проверки, несмотря на всю мою нетерпеливость. OnStepX открыл для меня мир управления экваториальными монтировками и радость от наблюдения за тем, как монтировка поворачивается по небу. Благодаря многочисленным черновым версиям корпуса я существенно прокачал навыки моделирования во FreeCAD. Вероятно, будущие сборки я буду документировать более детально: записывать свои мысли и делать более качественные фотографии/скриншоты/видеозаписи.

Пусть я потратил почти столько же денег, сколько стоит готовая монтировка, но я получил гораздо больше. Плюс у меня теперь есть офигенная монтировка, которая следит за звёздами!

Нельзя передать словами то чувство, когда ты направляешь телескоп на туманность, видишь, как он идеально её отслеживает, и почти полностью знаешь, как это работает, потому что создал всё сам. ✨

Galaxy Image Captured
Галактика Водоворот (M51), находится от нас на расстоянии 23,5 миллиона световых лет

Галерея

Build process image 1
Build process image 2
Build process image 3
Build process image 3
Build process image 4
Build process image 5
Build process image 6