A A A A Автор Тема: Универсальная система управления телескопом на Arduino  (Прочитано 194715 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
На форуме уже имеется несколько тем, посвященных системам управления монтировками, собранных на базе компонентов ардуино, в частности:

Простая система управления монтировкой на Arduino
Управление монтировкой на ШД Arduino + grbl
GOTO на Arduino практическая реализация "Импортозамещение"

   В результате изучения этих, и многих других источников, у меня сложилось четкое представление, как простейшим образом, на базе компонентов Ардуино можно решить некоторые вопросы, связанные с управлением телескопом.
   В настоящий момент собран действующий образец управляющего блока на базе Ардуино нано и драйверов А4988 для монтировки на шаговых двигателях с выходом для подключения электрофокусера, с индикацией координат наведения и прочей информации на двухстрочном LCD, с возможностью выполнения команд GOTO задаваемых с ПК, с возможностью подключения проводного устройства управления. Реализовано прямое подключение к плагину «управление телескопом» программы Stellarium. Разработано программное обеспечение для управления экваториальной и альт-азимутальной монтировками, масса тестовых программ. Собранная система управляет монтировкой из комплекта Деагостини «Собери свой телескоп» (аналог Astro-3, на фото), но система подойдет для управления любой монтировкой на шаговых двигателях. Пришло время собрать окончательный вариант изделия уже с беспроводным управлением. В процессе переборки системы, попытаюсь систематизировать и показать в этой теме, от простого к сложному, как простейшим образом, на Ардуино можно реализовать тот или иной функционал. Думаю, материал будет полезным.

Для удобства ориентирования в теме привожу здесь ссылки на основные моменты и программы:

Астротрекер или привод оси прямого восхождения, описание электронной части:
Универсальная система управления телескопом на Arduino
Астротрекер или привод оси прямого восхождения, скетч GOTO1 + драйвер ch341ser.zip:
Универсальная система управления телескопом на Arduino
Привод оси склонений и элемент управления (джойстик), ускорение перемещений, описание:
Универсальная система управления телескопом на Arduino
Привод оси склонений и элемент управления (джойстик), ускорение перемещений, скетч GOTO2:
Универсальная система управления телескопом на Arduino
Система управления экваториальной монтировкой с функциями GOTO, описание и скетч GOTO3:
Универсальная система управления телескопом на Arduino
Прикручиваем управление фокусером к джойстику
Универсальная система управления телескопом на Arduino
Подключаем LCD, описание электронной части:
Универсальная система управления телескопом на Arduino
Подключаем LCD, скетч GOTO4 + драйвер LCD 1602:
Универсальная система управления телескопом на Arduino
Скетч GOTO4 с автоопределением и автоюстировкой джойстика:
Универсальная система управления телескопом на Arduino
Пульт ИК часть 1 (Slave), описание электронной части:
Универсальная система управления телескопом на Arduino
Пульт ИК часть 1 (Slave), скетч GOTO5SLAVE, программа настройки и драйвер пульта ИК:
Универсальная система управления телескопом на Arduino
Пульт ИК часть 2 (Master), описание электронной части и скетч GOTO5MASTER:
Универсальная система управления телескопом на Arduino
Шаговый электрофокусер, описание электронной части:
Универсальная система управления телескопом на Arduino
Шаговый электрофокусер, скетч GOTO6MASTER.zip:
Универсальная система управления телескопом на Arduino
Версии GOTO6MASTER и GOTO6SLAVE для штатного ИК пульта ардуино:
Универсальная система управления телескопом на Arduino
Энергонезависимые часы реального времени:
Универсальная система управления телескопом на Arduino
Скетч для управления альт-азимутальной монтировкой GOTO7MASTER:
Универсальная система управления телескопом на Arduino


Ссылка на яндекс-диск со всеми материалами и стабильными версиями: https://yadi.sk/d/f1jTO1AohCtbz
« Последнее редактирование: 15 Авг 2019 [15:40:58] от Deimos »

Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Дядя Вова

  • *****
  • Сообщений: 8 098
  • Благодарностей: 97
    • Сообщения от Дядя Вова
Дядя Вова хорошо подсказал, что если подключаемый файл находится в той же папке, что и основной файл .ino, то достаточно #include "Подключаемый файл.h" в программе указать. Насчет ссылок, добавлю сегодня. Понятия не имел, что номер ответа зависит от настройки порядка сортировки ответов в теме.
Еще я предложил файл .h назвать .ino - тогда include вообще не будет нужен. IDE сама разберется.
И еще одно предложение описание выводов вынести в отдельный файл (конфигурация). тогда не надо будет каждый раз править исходник, а выдергивать из архива только новый файл.
« Последнее редактирование: 20 Июл 2016 [15:58:48] от Дядя Вова »

(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg
Meade ETX-90PE

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Еще я предложил файл .h назвать .ino - тогда include вообще не будет нужен. IDE сама разберется.
И еще одно предложение описание выводов вынести в отдельный файл (конфигурация). тогда не надо будет каждый раз править исходник, а выдергивать из архива только новый файл.
Проверил только что, действительно это работает! Не уверен, что это будет всем удобно, но новые версии могу разбить так.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Доставьте удобство читающим - давайте прямые ссылки.
Сделал в самом начале темы типа содержание :) Интерактив!
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Дядя Вова

  • *****
  • Сообщений: 8 098
  • Благодарностей: 97
    • Сообщения от Дядя Вова
Доставьте удобство читающим - давайте прямые ссылки.
Сделал в самом начале темы типа содержание :) Интерактив!
Ну! Жизнь налаживается!  :)
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg
Meade ETX-90PE

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Шаговый электрофокусер.

Необходимые дополнительные детали: драйвер ШД типа 4988 или совместимый, соединительный провод на ШД фокусера. Т.к. электрофокусера у меня нет, вместо соединительного провода на первом фото показан непосредственно шаговый двигатель электрофокусера, на котором проверялся скетч. На втором фото показано непосредственно место установки драйвера фокусера (Z). Как видно, все перемычки дробления шага сняты, т.е. ШД будет использоваться в режиме микрошага 1/16. Но это не обязательно, можно любую комбинацию выставить, как покажется оптимальным. Никакого форсирования (переход в полный шаг например) для данного драйвера не предусмотрено. В данной версии исполнения также не предусмотрено отключение ШД фокусера для экономии энергопотребления, т.к. для этого потребуются некоторые манипуляции с шилдом, в т.ч. пайка. На третьем фото показана уже собранная на столе система.

Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Прилагаемый скетч GOTO6MASTER работает совместно с модулем I2C/ИК (под управлением скетча GOTO5SLAVE в последней версии https://astronomy.ru/forum/index.php/topic,143891.msg3729842.html#msg3729842 без дополнительного перепрограммирования). Кроме управления электрофокусером кнопками моего пульта «|<<» и «>>|», кнопками «Setup» и «Zoom» предусмотрено изменение в скетче переменной iStDY (исходное направление шага двигателя Y). Это позволяет задавать программе, с какой стороны от полярной оси расположен телескоп, соответственно направление движения ШД (Y) при увеличении и уменьшении склонения, что имеет принципиальное значение для выполнения функций GOTO. Кроме этого, сам скетч GOTO6MASTER состоит из трех файлов (по рекомендации Дяди Вовы  :)) GOTO6MASTER.ino, GOTO6MASTER.h GOTO6Config.h. Все эти файлы должны находиться в одной директории. При этом в файле GOTO6Config.h – хранятся уникальные для конкретной реализации данные, которые надо один раз вычислить, а затем просто подставлять этот файл в мои версии программ. При последующих изменениях скетчей подробнее объясню, как это делать.
Еще добавлю кажется очевидную вещь: если использовать скетч GOTO2 c джойстиком https://astronomy.ru/forum/index.php/topic,143891.msg3717467.html#msg3717467, но вместо привода оси склонений подключить электрофокусер на шаговом двигателе, то получим систему ведения монтировки + управление фокусировкой без всяких дополнительных ардуин и пультов ИК.
« Последнее редактирование: 20 Июл 2016 [22:10:47] от Iovch »
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601
Прилагаемый скетч GOTO6MASTER работает совместно с модулем I2C/ИК (под управлением скетча GOTO5SLAVE в последней версии https://astronomy.ru/forum/index.php/topic,143891.msg3729842.html#msg3729842 без дополнительного перепрограммирования). Кроме управления электрофокусером кнопками моего пульта «|<<» и «>>|», кнопками «Setup» и «Zoom» предусмотрено изменение в скетче переменной iStDY (исходное направление шага двигателя Y).
О каком пульте речь? Его схему для повторения.
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Пульт от BBK использовал, методика подключения по ссылке указана (Пульт ИК часть 1 Slave модуль с дополнительной ардуиной). Пожалуй сегодня-завтра приложу скетч для штатного пульта ардуино, чтобы понятней было и путаницы не возникало.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Версии GOTO6MASTER и GOTO6SLAVE для штатного ИК пульта ардуино. Кнопки со стрелками управляют монтировкой в соответствующих направлениях в полношаговом режиме, кнопка "Ок" - включает/отключает трекинг, кнопка "1" - Focus (-), кнопка "3" - Focus (+), кнопка "*" - указывает, что если телескоп направлен в северную часть неба, то находится слева (западнее) полярной оси, кнопка "#" - указывает, что если телескоп направлен в северную часть неба, то находится справа (восточнее) полярной оси. 30/07/16 добавил в скетч GOTO6MASTER_3 дополнительные функции. Кнопка "0" ИК пульта - сброс синхронизации монтировки и стеллариума, следующая команда позиционирования Стеллариума записывает указанные координаты в монтировку без включения двигателей позиционирования (синхронизация). Кнопка "2" - устанавливает ускоренный (полношаговый) режим позиционирования посредством кнопок со стрелками (исходный режим по умолчанию). Кнопка "5" - устанавливает замедленный (микрошаговый) режим позиционирования посредством кнопок со стрелками.
« Последнее редактирование: 30 Июл 2016 [11:58:50] от Iovch »
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601

Джойстик же очень сильно ограничен по возможностям. Вот например, что это я до сих пор не прикрутил к своей системе электрофокусер? Всего около 10 строчек кода прибавить в скетч + дополнительный драйвер ШД, но нечем было управлять им.
А что если установить на пульте, рядом с ручкой джойстика, одну единственную кнопку, которая включала бы режим управления фокусером, когда сигналы с джойстика (с оси Y, например) направлялись бы на ардуину, а с неё на драйвер и мотор фокусера.
Т.е., режим 1 - управление монтировкой с джойстика,
режим 2 - управление фокусером с джойстика.
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
А что если установить на пульте, рядом с ручкой джойстика, одну единственную кнопку, которая включала бы режим управления фокусером, когда сигналы с джойстика (с оси Y, например) направлялись бы на ардуину, а с неё на драйвер и мотор фокусера.
Т.е., режим 1 - управление монтировкой с джойстика,
режим 2 - управление фокусером с джойстика.
Детская задачка Олег! Делов минут на 30. Сам наверное сможешь. Я сейчас программированием энергонезависимых часов реального времени DS3231 занят. Вот здесь сюрпризы на каждом шагу! Счастлив буду, если сегодня текущее время и дату смогу на LCD вывести. После этого можно будет и кнопку фокусера в скетч добавить.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн alexbon

  • Новичок
  • *
  • Сообщений: 9
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от alexbon

Джойстик же очень сильно ограничен по возможностям. Вот например, что это я до сих пор не прикрутил к своей системе электрофокусер? Всего около 10 строчек кода прибавить в скетч + дополнительный драйвер ШД, но нечем было управлять им.
А что если установить на пульте, рядом с ручкой джойстика, одну единственную кнопку, которая включала бы режим управления фокусером, когда сигналы с джойстика (с оси Y, например) направлялись бы на ардуину, а с неё на драйвер и мотор фокусера.
Т.е., режим 1 - управление монтировкой с джойстика,
режим 2 - управление фокусером с джойстика.
Не забудьте про индикатор текущего состояния режима  :)
Celestron NexStar SLT 127 goto, SW ED80 EQ 3

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601
А что если установить на пульте, рядом с ручкой джойстика, одну единственную кнопку, которая включала бы режим управления фокусером, когда сигналы с джойстика (с оси Y, например) направлялись бы на ардуину, а с неё на драйвер и мотор фокусера.
Т.е., режим 1 - управление монтировкой с джойстика,
режим 2 - управление фокусером с джойстика.
Детская задачка Олег! Делов минут на 30. Сам наверное сможешь. Я сейчас программированием энергонезависимых часов реального времени DS3231 занят. Вот здесь сюрпризы на каждом шагу! Счастлив буду, если сегодня текущее время и дату смогу на LCD вывести. После этого можно будет и кнопку фокусера в скетч добавить.
Я пока вообще в отъезде, так что несколько дней смогу наблюдать только со стороны...
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Счастье есть! Но это только пол-дела, еще надо научиться пультом эти данные задавать.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601
Игорь, смотрю, тебя можно поздравить с запуском часов  ;)
Растолкуй, тёмному, а в чём их смысл использования с телескопом, никак в толк не возьму...

Теперь, по поводу управления фокусёром с джойстика. Как мне кажется, наверное, нужно делать пропорциональное управление, т.е., чем дальше наклоняем ручку джойстика от центрального положения, тем выше скорость мотора фокусёра, т.к. тут, чтобы поймать фокус,  нужно плавное управление.  У себя ( в другой программе) для плавного управления я использовал  библиотеку AccelStepper.
И, да, как писал alexbon, конечно нужен индикатор (светодиод), чтобы видеть, какой режим запущен.
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Игорь, смотрю, тебя можно поздравить с запуском часов  ;) Растолкуй, тёмному, а в чём их смысл использования с телескопом, никак в толк не возьму...
Часы нужны для азимутального управления. Дело в том, что программа пишется под Стеллариум, а он напрямую с монтировкой умеет общаться только в экваториальных координатах. Требуется постоянный пересчет экваториальных координат в азимутальные и наоборот. Даже если не ориентироваться на Стеллариум, требуется знать дату и время, чтобы обеспечить ведение азимутальной монтировки. Можно конечно Стеллариум и телескоп одновременно направить например в точку севера на математическом горизонте, синхронизироваться, а затем в цикле отслеживать время. Так у меня исходная версия азимутального скетча написана, но хочется уже синхронизироваться по произвольным ориентирам.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Теперь, по поводу управления фокусёром с джойстика.
Похоже такой скетч будет востребованным, напишу. Будет кнопка и светодиод. Управление двигателем будет простейшим, по оси Y джойстика вперед/назад. Ни к чему здесь усложнения, а тем более сторонние библиотеки. Скорость вращения и шаг дробления каждый подберет, как ему удобно. Вполне достаточно этого будет.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Прикручиваем управление фокусером к джойстику

Необходимые детали: CNC шилд, ардуино нано, 3 шт. драйверов типа А4988, джойстик, т.е. все, что необходимо для запуска скетча GOTO3. Из дополнительных деталей только кнопка включения фокусера и светодиод включения фокусера (первое фото). Непосредственно подключение светодиода и кнопки показано на втором фото. Важно, что анод светодиода идет на контакт Z+ Z- (без разницы, на какой конкретно, они замкнуты разводкой шилда). Катод светодиода идет на  массу шилда GND. Отмечу, что Z+ Z- идут на пин (контакт) 11 ардуино нано, который поддерживает выходной режим ШИМ, что используется в скетче, чтобы обойтись без ограничительного резистора светодиода. Кроме пина 11 ардуино нано, режим ШИМ поддерживают только контакты 3, 5, 6, 9, 10 и 11. Соответственно при повторении конструкции например без CNC шилда следует использовать эти контакты или использовать ограничительный резистор (100 Ом для зеленого и 150 Ом для красного) и использовать для управления светодиодом функцию digitalWrite(), а не analogWrite() как у меня. Кнопка (выключатель) фокусера подключается одним контактом на контакт Hold шилда (A1 ардуино нано), другим на массу шилда GND. Прилагаемый скетч GOTO3_4.zip содержит три файла GOTO3.ino, GOTO3.h, GOTO3Config.h которые должны находиться в одной директории при компиляции и загрузке скетча. GOTO3.ino, GOTO3.h – основные файлы скетча, GOTO3Config.h – конфигурационный файл конкретной реализации. Работает скетч точно так же, как ранее описанный GOTO3 без управления фокусером, за исключением того, что при замкнутой кнопке (выключателе) фокусера, загорается светодиод фокусера и ось Y джойстика начинает управлять фокусером, а не осью склонения. При размыкании кнопки (выключателя) фокусера ось Y джойстика начинает управлять осью склонений, а светодиод фокусера гаснет. Подключение двигателя и драйвера фокусера описано здесь: https://astronomy.ru/forum/index.php/topic,143891.msg3733952.html#msg3733952

Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601
О, круто! Уже и управление фокусером реализовано! Очень оперативно!
Третий драйвер есть. Надо будет только ещё один мотор приделать (остались только униполярные).
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн IovchАвтор темы

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Тут еще Maxi выложил демонстрашки работы программы http://telescope.deagostini.ru/forum/viewtopic.php?f=7&t=892&start=500#p17730 Повторил разработку самостоятельно, даже вопросов практически не задавал!
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut