DEFAULT_AXIS_STEPS_PER_UNIT 계산법.

마를린 펌웨어에서 
DEFAULT_AXIS_STEPS_PER_UNIT  값의 
스테핑모터 계산법을 찾는 분들이 있어 정리해봄.

DEFAULT_AXIS_STEPS_PER_UNIT 라는 것은 
1 mm 를 움직이기 위한 스테핑모터 구동 펄스 수를 이야기함.

마를린 펌웨어의 configuration.h 파일에 보면

20130701_configuration.jpg

#define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200.0*8/3,760*1.1}  // default steps per unit for ultimaker 

이 부분을 자신의 프린터에 맞게 고쳐주어야 함.

괄호안의 값은 각각 {X축,Y축,Z축,Extruder} 임.


1.  타이밍 벨트방식인 경우

스테핑모터에 1펄스스텝을 가할때 회전하는 각도를 Step Angle, SA [deg] 라 해보면.

1 [step] = SA [deg]

보통 일반적인 스테핑모터들은 이 각도가 1.8도인 것이 흔함.

이보다 더 세밀하게 스테핑모터를 구동하기 위한 방식이 

마이크로 스테핑구동방식임.

마이크로스테핑 값을 Micro Stepping, MS라고 하면 아래 등식 성립.

1 [step] = ( MS x SA ) [deg]

예로서, 1펄스스텝에 1.8도 회전하는 모터를 마이크로스테핑 구동방식으로
하프스텝(1/2)으로  구동한다면 아래와 같이 된다는 이야기.

1 [step] = (1/2) x 1.8 [deg] = 0.9 [deg]

예로서, 마이크로 스테핑 (1/4) 스텝으로 구동시킨다면 다음과 같음.

1 [step] = (1/4) x 1.8 [deg] = 0.45 [deg]

스테핑모터에 타이밍벨트 풀리를 장착하고 타이밍벨트로 구동시킬때 
1 mm 움직이기 위해서 몇 펄스스텝이 필요한가?

만일 타이밍벨트 풀리의 잇수가 N [ea] 라면 풀리 한바퀴 회전(revolution)시
이빨 N개가 지나가기 때문에 아래등식 성립.

1 [rev] = N [ea]

타이밍벨트의 피치를 Pitch of Belt, PB [mm]라 하면,
이빨하나당 움직인 거리이기 때문에 아래등식 성립.

1 [ea] = PB [mm]

계산을 위해 아래 등식도 필요.

1 [rev] = 360 [deg]

위의 등식들을 만족시키는 1 [mm] 움직이기 위한 스텝수는 다음과 같이 계산됨.
위의 등식 조건들을 원하는 단위가 나오도록 나열해주면 됨.

1 [mm] = 1 [mm] x ( 1 [ea] / PB [mm] ) x ( 1 [rev] / N [ea] ) x ( 360 [deg] / 1 [rev] ) x ( 1 [step] / ( MS x SA [deg] ) )
= ( 360 / ( N x PB x MS x SA ) ) [step]

여기서,
N : 타이밍벨트풀리의 잇수 [ea] 또는 [개]
PB : Pitch of Belt, 타이밍벨트의 피치 [mm] 
( 예, MXL규격 타이밍벨트의 경우 2.03 [mm] )
MS : Micro Stepping, 마이크로스테핑 값 (예, 1/8스텝구동인 경우 1/8)
SA : Step Angle, 스테핑모터에 1펄스스텝 인가시 회전하는 각도 [deg]

예를 들어 잇수가 12개인 타이밍벨트풀리를 장착한 
1.8도짜리 스테핑모터를 1/8 마이크로스테핑 구동시
1 mm 움직이는데 필요한 펄스스텝의 수는 
아래와 같이 계산됨.

1 [mm] = 360 / ( 12 x 2.03 x (1/8) x 1.8 ) [step]
= 65.681445 [step]

이 값을 마를린펌웨어의 configuration.h파일의 
DEFAULT_AXIS_STEPS_PER_UNIT 값으로 넣어주면 됨.



2. 리니어스크류 방식인 경우.

보통 3D프린터의 Z축은 리드길이가 짧은 리드스크류를 사용함.

타이밍벨트방식인 경우와 다른 점은
모터 한바퀴 회전시 움직인 거리가 리니어스크류의 리드길이라는 점.

1 [rev] = L [mm]

아래의 등식들도 필요.

1 [rev] = 360 [deg]
1 [step] = ( MS x SA ) [deg]

1 mm 움직이기 위해 필요한 step수를 구하기 위해
위의 등식들을 만족시키면서 결과 값의 단위가 
[step]으로 나오도록 나열해보면 아래와 같음. 

원하는 단위가 어떻게해서 나오게 되는지 
아래식의 단위들이 약분되어 없어지는 과정을 유심히 보기 바람.

1 [mm] = 1 [mm] x ( 1 [rev] / L [mm] ) x ( 360 [deg] / 1 [rev] ) x ( 1 [step] / ( MS x SA ) [deg] )
= 360 / ( L x MS x SA ) [step]

여기서,
L : 리드스크류의 리드길이 [mm], 전산볼트의 경우 피치값 [mm]
MS : 마이크로스테핑 값 (예, 1/8스텝구동인 경우 1/8)
SA : 스테핑모터에 1펄스스텝 인가시 회전하는 각도.

예를 들어, Z축 리드스크류로서 피치가 0.75 mm인 M5 전산볼트를 사용하고, 
1스텝당 1.8도를 회전하는 스테핑모터를 하프스텝(1/2)으로 마이크로스테핑방식으로
구동한다면 계산은 아래와 같이 됨.

1 [mm] = 360 / ( 0.75 x (1/2) x 1.8 ) [step]
= 533.33333 [step]

이 값을 마를린펌웨어의 configuration.h파일의 
DEFAULT_AXIS_STEPS_PER_UNIT 값으로 넣어주면 됨.

- j.s.park -











Leave Comments


profileHave a good day~!!!

Recent Trackbacks