Robotica

Page 108

Capítulo 3: Exploración Táctil con Bigotes giro_u: gosub atras for cuenta_pulsos = 0 to 60 pulsout 12, 650 pulsout 13, 650 pause 20 next contador = 0 goto principal

' Rutina de giro en U. ' Llama a atras: antes de girar.

' Pone a cero el contador.

'----- Subrutina de Navegación ----atras: for cuenta_pulsos = 0 to 60 pulsout 12, 850 pulsout 13, 650 pause 20 next return

' Usada por cada rutina de ' navegación.

Cómo Funciona el Programa Escape de Rincones Las variables tipo nibble llamadas estado_ant y contador se agregaron a la sección de declaraciones para mantener un registro de los giros. La variable estado_ant guarda el estado previo antes de que la variable estado sea actualizada con los valores actuales de los bigotes. La variable contador registra la cantidad de transiciones de estado de uno a dos y viceversa. declaraciones: cuenta_pulsos var estado var estado_ant var contador var

byte nib nib nib

La rutina control_bigotes está diseñada para controlar los bigotes como antes, pero se ha agregado código para detectar la condición “atrapado en una esquina”. Esta condición es indicada por cuatro transiciones derecha-izquierda-derecha (o izquierda-derecha-izquierda). Antes de actualizar la variable estado con los valores nuevos de los bigotes, la instrucción estado_ant = estado guarda una copia del estado previo, como referencia. Luego la variable estado es actualizada con los valores actuales, como en el Programa 3.3. control_bigotes: estado_ant = estado

Página 102 • ¡Robótica! Versión 1.5


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.