Самодельная монтировка телескопа на ESP32
- пятница, 29 августа 2025 г. в 00:00:11
Несколько лет назад благодаря таким ютуберам, как 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, спроектировав примерно восемь черновых конструкций корпуса, прежде чем концепция обрела окончательный вид.
Ось прямого восхождения (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, обеспечивая повышенную скорость поворота в градусах/секундах, не слишком нагружая микропроцессор.
Печатная плата имеет полукруглый форм-фактор, предназначенный для плотной установки в корпус. Эти уникальные форма и расположение существенно не увеличивают размер монтировки, которая, по моим ощущениям, уже становилась слишком крупной. Я использовал микроконтроллер 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 привело к внезапному появлению крошечной дырки на корпусе чипа и синему дыму. Этот урок не прошёл для меня зря. Вторая версия платы была тщательно проверена, и после получения работала идеально. Кроме того, я добавил на плату существенно больше тест-пойнтов, и этой практики собираются придерживаться в дальнейшем. Первая версия платы тоже вполне справляется с управлением монтировкой, но у неё отсутствует интегрированная подача питания.
OnStepX — это ПО монтировок телескопов, поддерживающее множество микроконтроллерных платформ. Изначально оно было разработано Говардом Даттоном, чтобы предотвратить моральное устаревание его монтировки. С тех пор оно превратилось в крупный опенсорсный проект с большим сообществом.
Без OnStepX подобные самодельные монтировки телескопов были бы невозможны для многих умельцев. В качестве способа связи я выбрал поддержку WiFi ESP32, однако при первоначальном тестировании во время операций поворотов WiFi демонстрировала нестабильность. Это неудивительно, ведь поворот на цель существенно увеличивает количество отправляемых на двигатели импульсов в секунду, и наш маленький ESP32 просто переставал со всем этим справляться.
Проблемы со стабильностью удалось решить при помощи двух изменений:
Уменьшением частоты поворотов или увеличением размеров шагов с меньшей дробностью микрошагов (настраиваемых «на лету» через хуки OnStepX в дженерик-классах двигателя).
Конфигурированием устройства в качестве WiFi-клиента, а не точки доступа.
OnStepX отлично заработал «из коробки», достаточно было лишь добавить файл структуры контактов и код для снижения дробности микрошагов при поворотах.
Всем изготовлением занималась JLCPCB — и производством печатной платы, и ЧПУ-обработкой. Отправка файлов для обработки без распечатанных на 3D-принтере прототипов было просчитанным риском, который оправдал себя: когда я получил посылку, всё (почти) идеально встало на свои места.
Требовалось лишь одно небольшое изменение: красная крышка на оси RA тёрлась об волновую передачу. Проблема возникла, потому что я моделировал внутренности корпуса без учёта крепёжных винтов волновой передачи. Устранил эту неполадку я при помощи простой шайбы. Меня очень впечатлило высокое качество компонентов. Для сборки всей конструкции мне достаточно было нарезать в отверстиях резьбу метчиками M3 или M4 и скрепить всё болтами. Нарезать резьбу вручную я решил, чтобы сэкономить при изготовлении.
Я потратил бесчисленные ночи на освоение привязки к полюсам, настройку телескопа и исследование особенностей KStars, Ekos и INDI server. Первые безоблачные ночи обычно заканчивались разочарованием: рассвет наступал ещё до того, как я успевал разобраться с привязкой к полюсам, проблемами с WiFi, проблемами с indi server, проблемами с фотоаппаратом, проскальзывающими муфтами двигателей и конфигурацией ПО. Был момент, когда я радовался тому, что достиг точности в 0,1 угловую секунду!; но потом обнаружил, что PHD2 был настроен с неверными параметрами фокусного расстояния, а потому сообщал искажённые результаты.
Пока максимальной достигнутой точностью стали 1-2 угловых секунды, замеренные при помощи PHD2 — более чем достаточно для 30-секундной выдержки и объектива second Sigma с фокусным расстоянием 600 мм. Камера продолжает работать в интервальном режиме, благодаря чему сигнал находится где-то посередине гистрограммы. Обычно я использую ISO 3200 с отключёнными стабилизацией датчика и шумоподавлением. Наложение кадров выполняется в Siril, однако для наложения серии снимков, сделанных в разные ночи, требуется серьёзное планирование, удача и дисциплина.
Суммарные затраты на проект достигли приблизительно €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. Вероятно, будущие сборки я буду документировать более детально: записывать свои мысли и делать более качественные фотографии/скриншоты/видеозаписи.
Пусть я потратил почти столько же денег, сколько стоит готовая монтировка, но я получил гораздо больше. Плюс у меня теперь есть офигенная монтировка, которая следит за звёздами!
Нельзя передать словами то чувство, когда ты направляешь телескоп на туманность, видишь, как он идеально её отслеживает, и почти полностью знаешь, как это работает, потому что создал всё сам. ✨