Телескопы покупают здесь


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

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

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 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

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
Для точной настройки джойстика (определения своих, удобных и точных пороговых значений для функции AskJOY() ) прилагаемый скетч очень пригодится. Его надо загрузить в ардуино, открыть монитор порта, двигать джойстиком и анализировать проплывающие по экрану цифры, как тот персонаж из Матрицы.
« Последнее редактирование: 12 Сен 2016 [19:28:28] от Iovch »
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

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

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
И каких результатов нужно добиваться?
Надо добиться максимальной чувствительности именно того джойстика, который используется.
Прежде всего надо выяснить уровень сигналов в равновесном (исходном) состоянии джойстика.
У меня вот какая строка монитора порта джойстика в исходном состоянии получается:
VRX(A6)= 514 VRY(A7)= 503 SW(A3)= 1020 iRetValue= 0
Это значит, что мне в функции AskJOY() надо выставлять начало выполнения микрошагов по оси Х с уровней сигналов 509 и 519,
а по оси У, с уровней 498 и 508 соответственно. Затем поворотом джойстика, вычислить максимально удобные значения сигналов для перехода на "вторую" скорость. Но это все уже из области тонких настроек, на любителя, т.е. если исходная, предложенная мной функция удовлетворительно работает, можно ничего не трогать, особенно, если не представляешь четко, что к чему приведет!
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
Система управления экваториальной монтировкой с функциями GOTO

Если собрана система, писанная выше, отлажен и хорошо работает скетч GOTO2_2, то нет никаких проблем открыть прилагаемый скетч GOTO3_3, подставить свои коэффициенты и попробовать управлять монтировкой уже с компьютера. ВНИМАНИЕ! Особенно первые эксперименты с прилагаемыми скетчами выполняйте пожалуйста на упрощенных, тестовых устройствах. Прилагаемые программы могут содержать ошибки, никто от них не застрахован, тем более, я существенно перерабатываю и оптимизирую проверенные в работе скетчи. В 99% случаев  использую связку объектив Гелиос 44М + камера LH-T510NG в прямой проекции, на фото. С этой связкой получается отличный угол обзора и звезды до 7 ЗВ видны с балкона в мегаполисе! Пояснения по скетчу чуть позже сегодня пропишу. Сейчас добавлю одно, что при первоначальном запуске работать должен точно так же, как GOTO2_2, за исключением того, что изначально в этом скетче трекинг включен.
« Последнее редактирование: 17 Июл 2016 [14:50:28] от Iovch »
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
Скетч GOTO3_1 умеет читать и анализировать данные виртуального COM-порта. Номер этого порта используется при загрузке скетчей, соответственно из среды загрузки ардуино, легко определить номер виртуального COM порта: Меню Инструменты -> Порт. При приеме/передаче данных используется NextStar Communication Protocol, а точнее сказать, всего лишь 2 необходимых и достаточных для позиционирования команды: Get precise RA/DEC (e) и GOTO precise RA/DEC (r). Собственно говоря, можно и другие команды запрограммировать, но программа Stellarium, под которую был написан этот скетч, не поддерживает другие команды протокола. Кроме этого, команда Get precise RA/DEC (e) по каким-то непонятным мне причинам, не доходит до ардуино. Александр Вольф в теме Stellarium дал мне довольно пространное объяснение, что возможно, сам плагин «Управление телескопом» в том виноват. Чтобы не зацикливаться на этом моменте в моем скетче реализована посылка значения текущих координат в порт по таймеру, каждую секунду. Stellarium с удовольствием принимает такие, регулярно посылаемые данные, ну и слава создателям!
Теперь про настройку сопряжения со стеллариумом пару строк. Конечно, прежде всего следует установить сам Stellrium. Включить плагин «управление телескопом», закрыть Stellarium и вновь запустить его. Затем в самом плагине создать новый телескоп, указать прямое подключение к COM порту, указать номер порта, на котором Ардуино сидит и указать протокол связи NextStar Capatible. Включить телескоп. Про дальнейшее управление телескопом достаточно подробно описано в файле помощи Стеллариума. Добавлю только два момента еще: первая команда позиционирования, пришедшая из стеллариума не управляет монтировкой, а только засылает координаты наведения в Ардуино. Это позволяет легко синхронизировать Stellarium и монтировку. На правильно выставленной по полярной оси экваториальной монтировке следует навести управляемый телескоп на любой реально видимый на небе объект и в Стеллариуме задать (первую) команду позиционирования на тот же объект. Система становится синхронизированой. Теперь джойстиком, глядя в окуляр управляемого телескопа можно по-точнее навестись. Управление джойстиком не меняет координат наведения телескопа, используется только для коррекции, дальнейшее управление телескопом – только из Стеллариума. Второй момент: при запуске Стеллариума, среда загрузки Ардуино должна быть закрыта. И еще, каждый перезапуск Стеллариума сбрасывает (ресетит) программу Ардуино, т.е. сбрасывает и синхронизацию телескопа со Стеллариумом.

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 993
  • Благодарностей: 34
    • Сообщения от Oleg1601
Второй момент. Одинаковая скорость по какой-либо оси вне зависимости от наклона джойстика. .....
Здесь 500 заменить на 400 или 300 - тем самым замедлится выполнение микрошагов.

Еще внимательно прочитал сообщение Олега, понял, что отсутствие увеличения приращения скорости при наклоне джойстика может быть вызвано также самим джойстиком. Опять же регулируем функцией int AskJOY() в файле GOTO2.h Только меняем другие пороговые значения:

 if(iA1>520 && iA1<=1000)  { iRetValue=iRetValue |  4; }  // Микрошаг X-
 if(iA1>1000)                        { iRetValue=iRetValue | 64; } // Полный шаг X-

 if(iA2>510  && iA2<=1000) { iRetValue=iRetValue |  8; } // Микрошаг Y-
 if(iA2>1000)              { iRetValue=iRetValue | 128;}         // Полный шаг Y-

Следует заменить 1000 на 950 например во всех строках, касающихся требуемой оси.

Выполнил все рекомендации - скорость по оси Y не прибавляется, хоть ты тресни  >:(
Трекинг работает, по оси Х всё нормально.
Обратил внимание, что настройке параметров джойстика Ответ #36 изменение значений по одной оси влияет на работу и другой...
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
Обратил внимание, что настройке параметров джойстика Ответ #36 изменение значений по одной оси влияет на работу и другой...
Нету там такого, каждая ось независима. Пробовал JOY_001.zip запускать? Копируй сюда какая строка в мониторе порта при нетроганном джойстике получается. Покажу на конкретном примере как надо сделать. И еще, надо уже сразу скетч GOTO3_1 настраивать.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

  • *****
  • Сообщений: 993
  • Благодарностей: 34
    • Сообщения от Oleg1601
Пробовал JOY_001.zip запускать? Копируй сюда какая строка в мониторе порта при нетроганном джойстике получается. Покажу на конкретном примере как надо сделать. И еще, надо уже сразу скетч GOTO3_1 настраивать.
Вот, пожалуйста - VRX(A6)= 521 VRY(A7)= 524 SW(A3)= 1003 iRetValue= 0
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
Олег! Надо еще один эксперимент с JOY_001.zip. По-двигать джойстик вверх/вниз (только по оси У) и посмотреть, какие значения  iRetValue получаются. При правильной работе при наклоне джойстика вперед сначала вместо нуля выдается 2, при дальнейшем наклоне 2 меняется на 32. При наклоне вниз 0 -> 8 -> 128. Посмотри, так ли у тебя происходит.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Хрущев

  • *****
  • Сообщений: 4 069
  • Благодарностей: 166
  • Первооткрыватель новых переменных звёзд
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Хрущев
Знатоки ардуино, подскажите пожалуйста, можно ли изменять дискретность микрошага драйвера а4988 во время работы устройства?
Суть такая - мотор крутится медленно по часовой стрелке в микрошаге 1/16, нажимаю на кнопку - мотор начинает крутиться в обратную сторону и на пины драйвера MS1, MS2, MS3 подаю LOW, что должно переводить его в полношаговый режим. Отпускаю кнопку, опять вращение по часовой стрелке в микрошаге 1/16 (на MS1, MS2, MS3 подается HIGH).
Вопрос не сгорит ли драйвер от подачи HIGH/LOW на MS во время работы?

Делаю экваториальную платформу для Доба.
SW 16" (Пирагмон) на энкодерах.
ПНВ-скоп Scorpius (90/2+Gen.II), SW 1025-Coronado PST, Celestron NexStar 6 SE.

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
Суть такая - мотор крутится медленно по часовой стрелке в микрошаге 1/16, нажимаю на кнопку - мотор начинает крутиться в обратную сторону и на пины драйвера MS1, MS2, MS3 подаю LOW, что должно переводить его в полношаговый режим. Отпускаю кнопку, опять вращение по часовой стрелке в микрошаге 1/16 (на MS1, MS2, MS3 подается HIGH). Вопрос не сгорит ли драйвер от подачи HIGH/LOW на MS во время работы?

Не совсем может понял, отдельная кнопка - управляет направлением. А вот на пины драйвера MS1, MS2, MS3 подаем LOW и HIGH c джойстика непосредственно в процессе работы, но направление вращения при этом ни в коем случае от этого не должно меняться. Ничего пока не сгорело и не должно сгореть.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

  • *****
  • Сообщений: 993
  • Благодарностей: 34
    • Сообщения от Oleg1601
Олег! Надо еще один эксперимент с JOY_001.zip. По-двигать джойстик вверх/вниз (только по оси У) и посмотреть, какие значения  iRetValue получаются. При правильной работе при наклоне джойстика вперед сначала вместо нуля выдается 2, при дальнейшем наклоне 2 меняется на 32. При наклоне вниз 0 -> 8 -> 128. Посмотри, так ли у тебя происходит.
Именно так. Вперёд - 2/32, назад - 8/128, вправо - 1/16, влево - 4/64
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн Хрущев

  • *****
  • Сообщений: 4 069
  • Благодарностей: 166
  • Первооткрыватель новых переменных звёзд
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Хрущев
Не совсем может понял, отдельная кнопка - управляет направлением. А вот на пины драйвера MS1, MS2, MS3 подаем LOW и HIGH c джойстика непосредственно в процессе работы, но направление вращения при этом ни в коем случае от этого не должно меняться. Ничего пока не сгорело и не должно сгореть.
Нет, я про свою, упрощенную реализацию, без джойстика - ардуино нано+а4988+нема17+кнопка. Можно ли подавать HIGH или LOW на MS во время работы?
SW 16" (Пирагмон) на энкодерах.
ПНВ-скоп Scorpius (90/2+Gen.II), SW 1025-Coronado PST, Celestron NexStar 6 SE.

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

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

Оффлайн Хрущев

  • *****
  • Сообщений: 4 069
  • Благодарностей: 166
  • Первооткрыватель новых переменных звёзд
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Хрущев
Спасибо!
Вот я такой элементарный скетч написал, если не сложно посмотрите все ли в порядке.
(кликните для показа/скрытия)
« Последнее редактирование: 13 Июл 2016 [14:44:24] от Хрущев »
SW 16" (Пирагмон) на энкодерах.
ПНВ-скоп Scorpius (90/2+Gen.II), SW 1025-Coronado PST, Celestron NexStar 6 SE.

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

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

Оффлайн Хрущев

  • *****
  • Сообщений: 4 069
  • Благодарностей: 166
  • Первооткрыватель новых переменных звёзд
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Хрущев
Пока особо некогда смотреть. Надо заливать в ардуино и смотреть как работает. Если это для моторизации доба фрагмент - то в этой теме будет готовое решение, скетч, с которым можно будет экспериментировать постараюсь в эти выходные выложить.
Это для экваториальной платформы типа VNS. Без переключения режима шаг/микрошаг мой скетч работает, если Вы говорите, что от переключения проблем с драйвером не будет, попробую сегодня запустить. Просто боюсь уже лишние шаги делать, поскольку за 2 недели спалил одну ардуино уно и один драйвер а4988...
SW 16" (Пирагмон) на энкодерах.
ПНВ-скоп Scorpius (90/2+Gen.II), SW 1025-Coronado PST, Celestron NexStar 6 SE.

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Надо сначала завершить полный шаг по направлению движения, можно рывком до конца, а потом уже топать целыми шагами. Двигателю всё равно, когда и как им управляют, в пределах допустимого. А полношаговый режим является штатным.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Oleg1601

  • *****
  • Сообщений: 993
  • Благодарностей: 34
    • Сообщения от Oleg1601
Можно ли подавать HIGH или LOW на MS во время работы?
У меня драйвера на А3967 - HIGH или LOW на MS во время работы подаю - всё нормально. https://astronomy.ru/forum/index.php/topic,140872.msg3607083.html#msg3607083 (2-ой вариант скетча)
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн Хрущев

  • *****
  • Сообщений: 4 069
  • Благодарностей: 166
  • Первооткрыватель новых переменных звёзд
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Хрущев
Можно ли подавать HIGH или LOW на MS во время работы?
У меня драйвера на А3967 - HIGH или LOW на MS во время работы подаю - всё нормально. https://astronomy.ru/forum/index.php/topic,140872.msg3607083.html#msg3607083 (2-ой вариант скетча)
Спасибо! Значит все должно быть норм. Скажите можно ли использовать дробное значение числа шагов в секунду? Или надо через переменную типа float делать?
 stepper.setMaxSpeed(36.68);
SW 16" (Пирагмон) на энкодерах.
ПНВ-скоп Scorpius (90/2+Gen.II), SW 1025-Coronado PST, Celestron NexStar 6 SE.