htmlプラグインエラー: このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。に使っているプログラムのサンプルです。
あくまでサンプルです。使用改変は自由ですが、動かない、ソースが汚いなどの苦情は>nulへ。
'RC PROPO CONTROL PROGRAM BY SHING FOR RD6000
' 2006.1.14 VER 6.1
' 2006.1.14 VER 6.1
' Ver 6.1 User motion added.
' Ver 5.1 GWS PG-03 added. Gravity sencor added. Serial communication terminal added.
' Ver 4.1 KRG gyro command test
' Ver 3.3 New Gyro test
' Ver 3 Gyro added
' Ver 2 CONTOROL CODE MODIFIED.
'
'RD6000 DATA
'1ch: L-UD(U+), 2ch R-LR(L+), 3ch R-UD(U+), 4ch L-LR(L+)
'CENTER :0
'UP :1
'DOWN :2
'LEFT :3
'RIGHT :4
'LEFT-UP :5
'RIGHT-UP :6
'LEFT-DOWN :7
'RIGHT-DOWN :8
'RSV :9
' Ver 5.1 GWS PG-03 added. Gravity sencor added. Serial communication terminal added.
' Ver 4.1 KRG gyro command test
' Ver 3.3 New Gyro test
' Ver 3 Gyro added
' Ver 2 CONTOROL CODE MODIFIED.
'
'RD6000 DATA
'1ch: L-UD(U+), 2ch R-LR(L+), 3ch R-UD(U+), 4ch L-LR(L+)
'CENTER :0
'UP :1
'DOWN :2
'LEFT :3
'RIGHT :4
'LEFT-UP :5
'RIGHT-UP :6
'LEFT-DOWN :7
'RIGHT-DOWN :8
'RSV :9
'##DEF INPUT RC_CH
DIM RCH1 AS BYTE
DIM RCH2 AS BYTE
DIM RCH3 AS BYTE
DIM RCH4 AS BYTE
DIM RCH1 AS BYTE
DIM RCH2 AS BYTE
DIM RCH3 AS BYTE
DIM RCH4 AS BYTE
'##DEF JUMP VARIABLE
DIM STICKPOS AS BYTE
DIM LSTICK AS BYTE
DIM RSTICK AS BYTE
DIM A16 AS BYTE
DIM A26 AS BYTE
DIM STICKPOS AS BYTE
DIM LSTICK AS BYTE
DIM RSTICK AS BYTE
DIM A16 AS BYTE
DIM A26 AS BYTE
'##DEF WAIT TIME
CONST WAITTIME = 10
CONST WAITTIME = 10
'##DEF THURESHOLD VALUE
'1ch: L-UD(U+), 2ch R-LR(R+), 3ch R-UD(U+), 4ch L-LR(L+)
CONST RCH1MIN = 40
CONST RCH1MAX = 140
CONST RCH2MIN = 40
CONST RCH2MAX = 140
CONST RCH3MIN = 40
CONST RCH3MAX = 140
CONST RCH4MIN = 40
CONST RCH4MAX = 140
'1ch: L-UD(U+), 2ch R-LR(R+), 3ch R-UD(U+), 4ch L-LR(L+)
CONST RCH1MIN = 40
CONST RCH1MAX = 140
CONST RCH2MIN = 40
CONST RCH2MAX = 140
CONST RCH3MIN = 40
CONST RCH3MAX = 140
CONST RCH4MIN = 40
CONST RCH4MAX = 140
'##DEF VALUE STICK POS.
CONST TOP = 100
CONST DOWN = 0
CONST LEFT = 0
CONST RIGHT = 100
CONST CENTER = 50
CONST TOP = 100
CONST DOWN = 0
CONST LEFT = 0
CONST RIGHT = 100
CONST CENTER = 50
'##DEF GYRO
'For GWS Gyro
GYROSET G6A, 0, 1, 1, 1, 0, 0
GYROSET G6D, 0, 1, 1, 1, 0, 0
'For GWS Gyro
GYROSET G6A, 0, 1, 1, 1, 0, 0
GYROSET G6D, 0, 1, 1, 1, 0, 0
GYRODIR G6A, 0, 1, 1, 1, 0, 0
GYRODIR G6D, 0, 1, 1, 1, 0, 0
GYRODIR G6D, 0, 1, 1, 1, 0, 0
GYROSENSE G6A, 0, 100, 100, 100, 0, 0
GYROSENSE G6D, 0, 100, 100, 100, 0, 0
GYROSENSE G6D, 0, 100, 100, 100, 0, 0
'==========================================
'--- AUTO MAIN ---
STICKPOS = 0
PTP SETON
PTP ALLON
'--- AUTO MAIN ---
STICKPOS = 0
PTP SETON
PTP ALLON
'== motor diretion setting
DIR G6A,1,0,0,1,0,0
DIR G6B,1,1,1,1,1,1
DIR G6C,0,0,0,0,0,0
DIR G6D,0,1,1,0,1,0
DIR G6A,1,0,0,1,0,0
DIR G6B,1,1,1,1,1,1
DIR G6C,0,0,0,0,0,0
DIR G6D,0,1,1,0,1,0
'== motor start position read
GETMOTORSET G24,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0
TEMPO 230
MUSIC "CDE"
DELAY 2000
GETMOTORSET G24,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0
TEMPO 230
MUSIC "CDE"
DELAY 2000
'== motor power on
SPEED 5
MOTOR G24
GOSUB standard_pose
SPEED 5
MOTOR G24
GOSUB standard_pose
'==========================================
'--- MAIN ROUTINE ---
MAIN:
'--- MAIN ROUTINE ---
MAIN:
DELAY WAITTIME GOSUB RCDATACALC GOSUB CALCSTICKPOS IF LSTICK = 0 AND RSTICK = 0 THEN GOTO MAIN ELSEIF RSTICK = 0 THEN STICKPOS = LSTICK ELSEIF RSTICK = 1 THEN STICKPOS = LSTICK + 10 ELSEIF RSTICK = 2 THEN STICKPOS = LSTICK + 20 ELSEIF LSTICK = 0 THEN STICKPOS = RSTICK + 30 ENDIF
'---DECIDE MOTION ---
MUSIC "C" ON STICKPOS GOTO K0,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39 GOTO MAIN
'---MAIN ROUTINE EXIT ---
MAIN_EXIT:
MAIN_EXIT:
STICKPOS = 0 GOTO MAIN
'==========================================
'--- GET STICK POSITION ---
RCDATACALC:
'--- GET STICK POSITION ---
RCDATACALC:
RCH1 = RCIN (0) RCH2 = RCIN (1) RCH3 = RCIN (2) RCH4 = RCIN (3)
'##INPUT VALUE DEPEND ON STICK POSITION
IF RCH1 < RCH1MIN THEN RCH1 = DOWN ELSEIF RCH1 > RCH1MAX THEN RCH1 = TOP ELSE RCH1 = CENTER ENDIF
IF RCH2 < RCH2MIN THEN RCH2 = RIGHT ELSEIF RCH2 > RCH2MAX THEN RCH2 = LEFT ELSE RCH2 = CENTER ENDIF
IF RCH3 < RCH3MIN THEN RCH3 = DOWN ELSEIF RCH3 > RCH3MAX THEN RCH3 = TOP ELSE RCH3 = CENTER ENDIF
IF RCH4 < RCH4MIN THEN RCH4 = RIGHT ELSEIF RCH4 > RCH4MAX THEN RCH4 = LEFT ELSE RCH4 = CENTER ENDIF
RETURN
'==========================================
'--- CALCULATE STICKPOSITION ---
CALCSTICKPOS:
'--- CALCULATE STICKPOSITION ---
CALCSTICKPOS:
IF RCH1 = CENTER AND RCH4 = CENTER THEN LSTICK = 0 ELSEIF RCH1 = CENTER AND RCH4 = LEFT THEN LSTICK = 3 ELSEIF RCH1 = CENTER AND RCH4 = RIGHT THEN LSTICK = 4 ELSEIF RCH1 = TOP AND RCH4 = CENTER THEN LSTICK = 1 ELSEIF RCH1 = TOP AND RCH4 = LEFT THEN LSTICK = 5 ELSEIF RCH1 = TOP AND RCH4 = RIGHT THEN LSTICK = 6 ELSEIF RCH1 = DOWN AND RCH4 = CENTER THEN LSTICK = 2 ELSEIF RCH1 = DOWN AND RCH4 = LEFT THEN LSTICK = 7 ELSEIF RCH1 = DOWN AND RCH4 = RIGHT THEN LSTICK = 8 ENDIF
IF RCH3 = DOWN AND RCH2 = CENTER THEN RSTICK = 2 ELSEIF RCH3 = DOWN AND RCH2 = LEFT THEN RSTICK = 7 ELSEIF RCH3 = DOWN AND RCH2 = RIGHT THEN RSTICK= 8 ELSEIF RCH3 = TOP AND RCH2 = CENTER THEN RSTICK = 1 ELSEIF RCH3 = TOP AND RCH2 = LEFT THEN RSTICK = 5 ELSEIF RCH3 = TOP AND RCH2 = RIGHT THEN RSTICK = 6 ELSEIF RCH3 = CENTER AND RCH2 = LEFT THEN RSTICK = 3 ELSEIF RCH3 = CENTER AND RCH2 = RIGHT THEN RSTICK = 4 ELSEIF RCH3 = CENTER AND RCH2 = CENTER THEN RSTICK = 0 ENDIF
RETURN
-