3 륜 축구 로봇을 프로그래밍한다고 상상해보십시오. 회전에 어떤 종류의 컨트롤러를 사용 하시겠습니까? 피? PID?
이 컨트롤러의 목표는 로봇을 정해진 각도 (0도)로 세우고 손이나 다른 로봇으로 회전하면 되돌려 야한다는 것입니다.
서보가 아닌 로봇에 스테퍼 모터를 사용하므로 소프트웨어에서이를 구현해야합니다!
샘플 P 타입 컨트롤러를 이미 작성했으며 움직임이 상당히 좋습니다. 그러나 가능하면 더 좋게 만들고 싶습니다. 코드는 다음과 같습니다.
void spinSpeed(int devidedValue, int addedValue, int correction) {
if(degree<correction && degree>-correction) {
motorSpeed = 0;
} else {
if(degree > 0) {
motorSpeed = ((degree)/(devidedValue) + (addedValue));
} else {
motorSpeed = ((degree)/(devidedValue) - (addedValue));
}
}
}
correction
로봇이 움직이지 않는 범위입니다.
degree
나침반에서 반환되는 -127에서 128 사이의 숫자입니다.
motorSpeed
는 PWM에 적용되는 0에서 255 사이의 숫자입니다.
degree
?에 대한 새 값을 생성 할 때마다 실행됩니다 .