Этот вопрос относится к этому видео, а также к этому видео того же человека, демонстрирующего свои результаты с помощью шагового двигателя (наряду с действительно изящным методом тестирования, включающим лазерное пятно на стене в нескольких метрах!).
Как он добился такого шага с высоким разрешением с шагом <0,04° (с задержкой в 1 секунду на каждом шаге) на стандартном безредукторном шаговом двигателе с шагом 1,8°?
Человек утверждает, что использует «синусоидальные шаблоны» с функцией аналоговой записи Arduino.
Я знаком с микрошагом, но:
как это сделать в эскизе Arduino и без какого-либо оборудования, такого как DRV8825 или L6470?
и как он может удерживать позицию так определенно и точно, что то, о чем обычно предупреждают статьи о микрошаге, не совсем гарантировано?
(Очевидно, что здесь нет четкого способа измерить точность и правильность с ограниченной информацией, предоставленной видео. Однако, аппроксимируя плоскую поверхность стены как часть круга с центром на шаговом двигателе, мы можем видеть, что есть очень тонкие ступени, образованные лазерное пятно, а также довольно небольшое отклонение между ожидаемым и наблюдаемым углом для каждого шага, особенно во втором видео, на которое я ссылаюсь.)
Если вы посмотрите комментарии к видео, вы увидите, что он использует микрошаг. Он прямо заявляет, что управляет шаговым двигателем с помощью синусоидальных волн. Самый простой способ сделать это — использовать выходы ШИМ для управления амплитудой двух драйверов шаговых двигателей.
Начнем с того, что 1,8 градуса, деленные на 0,04 градуса, составляют ~45, а поскольку для завершения цикла стандартной шаговой квадратурной волны требуется 4 шага, это означает разрешение микрошагов 4 x 45, или 180 микрошагов за цикл. На самом деле, довольно ясно, что он использует номинальные 64 микрошага.
Если n — количество шагов на оборот возбуждения (то есть микрошагов на каждые 4 номинальных шага), пусть n = от 0 до 255. Для каждого последующего n найдите угол шага A = 360/n. Затем найдите
Также обратите внимание, что если вы внимательно посмотрите на видео, расстояние между шагами не является постоянным, и этого следует ожидать.
Поскольку используемое зеркало представляет очень маленькую механическую нагрузку, микрошаг имеет некоторую меру точности позиционирования. Когда двигатель загружен, это не выдерживает.
L6470 имеет 128-й шаг микрошага, что составляет около 1,8/128 = 0,014 град/шаг. Существуют библиотеки Arduino для управления этим чипом.
Редактировать: поведение AnalogOut: микрошаг просто аппроксимирует дробный ток или напряжение, разбивая входящий сигнал. Он может просто использовать пару ЦАПов и усилитель вместо микрошагового драйвера. Сам никогда этим не занимался, но не вижу причин, по которым это не сработает.
Марко Буршич
Энди ака
саша
саша
ПлазмаHH
саша
мкейт
Марко Буршич
ПлазмаHH