ВНИМАНИЕ! На форуме начался конкурс - астрофотография месяца ИЮЛЬ-АВГУСТ!
0 Пользователей и 1 Гость просматривают эту тему.
Код: [Выделить]
PS. Еще наблюдение (предположительно). Мне показалось, что чем выше ток питания шаговика, тем равномернее он отрабатывает мелкие микрошаги. Никто не замечал подобного?
И еще вопрос. Все способы написания мозгов для монтировок на основании Ардуино, ESP32 и им подобных, что через функции времени, что через прерывания, опираются в своей точности на встроенный кварц этих контроллеров (если, конечно, мозги не используют внешнего стабилизированного тактирования). Насколько собственно точны эти кварцы?
Борис, правильно ли я прочитал ваш код: GoTo крутит трубу примерно со скоростью 1 градус в сек, а часовик делает микрошаг с разрешением примерно 0.3 угловых секунды по RA?PS. Еще наблюдение (предположительно). Мне показалось, что чем выше ток питания шаговика, тем равномернее он отрабатывает мелкие микрошаги. Никто не замечал подобного?И еще вопрос. Все способы написания мозгов для монтировок на основании Ардуино, ESP32 и им подобных, что через функции времени, что через прерывания, опираются в своей точности на встроенный кварц этих контроллеров (если, конечно, мозги не используют внешнего стабилизированного тактирования). Насколько собственно точны эти кварцы?
И отдельно timeMachine для периодических проверок (нажатие кнопки и т.д.)
2. Когда ток выше, ШД надежнее удерживает промежуточное положение между зубцами. Микрошаги неравномерные, слабо повторяемые, со слабым удержанием в их промежуточных позициях между зубцами. Но 64-128-256 микрошагов дают почти синус, плавно, тихо.
3. Ардуино на АТмега и кварцем прекрасно ведет телескопы. OnStep никто не жаловался.
А это что такое? Я кнопку и джойстик опрашиваю в цикле
void TIMEMACHINE_loop() { uint32_t TIMEMACHINE_currMillis = millis(); if ((TIMEMACHINE_currMillis - TIMEMACHINE_prevMicros_173ms) > 173L) { TIMEMACHINE_173ms(); TIMEMACHINE_prevMicros_173ms = TIMEMACHINE_currMillis; } if ((TIMEMACHINE_currMillis - TIMEMACHINE_prevMicros_873ms) > 873L) { TIMEMACHINE_873ms(); TIMEMACHINE_prevMicros_873ms = TIMEMACHINE_currMillis; } }void TIMEMACHINE_173ms() { BUTTON_check(); }void TIMEMACHINE_873ms() { GOTO_check_goto_is_completed(); GOTO_calc_positions(); GOTO_current_positions_send_to_stellarium(); //делай МАХ частоту отправки, Стеллариум отзывчивее и не тупит}
Кстати, что бы вы посоветовали новичку, знакомому лишь поверхностно с ардуино, для переход на
А вот эту вашу плату с 4-мя драйверами TMC2209 на борту, ее можно где-то купить? И потом залить туда свою программу?
Говард сделал управление ШД на отдельных таймерах.
Iovch, например, довольно интересно реализовал разгон-торможение на таймерах для двух осей и фокусера.
То есть? Он что внешние таймеры еще добавил?
Iovch использует Timer1 для Ra, Timer2 для Dec и фокусера.
Например, в таймере прерываний использовать счётчик, который будет определять когда подавать импульсы step.
В esp32/stm32 гораздо удобнее управлять скоростью. Устанавливаете частоту прерываний 16МГц (прям, как у Говарда 🙂). А далее с необходимой плавностью меняете значение в регистре совпадения таймера и таким образом разгоняете-замедляете ШД.