Marlin DEFAULT_AXIS_STEPS_PER_UNIT https://blog.naver.com/voicecomm/221833367912

 출처

안녕하세요.

DEFAULT_AXIS_STEPS_PER_UNIT 값 설정 공식입니다.


위의 값은 1mm를 이송하기위한 스텝값 입니다.


2가지 방식으로 계산을 해야 합니다.


타이밍 벨트를 이용한 방식과 볼스크류를 이용한 방식 입니다.


1. 타이밍 벨트를 이용한 방식의 공식

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

N : 타이밍 벨트 풀리의 잇수, 보통 GT2 경우 20개 일겁니다. 

PB : Pitch of Belt 즉 벨트의 피치, 보통 우리가 많이 사용하는 값은 2mm

MS : Micro Step , 모터 드라이버의 마이크로 스텝 값을 넣어주면 됩니다. 보통 , 1/2 부터, 1/4, 1/8, 1/16, 1/32 등으로 나눠죠.

SA : Step Angle , 스텝모터의 한 pulse당 각도를 나타내며, 2상모터인 경우 보통 1.8도 이고, 5상은 0.72도 이죠. 모터 겉 표면에 적혀 있어요.


2. 볼스크류를 이용한 방식의 공식

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

L=리드 값, 보통 볼스크류가 한바뀌 회전했을때 볼스크류 위의 블록이 이송한 거리를 나타냅니다.

MS : Micro Step , 모터 드라이버의 마이크로 스텝 값을 넣어주면 됩니다. 보통 , 1/2 부터, 1/4, 1/8, 1/16, 1/32 등으로 나눠죠.

SA : Step Angle , 스텝모터의 한 pulse당 각도를 나타내며, 2상모터인 경우 보통 1.8도 이고, 5상은 0.72도 이죠. 모터 겉 표면에 적혀 있어요.


이제 예를 한번 들어보죠.


3. 예제

문제) 3D 프린터를 설계를 하는데,

X, Y축 은 2상 스텝모터를 사용하고, 풀리는 GT2를 사용하고, 벨트도 GT2를 사용합니다. 그리고, 스텝모터 드라이버는 A4988을 사용한다고 하고, 1/16 Micro Step를 사용한다고 합니다. 그리고, Z축은 전산 볼트를 사용하고, 스텝모터는 2상, 드라이버는 DRV8825에 1/32 Micro Step을 사용하고, E축은 2상스텝을 사용한다면, DEFAULT_AXIS_STEPS_PER_UNIT 값은 어떻게 설정할까요?


풀이l)

x,y axis A4988 , ms1,ms2,ms3=> all close(1/16)

z axis DRV8825, ms1,ms2,ms3=> all close(1/32)

e axis A4988 , Extruder

볼스크류 -> 전산볼트(L=2mm)


-> x,y axis 계산
N=20, PB=2, SA=1.8. MS=1/16

1mm = (360*16)/(20*2*1.8) = 80 step


-> z axis 계산

L=2, SA=1.8, MS=1/32

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

1mm = (360*32)/(2*1.8) = 3200 step


#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,3200,113.26}




ps.

4. step driver 당 모드 설정


1. A4988 마이크로 스텝 모드 설정

 



2. DRV8825 마이크로 스텝 모드 설정
 





ps.

5. 추가 extruder 계산 방법


e_steps_per_mm = (motor_steps_per_rev * driver_microstep) * (big_gear_teeth / small_gear_teeth) / (hob_effective_diameter * pi)


공식은 이렇게 나와 있는데... 이 어원은 이렇다.

big_gear_teeth/small_gear_teeth = 1 로 본다.

그러므로...


= (200*16)/(9*3.14159)

= 113.1769


사실...

 = 360*1  /  (SA*MS*hob_effective_diameter*pi)

 = 360 * (big_gear_teeth / small_gear_teeth)   /  (SA*MS*hob_effective_diameter*pi)


라고 봐야 한다.

즉, A4988로 MS가 1/16 이고, 2상 bi-polar 모터를 사용하면, SA=1.8 도 이다. 그리고, 저의 경우 hob_effective_diameter=9mm 이다.

지금은 11mm 이지만..ㅎㅎ

여기서

= 360/(1.8*(1/16)*9*3.14159)

= 113.1769


조금 차이가 나는것은 big_gear_teeth / small_gear_teeth = 비율이 1보다 조금 큰것 같다..ㅎ


ps. 지인께서 위 공식을 토대로 엑셀 파일을 만들어주셨다.

맞는지 모르겠다고 한다.^^


댓글

이 블로그의 인기 게시물

WSL2에서 X window를 세팅하는 법

[도서 목차]Do it! 프로그레시브 웹앱 만들기 반응형 웹 개발부터 하이브리드 앱 배포까지 PWA 완전 정복!

ARIMA or ARMA