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

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

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Итересно а ардуино может управлять несколькими такими же ардуинами? только каждый ардуино заточен под свои задачи а "главный" ардуино эти задачи координирует :)
Без проблем! У меня ведь уже 2 ардуины совместно работают.
Ньютон 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

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Мне все таки не удалось загрузить скетчи  "ошибка компиляции" . по умолчанию скетч записывается куда то очень далеко и достп туда с правом администратора. может в самом компиляторе дело, не настроен как нужно?
Посмотри внимательно последние скетчи в этой теме и вот этот ответ https://astronomy.ru/forum/index.php/topic,143891.msg3733553.html#msg3733553 Попробуй сделать аналогичных 3 файла и скомпилировать. Если не получится, пиши в ЛС.
Ньютон 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
А попробуй его GOTOHX.ino обозвать и оставить в той же директории, что основной, а из основного файла ссылку на него убрать.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 996
  • Благодарностей: 34
    • Сообщения от Oleg1601
Переделал униполярный мотор в биполярный и запустил скетч GOTO3_4. Всё заработало!
Размышление по поводу управления фокусером.
По моему, одной скоростью, которую забиваешь при прошивке, пользоваться всё же неудобно, т.к. при предварительной наводке (особенно при большом ходе фокусёра (у рефракторов например)) скорость хотелось бы иметь побольше, а вот уже при тонкой наводке фокуса, особенно при астрофото, нужна скорость маленькая.
С одной же скоростью получается, если забиты маленькие значения - при предварительной наводке устанешь ждать, когда фокусёр доползёт до нужного места...
 если забиты большие значения - при тонкой наводке получаем проскакивания фокуса, когда фокус будет нужно ловить многократными повторениями наклона ручки джойстика.
Нужно две скорости!
Как мне кажется нужно сделать по аналогии с управлением осями, когда при половинном наклоне ручки джойстика работает малая (забитая в скетч) скорость, а при большем наклоне включаем Большую скорость, замыкая на драйвере контакт MS. Каждый пользователь сам уже подберет, какой режим работы двигателя при этом запустится - 1/8, 1/4, 1/2 или полношаговый.
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Нужно две скорости!
Без проблем Олег делается! Только сначала часы. Что-то тяжеловато программируются. Одни вопросы. Вот скажите пожалуйста, какую уникально простую комбинацию клавиш на стандартном ИК пульте ардуино надо запрограммировать, чтобы в режим установки даты/времени система переходила и не пересекалась со всевозможными комбинациями последовательных нажатий при корректировке положения телескопа, при условии, что для позиционирования в дальнейшем будут использоваться также цифровые кнопки 1-9, "*" и "#" уже используются, а "0" будет использоваться для сброса синхронизации монтировки и Стеллариума? Прямо-таки астрономическая загадка!
Ньютон 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

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Энергонезависимые часы реального времени

Необходимые элементы: все то, что использовалось для подключения LCD и пульта ИК, т.е. 2 ардуино нано, CNC и Нано шилды, LCD 1602, пульт ИК ардуино с датчиком, четырех-проводной соединительный провод I2C (фото 1). Дополнительный элемент: высокоточные энергонезависимые часы реального времени ардуино RTC 3231 (на базе как пишут Extremely Accurate I2C-Integrated RTC/TCXO/Crystal) (фото 2-3). Таким образом, в этой точке повествования собрались абсолютно все значимые элементы, которые я планировал задействовать в этом проекте. Сами же часы являются лишь вспомогательным модулем который необходимо будет интегрировать в азимутальный скетч. Фото соединения элементов в следующем сообщении, к сожалению качество фото слабоватое, пока нечем по-лучше по-лучше сфотографировать.
« Последнее редактирование: 31 Июл 2016 [10:10:34] от 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
Архив RTC3231_1.zip содержит два файла RTC3231.h и RTC3231.ino которые необходимо распаковать в одну директорию и загрузить RTC3231.ino в ардуино нано, которая находится на CNC шилде (MAIN). Во вторую ардуино (которая на нано-шилде) следует загрузить скетч GOTO6SLAVE (архив прилагается). Что-то высветится после первоначальной загрузки. Скорее всего, последнее число в первой строке LCD будет отображать секунды. Для установки часов на пульте следует набрать 88 (между нажатиями восьмерок не более 0.75 сек, т.е. быстро кнопку жать). Если все произошло правильно, то отсчет секунд прекращается, а мигающий курсор устанавливается в позицию десятков часов. Нажимаем на ИК пульте 0, 1 или 2 в соответствии с требуемым часом, после чего курсор переходит в позицию единиц часов, затем переходит в установку минут, секунд, переходит во вторую строку и устанавливается число, месяц, год (20ХХ). Работают кнопки пульта со стрелками, которые позволяют вернуться к неправильно заданным цифрам. Чтобы подтвердить установку, жмем «ОК», чтобы отказаться от изменений, жмем «*» или «#». Как только дата/время будут установлены всю собранную систему можно отключать от источников питания. Батарейка на модуле RTC3231 не позволяет сбросится дате/времени. Модуль RTC3231 уже около месяца «гоняю», но с точностью до секунды только сегодня удалось время выставить с помощью этого скетча.
« Последнее редактирование: 31 Июл 2016 [10:06:49] от Iovch »
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

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

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Азимутальный скетч готовлю к публикации. На монтировке вот такой пропил сделал, с противоположной стороны тоже немного корпус монтировки подточить пришлось, чтобы строго вертикально устанавливалась полярная ось. Зато теперь она у меня универсальная, и в экваториальном и в азимутальном режимах работает.
« Последнее редактирование: 04 Авг 2016 [08:39:03] от Iovch »
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн drauger

  • Новичок
  • *
  • Сообщений: 40
  • Благодарностей: 2
    • Сообщения от drauger
Почему просто "мушку" не спилили?

Sent from my Nexus 7 using Tapatalk


Оффлайн 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

  • *****
  • Сообщений: 996
  • Благодарностей: 34
    • Сообщения от Oleg1601
Доработал авторский скетч GOTO3-4 с односкоростным управлением фокусёра. Теперь у фокусёра 2-х скоростное управление - при малом наклоне ручки джойстика - маленькая скорость, при большом - большая. Скетч назвал GOTO3-5.
Поскольку у меня Arduino UNO  и другие драйвера, и нет шилда, то цоколевка в скетче другая, отличная от авторской. Но, думаю, каждый под себя номерацию легко поменяет...
С контакта 5 ардуино #define DZ_FORCE_PIN 5  //Разгонный пин драйвера Z провод идет на контакт MS соответствующего, третьего, драйвера.
Как и планировал,  режим работы двигателя для высокой скорости (возможно с учётом применяемого на фокусёре редуктора) выбирается подбором нужного контакта (контактов) MS драйвера, задающего режим работы мотора 1/8, 1/4, 1/2 или полношаговый.
« Последнее редактирование: 07 Авг 2016 [20:46:45] от Oleg1601 »

Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн Oleg1601

  • *****
  • Сообщений: 996
  • Благодарностей: 34
    • Сообщения от Oleg1601
Сейчас вот думаю, а не приладить ли на ручку фокусера энкодер, чтобы считывать положение трубки фокусёра и выводить показания, например, на 4-ёх разрядный 7-ми сегментный индикатор, с "правильным", красным, цветом свечения для индикации.
Как считаете, нужен ли он?
« Последнее редактирование: 08 Авг 2016 [07:50:14] от Oleg1601 »
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

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

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

Оффлайн Oleg1601

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 996
  • Благодарностей: 34
    • Сообщения от Oleg1601
Энкодер не обеспечит желаемой точности. А вот какой-нибудь чувствительный датчик положения, точнее расстояния приделанный к фокусеру, гораздо информативней и интересней будет.
А если сделать так - включил питание - фокусер доехал до упора (там поставить концевик (оптопару)) и тем самым откалибровался. Тогда фокусер будет знать, где он находится относительно старта.
Есть у меня вот такие http://www.ebay.com/itm/600P-R-Photoelectric-Incremental-Rotary-Encoder-5V-24V-AB-Two-Phases-Shaft-6mm-/281730272439?hash=item41986eccb7, на 600 шагов/об, а если их ещё через редуктор поставить на вал фокусера, то точность думаю будет вполне..
« Последнее редактирование: 08 Авг 2016 [23:11:40] от Oleg1601 »
Телескоп: Рефрактор ахромат 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