Pull to refresh

Comments 11

У вас странная путаница с переменной IsRolling:
  1. Она не объявлена нестабильной (volatile), хотя обращение к ней происходит и из обработчика прерывания UART, и из главного цикла.
  2. Ей присваиваются то значения предопределенных констант (HOLD), то конкретные числовые значения (0), то логическое значение false.
  3. Так как Arduino использует C++, почему бы не воспользоваться перечислением (enum{}) для задания вариантов состояний?
Спасибо большое за комментарий!

1. Да, согласен, как-то я не подумал. Поправил, обновил.
2. Одно или два места — это неаккуратноть при рефакторинге, изначально у этого флага было только два состояния. Есть похожий флаг IsRollingToNewPos, он бывает только HIGH и LOW.
3. Думаю, что можно. Причина опять таки банальна — когда-то раньше состояний было два, а не три. Кроме того, enum удобен, когда значений много и по ним нужно делать перебор. Честно говоря, мне как-то и в голову не пришло его в этом месте использовать.
Тип-перечисление идеально подходит как раз для исключения таких ситуаций в жизненном цикле программы:
  • он гарантированно создает уникальные константы
  • он использует оптимальный для архитектуры тип для хранения
  • компилятор будет ругаться на попытку пропустить варианты перечислений в операторе множественного выбора
  • также он будет ругаться на попытку перепутать типы при присваивании


Да я в общем-то не спорю. Правда последние два пункта в данном скетче не актуальны.
Заменил объявление с констант на enum, скомпилировалось вообще без правок. Да и править особо нечень, к IsRolling всего два обращения в Loop().

И управлять шаговым двигателем, вращая его с заданной скоростью в заданном направлении, считая шаги с учетом режима микрошага, при необходимости контролирую выход за заданные границы — StepperClas

Крайне ненадежное управление, особенно на морозе. Шаговик имеет неприятную особенность — он может пропускать шаги.

Также не рекомендуется делать шаг меньше одной второй от микрошага. Дело в том, что момент создаваемый шаговиком на дробных значениях шага сильно нелинеен и много меньше, чем указанный. В итоге под нагрузкой ротор физически не будет проворачиваться. Более того, положение в микрошаге неустойчиво и любое дуновение способно провернуть ротор

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

P.S. Как показала практика, для звездного неба если нет возможности сделать фазированный автофокус, то лучший алгоритм это:
Расфокусировать, чтоб звезды были одного размера. Запоминаем положение, потом проходим фокус и ищем такой же размер «бублика». Запоминаем. Теперь ставим в середину.

P.P.S. Для особо светосильных систем (уровня единицы) описанный выше алгоритм уже не катит

Спасибо большое за комментарий!
Не совсем с Вами согласен, поэтому давайте подискутируем.

1. По поводу важности пропуска шагов я уже отмечал. Если есть обратная связь в виде человека, корректирующего точность фокусировки — пропуск шага не играет принципиальной роли. Ну шагнем еще раз. Неудобно, но не критично.

2. Что касается причины пропусков. Шаговик пропускает не потому, что ему так хочется или он такой плохой, а потому, что ему не хватает крутящего момента. О том, что крутящий момент ШД в режиме микрошага может быть существенно меньше номинального я указывал. О том, что в разной фазе полного шага крутящий момент разный – тоже предупредил. Хотя в сети можно найти примеры, когда в режиме микрошага крутящий момент увеличивался, а не уменьшался! Например тут или вот тут (сам не проверял, ручаться не готов). Так что тут не все так однозначно.

Итак, пропуск шага происходит по причине нехватки крутящего момента. Нехватка крутящего момента может быть обусловлена двумя причинами:
  • Падение мощности двигателя;
  • Увеличение силы трения на фокусере и валу самого двигателя и как следствие, увеличение требуемого для проворота крутящего момента.

Соответственно наличие пропусков определяется соотношением этих двух моментов – выдаваемого и требуемого.

Совершенно очевидно, что при отрицательных температурах сила трения на подвижных механических элементах конструкции фокусера может сильно увеличиться (особенно если это рефрактор с длинным фокусером простой конструкции типа «труба в трубе», а не фокусер Крейфорда на подшипниках), и для проворота нужен будет заметно больший крутящий момент. На валу ШД сила трения тоже увеличится, но я уверен — она несопоставимо меньше силы трения на самом фокусере (хотя конечно по-хорошему, надо провести эксперимент).

Честно признаюсь, я не знаю, как влияет мороз на индуктивность обмоток. Но не думаю, что в худшую сторону. Есть еще какие-то причины снижения мощности ШД на морозе? Попробовал поискать в Интернете, сходу – безрезультатно.

Если других причин потери мощности нет, то проблема пропуска шагов на морозе, это не проблема ШД, а проблема увеличения необходимого для проворота крутящего момента из-за роста силы трения (на валу ШД и на фокусере). И решать ее можно по-разному. Можно взять более мощный двигатель, а можно использовать морозостойкую смазку.

Поэтому я считаю, что в данном случае ШД вполне подходит, а проблема пропуска шагов — это проблема правильного подбора ШД и режима работы. Так, чтобы мощности ШД хватало для того, чтобы во всех ситуациях выдавать достаточный крутящий момент. Рекомендация работать в режиме 1/2 микрошага не может быть универсальной, все зависит от конкретного двигателя и соотношения его крутящего момента с необходимым. Тем более, что режима 1/2 может не хватить по точности позиционирования.

Честно говоря, фраза «Более того, положение в микрошаге неустойчиво и любое дуновение способно провернуть ротор» меня очень смущает. Складывается ощущение, что у вас ШД вообще без запаса по крутящему моменту был выбран, если его порывом ветра можно было сместить. И что это за фокусер такой, если не секрет? Мне очень сложно представить себе такой порыв ветра, который мог бы как-то сместить фокусер (даже без двигетеля). Разьве что вместе с монтировкой и наблюдателем :) Раньше начнутся проблемы с жесткостью монтировки, тут уже не до фокусера будет.
Тем не менее, вопрос устойчивости положения ШД в разных фазах полного шага надо изучать, у меня нет точных данных. Хотя с другой стороны, надо ли? Об этом в следующем пункте.

Приведу конкретный пример. МАК 127, необходимый крутящий момент фокусера при комнатной температуры около 0,4-0,5 кг/см. Я взял ШД с номинальным крутящим моментом 1,2 кг/см. Прекрасно работает в режиме 1/16 без пропусков. Проверял вплоть до температуры -5 С (ниже пока не было). А первый ШД, который я попробовал использовать на этом телескопе имел номинальный крутящий момент 0,5 кг/см. И тоже прекрасно работал на 1/16 микрошага при комнатной температуре. Но начинал пропускать шаги при малейшем перекосе! При этом изменение режима микрошага существенно ситуацию не изменяло.

3. Касаемо снятия напряжение при бездействии. Я подробно об этом написал в статье. Я считаю, что если конструкцией фокусера предусмотрен механический фиксатор — лучше воспользоваться им. Во-первых, это самый надежный вариант как ни крути. Во-вторых, экономим запас батарей. В-третьих, признаться я несколько обеспокоен наличием греющегося элемента (мотора) в непосредственной близости от телескопа или непосредственно на нем. Если от ШД будет нагреваться труба фокусера, а тем паче – труба телескопа, еще неизвестно что хуже, нагрев или расфокусировка. Но практического опыта у меня нет, так что это только опасения. Свои ШД я старался подбирать так, чтобы они грелись не сильно. Мой опыт работы с МАКом и рефрактором говорит, что температурный градиент – это очень плохо. Для той же фокусировки. В четвертых, можно не беспокоиться по поводу устойчивости удержания положения ШД, если есть такие опасения. Если механического фиксатора нет, мотор греется не сильно и питание постоянное (а не от АКБ) — я конечно двумя руками за непрерывное удержание.

4. По поводу методов фокусировки. Спасибо, интересный метод. Я пользуюсь маской Бахтинова, оцениваю точность на глаз по положению среднего луча. Единственное, что меня смущает: что значит «все звезды были одного размера»? Мне казалось, что размер дифракционной картины зависит от яркости звезды. Или там зависимости нелинейная и в определенный момент различие не существенно?

И еще раз спасибо за комментарий. Выбор ШД — очень важный этап.
Увы, первые две статьи я как-то пропустил и когда писал комент не было времени их читать. Сразу оговорюсь, что мой опыт получен на профессиональных телескопах, где важен был вопрос автоматизации и даже роботизации. Для любительской астрономии, где в подавляющем числе случаев прибор контролируется человеком и нет проблем с самим конструктивом, многие вопросы снимаются.

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

Если вы посмотрите на принцип работы шаговика, то вы поймете, что при дробном шаге вы получите ухудшение зацепления. Хотя вполне возможно, что есть некий дробный шаг, которой в данном экземпляре даст чуть больший момент от номинального.
Если потом возьмете и посчитаете создаваемое поле, то заметите, что между зубцами поле ведет себя отвратным образом и промежуточное положение там неустойчиво.
Выражение про дуновение я применил иносказательно говоря о том, что любое воздействие в промежуточном положении может провернуть ротор в ту или иную сторону. Это важно, когда вы заканчиваете движение.
Хотя опять же, это не играет роли, когда человек следит за всем непосредственно. Но при автоматизации начинаются проблемы
Ну и да, гнутия монтировки и самой конструкции фокусировачного узла приводят к его подклиниванию, но вы это и сами сказали.
0,4-0,5 кг/см. Я взял ШД с номинальным крутящим моментом 1,2 кг/см.

3-х кратный запас, вот всегда бы так.

3.Градиент температур от шаговика страшен, если вы отводите тепло прямо на оптику. В противном случае уширение металла довольно быстро перейдет в устоявшийся режим.

4. Маска Бахтинова это один из фазированных методов фокусировки. Я просто добавил вдруг кому понадобиться.
«все звезды были одного размера»? Мне казалось, что размер дифракционной картины зависит от яркости звезды.

Первое — размер дифракционной картины никогда не зависит от яркости звезды. Она всегда одна и тажа и измеряется в угловой мере.
Яркость звезды определяет высоту гауссианы, уровень же шума на кадре не зависит от размера звезды (кроме особых случаев), отсюда и разница.

В случае когда мы отходим далеко от фокуса размер изображение определяется уже законами геометрической оптики. Нарисуйте ход лучей для простой линзы и вы все поймете.
2. Вы имеет ввиду крайние положения фокусера? Соответственно, в этом положении максимальный перекос и как следствие максимальный требуемый крутящий момент?

Честно говоря, я еще не дошел до таких высот, чтобы рассчитывать поле ШД :)
Но на сколько я понимаю, положение между зубцами (я так понимаю речь идет и токе в обмотках на разных фазах) — положение устойчивого равновесия. Именно поэтому ШД и делает шаг. Кроме того, на практике я наблюдаю, что если после пропуска шагов какой-то последующий будет бОльший, как бы компенсирующий. Это так?

3. По поводу градиента температур — Павел как-то на асторофоруме писал про «термоклин (неоднородность воздуха в трубе телескопа), которые дают эффект, аналогичный астигматизму». Соответственно я боюсь не неравномерного расширения металла трубы, а нагрева воздуха в трубе.

4. По поводу дифракцинной картины — я как раз и имел ввиду разность в визуальном размере из-за того, что крылья гауссианы будут накрыты фоном, поэтому яркие зведы как бы больше. Теперь понятно. То есть расфокусируем значительно сильнее, чем до четкой дифракционной картины. А чем потом измеряете диаметр?

Прошу простить, написанный комментарий не был отправлен из-за проблем со связью, а я заметил этолько сейчас.

2. Обычно концевики это упоры, хотя можно придуть системы, где момент резко возрастает сам по себе.
Но на сколько я понимаю, положение между зубцами (я так понимаю речь идет и токе в обмотках на разных фазах) — положение устойчивого равновесия. Именно поэтому ШД и делает шаг

да, все верно.
Кроме того, на практике я наблюдаю, что если после пропуска шагов какой-то последующий будет бОльший, как бы компенсирующий. Это так?

Сомнительно, скорее всего на пропущенном шаге создалось напряжение, которое на удачном шаге разрядилось.

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

Не важен сам разогрев воздуха в трубе, важна турбулентность, которую он создает. Если вы поставите киловатную печку то да, будут проблемы, в противном случае проблем не должно быть вообще. Хотя, если у вас стабильность атмосферы как на Гаваях, то тут я уже не так уверен.

4. Наименее зашумленный критерий, что у меня получился — площадь
Добрый день!

Но на сколько я понимаю, положение между зубцами (я так понимаю речь идет и токе в обмотках на разных фазах) — положение устойчивого равновесия. Именно поэтому ШД и делает шаг

да, все верно.

Кроме того, на практике я наблюдаю, что если после пропуска шагов какой-то последующий будет бОльший, как бы компенсирующий. Это так?

Сомнительно, скорее всего на пропущенном шаге создалось напряжение, которое на удачном шаге разрядилось.


Если говорить о полных шагах — беспорно, но внутри шага… Если для каждой фазы внутри полного шага положение устойчивого равновесия одно единственное, это как раз все объясняет. И тогда получается что пропуск микрошага не так страшен как пропуск полного шага, ибо нагоним позже, когда хватит крутящего момента. В общем, надо еще поэкспериментировать и поизучать этот вопрос.

3. А градиент? Если воздух в трубе разогрет неравномерно и градиент достаточно высок, коэффициент преломления будет различным, отсюда эффекты сродни астигматизму. По крайней мере так я понял понятие «термоклина».
Хотя конечно Вы правы в том, что в «наших палестинах» на фоне крайне нестабильной и грязной атмосферы это все может быть не заметно.

4. Чтобы посчитать площадь, надо знать диаметр (ну или радиус), поэтому я и спросил как вы его меряете :)

2. Ну если у нас есть обратная связь. не важно человек это или нет проблема купируется но не полностью. В случае отсутствия фундаментальное свойство — одинаковая величина шага пропадает. Этим соображением, что в сторонних библиотеках нет поддержки микрошага.
3. Если говорить о термоклине — о слое воздуха с отличным коэфффициентом преломления от окружающих, то это аналогично тому, что в тракт ввели плоскопараллельную призму. Для светосильной оптики это критично, но уже с 2.5 -3 малозаметно.

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

4.Зачем? Достаточно выделить группу пикселей возвышающуюся над фоном и посчитать их.
Sign up to leave a comment.

Articles