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

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

Оффлайн nolv

  • *****
  • Сообщений: 2 642
  • Благодарностей: 194
    • Сообщения от nolv
Т.е. вы предлагаете питать ардуину от 12В аккумулятора, а 27В для драйвера с мотором получать из тех же 12В через DC-DC LM2596?

Нет, наоборот. Это понижающий преобразователь. Берете один аккумулятор 24 В или на сколько есть, подаете с него напряжение на Vmot, а +5В на Vdd и ардуино через этот преобразователь.
Вообще странная ситуация с драйвером. 12В от нормального аккумулятора должно хватать на устойчивую работу такого шаговика, где-то в схеме явно проблема.

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Подключаем LCD

Необходимые детали на фото. Дисплей LCD. Кажется у меня самый дешевый и доступный использован 2 строки по 16 символов (1602A v2.0 не русифицированный). Можно и другие использовать, которые подойдут к адаптеру I2C – маленькая переходная плата + четырехжильный проводок. Адаптер I2C/LCD позволяет присоединиться к шилду минимальным количеством проводников. В программе потребуется подключение специальной библиотеки для этих деталей. Не помню сейчас требовалась ли пайка, но разборный «бутербродик» надо собрать как на втором и третьем фото.
Ньютон 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
На CNC шилд LCD подключается одноименными контктами I2C/LCD адаптера, т.е. GND, VCC, SDA, SCL адаптера – на GND, VCC, SDA, SCL шилда. Все в «сборе» на фото.

Ньютон 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
Скетч GOTO4 с библиотекой LiquidCrystal_I2C прилагаются. Библиотеку необходимо установить в среду ардуино.
« Последнее редактирование: 17 Июл 2016 [14:52:17] от 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 отображается в тот же момент! Недочет сейчас на LCD увидел – отображает ведение по южному полушарию  :). N/W означает, что телескоп при развороте на север будет располагаться с западной стороны полярной оси, что важно для электроники при изменении склонения в какую сторону ось крутить.
Ну вот, кажется готова электронная часть полноценной GOTO!
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

alex AMK

  • Гость
Ну и пару фото для иллюстрации работы: скриншот Стеллариума и то, что на LCD отображается в тот же момент! Недочет сейчас на LCD увидел – отображает ведение по южному полушарию  :). N/W означает, что телескоп при развороте на север будет располагаться с западной стороны полярной оси, что важно для электроники при изменении склонения в какую сторону ось крутить.
Ну вот, кажется готова электронная часть полноценной GOTO!
Зачетная разработка!  :)

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601
Возвращаясь к скетчу GOTO2_2 и тому, что у меня на нем нет прибавления скорости на оси Y ...
Нашёл в скетче ошибку - там, вместо Y стоит Х, соответственно команды выполняются некорректно... Поменял, прибавление скорости на оси Y появилось, но всё равно ещё есть некоторые "шероховатости" - не всегда четко происходит реакция на команды джойстика.
Красным отметил то, что нужно поменять на Y.

int Force_Y(boolean bForce)
{
  int iYSX=0;
  if(!bForceY && bForce) //Включаем полношаговый режим
  {
    iYSX = 1; //Кратность шага драйвера X
    digitalWrite(DX_FORCE_PIN, LOW);
    imStepsYPS = iStepsYPS*iYSX; //Шагов в секунду на двигателе Y
    ulSPDE = iStepsDY*dRDY*iYSX; //Шагов двигателя Y на полный оборот оси склонений
    bForceY=true;
   }
  if(bForceY && !bForce) //Включаем микрошаговый режим
  {
    iYSX = iYStepX; //Кратность шага драйвера Y
    digitalWrite(DX_FORCE_PIN, HIGH);
    imStepsYPS = 500; //Микрошагов в секунду на двигателе Y
    ulSPDE = iStepsDY*dRDY*iYSX; //Микрошагов двигателя Y на полный оборот оси склонений
    bForceY=false;


Хочу заметить, что во всех последующих скетчах та-же самая ошибка...
« Последнее редактирование: 15 Июл 2016 [21:33:15] от Oleg1601 »
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Спасибо Олег! Завтра по-внимательнее просмотрю этот GOTO2_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
Интересно, кто-нибудь сращивал ИК пульт с системой управления монтировкой? Сильно тормозным оказывается, требуется не менее 125 мс задержки в цикле опроса. Для ввода настроек, даты времени и т.п. сгодится, но для корректировки телескопа как-то слабовато.
Проверил сейчас: вполне сгодится. Даже забавно как-то без проводов. Только требуется 2 ардуино и соответственно 2 скетча: MASTER/SLAVE.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601
Спасибо Олег! Завтра по-внимательнее просмотрю этот GOTO2_2. От туда эта ошибка может и в последующие версии перекочевала.
Видимо, да...
Телескоп: Рефрактор ахромат 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

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601
Нашёл ещё ошибку в GOTO2_2 и всех последующих. Правда она не критическая, а всего лишь ошибка в пояснении выполняемой команды

unsigned long ulSPRA = iStepsDX*dRDX*iXStepX; //Микрошагов двигателя X на полный оборот оси прямого восхождения
unsigned long ulSPDE = iStepsDY*dRDY*iYStepX; //Микрошагов двигателя Y на полный оборот оси прямого восхождения

Здесь, вместо выделенного красным - "прямого восхождения" должно быть написано -  оси склонений

Х - ось прямого восхождения RA
Y - ось склонений DEC
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
Пока только GOTO4 исправил, GOTO4_2.zip к ответу #83 приложил.

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

Оффлайн Oleg1601

  • *****
  • Сообщений: 997
  • Благодарностей: 34
    • Сообщения от Oleg1601
И ещё одна ошибка в скетче GOTO2_2, в GOTO3_1 аналогично  >:(
Как видно из описания и самого скетча подключаются контакты "VRX джойстика на А7 шилда, VRY джойстика на А6 шилда". И в скетче:

 pinMode(A6, INPUT);          // Сенсор оси Y джойстика
 pinMode(A7, INPUT);          // Сенсор оси X джойстика

Напоминаю, что Х - ось прямого восхождения, а Y - ось склонений.
Но,  в GOTO2_2.h видим, что:

iA1 = analogRead(A6);
iA2 = analogRead(A7);

А из последующих данных видим, что:
  if(iA1<25)                { iRetValue=iRetValue | 16; } // Полный шаг X+
  if(iA1>=25 && iA1 < 490)  { iRetValue=iRetValue |  1; } // Микрошаг X+
  if(iA1>520 && iA1<=1000)  { iRetValue=iRetValue |  4; } // Микрошаг X-
  if(iA1>1000)              { iRetValue=iRetValue | 64; } // Полный шаг X-

  if(iA2<25)                { iRetValue=iRetValue | 32; } // Полный шаг Y+
  if(iA2>=25  && iA2 < 490) { iRetValue=iRetValue |  2; } // Микрошаг Y+
  if(iA2>510  && iA2<=1000) { iRetValue=iRetValue |  8; } // Микрошаг Y-
  if(iA2>1000)              { iRetValue=iRetValue | 128;} // Полный шаг Y-

То есть iA1 "рулит" Х (иксами), но пин А6 почему-то подключен к контакту VRY джойстика, и, соответственно, наоборот iA2 "рулит" Y (игреками), но пин А7 подключен к контакту VRХ джойстика.
« Последнее редактирование: 16 Июл 2016 [15:25:23] от Oleg1601 »
Телескоп: Рефрактор ахромат 102/1000 (SAM), рефлектор ньютона DS DTF 130/1000 (MOD), монтировка DS-EQ3/AT-5 (MOD)

Оффлайн Oleg1601

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

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

  • *****
  • Сообщений: 1 306
  • Благодарностей: 124
    • Сообщения от Iovch
То есть iA1 "рулит" Х (иксами), но пин А6 почему-то подключен к контакту VRY джойстика, и, соответственно, наоборот iA2 "рулит" Y (игреками), но пин А7 подключен к контакту VRХ джойстика.
Это ты здорово Олег накопал! Действительно у меня VRX джойстика на A7 шилда идет, но все работает правильно! Значит на джойстике или шилде подписано неправильно. А еще зависит от того, как ты в "исходном" положении джойстик держишь. Я например, контактами подключения от себя :)!
Ньютон 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
А вообще, кто-нибудь, кроме меня, пытается повторить эту систему? И, если - да, какие у вас результаты?
Олег! Систему пытается повторить Алексей (alex AMK) у него, как я понял "железо" как у тебя. Помоги советом, если обратиться, а то у меня последний день отпуска, а еще хочется про подключение ИК пульта написать и азимутальный скетч показать, но видимо про ИК пульт только успею сегодня-завтра.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut