선언문의 의한 변수선언 부터 올려 드립니다.
아래오 내려가면서 명령어를 확인해 보시고,
적용하시어 실행해 보시기 바랍니다.
'******* 변수선언 ***********************
DIM A AS BYTE
DIM 자세 AS BYTE
'*******모터방향설정*********************
DIR G6A,1,0,0,1,0,0 '왼쪽다리:모터0~5번
DIR G6D,0,1,1,0,1,0 '오른쪽다리:모터18~23번
DIR G6B,1,1,1,1,1,1 '왼쪽팔:모터6~11번
DIR G6C,0,0,0,0,0,0 '오른쪽팔:모터12~17번
'*******모터동시제어설정****************
PTP SETON '단위그룹별 점대점동작 설정
PTP ALLON '전체모터 점대점 동작 설정
'*******모터위치값피드백****************
GOSUB MOTOR_GET
'*******모터사용설정********************
GOSUB MOTOR_ON
'*******피에조소리내기******************
TEMPO 220
MUSIC "O23EAB7EA>3#C"
'***** 초기자세로 **********************
SPEED 5
GOSUB 기본자세
OUT 52,0
자세 = 0
'***** 메인 반복루틴 ********************
MAIN:
ERX 4800,A,MAIN
IF A = 1 THEN '1번 버튼
IF 자세 = 0 THEN
SPEED 10
GOSUB 앉은자세
자세 = 1
ELSE
SPEED 8
GOSUB 기본자세
자세 = 0
ENDIF
ELSE
MUSIC "F"
ENDIF
GOTO MAIN
'***************************************
MOTOR_ON: '전포트서보모터사용설정
MOTOR G24
RETURN
'***********************************
MOTOR_OFF: '전포트서보모터설정해제
MOTOROFF G6B
MOTOROFF G6C
MOTOROFF G6A
MOTOROFF G6D
RETURN
'***********************************
MOTOR_GET: '위치값피드백
GETMOTORSET G6A,1,1,1,1,1,0
GETMOTORSET G6B,1,1,1,0,0,1
GETMOTORSET G6C,1,1,1,0,0,0
GETMOTORSET G6D,1,1,1,1,1,0
RETURN
'*******기본자세관련*****************
기본자세:
MOVE G6A,100, 76, 145, 93, 100, 100
MOVE G6D,100, 76, 145, 93, 100, 100
MOVE G6B,100, 30, 80, 100, 100, 100
MOVE G6C,100, 30, 80, 100, 100, 100
WAIT
RETURN
'*************************************
차렷자세:
MOVE G6A,100, 56, 182, 76, 100, 100
MOVE G6D,100, 56, 182, 76, 100, 100
MOVE G6B,100, 20, 90, 100, 100, 100
MOVE G6C,100, 20, 90, 100, 100, 100
WAIT
RETURN
'**************************************
앉은자세:
MOVE G6A,100, 143, 28, 142, 100, 100
MOVE G6D,100, 143, 28, 142, 100, 100
MOVE G6B,100, 30, 80
MOVE G6C,100, 30, 80
WAIT
RETURN
'***************************************