캘리브레이션을 하는 이유
모터를 구동시키는 신호를 보내는 것은 변속기가 아니라 FC이다. 변속기는 FC의 신호를 통해 어떤 속도로 모터를 돌려야할 지 결정하게된다. 그렇기 때문에 변속기가 입력값의 FC에서 오는 값의 최소값과 최대값을 알 수 있도록 변속기 캘리브레이션을 해주어야한다.
내가 사용하는 Afro ESC의 범위는 1060us~1860us이다. 만약 FC에서 발생하는 PWM 범위를 1500us~1800us으로 설정했다면 1500us 펄스를 발생시켰을 때 어떻게 될까? 원래는 모터가 돌아가지 않아야하지만 1060us~1860us로 변속기가 설정되있다면 모터가 빠르게 돌아갈 것이다. 그러므로 변속기의 범위를 1060us~1860us로 설정해주어야한다. 또 여러개의 변속기를 사용할 때 작동범위를 통일하기 위해 캘리브레이션을 한다.
ESC 캘리브레이션 방법
다칠 수 있으므로 캘리브레이션을 하기 전 모든 프로펠러를 제거하고 해야한다.
- FC를 이용한 방법
- esc의 GND, 신호선과 FC의 GND, 신호선을 연결한다.
- 변속기에 최대값 펄스(2ms)를 보내고 키보드 인터럽트가 발생하면 최소값 펄스(1ms)를 보내는 코드를 작성한다.
- 변속기에 리튬배터리 전원을 준다.
- 연결된 ESC에서 비프음이 들린다. 최대값이 입력되었다는 뜻이다.
- 소리가 나고 1초 정도 후에 키보드로 아무 값을 치면 최소값이 입력된다.
- Transmitter(송신기)를 이용한 방법
- 조종기의 Throttle을 최대로 높인다.
- 변속기에 리튬배터리 전원을 준다.
- 신호음이 들리면 Throttle을 최소로 낮춘다.
ESC 작동시키기
ESC는 바로 아무 PWM신호나 보낸다고 모터를 움직이지 않는다. 가장 먼저 최소 throttle pwm(1ms)를 3초정도 보내준 다음에 PWM신호를 인식하여 모터를 작동시킬 수 있다.
ESC(PWM) update rate
공부하면서 ESC protocol에 대해 알게되었는데 내가 사용하는 변속기는 standard pwm을 사용하여 ESC와 신호를 주고 받는다. standard pwm은 1ms~2ms 사이의 값으로 신호를 입력받는다는데 그렇다면 주기는 어떻게 설정해줘야 하는건가 잘 모르겠다. 일단은 400Hz(2.5ms)로 했는데 ESC에는 1000Hz까지 입력 받을 수 있다고 되있어서 주기를 아무렇게나 줘도 인식을 하는건지 신기하다. 그런데 500Hz(2ms)를 넘어버리면 1ms~2ms값을 줄 수 없는데 왜 된다는거지?? 500Hz도 쭉 high신호가 들어올 테니 최소 throttle을 구분할 수 없을 것 같다. 뭐가 뭔지 잘모르겠다. 어차피 PID 주기를 400Hz로 돌릴거기 때문에 PWM 주기는 400Hz면 딱 괜찮다. 어쨌든 PWM 주기에 관한건 Datasheet를 아무리봐도 잘모르겠어서 다음에 멘토님께 질문해봐야겠다. 그리고 ESC data sheet에는 1060us~1860us 사이의 값이 모터를 움직인다고 했는데 1000us를 최소로 캘리브레이션을 하면 1000us~1060us pwm신호를 줘도 모터가 잘 작동한다. 내가 잘못된 datasheet를 본건지 해석이 잘못된건지 잘 모르겠다.
'쿼드콥터의 구성' 카테고리의 다른 글
변속기(Electronic Speed Control) (0) | 2020.02.02 |
---|---|
리튬 폴리머 배터리 (0) | 2020.02.02 |
Drone Components list (0) | 2020.02.02 |
Qaudcopter Flow chart - Software, Hardware (0) | 2020.02.02 |
How drone fly in the sky (0) | 2020.02.02 |