sexta clase patricio a. navarrete junio 17 de 2011
TRANSCRIPT
![Page 1: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/1.jpg)
Sexta Clase
Patricio A. NavarreteJunio 17 de 2011
![Page 2: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/2.jpg)
Resumen• Variables de Salida• Instrucciones de Movimiento• Variables de Usuario• Condicionalidad• Variables de Entrada
― IN_X SENSOR_X
• Configuración de Sensores― SetSensorTouch(IN_X); 0 - 1― SetSensorLight(IN_X); 0 - 100― SetSensorSound(IN_X); 0 - 100― SetSensorLowspeed(IN_X); 0 - 1023 SensorUS(IN_X); 0 - 255
• Ciclos– while(condición){ while(1){} ,
acciones;}
– repeat(cantidad){acciones;
}
![Page 3: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/3.jpg)
Resumen estructuras de control
![Page 4: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/4.jpg)
if
• if( condición ){sentencias si se cumple condición;
}
![Page 5: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/5.jpg)
if-else• if( condición ){
sentencias si se cumple condición;}
else{sentencias si no se cumple condición;
}
![Page 6: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/6.jpg)
repeat
• repeat( cantidad ){sentencias que se repiten;
}
![Page 7: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/7.jpg)
while
• while( condición ){sentencias que se realizan mientras se cumple la
condición;}
![Page 8: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/8.jpg)
do-while
• do{sentencias que se repiten mientras se cumple la
condición;} while( condición );
![Page 9: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/9.jpg)
for
• for( instrucción previa ; condición ; instrucción de fin de ciclo ){
sentencias que se realizan mientras se cumple la condición;}
![Page 10: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/10.jpg)
Condicionalidad múltiple• Ya se ha visto la condicionalidad básica en dos direcciones que se
consigue con la instrucción if – else.• Se le dice en dos direcciones porque con esa estructura sólo se pueden
realizar dos tipos de acciones (verdadero/falso).
• En ocasiones también es necesario tomar decisiones de acuerdo a múltiples valores.
• En estos casos se pueden usar muchos if, if – else anidados, o una nueva estructura:
switch(valor){case valor_a :
acciones;break;
case valor_b :acciones;break;
case valor_c :acciones;break;
default :acciones;break;
}
![Page 11: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/11.jpg)
Condicionalidad múltiple• La estructura switch – case tiene la limitación de que no puede analizar
rangos de valores o condiciones lógicas como la estructura if – else, si no sólo valores discretos.
• Una forma sencilla de discretizar una variable es dividirla. Por ejemplo:
distance = SensorUS(IN_3)/64;switch(distance){
case 1 :acciones; // 64 - 127break;
case 2 :acciones; // 128 - 191break;
case 3 :acciones; // 192 - 255break;
default :acciones; // 0 – 63, etc.break;
}
![Page 12: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/12.jpg)
Diagrama de Flujo• La estructura switch – case se representa con el siguiente diagrama de
flujo:
![Page 13: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/13.jpg)
“until”-esperar hasta…
• until(“condición a esperar”);
Ejemplo: “Avanzar hasta chocar con pared” task main(){
SetSensorTouch(IN_1);
OnFwd(OUT_BC,50);until(SENSOR_1==1);Off(OUT_BC);
}
![Page 14: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/14.jpg)
Combinación de sensores• A veces es necesario
utilizar más de un sensor, ya que el entorno nos proporciona distintas excitaciones, donde esta información es imprescindible si es que queremos optimizar la labor del Robot.
• Por lo cual , es necesario conocer el uso de cada sensor ,considerando funciones además de cómo declararlo al momento de programar.
![Page 15: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/15.jpg)
LCD• El robot cuenta con una pantalla LCD (iquid crystal display) integrada que
es muy útil para poder visualizar los datos que el robot está procesando, indicar las acciones que realiza y depurar los programas.
• Para usar el LCD se cuenta con tres funciones básicas:
• Escribir textoTextOut(primer_pixel, LCD_LINEX, “Texto");
• Escribir valoresNumOut(primer_pixel, LCD_LINEX, variable);
• Limpiar la pantallaClearScreen();
• Se recomienda realizar una pausa (por ejemplo Wait(500);) entre cada refresco de pantalla para que los caracteres puedan ser leídos.
![Page 16: Sexta Clase Patricio A. Navarrete Junio 17 de 2011](https://reader036.vdocuments.co/reader036/viewer/2022062807/5665b42c1a28abb57c8fc6d1/html5/thumbnails/16.jpg)
Sexta Clase
Patricio A. NavarreteJunio 17 de 2011