본문 바로가기

공부/공학

[부품] 서보모터 간단하게 이해하기

반응형

+)
그간 몸이 너무 안 좋아서 계속 누워만 있고 병원 다니고 휴학까지 했다가 이제 겨우 좀 회복되어서 다시 블로그를 관리한다...




서보모터 자체는 되게 오래전부터 써왔지만 그냥 전원과 신호선이 있고 DC 모터와는 달리 보통 0~180도의 각도 범위 내에서 내가 원하는 각도로 회전운동을 시킬 수 있다 정도만 알고 썼었다.


하지만 더 정밀하게 움직이게 하고 떨림, 헐렁거림 등을 해결하려면 좀 더 깊은 이해가 필요하다고 생각했다.


따라서 이번에는 서보모터의 원리, 이론 등을 찾아서 읽고 이해한 후 관련된 실습들을 찾아 해 볼 것이다.




우선 공부하기 전에 내가 아는 선에서 자주 쓰는 모터 3개의 간단한 특징을 써보면

1. DC모터
-정의는 직류전원을 사용하는 모든 모터를 의미. 일반적으로는 전원(+,-) 선만 갖고 전압, 전류 방향에 따라 회전 속도, 회전 방향 제어가 가능한 모터를 의미

-각도 제어는 불가능


2. 서보(Servo) 모터
-직류전원과 1개의 신호선(PWM 신호)을 통해 제어가 가능한 모터

-보통 0~180도 범위 내에서 각도 제어가 가능하나 0~360도 범위도 가능한 서보모터도 있다.


3. 스텝(Step) 모터
-DC 모터처럼 구동 범위가 없고 서보모터처럼 각도 제어가 가능하다. 서보모터 이상으로 정밀한 제어가 가능하다.

-한 스텝당 몇 도 회전하냐에 따라 정밀도(스텝각)가 다르며 스텝각이 1.8도인 모터가 가장 보편적이다.
+) 추후 공부 예정

위는 어디까지나 내가 자주 쓰는 범위의 설명으로 위의 것들 외에도 AC모터, AC 서보모터, 브러시리스 모터 등 여러 가지가 있다....







이제 서보모터를 본격적으로 공부해보자.


글은 서보모터를 공부하면서 나왔던 핵심 키워드 별로 나누어서 작성했다. 또한 주로 rc 서보모터에 대한 부분 위주로 공부했다.


Closed loop contorl / Encoder...

+) 다행히 휴학 전에 자동제어를 살짝 듣고 와서 이해가 가능한 부분이었다.


스텝 모터(step motor)와 비교를 한 글들이 많았다.

[사진https://www.researchgate.net/figure/General-block-diagram-of-control-loops-aOpen-loop-and-bClosed-loop-or-feedback-loop_fig14_275003974



스텝 모터는 Open loop control을 사용해 움직인다. 피드백 없이, 설계 때 정해진 1 step당 몇 도에 따라서만 움직인다.


반면 서보모터는 Closed loop control을 사용하기에 피드백을 받는다.


피드백은 encoder(엔코더)나 potentiometer(가변저항)을 사용하며 rc서보는 potentiometer를 사용한다.

고장난 sg90이 있어 분해해보았다 - 1
고장난 sg90이 있어 분해해보았다 - 2


실제 sg90을 분해해보니 가변저항(녹색)이 모터와 기어로 연결되어 있었고 아래 제어기 부분과도 연결되어 있었다.


스탭 모터는 정해진 1 스탭 당 각도에 따라 그냥 회전하지만
서보모터는 회전 후에(실제로는 중에) 가변저항이 실제 지금 어느 각도에 위치했나를 읽어 이를 제어기로 보낸 후 다시 보정하는 신호를 받는다.


즉 서보모터가 더 정밀한 제어가 가능하고 더 강한 토크를 줄 수 있다.


더 깊은 내용이 많았지만 이해가 쉽지 않아서 서보모터는 closed loop control을 한다는 것, potentiometer를 사용한다는 것만 배워간다.






PWM
앞서 말한 것처럼 서보모터는 PWM(Pulse Width Modulation, 펄스폭 변조)를 이용해 제어한다.


펄스폭 변조는 디지털 신호로 아날로그 제어를 할 때 사용하는 방법 중 하나이다.

[https://en.wikipedia.org/wiki/Servo_control

처음에는 어렵게 생각했는데 공부해보니 전혀 어려운 개념이 아니었다.


말 그대로 펄스 신호의 폭을 제어하는 방법으로 on/off를 주기적으로 하는 신호를 펄스(pulse)라 하는데 한 주기 안에 on이 몇 퍼센트가 차지하는지로 아날로그를 표현한다.


용어를 정리하면
- PWM period(주기) : 펄스 신호의 주기를 나타낸다. ms단위와 Hz 단위 둘 다 사용한다. (20ms --> 1000/20 --> 50hz)

- Duty cycle(듀티 사이클/듀티 비) : 한 주기에서 on의 비율을 의미한다. 시간을 쓰기도 하고 주기의 %로 나타내기도 한다.


+) 어떤 교재는 듀티 사이클과 듀티 비를 같은 것으로 썼고 어떤 책은 cycle은 시간, ratio는 %로 나타냈다.... 의미 전달에는 큰 문제가 없을 거 같다...


우리가 쓰는 서보모터들은 일반적으로
아날로그 서보모터(sg90)는 20ms(50hz) 주기에 1ms~2ms 사이의 듀티 사이클을,

디지털 서보모터(mg996r)는
1ms on의 펄스(5%)가 들어오면 0도, 2ms(10%)가 들어오면 180도로 서보모터가 움직이고 그 사이는 각 수치에 맞게 움직인다.


즉 내가 아두이노에서 서보모터 작동 명령어(ex servo.write)를 쓰면 실제 작동은 그 각도에 맞는 펄스 신호가 모터 신호선(노란색)으로 전송되었던 것이다.


추가로 실드나 모듈을 장착하지 않고 아두이노 본체 만으로 서보모터를 제어하려면 디지털 핀 중에서도 ~물결 표시가 있는 핀으로만 제어가 가능하다. ~표시가 있는 디지털 핀만 pwm 신호를 출력할 수 있기 때문이다.






디지털 서보 / 아날로그 서보
아날로그 서보와 디지털 서보 사이에는 구조적으로 큰 차이는 없고 단지 pwm 신호 자체와 그 처리 방법의 차이만 있다고 한다.


-아날로그 서보(sg90, hs-311) :
20ms 주기 펄스 (50hz)를 사용한다. 이 20ms의 비교적 긴 주기 탓에 다음 주기의 신호를 받기 전에 off 되어 있는 구간, 즉 명령을 받을 수 없는 구간이 존재하는데 이를 deadband(데드존)이라 한다.


이 데드존이 비교적 큰 탓에 작은 각도의 움직임 명령이나 외부 토크가 현재 위치를 벗어나게 하는 것에 대해 빠르게 반응하거나 충분한 토크를 만들지 못한다.

 


이런 문제를 해결하기 위해 디지털 서보가 나왔다.



-디지털 서보(mg996r) :
deadband width를 줄이기 위해 펄스 신호의 주기를 줄였다. 3.3ms 이상의 주기를 갖는 펄스(300hz ≤)를 사용한다. 덕분에 같은 시간 동안 아날로그 대비 훨씬 많은 명령을 받을 수 있어 부드러운 움직임, 높은 반응속도 등의 이점을 갖는다.


다만 아날로그 서보에 비해 전력소비량이 더 크다.


이런 특성들을 볼 때 내가 이해한 게 맞다면 디지털 서보는 보행 로봇, 자세 제어 가능한 로봇 등의 로봇에 적합한 거 같고 아날로그 서보는 순간적으로 많은 명령이 들어가는 로봇 보단 단순하게 각도 제어만 필요한 로봇에 적합할 거 같다.


+) 모든 디지털 서보가 아날로그 서보보다 강하고 속도가 빠른 건 아니다. 일반적인 것이고 가장 큰 차이는 pwm 주기가 짧다는 것에 있다.








일단 내가 아예 몰랐던 내용 위주로 정리했다.


아래는 내가 많은 정보를 얻을 수 있던 사이트들이다.


-모터 용어 정리, 모터 종류 정리
https://blog.naver.com/roboholic84/221068242622

모터 선택 가이드 (모터의 종류, AC모터, DC모터, 모터제어, 아두이노 모터)

모터(Motor)에 대한 개요 모터란 전기에너지를 직선 혹은 회전운동 등의 동력으로 변환시켜주는 전자부품...

blog.naver.com


-서보모터의 전반적인 구조, 원리, 자세한 설명 (영어)
https://www.rchelicopterfun.com/rc-servos.html

RC Servos: The Muscles of Our Hobby. How They Work, What to Get.

Let's dive deep into the wonderful world of RC Servos. From digital to analog, brushed to brushless. Sizes, ratings, frequency, & more.

www.rchelicopterfun.com


-서보모터의 전반적인 구조, 원리, 자세한 설명 2
https://joyonclear.tistory.com/12

[번역] 아날로그 서보모터와 디지털 서보모터의 차이

joyonclear.tistory.com/10 [아두이노] 디지털 서보모터 제어하기 아두이노를 통해 디지털 서보모터를 제어합니다. 보통 저렴하게 자주 사용하는 서보모터의 경우 아날로그 서보모터인데, 기본 50Hz의

joyonclear.tistory.com







========================================================================
정확한 정보 전달보단 공부 겸 기록에 초점을 둔 글입니다.
틀린 내용이 있을 수 있습니다.
틀린 내용이나 다른 문제가 있으면 댓글에 남겨주시면 감사하겠습니다. : )
========================================================================

반응형