Está en la página 1de 8

TRABAJO PRACTICO N4

Navegacin del Boe-Bot

1. En que direccin debe girar la rueda izquierda para hacer que el Boe- Bot
vaya al frente?

En que direccin debe girar la rueda derecha?

La rueda izquierda debe ir contrareloj, y la rueda derecha conreloj.

2. Cuando el Boe Bot pivotea a la izquierda, que hacen las ruedas


izquierda y derecha? Qu comandos PBASIC necesita para hacer que el
Boe-Bot pivotee a la izquierda?

Cuando el Boe-Bot pivotea sobre si mismo a la izquierda , la rueda derecha est


girando conreloj (hacia adelante), y la izquierda no se mueve.

El comando necesario es:

PULSOUT 13, 750


PULSOUT 12, 650

3. Si su Boe-Bot gira ligeramente a la izquierda cuando esta corriendo un


programa para hacer que vaya de frente, Cmo corrige esto? Qu
comando necesita ser ajustado y que clase de ajuste hara?
, Cmo corrige esto?

Puedes desacelerar la rueda derecha para corregir la desviacin hacia la izquierda.

Qu comando necesita ser ajustado y que clase de ajuste hara?

El comando PULSOUT para la rueda derecha necesita ser ajustado.

PULSOUT 12, 650

Ajusta 650 a algo ms cercano a 750 para desacelerar la rueda.

PULSOUT 12, 665

4. Si tu Boe Bot viaja a 11 in/s, Cuantos pulsos necesitara para hacer que
viaje 36 pulgadas

Con los datos:


Velocidad del Boe-Bot = 11 in/s
Distancia que debe recorre el Boe-Bot = 36 in
Pulsos = (distancia del Boe-Bot / velocidad del Boe-Bot) * (40.65 pulsos / s)
= (36 / 11 ) * (40.65)
= 133.04
= 133
Deberas necesitar 133 pulsos para recorrer 36 pulgadas.

5. Cul es la relacin entre el argumento Counter del bucle FORNEXT y


el
argumento Duration del comando PULSOUT que hace posible la
aceleracin
gradual?

La variable pulseCount del bucle FORNEXT puede ser usada como un


compensador (de suma o resta) para 750 (la posicin central) en el argumento
Duration.

FOR pulseCount = 1 to 100


PULSOUT 13, 750 + pulseCount
PULSOUT 12, 750 pulseCount
PAUSE 20
NEXT

6. Que directiva puede usar para preguardar valores en la EEPROM del


BASIC Stamp antes de correr un programa

La directiva DATA

7. Que comando puede usar para recuperar un valor guardado en la


EEPROM y copiarlo a una variable?

El comando READ.

8. Que bloque de cdigo puede usar para seleccionaar una variable en


particular y evaluarla caso por caso y ejecutar un bloque diferente para
cada caso?

SELECT...CASE...ENDSELECT.

9. Cuales son las diferentes condiciones que pueden ser usados con
Do..LOOP?

UNTIL y WHILE.

10. Escriba una rutina que haga retroceder el Boe Bot por 350 pulsos

FOR counter = 1 to 350 ' Retroceso


PULSOUT 13, 650
PULSOUT 12, 850
PAUSE 20
NEXT

11. Digamos que probo sus servos y descubri que les toma 48 pulsos hacer
una vuelta de 180 con vuelta a la derecha. Con esta informacin, escriba
una rutinas que hagan que el Boe Bot ejecute vueltas de 30, 45, y 60
grados.
FOR counter = 1 to 8 ' Rota der. 30 grados
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT
FOR counter = 1 to 12 ' Rota der. 45 grados
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT
FOR counter = 1 to 16 ' Rota der. 60 grados
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT

12. Escriba una rutina que haga que el Boe Bot vaya de frente, luego rampee
para iniciar y terminar una vuelta con pivoteo y luego continue en lnea
recta.

FOR counter = 1 to 100 ' Avance


PULSOUT 13, 850
PULSOUT 12, 650
PAUSE 20
NEXT
FOR counter = 0 TO 30 ' Vuelta pivot con acel.
PULSOUT 13, 750 + counter ' gradual
PULSOUT 12, 750
PAUSE 20
NEXT
FOR counter = 30 TO 0 ' Desacel. gradual
PULSOUT 13, 750 + counter
PULSOUT 12, 750
PAUSE 20
NEXT
FOR counter = 1 to 100 ' Avance
PULSOUT 13, 850
PULSOUT 12, 650
PAUSE 20
NEXT
Proyectos

1 Es hora de llenar la columna 3 de la tabla 2-1 en la pagina 63. Para hacer


esto, modifique los argumentos PULSOUT Duracion en el programa
BoeBotForwardThreeSeconds. Bs2 usando cada par de valores de la
columna 1 . Registre el comportamiento resultante de su Boe Bot para cada
par for each pair en la columna 3. Una vez completada, esta tabla servir
como una gua de referencia cuando disee sus propias maniobras
personalizadas del Boe-Bot.

P13 P12 Descripcin Comportamiento


850 650 Velocidad mxima Avance
P13 antihorario,
P12 horario
650 850 Velocidad mxima Retroceso
P13 horario, P12
antihorario
850 850 Velocidad mxima Rotacion derecha
P13 antiorario, P12
horario
650 650 Velocidad mxima Rotacion izquierda
P13 horario, P12
horario
750 850 P13 Detenido Pivot hacia atrs
P12 antihorario izquierda
velocidad mxima
650 750 P13 horario Pivot hacia atrs
velocidad mxima derecha
P12 Detenido
750 750 P13 detenido Detenido
P12 Detenido
760 740 P13 antihorario Avance lento
lento
P12 horario Lento
770 730 P13 antihorario Avance mediano
med
P12 horario med
850 700 P13 antihorario Desvio hacia
velocidad mxima derecha
P12 horario
mediana
800 650 P13 antihorario Desvio hacia
mediana izquierda
P12 horario
velocidad max
2. La Figura 4-9 muestra dos curvas simples . Escribe un programa que haga
que su Boe-Bot navegue sobre cada figura. Asuma que las distancias en
lnea recta (incluyendo el dimetro del crculo) son de 1 m.

CIRCULO

' Boe-Bot navega un circulo de 1 m de dimetro.


'{$STAMP BS2}
'{$PBASIC 2.5}
DEBUG "Programa !"
counter VAR Word ' Contador de pulsos para los servos
FREQOUT 4, 2000, 3000 ' Senal comienzo del programa.
' -----[ Rutina Principal ]--------------------------------------------
FOR counter = 1 TO 960
PULSOUT 13, 850 ' Desvo derecha
PULSOUT 12, 719
PAUSE 20
NEXT
END:

TRIANGULO

' Robotica con el Boe-Bot - Captulo 4 - Triangulo.bs2


' Boe-Bot navega un trayecto con forma de triangulo con lados de 1m.
' Avanza, luego gira 120 grados. Repite tres veces.
'{$STAMP BS2}
'{$PBASIC 2.5}
pulseCounter VAR Word 'duracion de pulsos para avance y giros
counter VAR Word 'Un triangulo tiene 3 lados, 3 repeticiones

FREQOUT 4, 2000, 3000 ' Senal comienzo del programa.


FOR Counter = 1 TO 3
GOSUB Avanzar
GOSUB Giro
NEXT
END
Avanzar:
FOR pulseCounter = 1 TO 240 ' Avance 1 metro debera ser aproximadamente 181
PULSOUT 13, 850
PULSOUT 12, 650
PAUSE 20
NEXT
RETURN
Giro:
FOR pulseCounter = 1 TO 26 ' Rotacion der. 120 grados, debera ser 24
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT
RETURN
Para completar el tringulo, primero calcula el nmero de pulsos necesarios
para recorrer un metro en lnea recta, como en la Pregunta 4. Luego entona las
distancias para que estn coordinadas con la superficie de tu Boe-Bot.

Para un patrn en forma de tringulo, el Boe-Bot debe recorrer 1 metro hacia


adelante, luego hacer un giro de 120 grados. Esto se debe repetir tres veces, una
para cada lado del tringulo. Puede que tengas que ajustar el EndValue en
pulseCount usado en la subrutina Right_Rotate120 para obtener un giro preciso.
' Robotica con el Boe-Bot - Captulo 4 - Triangulo.bs2

' Boe-Bot navega un trayecto con forma de triangulo con lados de 1 M.

' Avanza, luego gira 120 grados. Repite tres veces.

'{$STAMP BS2}

'{$PBASIC 2.5}

DEBUG "Program running!"

counter VAR Nib ' Un triangulo tiene 3 lados

pulseCount VAR Word ' Contador de pulsos para los servos

FREQOUT 4, 2000, 3000 ' Senal comienzo del programa.

Main:

FOR counter = 1 TO 3 ' Repetir 3 veces para triangulo

GOSUB Forward

GOSUB Right_Rotate120

NEXT

END

Forward:

FOR pulseCount = 1 TO 163 ' Avance 1 yarda

PULSOUT 13, 850

PULSOUT 12, 650

PAUSE 20

NEXT

RETURN

Right_Rotate120:

FOR pulseCount = 1 TO 21 ' Rotacion der. 120 grados

PULSOUT 13, 850

PULSOUT 12, 850

PAUSE 20

NEXT

RETURN

También podría gustarte