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


A A A A Автор Тема: Контроллер / драйвер шаговиков мелких монти  (Прочитано 18181 раз)

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

andreichk

  • Гость
конечно 820 мА,

andreichk

  • Гость
Я только одно не понял. Микруха даёт возможность перехода в 1/16 микрошага в пределах -32768…+32767 от текущей позиции. А если нужно дальше, нужно идти на 32к, стопить мотор, ресетить и идти ещё на 32к и т.п.?
а что мешает завести ещё одну переменную и складывать-вычитать значения текущего шага?

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

  • *****
  • Сообщений: 17 579
  • Благодарностей: 1078
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
Я только одно не понял. Микруха даёт возможность перехода в 1/16 микрошага в пределах -32768…+32767 от текущей позиции. А если нужно дальше, нужно идти на 32к, стопить мотор, ресетить и идти ещё на 32к и т.п.?
а что мешает завести ещё одну переменную и складывать-вычитать значения текущего шага?
Как реализовать на MCU я понимаю, уж лет 15+ как программист на PC. Я про управление через ТМС222 говорю, с использованием его ускорения / замедления.

Скажем, мне итогово надо перейти на 70000 микрошагов. Я говорю ТМС222 через i2c:
- перейди на +32767;
- сбрось счётчик;
- перейди на +32767;
- сбрось счётчик;
- перейди на +4466.

Он три раза будет начинать и заканчивать разгон. Эта проблема как решается в рамках MCU + ТМС222? Если Вы в курсе, конечно.
モ - mo

Оффлайн lipaal

  • *****
  • Сообщений: 2 937
  • Благодарностей: 50
    • Сообщения от lipaal
Да-да, слышал не только о кренке, но и о людях, рукой крутящих R.A. вместо мотора :), это не прибавляет мне оптимизма.

Насчёт рывков. Монти EQ6pro, к примеру. Мотор работает в микрошаге 1/64, каждый микрошаг равен 0.14". В секунду нужно пройти 15", то есть ~107.14 микрошагов. С учётом далеко ненулевой массы нагрузки на монти, которая работает как демпфер, мне кажется говорить о том, что 1/64 микрошаг с частотой 100+ Гц есть атомарное явление - неверно, скорей это достаточно плавная синусоида.

Что есть ДПТ, как не шаговик с 2-3 шагами на круг и системой коммутации (щётки, например)? Как раз с точки зрения плавности хода при синусоиде на фазах (достаточно мелком микрошаге) шаговик выиграет, кмк.

Другое дело, что ДПТ с энкодером небольшого разрешения ставят через более "мощный" редуктор (с бОльшим коэффициентом редукции), делая из него серву.

Категорически не согласен с оценкой ДПТ как ШД с шагом 120гр. Потому что если у Вас ШД при часовом ведении работает со скоростью 3-4 об/мин, то ДПТ например со скоростью 1000 об/мин - а значит система будет гораздо более инерционной - масса якоря будет работать как демпфер.

А в общем то для походного астрографа нужно немного - часовое ведение и коррекции.
Да и масса с ДПТ будет меньше (при той же тяге), да и кушать будет меньше.

Хотя конечно если Вас эта идея не прельщает, то на нет и суда нет...
Александр.
DS F750X150 на LXD-55, Neximage, Canon 400D, Ю37МС.
.....
Сайга-20К, ТОЗ106, ТОЗ-34, Барс4-223  - смерть фонарям!!!!!!

Сообщений kismet-а не вижу

andreichk

  • Гость
он будет крутить, пока команда на стоп не поступит независимо от того сколько вы ему зададите

Оффлайн Aslamov Ilya

  • ****
  • Сообщений: 338
  • Благодарностей: 9
    • Сообщения от Aslamov Ilya
Все реализуется довольно просто.  В самой первой версии GOTO которая была выпущена единственным экземпляром у нас стояли именно такие контроллеры на всех осях. Теперь он остался только для фокусера.

Ниже привожу фрагмент кода из старой программы. У меня организовано прерывание, которое заведено от таймера и срабатывает с некоторой периодичностью (которую можно менять). В прерывании двигатель может работать либо в режиме GOTO (при этом координата цели заноситься в переменную GoTo.Motor[2].TARG), либо просто быстро ехать вправо/влево по нажатию соотв. клавиш, либо ехать со зв. скоростью (в последнем случае, каждый шаг инициализируется вручную с контроллера, т.к. TMC222 не умеет сама слишком медленно ездить)

Для расчета координат у меня организован внутренний 32х битный счетик GoTo.Motor[2].POS, как орагнизована с ним работа можете посмотреть из кода. Сейчас некогда расписывать подробно, но если будут вопросы, спрашивайте.

//#######################################################
//прерывание для обработки шаговика RA.
//#######################################################
void __attribute__((interrupt, no_auto_psv)) _T5Interrupt(void){
    signed int tempPos=St2[2].ActPos;    //Сохраним значение предыдущей позиции шаговика
    signed long  Delta;
    GetST2(2);    //Считываем статус2 в котором есть текущая позиция шаговика 
    GetST1(2);
    if (((GoTo.State&NO_KALIBR)==FALSE)&&(FlagWork!=STAR_SPEED)&&(tempPos!=St2[2].ActPos)) {    //Если система откалибрована, то обновим координату
        if (abs((signed long)St2[2].ActPos-(signed long)tempPos)<3200) {    //если небыло перехода через границу внутреннего счетчика
            GoTo.Motor[2].POS+=St2[2].ActPos-tempPos;    //Обновляем позицию шаговика
        } else {    //если был переход через край внутреннего счетчика
            if ((tempPos<-25000)&&(St2[2].ActPos>25000)) {    //Был переход через нижнюю границу
                GoTo.Motor[2].POS-=tempPos-St2[2].ActPos;    //Обновляем позицию шаговика
            } else {    //Был переход через верхнюю границу
                GoTo.Motor[2].POS+=St2[2].ActPos-tempPos;    //Обновляем позицию шаговика
            }
        }
        if (GoTo.Motor[2].POS>=HA_MAX) {
            GoTo.Motor[2].POS-=HA_CIRCLE;
        } else if (GoTo.Motor[2].POS<=HA_MIN) {
            GoTo.Motor[2].POS+=HA_CIRCLE;
        }
    }
    if (FlagWork==GO_TO) {    //Работаем в режиме GO_TO
        TMC2_Speed = HIGH_SPEED_VAL;
        Delta=GoTo.Motor[2].TARG-GoTo.Motor[2].POS;
        if (Delta!=0) {    //Еще не приехали
            GoTo.State|=WRONG_HA;    // Поднимаем флаг неверной координаты
            if (Delta>30000) Pos[2].TargPos=St2[2].ActPos+30000;    // Если еще далеко
            else if (Delta<-30000) Pos[2].TargPos=St2[2].ActPos-30000;    // Если еще далеко
            else Pos[2].TargPos=St2[2].ActPos+Delta;    // Уже ближе
            SetPOS(2);
        } else {
            GoTo.State&=~WRONG_HA;    // Очищаем флаг неверной координаты
            TMC2_Direction=STOP;
            SoftSTOP(2);
        }
    } else {    //В остальных режимах
        if (TMC2_Direction==GO_RIGHT) {
            Pos[2].TargPos=St2[2].ActPos+1;
            SetPOS(2);
        } else if (TMC2_Direction==GO_LEFT) {
            Pos[2].TargPos=St2[2].ActPos-1;
            SetPOS(2);
        } else if (TMC2_Direction==RUN_RIGHT) {
            Pos[2].TargPos=St2[2].ActPos+1000;
            SetPOS(2);
        } else if (TMC2_Direction==RUN_LEFT) {
            Pos[2].TargPos=St2[2].ActPos-1000;
            SetPOS(2);
        } else if ((St1[2].Motion==3)||(St1[2].Motion==7)||(St1[2].Motion==1)||(St1[2].Motion==6)) {    //Проверяем флаг движения, если едем на макс. скорости  или ускоряемся то тормозим
            SoftSTOP(2);   
        }
    }
    SET_SPEED2(TMC2_Speed);
    _T5IF = 0;
}


Основная проблема в том что эти контроллеры сложно найти в России, но если что то могу посодействовать, и продать несколько  штук из своих запасов.

andreichk

  • Гость
хотел предложить человеку выкупить этот самый единственный экземпляр, но наверное он откажется..... 8)

Оффлайн MAKsutik

  • *****
  • Забанен!
  • Сообщений: 1 066
  • Благодарностей: 42
  • Украине - слава!!!
    • Skype - scotland_m
  • Награды Призер конкурса астрофото
    • Сообщения от MAKsutik
    • EQDrive
moscow мне кажется если взялись за эту разработку то ее желательно сделать легко повторяющуюся,к примеру как схему П.Бахтинова конечно если вы преследуете эти цели.
Если чисто под себя,то извините.. не прав.
Эти драйвера я посмотрел и на Украине проблематично найти.

Оффлайн lipaal

  • *****
  • Сообщений: 2 937
  • Благодарностей: 50
    • Сообщения от lipaal
moscow мне кажется если взялись за эту разработку то ее желательно сделать легко повторяющуюся,к примеру как схему П.Бахтинова конечно если вы преследуете эти цели.

А еще бы хорошо если бы попробовали на Arduino, например Arduino Nano - недорого стоит. Зато унифицированная...
И программировать просто.
Александр.
DS F750X150 на LXD-55, Neximage, Canon 400D, Ю37МС.
.....
Сайга-20К, ТОЗ106, ТОЗ-34, Барс4-223  - смерть фонарям!!!!!!

Сообщений kismet-а не вижу

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

  • *****
  • Сообщений: 17 579
  • Благодарностей: 1078
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
Всем спасибо за комментарии, за код и ссылки на драйверы.

Я разделяю подход MAKsutik, делать схему простой. Собственно, если убрать из начальной схемы FT245R, убрать макса, точнее заменить его FT232R. Можно ещё написать список замен (к примеру, можно заменить ULN2003 на 2803, а можно на транзисторах с диодами и резисторами; проц можно другой и макс232 в DIP вместо тонконогой FT'шки), то схема как раз будет простой до невозможности.
Разделяю этот подход, как минимум с точки зрения меня, как ооооооочень начинающего схемотехника. Все компоненты этой схемы я пробовал по частям и собрать их в целое мне _кажется_ не будет большой проблемой.

Цитата
А еще бы хорошо если бы попробовали на Arduino, например Arduino Nano - недорого стоит. Зато унифицированная...
И программировать просто.
С программированием-то как раз у меня нет проблем, см. выше, программист я. Поэтому ставить атмегу (а андурин нано на атмеге168 собирается, стоит 500р собранный против 200р за этот контроллер в розницу), поверх неё ставить оболочку этой самой andurino, поверх неё ставить свою программу, которая, естественно, будет работать медленней и менее предсказуемо... К тому же, пусть и простой язык, но его ещё надо изучать, тратить время, а Си я знаю давно и хорошо.

В общем, я лучше на атмеге непосредственно, тем более её уже почти всю освоил. :)
Другое дело, что управление мотором со стабилизацией тока - это правильно и я изучаю этот вопрос, возможно драйверы L6219 (аналогично схеме Павла Бахтинова) и стоит применить. Видел Иван Ионов реализовал на них 1/16 микрошаг управляя опорными напряжениями атмегой, но ещё не успел разобраться детально).

Все реализуется довольно просто.  В самой первой версии GOTO которая была выпущена единственным экземпляром у нас стояли именно такие контроллеры на всех осях. Теперь он остался только для фокусера.
А к чему пришли? И почему отказались от этого жука?
モ - mo

andreichk

  • Гость
Цитата
А к чему пришли? И почему отказались от этого жука?
это жук работает на фокусер, а на оси поставили ТМС249 с внешними мосфетами, так как токи требуются больше 820 мА.

Оффлайн Aslamov Ilya

  • ****
  • Сообщений: 338
  • Благодарностей: 9
    • Сообщения от Aslamov Ilya
Цитата
это жук работает на фокусер, а на оси поставили ТМС249 с внешними мосфетами, так как токи требуются больше 820 мА.
а также требовалось 1/64 микрошага. И более широкий спектр возможных скоростей.

Оффлайн lipaal

  • *****
  • Сообщений: 2 937
  • Благодарностей: 50
    • Сообщения от lipaal
Другое дело, что управление мотором со стабилизацией тока - это правильно и я изучаю этот вопрос, возможно драйверы L6219 (аналогично схеме Павла Бахтинова) и стоит применить. Видел Иван Ионов реализовал на них 1/16 микрошаг управляя опорными напряжениями атмегой, но ещё не успел разобраться детально).
Да кстати - еще очень большое преимущество L6219 -  то что они везде есть. На Митино они по 70 руб. И купить можно во мнгих городах.
Ну а 1/16 микрошаг даст то, что при часовом ведении будет 0,5 сек микрошаг, а на максимальной скорости может быть 500х-1000х

И кстати - не забудьте зарезервировать место под дисплей  :)

Цитата
Собственно, если убрать из начальной схемы FT245R, убрать макса, точнее заменить его FT232R.

Тогда придется создавать заново ПО, которое уже отлажено Иваном и проверенно многими.
Может лучше оставить 245, ПО Ивана и бросить силы на другое? Например то же ГОТО и реализацию микрошага на 6219?
Александр.
DS F750X150 на LXD-55, Neximage, Canon 400D, Ю37МС.
.....
Сайга-20К, ТОЗ106, ТОЗ-34, Барс4-223  - смерть фонарям!!!!!!

Сообщений kismet-а не вижу

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

  • *****
  • Сообщений: 17 579
  • Благодарностей: 1078
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
Понял. Изучу и этого жука.

И кстати - не забудьте зарезервировать место под дисплей  :)

Первым делом я прикинул, что дисплей нужен (тем более недавно успешно экспериментировал с ним), но потом так и не придумал, что туда выводить.

Какие функции дисплея видите Вы? Запихать в пульт базу объектов месье и ещё сотню ярких дипов и планет и сделать GoTo с пульта?
Вот честно скажу, сколько видел людей с SynScan, все мои знакомые пользовались этим пультом для связи с компом, а там из любимого планетария переходили на искомый объект. Возможно, я просто кручусь в кругах астрофотографов, которые всегда на выезде с буком и им просто нет смысла морозить жж... и выискивать на маленьком, тормозящем на морозе экранчике нужный объект...

С другой стороны все визуальщики, которых я знаю против GoTo вовсе и с доба ищут объекты по картам.
Опять таки, это вовсе не показатель, кому-то конечно синскан нужен со всеми его функциями...

Поэтому пришёл я к мысли, что хоть технически подключить LCD 16x2 или 20x2 (ровно как и бОльший) легко и дёшево (придётся только поменять жука на атмегу16, у "восьёмрки" банально не хватит портов, но это тоже копейки), но он тут совершенно не нужен.

Цитата
Собственно, если убрать из начальной схемы FT245R, убрать макса, точнее заменить его FT232R.

Тогда придется создавать заново ПО, которое уже отлажено Иваном и проверенно многими.
Может лучше оставить 245, ПО Ивана и бросить силы на другое? Например то же ГОТО и реализацию микрошага на 6219?

Ага, в первом сообщении так и написал - в планах создание своего ascom драйвера монти с полноценным GoTo по координатам, а не по "времени нажатия на кнопку".
Конечно, ошибки лёгкой и дешёвой механики, на которые я изначально планирую эту систему внедрять (EQ1...3...5) никто не отменял, но всё же мне было бы интересно попробовать создать дешёвый аналог syntrek для мелких монти.

С аскомом уже некоторое время положительно общаюсь, правда со стороны юзерской программы, а не драйвера. Но уже открыл шаблон драйвера (правда не монти, а купола, по другой задаче), пока сложного не обнаружил (это не значит, что его там нет, но внушает оптимизм).
モ - mo

Оффлайн MAKsutik

  • *****
  • Забанен!
  • Сообщений: 1 066
  • Благодарностей: 42
  • Украине - слава!!!
    • Skype - scotland_m
  • Награды Призер конкурса астрофото
    • Сообщения от MAKsutik
    • EQDrive
смысла в экране не вижу,удорожание конструкции, лишний геморой с программированием.нужно запустить простую схему, а потом как модинг уже можно и подумать о экране.

Оффлайн MAKsutik

  • *****
  • Забанен!
  • Сообщений: 1 066
  • Благодарностей: 42
  • Украине - слава!!!
    • Skype - scotland_m
  • Награды Призер конкурса астрофото
    • Сообщения от MAKsutik
    • EQDrive
так же нужно сразу предусмотреть пересчет на разный коэффициент редукции как у Павла Бахтинова, без этого схема не получит популярности.

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

  • *****
  • Сообщений: 17 579
  • Благодарностей: 1078
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
смысла в экране не вижу,удорожание конструкции, лишний геморой с программированием.нужно запустить простую схему, а потом как модинг уже можно и подумать о экране.

Типа того. Хотя, как я показал выше, удорожания и усложнения особо нет (если не пытаться туда весь синскан воткнуть, а просто базу объектов). Вот только и смысла не особо вижу. И уж точно экрана не будет в первых версиях.

так же нужно сразу предусмотреть пересчет на разный коэффициент редукции как у Павла Бахтинова, без этого схема не получит популярности.

Без этого никак.

У меня пара вопросов к практикам. Первый в тему, второй ... вскользь :).
1. Где в М заказать с пяток плат?
2. Где бы найти две ЧП за небольшие деньги (соответственно, без претензий на супер-качество)?
モ - mo

Оффлайн lipaal

  • *****
  • Сообщений: 2 937
  • Благодарностей: 50
    • Сообщения от lipaal

Первым делом я прикинул, что дисплей нужен (тем более недавно успешно экспериментировал с ним), но потом так и не придумал, что туда выводить.

Какие функции дисплея видите Вы? Запихать в пульт базу объектов месье и ещё сотню ярких дипов и планет и сделать GoTo с пульта?

А для начала после привязки можно что бы он хотя бы показывал координаты. А ввести коррдинаты - и что бы он сам до новых шагал.
А потом если конструкция получится удачной, можно и более полно дописать.
Хуже будет другое - если потом захотите - а вписать не сможете.

Цитата
Поэтому пришёл я к мысли, что хоть технически подключить LCD 16x2 или 20x2 (ровно как и бОльший) легко и дёшево (придётся только поменять жука на атмегу16, у "восьёмрки" банально не хватит портов, но это тоже копейки), но он тут совершенно не нужен.

Аппетит приходит во время еды... надо сразу закладывать теоретическую возможность 4-х моторов, развитой клавиатуры, вывода на экран (типа 4*16 МЭЛТовский), термодатчики и т.п.
А то будет как с фокусером Александра. Сначала Атмега8 была, а потом как прижало и ПО уже не влезало и выходов не хватало - пришлось на Атмегу16 народу переходить.

Цитата
Ага, в первом сообщении так и написал - в планах создание своего ascom драйвера монти с полноценным GoTo по координатам, а не по "времени нажатия на кнопку".
А в чем принципиальная разница между "по времени" и "считать шаги"? И контроллер и ПК закварцованы. Ошибка в наведении между двумя реализациями будет на уровне точности кварца  :)
А если на большой скорости ШД будет проскакивать шаги - и там и там будет ошибка.

Цитата
Конечно, ошибки лёгкой и дешёвой механики, на которые я изначально планирую эту систему внедрять (EQ1...3...5) никто не отменял, но всё же мне было бы интересно попробовать создать дешёвый аналог syntrek для мелких монти.

Не... аналог не надо... надо интереснее, лучше... :)
Александр.
DS F750X150 на LXD-55, Neximage, Canon 400D, Ю37МС.
.....
Сайга-20К, ТОЗ106, ТОЗ-34, Барс4-223  - смерть фонарям!!!!!!

Сообщений kismet-а не вижу

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

  • *****
  • Сообщений: 17 579
  • Благодарностей: 1078
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
Вот, вроде бы, всё верно говорите... А вроде бы опять получается неподъёмный комбайн, который с одной стороны must have каждый продвинутый астрофотограф, а с другой стороны пока он станет этим самым продвинутым, он уже обрастёт и тем, и этим... и ещё вон тем :) и этот комбайн не только не будет никогда реализован, но и не будет востребован. Не считая случаев, если я закажу полусотню собранных плат в корпусах и не начну их барыжить налево и направо по смешным ценам.

С одним замечанием согласен, сразу начну с атмеги16 :).
モ - mo

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

  • *****
  • Сообщений: 17 579
  • Благодарностей: 1078
  • Олег Милантьев - L71 Vedrus Observatory
  • Награды Призер конкурса астрофото
    • Сообщения от mo
Хех :)
Там, где я брал процы:

Цитата
ATmega128A-AU   190 рублей -  МОРЕ памяти и аппаратуры, много ШИМ, 2 USART  корпус TQFP-64
Монтажка под неё: http://fotki.yandex.ru/users/mkpochtoi/view/187354/?page=0 . Вся плата в портах :) :)
モ - mo