Diferencia entre revisiones de «Evitar caida»
(No se muestran 6 ediciones intermedias del mismo usuario) | |||
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 850) para determinar si el robot está por caer o no. Si la distancia que contiene actualmente el sensor es mayor que el valor determinado | + | 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 | + | 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 | + | 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" | + | 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: | + | <center>[[Archivo: im3.png]]</center> |
Línea 35: | Línea 42: | ||
− | <center>[[Archivo: | + | <center>[[Archivo: im4.png]]</center> |
Revisión actual del 18: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 :
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 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:
Por ultimo, uniendo todos los pasos indicados en el desarrollo del tutorial, nuestro programa tiene el siguiente aspecto: