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

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

Оффлайн аспирант

  • *****
  • Сообщений: 1 829
  • Благодарностей: 60
    • Сообщения от аспирант
Так как исполнение там ужасное - кривые втулки, заедание.
Так замените втулки. Я когда то из бронзы точил для этой игрушки.......

Оффлайн newil86

  • Новичок
  • *
  • Сообщений: 22
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от newil86
Так замените втулки.
Возможно так и придется сделать...

Оффлайн Санек gr.

  • *****
  • Сообщений: 1 339
  • Благодарностей: 286
    • Сообщения от Санек gr.
Червяка не предполагается. По замыслу на обе оси монтировки EQ 1 приспособлю шестерни (из фанеры с ремнем - 300 зубов) и их сразу будут вращать моторы с шестернями по 20 зубов
Вы хотите реализовать goto на eq1?
SW DOB6"+EQ платформа
SW 1149EQ2 моторизированная
Ioptron astroboy goto(60)
KONUS 20X80
SV 305(IMX290)
EOS 30Da, jv 250

Оффлайн newil86

  • Новичок
  • *
  • Сообщений: 22
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от newil86
Вы хотите реализовать goto на eq1?
Именно так. Пока не вижу особых трудностей кроме подбора шестерен. Так как прикупить червячную шестерню с множеством зубьев - проблема. Подберу на валы подшипники. Ось склонений думаю без проблем будет снабдить шестеренкой. Ну "я постараюсь".
Еще к слову провел в гугле много вечеров - по модернизации eq 1 не нашел ничего кроме оборудования простым часовым механизмом.

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

  • *****
  • Сообщений: 4 054
  • Благодарностей: 169
  • Первооткрыватель новых переменных звёзд
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Хрущев
А как по склонению планируете реализовать наведение? У ек1 там ведь даже червяка нет только ручное наведение + тонкая подстройка подпружиненым болтом около 5 градусов.
SW 16" (Пирагмон) на энкодерах.
ПНВ-скоп Scorpius (90/2+Gen.II), SW 1025-Coronado PST, Celestron NexStar 6 SE.

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
При таких малых передаточных числах (без червячной передачи), ход монтировки будет грубоват и неточен. Соответственно и точность позиционирования в теории 360/15/200/16=0,0075 град = 0,45' это при микрошаге 1:16, на деле сильно повлияют еще всевозможные люфты + пропуск шагов. В общем, как эксперимент для короткофокусной аппаратуры - сойдет, для телескопа - лучше просто ведение по полярной оси организовать.

Ссылка на проект португальца понравилась. В текст программ не заглядывал, но возможно, хорошая альтернатива для азимутальных монтировок.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн newil86

  • Новичок
  • *
  • Сообщений: 22
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от newil86
А как по склонению планируете реализовать наведение?
Есть мысли поставить на вал оси склонений червячную шестерню (опять же если смогу найти). Ну или думать какой нибудь редуктор без червяка.

При таких малых передаточных числах (без червячной передачи), ход монтировки будет грубоват и неточен.
Целиком и полностью согласен. Вообще задумка моя - хотя бы как то на небольших выдержках делать астрофотографии. (goto конечно бы тоже очень хотелось) Труба у меня Mak 90. Спасибо за помощь!

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Еще одно наблюдение из последних исследований: очень плохой тактовый генератор на ардуинах стоит. На одном экземпляре ардуино нано отсчитывалось на 48000 (!) милисекунд (почти минута) больше за сутки, чем надо. Невозможно было настроить ведение. Проверить легко. Выставляем передаточное число равным 1440, а число милисекунд в звездных сутках делаем равным 86400000 (Солнечные сутки), таким образом превращаем шаговый движок полярной оси секундомер - один оборот в минуту. Сравниваем с эталонными часами, не менее 2-3 часов, лучше на сутки оставить.
Покажите код, как Вы это делали. Смею предположить, что не таймеры использовали, а банальную задержку на delay или с помощью tone.
У природы нет плохой погоды, у неё просто на нас аллергия.

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

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

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

(кликните для показа/скрытия)

Загрузить скетч, запустить монитор порта, смотреть и сравнивать с эталонным секундомером. Можно с компьютерными часами, которые надо синхронизировать с временем интернета перед снятием контрольных показаний (скриншоты например, или монитор порта запускать, когда секундная стрелка вблизи ноля часов). Лучше на ночь оставить и утром посмотреть расхождение показаний. Продвинутые программеры легко сделают кнопку старт/стоп  :)
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн asdf

  • *****
  • Сообщений: 2 098
  • Благодарностей: 54
    • Сообщения от asdf

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

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

Оффлайн voiserg

  • *****
  • Сообщений: 615
  • Благодарностей: 7
  • GhostBuster
    • Сообщения от voiserg

Покажите код, как Вы это делали. Смею предположить, что не таймеры использовали, а банальную задержку на delay или с помощью tone.
А как в Ардуино можно "использовать таймеры" иначе чем через команды millis и tone ?
Насколько я понимаю, в архитектуре Ардуино 16-разрядный таймер процессора отведен под внутренние часы с доступом через millis, а один из двух 8-разрядных таймеров можно задействовать командой tone (как использовать другой - я не знаю).
Других возможностей я не нашел.
А они есть ?
« Последнее редактирование: 29 Сен 2017 [12:13:45] от voiserg »
SW 130/650, МТО 11 СА, Юпитер 36, Юп 21, Canon 350, QHY5, Монти EQ-3,  EQ-1, ArduinoDrive
Водяной рефрактор "Бутылка",
Наблюдение кинетической аберрации света звезд

Оффлайн asdf

  • *****
  • Сообщений: 2 098
  • Благодарностей: 54
    • Сообщения от asdf
(double)
Это что?
Явное преобразование к типу double (в данном случае результата, возвращаемого функцией millis()) перед выполнением других операций. Делается для повышение точности и предсказуемости выполнения операций. Иначе компилятор сам будет решать когда и как преобразовывать типы операндов.
А скобки? Это не функция?

P.S. Говорят, что millis даёт разброс +- 3-4 секунды за 24 часа. Это зависит от качества кварца и температуры. Видимо, надо тестировать конкретный образец (если это вообще нужно).

Оффлайн ASheff

  • *****
  • Сообщений: 10 512
  • Благодарностей: 248
  • Артем
    • Сообщения от ASheff
А скобки? Это не функция?

Не, это приведение типа.
- Meade Maxvision 80/480 APO
- SW HEQ5Pro belt-mod
- Canon EOS 550Da, ASI 178MC, Datyson T7M
- MC Helios 44M-6, MC Юпитер-37А,Canon 70-200/4

Оффлайн Piter_Korn

  • *****
  • Сообщений: 2 226
  • Благодарностей: 36
  • Мне нравится этот форум!
    • Сообщения от Piter_Korn

Оффлайн asdf

  • *****
  • Сообщений: 2 098
  • Благодарностей: 54
    • Сообщения от asdf
А скобки? Это не функция?

Не, это приведение типа.
Приведение типа? Это какой язык? Стандартное ардуино - преобразование типа как функция.

Оффлайн ASheff

  • *****
  • Сообщений: 10 512
  • Благодарностей: 248
  • Артем
    • Сообщения от ASheff
Приведение типа? Это какой язык? Стандартное ардуино - преобразование типа как функция.

Язык вроде бы си-подобный, можно и (double)x, и double(x).
- Meade Maxvision 80/480 APO
- SW HEQ5Pro belt-mod
- Canon EOS 550Da, ASI 178MC, Datyson T7M
- MC Helios 44M-6, MC Юпитер-37А,Canon 70-200/4

Оффлайн asdf

  • *****
  • Сообщений: 2 098
  • Благодарностей: 54
    • Сообщения от asdf
По поводу millis.
КМК.
Возможностей millis, вполне достаточно для "наших" целей (крутить монтировки). Ну, гуляет немного туда-сюда (кроме клинических случаев). Мы же, не будем крутить монтировку сутками. И потом - нас же интересуют интервалы - можно использовать не абсолютное значение millis, а относительное. Так что, точности должно хватать. Остаётся ещё вопрос термостабилизации - чтобы частоты не бегали. Для точной работы со временем можно применять "железные" часы.

Оффлайн asdf

  • *****
  • Сообщений: 2 098
  • Благодарностей: 54
    • Сообщения от asdf
Приведение типа? Это какой язык? Стандартное ардуино - преобразование типа как функция.

Язык вроде бы си-подобный, можно и (double)x, и double(x).
Понял (дошло  :))

P.S. А смысл то приводить к double?

Оффлайн ASheff

  • *****
  • Сообщений: 10 512
  • Благодарностей: 248
  • Артем
    • Сообщения от ASheff
Ну тут уже не знаю, ждем автора кода :)
- Meade Maxvision 80/480 APO
- SW HEQ5Pro belt-mod
- Canon EOS 550Da, ASI 178MC, Datyson T7M
- MC Helios 44M-6, MC Юпитер-37А,Canon 70-200/4