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


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

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

Оффлайн viktor0154

  • **
  • Сообщений: 88
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от viktor0154
это люфт,
Это точно люфт, я думал что его компенсировать не сложно, но раз трудности- черт с ним.
И на счет десятков секунд я переборщил. Неточность порядка поля зрения окуляра 12 мм.
Если привязать монти ближе к востоку, то в Ю, Ю-З направлениях наводится хорошо в направлении трекинга. У меня сначала была привязана к Ю-З на горизонте, вот люфты и дали о себе знать.
ХАБЛЛ и ДеаГостини 114/1000, цЫфромыльница, веб камера+Гелиос, монтировка ДЕА и мало свободного времени.

Оффлайн Cord

  • Новичок
  • *
  • Сообщений: 34
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от Cord
У меня пока в таком виде, на столе.
SW 1309 CG-4; ок. Starguider ED 5,8,12,15 и 25 mm 60°, Celestron omni 40 и32 mm Плёссл; МС-3М-5СА, Таир-3 Grand prix, Таир 11А, Юпитер- 21А кмз, Nikon D200, БПЦ 10х50 "Tento", БПЦ 20х60 "Tento",БПЦШ2 7х35 ЗОМЗ, Celestron 25x100 "Skymaster"

Оффлайн viktor0154

  • **
  • Сообщений: 88
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от viktor0154
Cord
, у Вас к черной коробочке подключены белые разъемы. Они не очень удобны в эксплуатации, я бы посоветовал их заменить на RG или хотя бы ЮСБ. В отверстия ножками попасть сложно, сами ножки легко погнуть. А отключать-включать придется хотя бы для экономии энергии или чтобы не перегревались драйвера в режиме удержания.
ХАБЛЛ и ДеаГостини 114/1000, цЫфромыльница, веб камера+Гелиос, монтировка ДЕА и мало свободного времени.

Оффлайн Cord

  • Новичок
  • *
  • Сообщений: 34
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от Cord
у меня драйвера с радиаторами маленькими и ток выставлен, ничего не греется, вряд ли лишний раз буду дёргать, да и разъёмов таких много, для них кримпер есть.  Пока так, для пробы собирал, потом может другой вариант буду собирать, с выходом на фот и термодатчик, тогда подумаю , какие разъёмы ставить. Так то для фокусера и колеса фильтров собран еще другой контроллер из другой темы https://astronomy.ru/forum/index.php/topic,22075.1140.html
SW 1309 CG-4; ок. Starguider ED 5,8,12,15 и 25 mm 60°, Celestron omni 40 и32 mm Плёссл; МС-3М-5СА, Таир-3 Grand prix, Таир 11А, Юпитер- 21А кмз, Nikon D200, БПЦ 10х50 "Tento", БПЦ 20х60 "Tento",БПЦШ2 7х35 ЗОМЗ, Celestron 25x100 "Skymaster"

Оффлайн viktor0154

  • **
  • Сообщений: 88
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от viktor0154
ничего не греется,
это "на столе". При монтаже на монти и эксплуатации режимы работы возрастут многократно, смотрите внимательно.
И разъемы во время "Мотор ON" не трогайте- драйвера сгорят.
ХАБЛЛ и ДеаГостини 114/1000, цЫфромыльница, веб камера+Гелиос, монтировка ДЕА и мало свободного времени.

Оффлайн viktor0154

  • **
  • Сообщений: 88
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от viktor0154
Как обычно, в рабочие дни небо ясное, только вечером после работы облака набегают.
Сегодня облаков не было до 7 часов утра, пока приготавливал все- луна скрылась в многослойной облачности.
У меня с балкона видимость на ЮЗ плюс-минус час, при высоте от экватора минус 10 град.
Погонял чуть новый ВП "на столе"- пока вопросов нет, все работает как надо.
Ждем небо пока включат, надо бы позвонить в Небесную Канцелярию. А то расслабились, с осени ничего не видно !
ХАБЛЛ и ДеаГостини 114/1000, цЫфромыльница, веб камера+Гелиос, монтировка ДЕА и мало свободного времени.

Оффлайн SecondShadow

  • Новичок
  • *
  • Сообщений: 14
  • Благодарностей: 0
  • Соня
    • Сообщения от SecondShadow
А то расслабились, с осени ничего не видно !
Согласен, хотя и регион другой :)
Луну увидел,  в начале недели, еще светло на улице было. Звезду поймать не могу, на маске Бахтинова фокусировку проверить.
Склероз классная болезнь, ничего не болит и новости каждый день.

Оффлайн Denis Volodin

  • *****
  • Сообщений: 696
  • Благодарностей: 22
  • Генералами не рождаются, генералами становятся!
    • Сообщения от Denis Volodin
Денис! В последних версиях контроллера подключаю таким образом, как на фото. Белый - земля, красный +5В, черные - на сенсоры: SDA (A4) - X, SCL (A5) - Y, A6 - Z, A7 - S. Эти проводки идут у меня на розетку RJ-45 на контакты соответственно (по схеме В): красно-белый, красный, синий, бело-синий, бело-коричневый, коричневый. Чуть позже фото розетки и разъема приложу. Как раз новый пульт делаю. У джойстика на кнопку контакт A6 - Z идет. Настройки в конфиге под такое подключение:
#define CX_SENCE A4  //Сенсор оси X элемента управления или X+ для GUIDEPORT
#define CY_SENCE A5  //Сенсор оси Y элемента управления или Y+ для GUIDEPORT
#define CZ_SENCE A6  //Сенсор оси Z элемента управления (для джойстика кнопка) или X- для GUIDEPORT
#define CS_SENCE A7  //Сенсор чувствительности (скорости) элементов управления или Y- для GUIDEPORT
Добрый день.
1. Прошил крайнюю тут в форуме версию АМаунт.
По вашей схеме к сожалению джой почемуто не работает (тончее хаос по управлению...)
Подключил джой по старой схеме на пин А7, А6, Coolen. Работает. Моторчики управляются. Хотя на предыдущей прошивке АМаунт не работало.

Сильно не понятно данное явление.
Особенно на фоне подключения будущего пульта  ??? .

2. Можно уточнить пожалуйста по новой фиче в АМаунт.
МИКРОШАГИ В СЕКУНДУ НА ДВИГАТЕЛЕ. Раньше такой фичи не было.
Интересует на что эта фича влияет и как её правильно настроить?

Оффлайн SecondShadow

  • Новичок
  • *
  • Сообщений: 14
  • Благодарностей: 0
  • Соня
    • Сообщения от SecondShadow
к сожалению джой почемуто не работает (тончее хаос по управлению...)
После изучения своего джойстика(выше сообщение), заказал с али четыре сразу, на днях получу, обязуюсь проверить и выложить результат. После изучения своего глюка, думаю, результат будет не очень весёлым, а может и просто не очень. Там механика плохо соответствует электронике.
Склероз классная болезнь, ничего не болит и новости каждый день.

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

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
2. Можно уточнить пожалуйста по новой фиче в АМаунт.
МИКРОШАГИ В СЕКУНДУ НА ДВИГАТЕЛЕ. Раньше такой фичи не было.
Интересует на что эта фича влияет и как её правильно настроить?
Лучше всего задать те же значения, что и полных шагов в секунду. В таком случае ускорение/замедление при переходе шаг/микрошаг будет равно установленной кратности драйвера. Этим параметром можно изменить степень ускорения при переходе шаг/микрошаг.
Ньютон SW150/750, Рефрактор триплет 100/365_H/M, CG4_GoTo_H/M, Datyson T7C, Levenhuk T510NG, Canon 450Da, БП2 10х50 Berkut

Оффлайн SecondShadow

  • Новичок
  • *
  • Сообщений: 14
  • Благодарностей: 0
  • Соня
    • Сообщения от SecondShadow
изучения своего джойстика
Получил только что четыре джойстика. Проверил кодом от ТС.
Результат ожидаемый:
- из четырех ВСЕ разные  !!!;
- все четыре ОДИНАКОВЫЕ  !!!;
- в центральном (отпущенном) состоянии ВСЕ выдают разное значение.
- при отдельном контроле по потенциометрам X и Y можно иметь полный контроль за углом наклона джойстика;
- нет никаких ступеней "малый/полный" углов наклона, есть два переменных сопротивления, данные с которых передаются в Ардуино с точностью от 0 до 1020;
- все данные получаемые в цифре с джойстика - неправильный код в Ардуино;
- калибровка джойстика в коде от ТС обязательна!! Они все разные...
- калибровка вовсе не нужна, если исправить процедуру отслеживания положения джойстика X и Y !! Они все одинаковые...

Итог:
Хотите использовать джойстик правильно - пользуйтесь с умом.  ;)


P.S. Все четыре джойстика при нажатии кнопки выдают последовательно - "5" , потом "-5", "5", "-5" и так далее...
« Последнее редактирование: 07 Фев 2019 [11:54:46] от SecondShadow »
Склероз классная болезнь, ничего не болит и новости каждый день.

Оффлайн viktor0154

  • **
  • Сообщений: 88
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от viktor0154
с джойстика - неправильный код в Ардуино;
Не нравится- напишите свой и выложите для оценки работоспособности.
ХАБЛЛ и ДеаГостини 114/1000, цЫфромыльница, веб камера+Гелиос, монтировка ДЕА и мало свободного времени.

Оффлайн SecondShadow

  • Новичок
  • *
  • Сообщений: 14
  • Благодарностей: 0
  • Соня
    • Сообщения от SecondShadow
Не нравится- напишите свой и выложите для оценки работоспособности.
Незачем так агриться, будьте добрее.  ;)

Добавил две переменные - дельты по X и Y. Вычисляются при старте программы, приводят X и Y в центре к нулю.
Переделал код AskJOY, ход джойстика по микрошагу увеличился, легче ловить положение.
Проверил на всех своих джойстиках, работает более устойчиво.

int iJoyControl=0;
int iA1=0, iA2=0, iA3=0;
int dA1=0, dA2=0;

int AskJOY()
{
  int iRetValue=0;

  iA1 = analogRead(A6);
  iA2 = analogRead(A7);
  iA3 = analogRead(A3);
 
// Строки ниже не менять порядком, они связаны!
  if(iA1>0 && (iA1+dA1) < 510)     { iRetValue = iRetValue=iRetValue | 1; } // Микрошаг X+   
  if(iA1 == 0)                     { iRetValue = iRetValue=iRetValue | 16; } // Полный шаг X+
  if(iA1<1023 && (iA1+dA1) > 514)  { iRetValue = iRetValue=iRetValue | 4; } // Микрошаг X-
  if(iA1 == 1023)                  { iRetValue = iRetValue=iRetValue | 64; } // Полный шаг X-

  if(iA2>0 && (iA2+dA2) < 510)     { iRetValue = iRetValue=iRetValue | 2; } // Микрошаг Y+
  if(iA2 == 0)                     { iRetValue = iRetValue=iRetValue | 32; } // Полный шаг Y+
  if(iA2<1023 && (iA2+dA2) > 514)  { iRetValue = iRetValue=iRetValue | 8; } // Микрошаг Y-
  if(iA2 == 1023)                  { iRetValue = iRetValue=iRetValue | 128;} // Полный шаг Y-
   
  if(iA3<500) if (iJoyControl<=0) {iRetValue= 5; iJoyControl= 5; delay(250);} else {iRetValue=-5; iJoyControl=-5; delay(250);};
 
  return iRetValue;
}

void setup()
{
  pinMode(A3, INPUT_PULLUP);
  pinMode(A6, INPUT);
  pinMode(A7, INPUT);
  Serial.begin(9600);
  Serial.flush();

  dA1 = 512 - analogRead(A6);
  dA2 = 512 - analogRead(A7);

};

void loop()
{
 int iControl=0;
 iControl=AskJOY();
 {
  Serial.print("VRX(A6)= "); Serial.print(iA1); Serial.print(" ");
  Serial.print("VRY(A7)= "); Serial.print(iA2); Serial.print(" ");
  Serial.print("SW(A3)= "); Serial.print(iA3); Serial.print(" ");
  Serial.print("iRetValue= "); Serial.println(iControl);
 }
delay (250);
};
« Последнее редактирование: 10 Фев 2019 [09:04:36] от SecondShadow »
Склероз классная болезнь, ничего не болит и новости каждый день.

Оффлайн viktor0154

  • **
  • Сообщений: 88
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от viktor0154
Автор: SecondShadow
« Склероз классная болезнь, ничего не болит и новости каждый день. »

Мне нравится Ваша подпись.
Это не относится ни к чему, просто нравится.
« Последнее редактирование: 10 Фев 2019 [09:04:26] от viktor0154 »
ХАБЛЛ и ДеаГостини 114/1000, цЫфромыльница, веб камера+Гелиос, монтировка ДЕА и мало свободного времени.

Оффлайн viktor0154

  • **
  • Сообщений: 88
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от viktor0154
delay (250);
Не внесет сумятицу в общий код ( точность ведения ?).
ХАБЛЛ и ДеаГостини 114/1000, цЫфромыльница, веб камера+Гелиос, монтировка ДЕА и мало свободного времени.

Оффлайн SecondShadow

  • Новичок
  • *
  • Сообщений: 14
  • Благодарностей: 0
  • Соня
    • Сообщения от SecondShadow
Не внесет сумятицу в общий код ( точность ведения ?).
Это задержка для вывода значений в терминал. Так было и у ТС , работал с его файлом JOY_001.ino для проверки качества джойстиков. В другом случае в void loop() не нужен вывод в терминал и задержка другая.
Склероз классная болезнь, ничего не болит и новости каждый день.

Оффлайн SecondShadow

  • Новичок
  • *
  • Сообщений: 14
  • Благодарностей: 0
  • Соня
    • Сообщения от SecondShadow
Дело в том, что ТС работал изначально с пультом, потом, видимо приводил код для джойстика в соответствие уже имеющемуся пульту. Поэтому такой двухскоростной код. Сейчас можно просто заменить в любой его программе функцию AskJoy() моей и всё должно работать.

А джойстик позволяет плавно менять скорость шаговиков. Если переходить на плавное управление, придется менять  и код управления ШД. 
Пока не знаю, нужно ли это?  ::)
Склероз классная болезнь, ничего не болит и новости каждый день.

Оффлайн viktor0154

  • **
  • Сообщений: 88
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от viktor0154
Ждем неба.
Неба ждем.
Ждем неба.
Неба ждем.
С октября ждем.
Ждем с октября.
Ждем неба.
Неба ждем.
Ждем неба.
Неба ждем.
С октября ждем.
Ждем с октября.
Ждем неба.
Неба ждем.
Ждем неба.
Неба ждем.
С октября ждем.
Ждем с октября.
ЖДУНЧИКИ.
Или ЖДУНЫ
???????????
ХАБЛЛ и ДеаГостини 114/1000, цЫфромыльница, веб камера+Гелиос, монтировка ДЕА и мало свободного времени.

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

  • *****
  • Сообщений: 1 287
  • Благодарностей: 124
    • Сообщения от Iovch
Ждунчикам желаю набраться терпения  :) По джойстику в последнем (и настоятельно рекомендуемом к применению) скетче AMount устроено несколько иначе. Функция int InitControl(void) определяет, что подключено, кнопочный пульт/джойстик или гидирующее устройство. При этом, определяет (и усредняет) равновесные значения сенсоров:

(кликните для показа/скрытия)

Обработка же элементов управления происходит в функции unsigned long AskControl():

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