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

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

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
Большое спасибо за пояснение. Я просто не до конца понимаю через что будет взаимодействовать камера с драйвером. У меня камера svbony 305 pro, там два разъема - USB 3.0 и ST-4. Мне достаточно подключить камеру по USB к компьютеру? Я думал, что подключать камеру надо будет к ST-4 разъему.
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

Оффлайн FlexLM

  • ****
  • Сообщений: 294
  • Благодарностей: 45
  • Олег
    • Сообщения от FlexLM
    • AMount - cистема управления телескопом
Монтировкой вы можете управлять через аском-драйвер для Windows. Предварительно установите платформу аском, затем аском-драйвер от Iovch. Затем в phd2 или Firecapture и т.п. выберете подключение через указанный драйвер. Камеру подключаете к ПК кабелем usb. ST-4  - это самостоятельный вариант подключения камеры к контроллеру дополнительным кабелем, который идёт в комплекте. Т.е. у вас будет подключение двумя кабелями, но без использования аском-драйвера. И для этого необходимо паять схему, предложенную Faddey. Тогда можно будет подключать камеру по ST-4 параллельно кнопочному пульту.
SW Dob8 + xMount

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
В виртуальном пульте выбрана режим Eq North. При наведении в Стеллариуме движения монтировки соответствуют ожидаемым, а при нажатии кнопок по оси Y (Dec) происходит инверсное движение. Приходится ставить галочку "-Y". Это нормально? Надо скетч править чтобы по умолчанию движения с кнопок совпадали с движением при наведении? Прошивка newamount, приложение vcAMount20200327.
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

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

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
Доброго дня. Вчера проверял как работает Go-To в связке со Стеллариумом. Приблизительно настроил "полярку". Монтировка без искателя полюса, поэтому навелся на полярную звезду через отверстие в монтировке для искателя.  Навел телескоп на Вегу, синхронизировался. Дал команду навестись на Денеб. Телескоп "поехал", почти попал. Звезда оказалась в области зрения искателя 6х30, но не в центре. Затем навел телескоп на Дубхе в Большой Медведице, синхронизировался. Дал команду навестись на Мерак в Большой Медведице. И телескоп вместо того чтобы поехать влево и вниз, поехал вправо и вниз. Пришлось разъем Y двигателя перевернуть на шилде. После этого телескоп стал корректно наводиться. Т.е. На востоке ориентация одна, а на западе другая. Может я что-то не так делаю? Подскажите пожалуйста.
Перетыкать разъем вообще не вариант. И есть возможность точность позиционирования увеличить?
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
Видимо придется делать аппаратный переключатель, который на А2 идет.
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

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

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
Не надо мудрить, ошибка программная, исправим.
А я думал переключатель для этого и задуман :)
Ну подождем исправления. Ждать - не мешки ворочать :)

Хотел бы сделать так, чтобы после включения сразу была включена звездная скорость ведения. И чтобы регулировка скорости не выключала ведение.
Подскажете где изменения внести?
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Хотел бы сделать так, чтобы после включения сразу была включена звездная скорость ведения.
Это проще простого. Во-первых в схеме предусмотрен переключатель типа монтировки EQ, AltAz, Alarm. Alarm - как раз тот режим, что вам нужен EQ-Noth + Sideral.
Если переключатель не установлен, то этот режим включается автоматически. В коде setup() вот этот фрагмент:
  pinMode(MOUNT_TYPE_PIN, INPUT_PULLUP); // Сенсор типа монтировки

  ...

  if(analogRead(MOUNT_TYPE_PIN) <250) {iTMode=2; iSMode=SetSMode(0);} // Экваториальная монтировка (Noth) остановлена
  if(analogRead(MOUNT_TYPE_PIN)>=250) {iTMode=1; iSMode=SetSMode(0);} // Альт-азимутальная монтировка остановлена
  if(analogRead(MOUNT_TYPE_PIN)>=750) {iTMode=2; iSMode=SetSMode(1);} // Экваториальная монтировка (Noth), cкорость ведения звездная (Sideral(1))
Можно сделать принудительно, без опроса переключателя:
  /*if(analogRead(MOUNT_TYPE_PIN) <250) {iTMode=2; iSMode=SetSMode(0);} // Экваториальная монтировка (Noth) остановлена
    if(analogRead(MOUNT_TYPE_PIN)>=250) {iTMode=1; iSMode=SetSMode(0);} // Альт-азимутальная монтировка остановлена
    if(analogRead(MOUNT_TYPE_PIN)>=750)*/ {iTMode=2; iSMode=SetSMode(1);} // Экваториальная монтировка (Noth), cкорость ведения звездная (Sideral(1))
Ньютон 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
И чтобы регулировка скорости не выключала ведение
В unsigned long AskControl() надо вот этот фрагмент переписать, закомментировать iSMode=SetSMode(0):
if((iAS<TRSH_L)||(iAS>TRSH_H)) //S+/-
      {
        digitalWrite(13, HIGH); //Отображает нажатие клавиши S     

        if(iAS<TRSH_L) // S-
        {
         if(iLastCtrlKey==AXISZ) {if(iZRate >1 ) iZRate--;} //Уменьшаем скорость фокусера
         else
         {
           if(iXYRate>1) iXYRate--;                              //Уменьшаем скорость осей ХУ
           else
           if(iSMode!=0) {iSModeOLD=iSMode; /*iSMode=SetSMode(0);*/} //Вплоть до остановки трекинга       
         }           
        } // S-
        if(iAS>TRSH_H) // S+
        {
          if( iLastCtrlKey==AXISZ) {if(iZRate < 9) iZRate++;} //Увеличиваем скорость фокусера
          else
          {
           if(iXYRate<9) iXYRate++; //Увеличиваем скорость осей
           if((iSMode==0)&&(iSModeOLD>0)) {iSMode=SetSMode(iSModeOLD); ulLoopTimer=millis(); ulMilisec=millis();} // Tracking ON
          }         
        } // S+       
        digitalWrite(13, LOW);
        ulCtrlTimer=millis();
      } //S+/-
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
Спасибо большое.
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

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

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

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
Технология только такая: сначала проверяем кнопочным пультом или джойстиком, что монтировка правильно слушается пульта вправо/лево и вверх/низ при необходимости корректируем переключателями реверса соответствующих осей, после этого можно уже и через АСКОМ позиционироваться.
Переключатели реверса физические или виртуальный пульт тоже пойдет?

В предыдущей версии позиционирование не зависело от выбранных чекбосов в виртуальном пульте. От них зависела только реакция на нажатие кнопок физического пульта.
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

Оффлайн FlexLM

  • ****
  • Сообщений: 294
  • Благодарностей: 45
  • Олег
    • Сообщения от FlexLM
    • AMount - cистема управления телескопом
Сначала вам следует убедиться, что реальный кнопочный пульт перемещает оси монтировки в правильном направлении. Когда направления неверные и если нет физических переключателей реверса, то меняете местами провода одной из обмоток ШД. После этого этапа настройки проверяете уже правильность работы осей виртуального пульта.
« Последнее редактирование: 24 Мая 2024 [06:56:38] от FlexLM »
SW Dob8 + xMount

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
Сначала вам следует убедиться, что реальный кнопочный пульт перемещает оси монтировки в правильном направлении.
Если развернуть трубу на восток лево-право и верх-низ как надо. Разворачиваем на запад - и одна ось уже в инверсии.
Прошу пояснения по проверке. Как определить, что физический пульт перемещает "не туда"?
Монтировка экваториальная, в виртуальном пульте выбран режим EQ-North.
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

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

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
А что тут пояснять? По кнопке вверх труба должна подниматься вверх к Полярной звезде
Повторюсь. "Верх" для трубы развернутой на восток и "Верх" для трубы развернутой на запад - это две совершенно разные кнопки на физическом пульте. Какую сторону брать за эталон?
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
Сделал моторизацию фокусера, подключил к шилду на ось Z. Ось крутится при нажатии кнопок на пульте, но очень громко тарахтит мотор. И самая быстрая скорость, по факту, какая-то медленная. На шилде кабель идущий к фокусеру подключил к к оси Y - мотор крутится быстро и тихо. Поменял драйверы местами, для исключения проблемы с драйвером. Менял значения imStepsZPS от 3000 до 15000. Проблема осталась. Что-то не так с управлением по каналу фокусера.
Подскажите пожалуйста, в чем может быть проблема?
Прошивка свежая, от 21.05.2024.
Настройки, отвечающие за ось Z, сечас такие:
iStepsZPS  =  200;
iZStepX    =   32;
imStepsZPS = 15000;
Джамперы с шилда убраны. Запаяна перемычка на D11 с обратной стороны шилда (как показано в инструкции).
« Последнее редактирование: 27 Мая 2024 [13:59:19] от thor-nsk »
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Что-то не так с управлением по каналу фокусера.
Логика работы фокусера отличается от осей. Если нажатие и удержание кнопки движения осей инициируют постоянное их движение, то кнопки фокусера инициируют лишь смещение фокусера на определенное количество шагов: отсюда и движение рывками при нажатии и удержании кнопки. Сделано это во-первых, чтобы не сломать фокусер неуспев остановить движение, во-вторых чтобы иметь возможность контролировать нажатиями кнопки величину смещения фокусера на каждом шаге. Управление скоростью движения фокусера в данном случае задает количество микрошагов за каждое нажатие от 1 до 256:
boolean Focus(char *sSTR)
{
  boolean Focus=true;
  int Direction=0, Steps=-1;
  switch (sSTR[2])
  {
   case '+': {Direction=  iStDZ; break;}
   case '-': {Direction =-iStDZ; break;}
  }
  switch (sSTR[1])
  {
   case '0': {Steps=0;   iZRate=0; break;}
   case '1': {Steps=1;   iZRate=1; break;}
   case '2': {Steps=2;   iZRate=2; break;}
   case '3': {Steps=4;   iZRate=3; break;}
   case '4': {Steps=8;   iZRate=4; break;}
   case '5': {Steps=16;  iZRate=5; break;}
   case '6': {Steps=32;  iZRate=6; break;}
   case '7': {Steps=64;  iZRate=7; break;}
   case '8': {Steps=128; iZRate=8; break;}
   case '9': {Steps=256; iZRate=9; break;}
   default: Focus=false;
  };
  if(Steps>0)
  {   
   //Force_Z(false);
   Stepper_Z_step(Direction*iStDZ*Steps,1);   
  }
 return Focus;
}
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн thor-nsk

  • Новичок
  • *
  • Сообщений: 48
  • Благодарностей: 0
  • Бесконечность не предел!
    • Сообщения от thor-nsk
У меня двухскоростной фокусер Крейфорда. Если упереться в предел и продолжить крутить колесико, то ничего не произойдет.
Есть ли возможность изменить логику работы управления фокусером на такую же как у осей X и Y?
Levenhuk RA 150C Cassegrain, SW 150/750, Maxvision exos-1, OnStep, SvBony 305 Pro