sexta clase patricio a. navarrete junio 17 de 2011

16
Sexta Clase Patricio A. Navarrete Junio 17 de 2011

Upload: eberardo-altamirano

Post on 22-Jan-2016

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sexta Clase Patricio A. Navarrete Junio 17 de 2011

Sexta Clase

Patricio A. NavarreteJunio 17 de 2011

Page 2: Sexta Clase Patricio A. Navarrete Junio 17 de 2011

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

Resumen estructuras de control

Page 4: Sexta Clase Patricio A. Navarrete Junio 17 de 2011

if

• if( condición ){sentencias si se cumple condición;

}

Page 5: Sexta Clase Patricio A. Navarrete Junio 17 de 2011

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

repeat

• repeat( cantidad ){sentencias que se repiten;

}

Page 7: Sexta Clase Patricio A. Navarrete Junio 17 de 2011

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

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

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

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

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

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

“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

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

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

Sexta Clase

Patricio A. NavarreteJunio 17 de 2011