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


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

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
Подправил GOTO2 в ответе #14: новая версия GOTO2_3
Подправил GOTO3 в ответе #43: новая версия GOTO3_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
Пульт ИК часть 1 (Slave)

Необходимые детали: ИК датчик с проводком + пульт ардуино (продаются комплектом + светодиод, цена очень небольшая). Дополнительный модуль Ардуино нано и специальный нано шилд – эти по-дороже будут, особенно шилд, но если не хочется пайки и травления плат, лучше его купить. Все это на первом фото. Подключение датчика и ардуино нано к шилду на втором фото. Главное проводки не перепутать! На втором же фото, тот пульт, который я буду использовать. Штатный мне показался не интересен, т.к. нет на нем кнопок «Play» (tracking) и “Stop”. Практически под любой пульт настроиться можно, что сейчас и сделаем.
Ньютон 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
Никак не обойтись без подключаемой библиотеки <IRremote.h> (прилагается). Ее следует установить в среду Ардуино. А вот три штатных библиотеки <Robot_Control>, <Robot_Motor> и особенно <RobotIRremote> – следует переместить из каталога C:\Program Files (x86)\Arduino\libraries куда-нибудь по-дальше, в другое место, чтобы среда ардуино не смогла их найти. После установки <IRremote.h> и подключения Ардуино, загружаем скетч IR000 в ардуино и открываем монитор порта. Направляя используемый пульт на ИК датчик ардуино и нажимая кнопки пульта, надо определить код каждой кнопки пульта, которые отображаются при каждом нажатии в мониторе порта. Еще, надо записать код, который отображается при длительном нажатии «залипании» кнопок. У меня например получилось: 16757325 "Slow”, 16741005 "L/R", 16773645 "Repeat", 16749165: "Step" и т.д. 4294967295: "Cycle" – «залипание» клавиши. Можно сказать на этом, половина дела сделана. Остается подставить полученные числа вместо моих в файл <IRVitek.h> в скетче GOTO5SLAVE и получится готовый I2C/ИК Slave модуль. В архиве GOTO5SLAVE_2.zip улучшенная версия GOTO5SLAVE.ino, которая посылает на шину I2C условный номер нажатой кнопки пульта и как представляется, дальнейших доработок не потребует. Еще замечу, что нет никаких проблем на этот же (Slave) модуль ардуино перенести джойстик, а так же добавить новые элементы управления, энкодеры например и концевые выключатели. Дополнительные элементы конечно потребуют изменения программного кода.
« Последнее редактирование: 17 Июл 2016 [11:44:57] от Iovch »
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 995
  • Благодарностей: 34
    • Сообщения от Oleg1601
Ну так, если контактами вправо или влево повернуть - оси Х, У местами меняются. Точно китайцы обозначения писали для контактов сбоку! А скорее всего, никто не заморачивался, как какую ось обозначить.
Ясно, я так и понял )
Да, и ещё, есть ли какие-либо рамки по установке значений полных шагов?
int iStepsXPS =  1000;    //Полных шагов в секунду на двигателе X
int iStepsYPS =  1000;    //Полных шагов в секунду на двигателе Y
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Да, и ещё, есть ли какие-либо рамки по установке значений полных шагов?
int iStepsXPS =  1000;    //Полных шагов в секунду на двигателе X
int iStepsYPS =  1000;    //Полных шагов в секунду на двигателе Y
Здесь только экспериментальным путем - пробовать увеличивать, до тех пор, пока это результат дает. Реально думаю предел полного шага на ардуино не превосходит 3000-5000, где-то читал, что это всего 1000. Добавлю еще, что используемая у меня функция шага Stepper_step() практически любое значение воспримет, но экстремально короткие шаги (особенно микрошаги) отработать не сможет из-за ограниченных возможностей ардуино. Просто начнет делать максимально возможно короткие для нее шаги.

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 995
  • Благодарностей: 34
    • Сообщения от Oleg1601
Да, и ещё, есть ли какие-либо рамки по установке значений полных шагов?
int iStepsXPS =  1000;    //Полных шагов в секунду на двигателе X
int iStepsYPS =  1000;    //Полных шагов в секунду на двигателе Y
Здесь только экспериментальным путем - пробовать увеличивать, до тех пор, пока это результат дает. Реально думаю предел полного шага на ардуино не превосходит 3000-5000, где-то читал, что это всего 1000. Добавлю еще, что используемая у меня функция шага Stepper_step() практически любое значение воспримет, но экстремально короткие шаги (особенно микрошаги) отработать не сможет из-за ограниченных возможностей ардуино. Просто начнет делать максимально возможно короткие для нее шаги.
Понятно. У меня, если ставить 1000 переключение на бОльшую скорость происходит чётко, если более 1000, даже 1400 (при этом скорость в полношаговом режиме выше), то довольно часто происходит то, что вместо увеличения скорости получаем громкое гудение мотора при невращающемся вале.
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

alex AMK

  • Гость
энкодеры на пример
эти энкодеры  могут корректировать ошибку ведения и люфтов ?

Оффлайн Oleg1601

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

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
У меня, если ставить 1000 переключение на бОльшую скорость происходит чётко, если более 1000, даже 1400 (при этом скорость в полношаговом режиме выше), то довольно часто происходит то, что вместо увеличения скорости получаем громкое гудение мотора при невращающемся вале.
Значит правильно я читал, что 1000 - практический потолок получается в полном шаге. Про микрошаг не готов сейчас сказать, но у меня в программе в микрошаге переводится на 500 микрошагов в сек, это гарантировано отрабатывается.
Ньютон 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

alex AMK

  • Гость
путем вращением ручек энкодеров.
сельсин и энкодер выходит одно и тоже?  тогда и джойстик ненужен :) как зенитку крутить можно будет  8)

alex AMK

  • Гость
Сами они ничего не скорректируют, а только благодаря считыванию импульсов, поступающих с них, можно отражать реальное положение телескопа.
тогда заложить в программу  алгоритм-условие  действий при несоответствии положения объекта-звезды на фото и реального положения монтировки . В Mead эта система StarLock называется, когда энкодер как то  взаимодействует сфотоснимком от камеры

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

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

Оффлайн Oleg1601

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 995
  • Благодарностей: 34
    • Сообщения от Oleg1601
Более-менее настроил работу системы - сейчас повороты и переключение скоростей отрабатываются нормально.
Очередной вопрос - как вынести на отдельный светодиод, расположенный на пульте, индикацию включения/выключения трекинга? Пробовал подцепить светодиод (анод на +5V, катод через резистор на пин ардуино) на прописанный в скетче контакт - не горит...

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

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Более-менее настроил работу системы - сейчас повороты и переключение скоростей отрабатываются нормально.
Очередной вопрос - как вынести на отдельный светодиод, расположенный на пульте, индикацию включения/выключения трекинга? Пробовал подцепить светодиод (анод на +5V, катод через резистор на пин ардуино) на прописанный в скетче контакт - не горит...
Светодиод подключить легко: анод на пин 13, катод на GND. В режиме трекинга будет мигать, точно так же как встроенный в ардуино светодиод.
Ньютон 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
И ещё, включение/выключение трекинга сопровождается ударом на валу мотора, причём, заметил, что этот удар - поворот вала на шаг, направленный против вращения в режиме трекинга. Можно это как-то исправить?
Здесь сложнее, не пойму источник этого удара - программно подправил код, была ошибка, но в последних версиях исправлено, удар все равно есть. Видимо так драйвер срабатывает, когда переводим в микрошаг из неподвижного состояния: digitalWrite(DX_FORCE_PIN, HIGH). В общем проблему знаю, есть еще соображения, как подправлю - сообщу.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

  • *****
  • Сообщений: 995
  • Благодарностей: 34
    • Сообщения от Oleg1601
Более-менее настроил работу системы - сейчас повороты и переключение скоростей отрабатываются нормально.
Очередной вопрос - как вынести на отдельный светодиод, расположенный на пульте, индикацию включения/выключения трекинга? Пробовал подцепить светодиод (анод на +5V, катод через резистор на пин ардуино) на прописанный в скетче контакт - не горит...
Светодиод подключить легко: анод на пин 13, катод на GND. В режиме трекинга будет мигать, точно так же как встроенный в ардуино светодиод.
Спасибо! Сделал - всё работает.
« Последнее редактирование: 17 Июл 2016 [14:54:39] от Oleg1601 »
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)