Diferencia entre revisiones de «Evitar caida»

De Proyecto Butiá
Saltar a: navegación, buscar
 
(No se muestran 8 ediciones intermedias de 2 usuarios)
Línea 3: Línea 3:
 
Para comenzar plantearemos la idea general:
 
Para comenzar plantearemos la idea general:
  
   Si la distancia entre sensor y la mesa aumenta  
+
   Si la distancia entre sensor y la mesa aumenta de un determinado valor
 
     Retroceder
 
     Retroceder
 
     Girar aleatoriamente
 
     Girar aleatoriamente
Línea 10: Línea 10:
  
 
    
 
    
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 es 7cm) para determinar si el robot está por caer o no. Si la  distancia que contiene actualmente el sensor es mayor que el valor determinado antes, el robot esta por caer.   
+
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 :
 +
 
 +
<center>[[Archivo: im2.png]]</center>
 +
 
 +
 
 +
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 19: 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 35: Línea 42:
  
  
<center>[[Archivo: im3.png]]</center>
+
<center>[[Archivo: im4.png]]</center>
 
+
 
+
 
+
 
+
'''Puntos a tener en cuenta:'''
+
*Los puertos utilizados en el tutorial son solo parte del ejemplo, en su lugar deberiamos colocar los puertos correspondientes a los sensores y motores.
+

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