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


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

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
если подключить монтировку к компьютеру и по стеллариуму делать готу, и одновременно будет включен phd с подключенными устройствами но без гидирования, то они не будут конфликтовать. Можно сделать наведение готу и не закрывая планетарий сразу включать гидирование. Или остановить его и сразу готу перебежать куда то. (проверю еще на днях, но в теории дума должно быть так))
Можно даже не отключать гидирование, просто получится сбой гидирования (потеря звезды) при перенаведении, выбрать новую гидурующую звезду и все.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
Осталось только понять, какой сделать минимальный импульс монтировки, если она не может сама скорости регулировать. У меня сам изначально по фокусу гида 180мм и апертуре 50 рассчитал минимальное время импульса что то около 4300 мм, как то уж шибко много. У меня при первом же шаге он на 100пикселей где то бац и звезду потерял. Но если сделать сильно мало, то может не успевать за смещением звёзды по дек по крайней мере.
57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi

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

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

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
Разрешите еще вопрос. Понял что удобно если будет 2 порта (у меня) один, как есть ethernet под пульт, раз он уже сделан, а 2й порт сделать под RJ12 под гид. Такой вот вопрос.
1. Про джойстик понятно, там есть 5v в на джойстик и на них делаем подтягивающие резисторы. А порт rj где будет только A4,A5,A6,A7 их тоже "подтягивать" на 5 вольт на плату? или не надо?
2. Если делать 2 разъёма как я хочу, не будет проблем ни с чем, в том плане что у меня пины A6, A7 ,будут и там и там? Конфликтов не будет? (если одновременно будет подключен только один порт конечно)

57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi

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

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
Ну на сколько я понял, когда про гидировпние через rj спрашивал, вы сказали что гид режим включается, когда монтировка видит что на порту нет пульта (видимо у него есть нужное для понимания сопротивление). А если у меня порт гида будет в джойстике,  у меня всегда будет режим джойстика?
57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi

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

Оффлайн Denis Volodin

  • *****
  • Сообщений: 696
  • Благодарностей: 22
  • Генералами не рождаются, генералами становятся!
    • Сообщения от Denis Volodin
Всем привет!
Не прошло и сто лет как припаялись проводочки на шильде и свершилось чудо - моторчики крутятся хорошо.
Вывод: обязательно паять проводочки!  :police:
Залит в ардуину последний актуальный скетч и джостик подключен по старой схеме подключения (на разъем А6 и А7). И работает  :).
Моторчик на драйвере "Х" крутится постоянно с какой то там звёздной скоростью и также крутится быстро при включении джостика, моторчик на драйвере "У" крутится только при включении джостика.
Моторчик на драйвере "У" чуток слегка греется.
В разных положениях джостика моторчики умеют крутиться на двух скоростях.  В диагональном включении (положении) джостика моторчики крутятся оба, но заметно рывками.

Вопрос специалистам?
1. Так джостик можно подключать для последнего скетча? Может что улучшить где а я не знаю  :-\.  Резисторы для джостика как по последней актуальной схеме паять?

2. Пультик лучше как бы? Да? Только не знаю или не помню как там на нём скорости менять при управлении (там ведь по две кнопки на "х" и "у"). Можно уточнить тут еще разок для чайникоф.
« Последнее редактирование: 10 Авг 2018 [22:03:22] от Denis Volodin »

Оффлайн Denis Volodin

  • *****
  • Сообщений: 696
  • Благодарностей: 22
  • Генералами не рождаются, генералами становятся!
    • Сообщения от Denis Volodin
А ещё купились держалки под моторчики.
Держалки тебуют доработки - просверлить отверстия в держалке для крепления редуктора моторчика. Штатные отверстия в держалке сделаны для крепления моторчика без редуктора.
Думается водрузить держалки с моторчиками красиво на EQ5.

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
В общем сделал как на фото. Надо пульт - вставил, включил его. Надо гид, выключил, переткнул, включил. Сделал сейчас с резисторами на 5v, посмотрим меньше ли всякого мусора будет.  Завтра проверю все.
A4 = (SDA) и A5  = (SCL)  если надо будет кому то.

Интересное дело, паял по примеру первой платы, и смотрю, что у меня на джойстик не шло ни а4 ни а5..) Хотя работал джойстик то во всех направлениях. Правда в джойстике был провод от "CoolEN". Что то я так и не понял что он значит.

Вопрос небольшой возник. (Так как первую плату делал давно, то она видимо не бьётся с новой схемой. )
Я кнопку делал, чтобы при GoTo Y шагал в нужном направлении в зависимости от полушария. У меня кнопка замыкала контакт a2 на нано платке и gnd. А сейчас, судя по схеме для смены -Y и +Y надо замыкать "Resume"  и gnd. То есть и так и этак будет одно действие? Или это какие-то разные изменения Y будут?
У меня последний скетч NSMOUNT работал с  Resume и CoolEN что выше говорил. Вот думаю, а в чём разница то?
57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
В общем на той плате было все хорошо, так как только с одним двигателем Ra пробовал. Сейчас решил попробовал с двумя двигателями гидирование и вот какая проблема. В джойстике шаги по X и Y за одинаковый промежуток времени не равны.. грубо говоря если я до упора джойстик нажму по X и по Y, по Y оборот будет гораздо быстрее. При калибровке монтировки в пхд, по X (Ra) проблем нет. Но как только начинается калибровка Y (dec), сразу идет потеря звезды, та уходит за границу поиска звезды (50 пикселей поставил, максимум) В настройках время импульса при калибровке стоит уже 40мс. Почти не улетает на границы 50 пикселей и в общем но я плюную и пробую хоть так. Но вопрос, можно как то сделать чтобы импульс на Y меньше весил?
Можно уменьшить
int iStepsYPS =  800;    //Полных шагов в секунду на двигателе Y

или это не то?
Ну либо тут?
if (iCtrlEnable==0) //GUIDEPORT ось У
   {
    iN=0;
    if ((iA1>250)&&(iA3>250)) //Блокировка одновременного гидирования по осям Х,У
    {
     if ((iA2<250)&&(iA4>250)&&((millis()-ulCtrlTimer)>=iGuidDelay)) {iN= 1; ulCtrlTimer=millis();}
     if ((iA4<250)&&(iA2>250)&&((millis()-ulCtrlTimer)>=iGuidDelay)) {iN=-1; ulCtrlTimer=millis();}
    }
   }
  else
   {
    iDY=(iMJY<512)?(iMJY/9):((1023-iMJY)/9);
    iN=(iA2-iMJY)/iDY;
   }
   if (iCtrlEnable==3) iXYRate=(iN<0)?(-iN):(iN); //JOYCONTROL
   if(iN!=0) {P[0]=2; P[1]=17; P[2]=(iN>0)?36:37; P[3]=iXYRate; P[4]=0; P[5]=0; P[6]=0; p();} else {P[0]=0; p();} // Y
   if(iN >0) iLastCtrlKey=3;
   if(iN <0) iLastCtrlKey=4;
 
   if((iCtrlEnable==3)&&((millis()-ulCtrlTimer)>iCtrlDelay)) //JOYCONTROL запускает или останавливает трекинг
    {
     if(iA3<500)
     {
      if(iSMode>0) iSMode=SetSMode(0); else iSMode=SetSMode(1);
      ulCtrlTimer=millis();
      ulLoopTimer=millis();
      ulMilisec=millis();
     }
    }
57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi

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

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

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
Хм, видимо да, осталась от предыдущих проб. Ее уменьшу. Агрессивность просто не влияет же на калибровку, а у меня на этом уже этапе все вылетает за границу 50 пикселей
57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi

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

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

Оффлайн Denis Volodin

  • *****
  • Сообщений: 696
  • Благодарностей: 22
  • Генералами не рождаются, генералами становятся!
    • Сообщения от Denis Volodin
Знающие люди подскажите пожалуйста, не получается рулить моторчиками из Стелариума.
Что делаю не так?
Ардуина включена к сети питания 12в. Моторчик крутится.
Запускаю Стелариум.
Подключаю ардуину.
В диспетчере устройств виндоус ардуина сидит на 22 com порту.
В Стелариуме включаю плагин "управление телескопом", в настройках указываю порт 22. Светодиоды на ардуине начинают гореть.
Дальше как в инструкции в Стелариуме, курсор навел на нужный объект, нажал кнопочку ctr, нажал кнопочку "телескоп", нажал "навести" ... Но моторчик не крутится и не наводится...
??? :(

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
У меня все работает с такими же настройками вроде как. Единственное что, после того как нажимаете "подключить" телескоп, у меня секунд 15 думает. И потом круг появляется в координатах - [0;0]. После этого 1е положение которое мы задает он принимает за реальное, где мы находимся, и просто переходит туда. А далее уже катается по небу.


А я все пробую гидировать. Уменьшение агрессивности не знаю на сколько помогло. Но я уменьшил шаг калибровки до 10 мсек. Сделал dy ортогональным dx, и использую компенсацию по dy. Стала получше явно. https://yadi.sk/d/gp61WFJD3aCJio тут пару скриншотов с пхд. В общем все работает осталось только научится грамотно настраивать.
Ну и 2 фото. Пятикратный кроп. Выдержка по 120 секунд. С гидированием и просто с ведением без гида.
57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
Ардуина включена к сети питания 12в. Моторчик крутится.
Запускаю Стелариум.
Подключаю ардуину.
Мне представляется правильная последовательность такой:

1. Подключаем Ардуину к USB порту;
2. Запускаем Стеллариум;
3. Включаем моторы, путем подачи 12В и включением тумблера "Motor ON";
4. Наводимся на опорную звезду, по которой будем синхронизоваться;
5. Запускаем плагин "Управление телескопом";
6. В Стеллариуме даем команду навестись на опорную звезду. Если не сразу срабатывает, можно несколько раз эту команду "пулять", иногда не сразу синхронизирует.

Можно так:

1. Подключаем Ардуину к USB порту;
2. Запускаем Стеллариум;
3. Запускаем плагин "Управление телескопом", порты ардуино и указанные в плагине конечно должны совпадать;
4. В Стеллариуме даем команду навестись на опорную звезду, по которой будем синхронизоваться. Если не сразу срабатывает, можно несколько раз эту команду "пулять", иногда не сразу синхронизирует.
5. Включаем моторы, путем подачи 12В и включением тумблера "Motor ON";
6. Наводимся пультом или джойстиком на опорную звезду, по которой уже синхронизирован Стеллариум;

Рекомендуемый скетч NSMount или более ранние, AMount под Стеллариум не рассчитан.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Denis Volodin

  • *****
  • Сообщений: 696
  • Благодарностей: 22
  • Генералами не рождаются, генералами становятся!
    • Сообщения от Denis Volodin
Ардуина включена к сети питания 12в. Моторчик крутится.
Запускаю Стелариум.
Подключаю ардуину.
Мне представляется правильная последовательность такой:

1. Подключаем Ардуину к USB порту;
2. Запускаем Стеллариум;
3. Включаем моторы, путем подачи 12В и включением тумблера "Motor ON";
4. Наводимся на опорную звезду, по которой будем синхронизоваться;
5. Запускаем плагин "Управление телескопом";
6. В Стеллариуме даем команду навестись на опорную звезду. Если не сразу срабатывает, можно несколько раз эту команду "пулять", иногда не сразу синхронизирует.

Можно так:

1. Подключаем Ардуину к USB порту;
2. Запускаем Стеллариум;
3. Запускаем плагин "Управление телескопом", порты ардуино и указанные в плагине конечно должны совпадать;
4. В Стеллариуме даем команду навестись на опорную звезду, по которой будем синхронизоваться. Если не сразу срабатывает, можно несколько раз эту команду "пулять", иногда не сразу синхронизирует.
5. Включаем моторы, путем подачи 12В и включением тумблера "Motor ON";
6. Наводимся пультом или джойстиком на опорную звезду, по которой уже синхронизирован Стеллариум;

Рекомендуемый скетч NSMount или более ранние, AMount под Стеллариум не рассчитан.
Ура! Спасибо! Заработало. Первый верхний вариант попробовал.
Но ещё не все круто. Моторчик работает то рывками както неровно, то ровно и чисто. Причем когда рывками, то его можно остановить зажав пальцами вал редуктора на моторчике. Это сделать не возможно когда моторчик работает ровно, момент вращения хороший . Куда копать? Вероятно так моторчик не должен работать?

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
Надо настроить драйвер шагового двигателя чуть больше, чем сейчас. У меня на практики цыфра эта больше получается, чтобы все адекватно работало, чем нежели в "гайдах" цыфры пишут на тот же 8825. А так же значение
int iStepsXPS =  ;    //Полных шагов в секунду на двигателе X
И тоже самое для Y подобрать. Я начинал с 1000 и постепенно делал меньше, меньше меньше.
57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi

Оффлайн BaNaN3a72rus

  • ****
  • Сообщений: 264
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от BaNaN3a72rus
Подскажет кто-то может. В общем собрал схему как в верху писал и фото, всё работает. Вмонтировал в корпус. Пару проводочков допаял. Сейчас в корпусе все включил. Обычно когда только питание даёшь, сразу Ra со звёздной идти начинает. А тут просто стоит и все. Джойстик работает. По обеим осям на джойстик хорошая реакция как и должно быть. Значит и нано и драйверы работают. Значит контакт шд всё есть.. Смотрю щас и не вижу причин, всё сидит перепаяно хорошо.. Что не так...?
57°08'11.9"N 65°30'00.1"E
TS-O 154-600
CG-5 + Arduino gid
Canon 2000d
Sky-Watcher AZ-GTi