move로 제어하기


스텝모터를 모터의 현재 위치를 기준으로 제어하고자 할 때 move를 사용합니다.
이 방식은 모터가 정지상태일 때만 사용이 가능합니다.

"move [sign](step) [speed] [accel] [decel]"

※ 주의: [sign]과 (pos) 사이에는 빈 공간(space)이 없습니다.

각 인수에 대한 설명은 다음과 같습니다.

인수 설명 필수/옵션
sign 회전 방향, "+"(정 회전) 또는 "-"(역 회전) 옵션(생략시 "+")
step 구동 시킬 스텝 수 필수
speed 회전 속도(단위: pps) 옵션
accel 가속도(단위: pps/s) 옵션
decel 감속도(단위: pps/s) 옵션

구동 시킬 스텝 수(step)는 모터의 현재 위치가 기준이 됩니다.

이 명령에서 가속도(accel)만 입력하고 감속도(decel)를 입력하지 않으면 가속도에 입력한 값이 감속도에 자동으로 설정됩니다.

<?php
include_once "/lib/sd_spc.php";

spc_reset();
spc_sync_baud(460800);

$sid = 1;
spc_request_dev($sid, "set mode 4");
spc_request_dev($sid, "set vref stop 2");
spc_request_dev($sid, "set vref drive 8");
spc_request_dev($sid, "set rsnc 120 250");

spc_request_dev($sid, "move 800 400 800 0");
while((int)spc_request_dev($sid, "get state"))
  usleep(1);

sleep(1);

spc_request_dev($sid, "move -800 400 0 800");
while((int)spc_request_dev($sid, "get state"))
  usleep(1);
?>

※ 이 명령어는 스텝모터가 정지상태일 때만 사용이 가능합니다. 따라서 위 예제에서처럼 항상 모터가 정지된 이후에 move명령이 실행되도록 프로그래밍 하시기 바랍니다.