전동 Skateboard 만들기 #2
Mortor Test
Hardware 구성
다들 아시겠지만, 서보모터는 MCU의 PWM 파형을 이용하여 구동한다. PWM 파형을 제어하기 위해 Cortex-M0 계열의 WIZwiki-W7500ECO 보드를 이용하였으며, 하드웨어 구성은 아래 그림과 같다.
Test Software
Software는 mbed 환경에서 구현하였다. 서보 모터를 제어하기 위해, mbed에서는 Servo 라이브러리를 제공하며 사용방법은 아래 주소를 참고 하기 바란다. (Servo Library)
내 스케이트 보드에 장착되어 있는 보드의 모터에 어떤 값을 입력하였을 때, 전진하고 후진하는지 알아 보기 위해 아래와 같은 테스트 코드를 작성하였다. mbed Servo는 0 ~ 1 사이의 값으로 PWM 파형을 생성하며, 스케이트 보드에 장착된 모터는 0.4 ~ 0.55 값에서 중립 상태를 보인다.
#include "mbed.h"
#include "Servo.h"
int main() {
uint8_t ch;
volatile float speed_value = 0.5;
Servo myservo(PC_8);
Serial pc(USBTX,USBRX);
pc.baud(115200);
wait(1);
pc.printf("TEST Start\r\n");
while(1)
{
pc.printf("speed : %f\r\n",speed_value);
myservo = speed_value;
ch = pc.getc();
if(ch == 'u')
{
speed_value += 0.001;
}
else if(ch == 'd')
{
speed_value -= 0.001;
}
else if(ch == 's')
{
myservo = 0.5;
wait(0.5);
speed_value = 0.41;
myservo = speed_value;
wait(5);
speed_value = 0.5;
myservo = speed_value;
}
}
}
위 코드는 https://developer.mbed.org/users/kaizen/code/Servo_HelloWorld/에서 확인 및 다운로드 할 수 있다.