4 votos

¿Cómo se consigue esta altísima resolución de paso?

Esta pregunta se refiere a este video así como este por la misma persona demostrando sus resultados con un motor paso a paso (¡junto con un método de prueba realmente ingenioso que implica un punto láser en una pared a unos cuantos metros de distancia!)

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

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

Estoy familiarizado con el microstepping, pero:

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

  • ¿y cómo es capaz de mantener la posición de forma tan definitiva y precisa, algo que los artículos sobre el micropaso suelen advertir que no está precisamente garantizado?

(Obviamente, no hay una forma clara de medir la precisión y la exactitud aquí con la limitada información proporcionada por los vídeos. Sin embargo, aproximando la superficie plana de la pared como parte de un círculo centrado en el stepper, 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 2º vídeo que he enlazado).

1 votos

Es imposible, funciona con espejo y puntero lase, pero no con motor cargado.

0 votos

Es sólo una luz que pasa por el borde de una regla. ¿Cómo puedes decir que no está utilizando el DRV8825 o cualquier otra forma de tecnología que pueda estar a mano?

0 votos

@Andyaka: Me basaba principalmente en el texto de descripción muy limitado debajo de su 1er video; pero no lo descarto por completo - todavía estoy al menos interesado en aprender de mi 2da pregunta anterior.

3voto

WhatRoughBeast Puntos 20870

Si miras las notas de los vídeos, verás que está haciendo micropasos. Dice explícitamente que está conduciendo el stepper 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 de paso.

Comience por notar que 1,8 grados divididos por 0,04 grados es ~45, y como una forma de onda de cuadratura de paso estándar toma 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á utilizando 64 micropasos nominales.

Si n es el número 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, hallar el ángulo de paso A = 360/n. A continuación, hallar $$ X = 127\sin(A) +128$$ y $$ Y = 127\cos(A) +128$$ y utilizar la función analogWrite para producir las versiones PWM de estas cantidades. Cuando se aplica a las entradas de control de los steppers estándar de 1,8 grados, obtendrás un tamaño de paso nominal de $$S = \frac{4\times{1.8}}{256} =.028\text{degrees}$$

También hay que tener en cuenta que, si se miran bien los vídeos, la distancia entre pasos no es constante, y eso es de esperar.

2voto

Daniel Puntos 2699

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 se sostiene.

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

Edición: Sobre el comportamiento de analogOut: Microstepping es sólo la aproximación de una corriente o voltaje fraccional por cortar la señal entrante. Puede ser que esté usando un par de DACs y un amplificador en lugar de un driver de microstepping. Nunca lo he hecho, pero no veo ninguna razón por la que no funcionaría.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X