Ayuda!!!!!

Todos sobre robots creados de forma casera.
Post Reply
lucia111
Miembro Nuevo
Miembro Nuevo
Posts: 1
Joined: 18 Jun 2016, 22:03

Ayuda!!!!!

Post by lucia111 »

Tengo que entregar un robot en pocos dias que a través de un ultrasonidos esquive los objetos y a pesar de haberlo comprobado 1000 veces no encuentro el error, el robot da unos pasos hacia delante gira en sentido horario y vuelve a hacer lo mismo en bucle sin que el ultrasonidos aprecie nada ¿podéis ayudarme? Os dejo el programa (con Basic stamp)
' {$STAMP BS2}
' {$PBASIC 2.5}

PingEcho PIN 4
PingTrig PIN 5
PingServo PIN 1
LeftServo PIN 12
RightServo PIN 13

rawDist VAR Word
sweepcount VAR Word
x VAR Byte
pulseCount VAR Byte


Main:
FOR sweepcount = 350 TO 1150 STEP 400
FOR x = 0 TO 5
PULSOUT 1, sweepcount
PAUSE 20
NEXT
GOSUB GetSonar
NEXT

FOR sweepcount = 950 TO 550 STEP 400
FOR x = 0 TO 5
PULSOUT 1, sweepcount
PAUSE 20
NEXT
GOSUB GetSonar
NEXT
GOTO Main

GetSonar:
LOW PingEcho
LOW PingTrig
PULSOUT PingTrig, 5
PULSIN PingEcho, 1, rawDist
IF (rawDist < 600) THEN
IF (sweepcount < 750) THEN
GOSUB Turn_Left
ELSEIF (sweepcount > 750) THEN
GOSUB Turn_Right
ELSE
GOSUB Forward_Pulse
ENDIF
ELSE
GOSUB Forward_Pulse
ENDIF

RETURN

Forward_Pulse:
FOR pulsecount = 0 TO 5
PULSOUT LeftServo, 850
PULSOUT RightServo, 650
PAUSE 20
NEXT
RETURN

Turn_Left:
FOR pulseCount = 0 TO 10
PULSOUT LeftServo, 650
PULSOUT RightServo, 650
PAUSE 20
NEXT
RETURN

Turn_Right:
FOR pulseCount = 0 TO 10
PULSOUT LeftServo, 850
PULSOUT RightServo, 850
PAUSE 20
NEXT
RETURN

Back_Up:
FOR pulseCount = 0 TO 3
PULSOUT LeftServo, 750
PULSOUT RightServo, 750
PAUSE 20
NEXT

FOR pulseCount = 0 TO 7
PULSOUT LeftServo, 650
PULSOUT RightServo, 850
PAUSE 20
NEXT
RETURN
Post Reply