sexta clase patricio a. navarrete junio 17 de 2011

Post on 22-Jan-2016

217 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sexta Clase

Patricio A. NavarreteJunio 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;

}

Resumen estructuras de control

if

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

}

if-else• if( condición ){

sentencias si se cumple condición;}

else{sentencias si no se cumple condición;

}

repeat

• repeat( cantidad ){sentencias que se repiten;

}

while

• while( condición ){sentencias que se realizan mientras se cumple la

condición;}

do-while

• do{sentencias que se repiten mientras se cumple la

condición;} while( condición );

for

• for( instrucción previa ; condición ; instrucción de fin de ciclo ){

sentencias que se realizan mientras se cumple la condición;}

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;

}

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;

}

Diagrama de Flujo• La estructura switch – case se representa con el siguiente diagrama de

flujo:

“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);

}

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.

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.

Sexta Clase

Patricio A. NavarreteJunio 17 de 2011

top related