Я пытаюсь нарисовать круг или что-нибудь, что может быть близко к кривой (например, Sine), используя два двигателя на осях с двумя размерами. В основном я запускаю малину Pi и мотор HAT Adafruit с двумя двигателями nema17 steppers.Кривая чертежа с использованием двух осей двигателей
Я хотел бы добиться чего-то «гладкого», но кажется, что я могу получить действительно «сглаженные» результаты, и мне интересно, если это потому, что я провожу шаговые двигатели. (Но я считаю, 3D принтеры используют степперы двигатели и достичь хороших результатов)
Делая некоторые математические, я могу работать скорость каждого двигателя: X = R соз (т) и Y = R sin (т) поэтому Vx = -R sin (t) и Vy = R cos (t)
Но я не уверен, что это лучший подход, поскольку я не уверен, что могу управлять скоростью на шаговом двигателе, но только делая некоторые задержки между шаги.
Я также думал о вычислении всех положений x и y кривой, но опять же я не уверен, что точность моей сборки достаточно высока.
Чтобы заполнить, я использую библиотеку Adafruit: https://github.com/adafruit/Adafruit-Motor-HAT-Python-Library, поэтому я не разбираюсь в аппаратном коде, а просто использую функции, предлагаемые библиотекой. В принципе, я могу запускать каждый двигатель отдельно для x шагов. И это шаговая карта: https://www.adafruit.com/product/2348
Билда (это очень DIY): https://www.youtube.com/watch?v=uqSTZiI4KuY
Если ваши шаговые двигатели довольно высоконаправленные, так что один шаг, например, 1 мм, тогда вам будет трудно получить что-то, что кажется гладким. OTOH, если один шаг является, например, 0,1 мм (или меньше), тогда вы должны иметь возможность получать плавные линии. Вам также придется сделать много шагов - если вы попытаетесь приблизиться к кругу, например. 8 образцов, тогда вы получите восьмиугольную форму. Чтобы получить более точную помощь, вам придется опубликовать свой код. – barny
Я добавил детали к моему вопросу. Я считаю, что у меня может быть хорошее разрешение, я думаю, 1 шаг <0,1 мм. – batmat
Если вы запускаете только один двигатель сразу, то неизбежно получите короткие горизонтальные или вертикальные линии, особенно с неизбежным встряхиванием из-за запуска/остановки двигателя. Чтобы получить диагональные линии, вы должны одновременно запускать оба двигателя - каждый со скоростью, соответствующей наклону линии, которую вы пытаетесь нарисовать, и предпочтительно поддерживать двигатели непрерывно, модулируя их скорость, а не пуск/останов. – barny