J
jhill44
Guest
로봇을 움직이는 자율과 통제 해왔 적외선 모듈 장애물 회피 기본 스탬프 활용 승 건물 ...하지만 문제는 로봇을 막는 데 문제가있습니다.난 만능 리모컨과 리모컨에있는 버튼을 누르면 이동에서 봇 중지하려고 시도와 함께 로봇의 움직임을 시작입니다.그러나이 작업을 더 그때 난 생각했다 어려울 것으로 보인다.어떤 이유로 내가
루프 봇 중지 명령의 종료에 대한 기본적인 우표를 얻을 cannot.거기에 아무런 문제가 OBS와 봇 funning있다.서브루틴 회피하지만 그건 그냥 그만했으면 싶어하지 않습니다.여기에 프로그램을 .....
[/ 코드]
'($ STAMP BS2)
'($ PBASIC
5월 2일)
DEBUG "프로그램을 실행"
'------------[ 변수 ]---------------------------------- -------------
VAR irdetectleft 비트
VAR irdetectright 비트
VAR irdetectcenter 비트
VAR BUTTON_CODE 바이트 'Infrated 버튼 코드
VAR DEVICE_CODE 바이트 '적외선 장치 코드
'------------[ 메인 루틴 ]--------------------------------- -----------
'***************************
'* 메인 프로그램 *
'***************************
메인 :
GOSUB COMMAND_030 '별난 Infrated 제어 명령을 원격 제어 보내기
GOTO 메인
COMMAND_030 :
14, 16468, SEROUT [30]
똥 :
카나리아 15, 16468,1000, 메인, [device_code, button_code]
DEBUG "버튼 코드 =", 12 월 Button_Code, "장치 코드 =", 12 월 Device_code, "", CR
DEBUG "", CR
DEBUG CR "____________________________",
DEBUG 홈
Button_code = 21 Device_code면 = 1 필한테 obstacle_avoidance
BUTTON_code = 101 device_code = 1면 STOP_bot
GOTO 똥'----------[ 서브루틴 ]------------------------------------ ----------obstacle_avoidance :
하지
8, 1, 38500 FREQOUT
irdetectleft = IN9
2,1, 38500 FREQOUT
irdetectright = IN0
3,1, 38500 FREQOUT
irdetectcenter = IN4
(irdetectcenter = 0) 아니라면
GOSUB back_up
이 elseif (irdetectleft = 0) 필한테
GOSUB turn_right
이 elseif (irdetectright = 0) 필한테
GOSUB turn_left
또
GOSUB forward_pulse
ENDIF
루프
forward_pulse :
일시 정지 버튼 100
16, 8276,
SEROUT [ "! A1E", CR]
16, 8276,
SEROUT [ "! b1E", CR]
반환
turn_left :
일시 정지 버튼 20
16, 8276,
SEROUT [ "! 대답 14", CR]
16, 8276,
SEROUT [ "! B14", CR]
반환
turn_right :
일시 정지 버튼 20
16, 8276,
SEROUT [ "! A1E", CR]
16, 8276,
SEROUT [ "! b1E", CR]
반환
back_up :
일시 정지 버튼 20
16, 8276,
SEROUT [ "! a1E", CR]
16, 8276,
SEROUT [ "! B1E", CR]
반환
STOP_bot :
일시 정지 버튼 20
16, 8276,
SEROUT [ "! A00", CR]
16, 8276,
SEROUT [ "! B00", CR]
코드 :
루프 봇 중지 명령의 종료에 대한 기본적인 우표를 얻을 cannot.거기에 아무런 문제가 OBS와 봇 funning있다.서브루틴 회피하지만 그건 그냥 그만했으면 싶어하지 않습니다.여기에 프로그램을 .....
[/ 코드]
'($ STAMP BS2)
'($ PBASIC
5월 2일)
DEBUG "프로그램을 실행"
'------------[ 변수 ]---------------------------------- -------------
VAR irdetectleft 비트
VAR irdetectright 비트
VAR irdetectcenter 비트
VAR BUTTON_CODE 바이트 'Infrated 버튼 코드
VAR DEVICE_CODE 바이트 '적외선 장치 코드
'------------[ 메인 루틴 ]--------------------------------- -----------
'***************************
'* 메인 프로그램 *
'***************************
메인 :
GOSUB COMMAND_030 '별난 Infrated 제어 명령을 원격 제어 보내기
GOTO 메인
COMMAND_030 :
14, 16468, SEROUT [30]
똥 :
카나리아 15, 16468,1000, 메인, [device_code, button_code]
DEBUG "버튼 코드 =", 12 월 Button_Code, "장치 코드 =", 12 월 Device_code, "", CR
DEBUG "", CR
DEBUG CR "____________________________",
DEBUG 홈
Button_code = 21 Device_code면 = 1 필한테 obstacle_avoidance
BUTTON_code = 101 device_code = 1면 STOP_bot
GOTO 똥'----------[ 서브루틴 ]------------------------------------ ----------obstacle_avoidance :
하지
8, 1, 38500 FREQOUT
irdetectleft = IN9
2,1, 38500 FREQOUT
irdetectright = IN0
3,1, 38500 FREQOUT
irdetectcenter = IN4
(irdetectcenter = 0) 아니라면
GOSUB back_up
이 elseif (irdetectleft = 0) 필한테
GOSUB turn_right
이 elseif (irdetectright = 0) 필한테
GOSUB turn_left
또
GOSUB forward_pulse
ENDIF
루프
forward_pulse :
일시 정지 버튼 100
16, 8276,
SEROUT [ "! A1E", CR]
16, 8276,
SEROUT [ "! b1E", CR]
반환
turn_left :
일시 정지 버튼 20
16, 8276,
SEROUT [ "! 대답 14", CR]
16, 8276,
SEROUT [ "! B14", CR]
반환
turn_right :
일시 정지 버튼 20
16, 8276,
SEROUT [ "! A1E", CR]
16, 8276,
SEROUT [ "! b1E", CR]
반환
back_up :
일시 정지 버튼 20
16, 8276,
SEROUT [ "! a1E", CR]
16, 8276,
SEROUT [ "! B1E", CR]
반환
STOP_bot :
일시 정지 버튼 20
16, 8276,
SEROUT [ "! A00", CR]
16, 8276,
SEROUT [ "! B00", CR]
코드 :