Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola!!
Necesito ayudaaaa y muchaaaaa!!!
Os cuento.....tengo un robot 'home boe-bot' ya montadito y todo pero me falta programarlo para que realice la prueba de rastreado. La prueba consite en un suelo negro con una linea blanca encima con cualquier tipo de curva, el robot tiene que seguir la linea blanca. Mi problema es que no tengo ni idea de programar y menos en PBasic y además me han dicho que si programo en ensamblador obtendré mejor nota....¿alguien amable y con paciencia me puede ayudar?
Yo que tu programaria en PBP, te vas a ahorrar trabajo y te sera fácil
solo tienes que decirle al pic:
pausa 5000
motor izquierdo y derecho igual a 1 : motores funcionando los dos
Si sensor derecho es igual a 0 motor izquierdo igual a 0 : Motor izquierdo parado
Si sensor izquierdo es igual a 0 motor derecho igual a 0 : Motor derecho parado
Tarducido en Picbasic:
pause 5000
Comienzo:
high portB1 ; motor izquierdo funcionando
high portB2 ; motor derecho funcionando
if portD1 = 0 then low portB1 ; Si sensor derecho es igual a 0 motor izquierdo igual a 0 Motor izquierdo parado
if portD2 = 0 then low portB2 ; Si sensor izquierdo es igual a 0 motor derecho igual a 0 Motor derecho parado
Goto Comienzo
Con esto ya te funciona un siguelineas con dos sensores de la forma mas sencilla.
He puesto esos puertos como ejemplo, no se donde tendras tu conectados los sensores y los motores.
Un cordial saludo
Francisco Balbuena
Robotika
www.mectaronica.es
Hola!!!
Muchas gracias!! yo tengo un programa hecho, haber que os parece y si teneis alguna sugerencia, las aceptaré enormemente...aqui os la dejo:
' Detectando bordes.
' {$STAMP BS2}
' {$PBASIC 2.5}
irDetectLeft VAR Bit ' Declaración de variables.
irDetectRight VAR Bit
pulseLeft VAR Word
pulseRight VAR Word
loopCount VAR Byte
pulseCount VAR Byte
FREQOUT 4, 2000, 3000 ' Señal de Inicio/Reset.
DO ' Rutina principal.
FREQOUT 8, 1, 38500 ' Comp`rueba los detectores IR.
irDetectLeft = IN9
FREQOUT 2, 1, 38500
irDetectRight = IN0
' Decidir el movimiento.
IF (irDetectLeft = 0) AND (irDetectRight = 0) THEN
pulseCount = 1 ' Ambos activados,
pulseLeft = 850 ' un pulso de avance.
pulseRight = 650
ELSEIF (irDetectRight = 1) THEN ' Dcha. no activado,
pulseCount = 10 ' 10 pulsos a la izda.
pulseLeft = 650
pulseRight = 650
ELSEIF (irDetectLeft = 1) THEN ' Izda. no activado,
pulseCount = 10 ' 10 pulsos a la dcha.
pulseLeft = 850
pulseRight = 850
ELSE ' Ninguno activado,
pulseCount = 15 ' retroceso.
pulseLeft = 650
pulseRight = 850
ENDIF
FOR loopCount = 1 TO pulseCount ' Enviar pulsos
PULSOUT 13,pulseLeft
PULSOUT 12,pulseRight
PAUSE 20
NEXT
LOOP