¿Cómo se logra este paso de resolución extremadamente alta?

Esta pregunta se refiere a este video , así como a este de la misma persona que demuestra sus resultados con un motor paso a paso (¡junto con un método de prueba realmente bueno que involucra un punto láser en una pared a unos pocos metros de distancia!).

¿Cómo logró este tipo de comportamiento paso a paso de alta resolución de pasos <0,04° (con 1 segundo de retención en cada paso) en un motor paso a paso estándar de 1,8° sin engranajes?

La persona afirma usar "patrones de onda sinusoidal" con la función analogWrite de Arduino.

Estoy familiarizado con microstepping, pero:

  • ¿Cómo se hace esto dentro de un boceto de Arduino y sin algún hardware como DRV8825 o L6470?

  • y ¿cómo es capaz de mantener la posición de manera tan definitiva y precisa, algo que los artículos sobre micropasos generalmente advierten que no está exactamente garantizado?

(Obviamente, no hay una forma clara de medir la precisión y la exactitud aquí con la información proporcionada limitada de los videos. Sin embargo, al aproximar la superficie plana de la pared como parte de un círculo centrado en el paso a paso, podemos ver que hay pasos muy finos formados por el punto láser, así como una desviación bastante pequeña entre el ángulo esperado y el observado para cada paso, especialmente en el segundo video que vinculé).

Es imposible, funciona con espejo y puntero láser, pero no con motor cargado.
Es solo una luz que pasa por el borde de una regla. ¿Cómo puede decir que no está usando el DRV8825 o cualquier otra forma de tecnología que pueda tener a mano?
@Andyaka: Se basó principalmente en el texto de descripción muy limitado debajo de su primer video; pero no lo descarto por completo: todavía estoy al menos interesado en aprender de mi segunda pregunta anterior.
@MarkoBuršič: Pero incluso un paso a paso descargado tendría su propia fricción interna, etc., que según lo que leí, evitaría este tipo de rendimiento; no digo que esta demostración sea mágica ni nada, pero parece entrar en conflicto con lo que parece ser arrojado con respecto a los micropasos, así que estoy tratando de resolver eso.
Si realmente quiere echar un vistazo a la precisión angular, eche un vistazo a los rastreadores láser leica. Pero mejor no su precio...
@PlasmaHH: ¡Fenomenal! Aparentemente, su AT401/402 puede lograr un rendimiento de resolución de alrededor de 0,07 segundos de arco en rangos de 160 m.
Esto está muy lejos de cualquier área en la que tenga experiencia. Pero no veo cuál es el problema. Si controla completamente la corriente con un DAC de 10 o 12 bits, puede alinear el campo magnético del motor en pasos muy pequeños. La fricción del rotor debería ser bastante baja. No veo por qué sería un problema. Probablemente podría hacer lo mismo con un motor de husillo de disco duro o un motor de accionamiento RC.
@sasha De hecho, funciona, no se viola ninguna regla, el par de torsión en pasos completos se reduce a unos pocos porcentajes, lo que aún es suficiente para compensar la fricción a una velocidad casi cero, una vez que carga, tiene una reacción al paso completo más cercano.
@sasha: bueno, eso es lo que necesitas para posicionar las piezas de un 380 en rangos submilkímetros entre sí

Respuestas (2)

Si miras las notas en los videos, verás que está haciendo micropasos. Afirma explícitamente que está impulsando el paso a paso con ondas sinusoidales. La forma más sencilla de hacer esto es con las salidas PWM alimentando el control de amplitud de los dos controladores paso a paso.

Comience observando que 1,8 grados divididos por 0,04 grados es ~45, y dado que una forma de onda de cuadratura paso a paso estándar requiere 4 pasos para completar un ciclo, esto implica una resolución de micropasos de 4 x 45, o 180 micropasos por ciclo. De hecho, está bastante claro que está usando 64 micropasos nominales.

Si n es el conteo de pasos por revolución de excitación (es decir, micropasos por cada 4 pasos nominales), sea n = 0 a 255. Para cada n sucesivo, encuentre el ángulo de paso A = 360/n. Entonces busca

X = 127 pecado ( A ) + 128
y
Y = 127 porque ( A ) + 128
y use la función analogWrite para producir las versiones PWM de estas cantidades. Cuando se aplica a las entradas de control de los motores paso a paso estándar de 1,8 grados, obtendrá un tamaño de paso nominal de
S = 4 × 1.8 256 = .028 grados

También tenga en cuenta que, si observa detenidamente los videos, la distancia paso a paso no es constante, y eso es de esperar.

Dado que el espejo que se utiliza presenta una carga mecánica muy pequeña, el micropaso tiene cierta medida de precisión posicional. Cuando el motor está cargado, eso no aguanta.

El L6470 tiene un micropaso de 128 pasos, que sería alrededor de 1,8/128 = 0,014 grados/paso. Hay bibliotecas Arduino disponibles para controlar este chip.

Editar: en el comportamiento de analogOut: Microstepping es simplemente aproximar una corriente o voltaje fraccionario cortando la señal entrante. Es posible que solo esté usando un par de DAC y un amplificador en lugar de un controlador de micropasos. Nunca lo hice yo mismo, pero no veo ninguna razón por la que no funcione.