HOLA AMIGOS, LE HE CONECTADO EL SENSOR PING AL BOE-BOT PERO CUANDO ESTA NAVEGANDO LOS SERVOS QUE HACEN DE RUEDAS PARPADEAN EL MOVIMIENTO AL MISMO TIEMPO QUE EL LEDS DEL SENSOR PING Y EL ROBOT NO RUEDA CONTINUAMENTE,

PARA, SIGUE,PARA,SIGUE

¿ME PODEIS AYUDAR CON LA PROGRAMACION PARA CORREGIR ESTE ERROR? GRACIAS

Visitas: 201

Responde a esto

Respuestas a esta discusión

Es probable que tengas por ahí algún detalle relacionado con la secuencia o con tiempos. Si gustas mandar tu programa lo podemos revisar con mayor detalle.

 

Saludos

Oscar

este es el programa..gracias por la ayuda.

 

' {$STAMP BS2}
' {$PBASIC 2.5}

Ping PIN 15
PingServo PIN 14
LeftServo PIN 13
RightServo PIN 12

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


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

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

GetSonar:
LOW Ping
PULSOUT Ping, 5
PULSIN Ping, 1, rawDist

IF (rawDist < 600) THEN
IF (sweepcount < 750) THEN
GOSUB Turn_Left
ELSEIF (sweepcount > 750) THEN
GOSUB Turn_Right
ELSE
GOSUB Back_Up
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 20
PULSOUT LeftServo, 850
PULSOUT RightServo, 850
PAUSE 20
NEXT
RETURN

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

Back_Up:
FOR pulseCount = 0 TO 40
PULSOUT LeftServo, 650
PULSOUT RightServo,850
PAUSE 10
NEXT

FOR pulseCount = 0 TO 1
PULSOUT LeftServo, 650
PULSOUT RightServo, 850
PAUSE 1
NEXT
RETURN

Oscar Villarreal dijo:

Es probable que tengas por ahí algún detalle relacionado con la secuencia o con tiempos. Si gustas mandar tu programa lo podemos revisar con mayor detalle.

 

Saludos

Oscar

Hola Francisco,

Perdon por tardar en responder

Segun veo al mandar a la subrutina Getsonar es cuando se esta deteniendo (pulsando) tu programa, esta esperando una respuesta de la subrutina y hace que las demas funciones queden detenidas.  Esto es porque estas pidiendole a tu robot (con los IFs) que se detenga hasta tener un analisis de la distancia para poder continuar.

Dejame ver si este fin de semana puedo cargar el programa y comprobar que efectivamente lo que te estoy diciendo es verdad. 

Saludos

Oscar

Responder a debate

RSS

Cursos online y tutoriales


(se requiere registro previo gratuito en PortalArduino.com)

Mantenimiento del sitio

© 2024   Creado por Lorenzo M. Oliver.   [Imágenes licenciadas por Depositphotos.com] Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio