하드웨어
[변속기]
DC 모터를 구동하기 위해서는 DC 모터가 원하는 전력을 공급하여야 한다.
또한 이 전력을 제어하면 모터의 속도를 제어할 수 있다.
이러한 일을 하는 것을 변속기 라고 한다.
모터가 원하는 전력은 상당히 큰데 우리가 지금 하는 모터는 작은것이 50W정도이다.
이런전력을 밧데리가 내는것은 불가능하다.(?)
변속기가 이를 해결한다.
변속기 제어는 PWM 파형을 이용하여 제어한다.
1 KHz 주파수 정도가 사용되며 duty 비가 50% 에서부터 시작된다.
PWM 신호의 High 신호가 길수록 모터가 빨리 움직인다.
TTL (5V) 레벨의 신호이다.
[프로펠러]
프로펠러도 여러종류가 있다.
프로펠러의 길이를 적당한 것으로 선택해야 한다.( 나도 정확한 기준을 알지 못한다. ... 그져 적당한것)
다만 중요한 것은 정방향과 역방향이 있다는 것이다.
쿼드콥터에서는 정방향, 역방향 프로펠러가 모두 필요하다.
아래 그림과 같이 프로펠러 회전방향을 맞추어야 쿼드콥터가 한쪽 방향으로 돌지 않는다.
[가속도 센서]
쿼드콥터의 이동 성분을 알기 위해서는 가속도 센서라는 것이 필요하다.
쿼드콥터는 3차원의 공간을 이동하는 것이므로 X, Y, Z 축의 이동 거리 계산이 필요하다.
하지만 거리계산을 해주는 센서는 없고 현재의 가속도를 측정해주는 센서가 있으니 이것이 가속도 센서이다.
가속도센서는 공간의 가속도 성분을 나타내는 것이어서 역시 X, Y, Z 세개의 축에 대한 성분을 나타낸다.
평상시 가속도센서를 수평인채로 놓아두면 Z 축에 대한 중력가속도만이 나타난다.
중력가속도 9.8 m / s2
만일 가속도센서가 기울어져 있는 상태에서 멈춰있다면 Z 축뿐만 아니라 X 나 Y 축에도 그값이 나타난다.
Z 축으로 가해지는 가속도의 값이 다른축에 분산되어 나타나는 것이다.
머리아프지만 3차원 공간의 벡터값은
V = ROOT( X2 + Y2 + Z2 )
고등학교 물리시간에 배운것인데 사용할 기회가 없어 어렵게 느껴진다.
가속도 값을 알고 해당하는 시간을 알면 이동 거리를 계산할 수 있다.
좀더 자세한 내용은 차차 이야기 하도록 하겠다.
[자이로 센서]
자이로센서는 회전각속도를 알려주는 센서이다.
이것도 역시 X, Y, Z 축에 대한 값을 알려준다.
다시한번 힘주어 말하면 각속도이다.
거리를 이동하지 않고 머물러 있는 물체는 중력가속도만이 발생하며 이것이 수평으로 회전한다고 했을때
가속도만으로는 회전을 알지 못한다.
또한 우리가 만들고자 하는 쿼드콥터의 진행 방향을 알지 못하면 이동방향을 제어할 수 없다.
제어 방법이 너무 어려워 아직도 이해하지 못하고 있다.
가속도, 자이로 센서 모두 온도에 상당히 민감하여 온도 보상을 해주어야 한다.
또한 센서값의 흔들림이 많아 이를 보정하는데도 상당한 노력을 기울여야 한다.
센서의 값들은 누적하여 사용되는데 오차 적어도 누적되면 큰 값이 된다.