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


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

0 Пользователей и 2 Гостей просматривают эту тему.

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

Оффлайн Grazer

  • **
  • Сообщений: 79
  • Благодарностей: 13
    • Сообщения от Grazer
Спасибо за ответы. Буду разбираться.
Celestron Astro Master 90 EQ2
SW 150 750 EQ5
Славутич-2 ЛЗОС 1978г
Canon 1100D
T7C
RMS-RU000Q

Оффлайн Grazer

  • **
  • Сообщений: 79
  • Благодарностей: 13
    • Сообщения от Grazer
И снова здравствуйте. Вопрос не по теме: при загрузке скетча возникает сообщение об ошибке "connect mismatch". При прошивке через программатор то же самое. Загрузчик перепрошить не получается. Чтение форумов ответа не дало. Кроме гонора и ругани пользователи радиофорумов ничего выдать не могут, соответственно и пользы от "знающих" мало. Надеюсь на вашу адекватную реакцию. Заранее спасибо.
Celestron Astro Master 90 EQ2
SW 150 750 EQ5
Славутич-2 ЛЗОС 1978г
Canon 1100D
T7C
RMS-RU000Q

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

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

Оффлайн xd

  • *****
  • Сообщений: 17 973
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
И снова здравствуйте. Вопрос не по теме: при загрузке скетча возникает сообщение об ошибке "connect mismatch". При прошивке через программатор то же самое. Загрузчик перепрошить не получается. Чтение форумов ответа не дало. Кроме гонора и ругани пользователи радиофорумов ничего выдать не могут, соответственно и пользы от "знающих" мало. Надеюсь на вашу адекватную реакцию. Заранее спасибо.
А Вы точно пытаетесь в правильный виртуальный COM-порт прошивку залить?..
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Grazer

  • **
  • Сообщений: 79
  • Благодарностей: 13
    • Сообщения от Grazer
Другие платы шьются без проблем.

Celestron Astro Master 90 EQ2
SW 150 750 EQ5
Славутич-2 ЛЗОС 1978г
Canon 1100D
T7C
RMS-RU000Q

Оффлайн Дмитрий Маколкин

  • *****
  • Сообщений: 15 033
  • Благодарностей: 1332
  • всяко разно
    • Skype - dmitrymakolkin
    • DeepSkyHosting: dvmak
  • Награды Призер конкурса астрофото
    • Сообщения от Дмитрий Маколкин
    • Панорамы Луны
Вопрос к опытным ардуинщикам.

Посоветуйте хорошего продавца на Али, с хорошим выбором ардуин и модулей к ним. Интересует уно, нано, дисплеи, макетные платы и принадлежности к ним.
Панорамы Луны в моей галерее:
http://www.makolkin.ru/Gallery/gallery.html
Мои дипы: https://deepskyhosting.com/dvmak

Оффлайн Qazz

  • *****
  • Сообщений: 1 045
  • Благодарностей: 47
  • центрально-черноземный регион
    • Сообщения от Qazz
пару раз брал на "ZQC module store" по 30-40 модулей и деталей. вроде норм.
а "WAVGAT"  гатом оказался, прислал не то и обманул на 2/3
Canon sx20is  без ничего. ну и что? у Г.Галилея и того не было

Оффлайн Парча

  • ***
  • Забанен!
  • Сообщений: 219
  • Благодарностей: 17
    • Сообщения от Парча
//alexgyver.ru/aliexpress/
Открылась бездна звезд полна;
Звездам числа нет, бездне дна.

Оффлайн Boris Green

  • *****
  • Сообщений: 1 484
  • Благодарностей: 76
    • Сообщения от Boris Green
Не могу сдержать эмоций. Попробовал OnStep - класс! Телескоп как настоящий ЧПУ, есть ускорения и замедления, коррекция, автоматический переворот трубы. Концевики и энкодеры не пробовал.

Сделал на базе Arduino 2560 и RAMPS 1.4 из старых запасов (более новые платы принтеров могут не поддерживать i2c и иметь другую распиновку). Временно DRV8825, жду LV8729 - моторы должны бесшумно и плавно работать.

Оффлайн Парча

  • ***
  • Забанен!
  • Сообщений: 219
  • Благодарностей: 17
    • Сообщения от Парча
А ссылочку на проект можно?
Открылась бездна звезд полна;
Звездам числа нет, бездне дна.

Оффлайн Boris Green

  • *****
  • Сообщений: 1 484
  • Благодарностей: 76
    • Сообщения от Boris Green

Оффлайн diant

  • *****
  • Сообщений: 4 368
  • Благодарностей: 541
  • Две вещи поражают мое воображение...
    • Сообщения от diant
Столкнулся с заковыкой ардуино. Не то чтобы мешает, но голову вчера поломал (однако так и не разобрался в чем причина). М.б. кто сталкивался с такой странностью.

Ардуинка нано (китайская на 340-м чипе).
Использую функцию delayMicroseconds(x) для управления светодиодом (задержками после его включения и после гашения). Столкнулся с тем, что реальная задержка у этой функции всегда примерно на 1,2 мкс КОРОЧЕ указанного значения. Почему?!

Например, включаю LED и далее пишу delayMicroseconds(10) - получаю импульс с выходного цифрового пина 8.8 мкс (светодиод светится соответственно 8.8 мкс)
Если пишу delayMicroseconds(2) - получаю импульс светодиода длительностью 0.8 мкс и т.д.

Если кто соображает в этих железках, проясните пожалуйста.
Внизу: скетч и собственно данные, снятые осциллографом (1-й канал - прямо с цифрового выхода ардуинки, 2-й канал - с фотометра, поставленного окошком к моргающему светодиоду).


Celestron C8 SC XLT, SW150/750PDS, SW120/600, SV503 ED100, DS80/600 (солнцескоп с клином Гершеля + Baader SC)
Азимутал TS AZGP, экваториалы HEQ5 Pro belt и CG4
Nikon Action 7x35, Minolta Standard 10x50 (on sale)

Оффлайн SailorMoon

  • Новичок
  • *
  • Сообщений: 5
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от SailorMoon
Таймеры работают по прерываниям. А вы запретили их совсем. Удивительно что вообще они хоть как-то работают)

Отправлено с моего ZC520KL через Tapatalk


Оффлайн diant

  • *****
  • Сообщений: 4 368
  • Благодарностей: 541
  • Две вещи поражают мое воображение...
    • Сообщения от diant
Таймеры работают по прерываниям. А вы запретили их совсем. Удивительно что вообще они хоть как-то работают)
Я собственно тоже этого опасался и делал на свой страх и риск, но как ни странно заработало.
Запретить прерывания пришлось по той причине, что без этого прерывания (неизвестные мне, вот в чем загвоздка) изменяли длительность некоторых задержек, и регулярности импульсов не получалось. Иногда импульсы вдруг становились длинее на 6.4 мкс и т.д.
После запрета прерываний стабильность работы схемы достигла 100%. Но вот эта странная аддитивная расходимость указанной длительности "х" в функции delayMicroseconds и реальной длительности задержки (всегда строго на 1.2 мкс) остается загадкой.
Celestron C8 SC XLT, SW150/750PDS, SW120/600, SV503 ED100, DS80/600 (солнцескоп с клином Гершеля + Baader SC)
Азимутал TS AZGP, экваториалы HEQ5 Pro belt и CG4
Nikon Action 7x35, Minolta Standard 10x50 (on sale)

Оффлайн SailorMoon

  • Новичок
  • *
  • Сообщений: 5
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от SailorMoon
Я думаю это лучше обсуждать не тут и даже не на этом форуме.
Стандартные функции ардуинки для работы с таймерами не позволят вам создать систему реального времени. У функций таймеров есть погрешность, которая накапливается за некоторый период. Если хотите точные измерения, пишите свои функции на низком уровне, или ищите готовые на других форумах)

Отправлено с моего ZC520KL через Tapatalk


Оффлайн diant

  • *****
  • Сообщений: 4 368
  • Благодарностей: 541
  • Две вещи поражают мое воображение...
    • Сообщения от diant
Я думаю это лучше обсуждать не тут и даже не на этом форуме.
Здесь не стесняются обсуждать ардуинку. Она очень в ходу у астрономов и можно сказать любима ими.

Стандартные функции ардуинки для работы с таймерами не позволят вам создать систему реального времени.
Задачу создать "систему реального времени" не ставлю. Хотелось бы просто видеть функции IDE работающими как описано; иначе как согласовать между собой устройства, если ты говоришь им "делайте это", а они делаю что-то свое. В принципе меня устраивает достигнутый результат, просто все время в голове нужно будет держать эту особенность функции delayMicroseconds на моей китайской "нано".
Celestron C8 SC XLT, SW150/750PDS, SW120/600, SV503 ED100, DS80/600 (солнцескоп с клином Гершеля + Baader SC)
Азимутал TS AZGP, экваториалы HEQ5 Pro belt и CG4
Nikon Action 7x35, Minolta Standard 10x50 (on sale)

Оффлайн Qazz

  • *****
  • Сообщений: 1 045
  • Благодарностей: 47
  • центрально-черноземный регион
    • Сообщения от Qazz
вот:
 "На 16MHz платах Ардуино (Duemilanove и Nano) функция micros() имеет разрешение 4 микросекунды (возвращаемое значение всегда кратно 4). На 8MHz платах (Arduino Lilypad) разрешение функции 8 микросекунд."

а вы десятые доли мкс ищете, на китайском чипе за 1,5 доллара ;)
Canon sx20is  без ничего. ну и что? у Г.Галилея и того не было

Оффлайн diant

  • *****
  • Сообщений: 4 368
  • Благодарностей: 541
  • Две вещи поражают мое воображение...
    • Сообщения от diant
а вы десятые доли мкс ищете, на китайском чипе за 1,5 доллара
Вы не поняли вопроса. Я их не ищу, я их получил и пытаюсь понять.

вот:
 "На 16MHz платах Ардуино (Duemilanove и Nano) функция micros() имеет разрешение 4 микросекунды (возвращаемое значение всегда кратно 4). На 8MHz платах (Arduino Lilypad) разрешение функции 8 микросекунд."
Внимательнее читайте вопрос. У меня функция micros() не используется.
Celestron C8 SC XLT, SW150/750PDS, SW120/600, SV503 ED100, DS80/600 (солнцескоп с клином Гершеля + Baader SC)
Азимутал TS AZGP, экваториалы HEQ5 Pro belt и CG4
Nikon Action 7x35, Minolta Standard 10x50 (on sale)

Оффлайн nolv

  • *****
  • Сообщений: 2 662
  • Благодарностей: 194
    • Сообщения от nolv
Столкнулся с тем, что реальная задержка у этой функции всегда примерно на 1,2 мкс КОРОЧЕ указанного значения. Почему?!

Это баг.
https://github.com/arduino/Arduino/issues/7181

Оффлайн diant

  • *****
  • Сообщений: 4 368
  • Благодарностей: 541
  • Две вещи поражают мое воображение...
    • Сообщения от diant
Это баг.
nolv, спасибо! Просто в десятку попали.
Я уже и сам вижу, что баг какой-то. По вашей ссылке человек получил на осциллографе в точности такой же результат, что и я, во всех случаях, когда функция delayMicroseconds(х) вызывается с константой в аргументе.
В случае вызова с переменной длительность функции сокращается уже не на 1.2 мкс, а примерно на 0.8 (сам я еще так не пробовал, но по вашей ссылке у человека именно так).

SailorMoon дал мне ссылки на описание работы функции. Там прямо указано, что вызов с константой или с переменной приведет к разным задержкам. Но во всех случаях правильной работы функции не наступает - она остается неточной (укороченной) на 16МГц ардуино нано V3. Вероятно и на других тоже.
Celestron C8 SC XLT, SW150/750PDS, SW120/600, SV503 ED100, DS80/600 (солнцескоп с клином Гершеля + Baader SC)
Азимутал TS AZGP, экваториалы HEQ5 Pro belt и CG4
Nikon Action 7x35, Minolta Standard 10x50 (on sale)