Diferencia entre revisiones de «Evitar caida»

De Proyecto Butiá
Saltar a: navegación, buscar
 
(No se muestran 5 ediciones intermedias del mismo usuario)
Línea 15: Línea 15:
  
  
Si la  distancia que contiene actualmente el sensor es mayor que el valor determinado antes, el robot esta por caer.   
+
Si la  distancia que contiene actualmente el sensor es mayor que el valor determinado almacenado en la caja "distancia", el robot esta por caer.   
 
Para tomar el valor de nuestro sensor debemos utilizar el bloque "distancia Butía".
 
Para tomar el valor de nuestro sensor debemos utilizar el bloque "distancia Butía".
  
Línea 24: Línea 24:
  
  
Para el caso en que la  distancia del sensor sea mayor que el valor determinado (7cm), el robot procederá a: <br>
+
Para el caso en que la  distancia del sensor sea mayor que el valor almacenado, el robot procederá a: <br>
1) retroceder (para esto utilizamos el bloque "atrás distancia" al cual le indicamos el valor de la distancia que queremos que haga marcha atrás) <br>
+
1) retroceder (para esto utilizamos el bloque "atrás distancia" al cual le indicamos un valor aleatorio de la distancia que queremos que haga marcha atrás. Para este caso dicho valor oscila entre 10 y 40, dependiendo directamente del largo y ancho de la mesa en la cual vamos a probar el robot) <br>
2) girar aleatoriamente (para esto utilizamos el bloque "Girar X Grados" indicando el puerto del motor, cantidad de vueltas y potencia) <br>
+
2) girar aleatoriamente (para esto utilizamos el bloque "Girar X Grados" indicandole un valor aleatorio que oscila entre 90 y 180 grados) <br>
 +
En caso contrario el robot avanzará hacia adelante ( utilizando el bloque "adelante Butía").
  
 +
A continuación se muestra una figura con el código:
  
  
  
<center>[[Archivo: im2.png]]</center>
+
<center>[[Archivo: im3.png]]</center>
  
  
Línea 40: Línea 42:
  
  
<center>[[Archivo: im3.png]]</center>
+
<center>[[Archivo: im4.png]]</center>

Revisión actual del 17:45 17 feb 2012

A continuación desarrollaremos un programa que consiste en que el robot evite caer de la mesa. La manera de hacer esto es colocar en la parte delantera del robot un sensor de distancia. Además debemos indicarle que cuando el valor entre el sensor y la mesa aumenta el robot se encuentra al borde de la misma. Este valor es una constante que depende de la ubicación del sensor en el robot.

Para comenzar plantearemos la idea general:

 Si la distancia entre sensor y la mesa aumenta de un determinado valor
   Retroceder
   Girar aleatoriamente
 Sino
   Avanzar hacia adelante


Lo primero que se debe hacer es ver cual es el valor de distancia entre el sensor y la mesa (en este ejemplo el valor 850) para determinar si el robot está por caer o no. Este valor lo guardamos en una caja utilizando el siguiente bloque :

Im2.png


Si la distancia que contiene actualmente el sensor es mayor que el valor determinado almacenado en la caja "distancia", el robot esta por caer. Para tomar el valor de nuestro sensor debemos utilizar el bloque "distancia Butía".


Im1.png



Para el caso en que la distancia del sensor sea mayor que el valor almacenado, el robot procederá a:
1) retroceder (para esto utilizamos el bloque "atrás distancia" al cual le indicamos un valor aleatorio de la distancia que queremos que haga marcha atrás. Para este caso dicho valor oscila entre 10 y 40, dependiendo directamente del largo y ancho de la mesa en la cual vamos a probar el robot)
2) girar aleatoriamente (para esto utilizamos el bloque "Girar X Grados" indicandole un valor aleatorio que oscila entre 90 y 180 grados)
En caso contrario el robot avanzará hacia adelante ( utilizando el bloque "adelante Butía").

A continuación se muestra una figura con el código:


Im3.png



Por ultimo, uniendo todos los pasos indicados en el desarrollo del tutorial, nuestro programa tiene el siguiente aspecto:


Im4.png