Sexta Clase
Patricio A. Navarrete
Junio 17 de 2011
Resumen
•
•
•
•
•
Variables de Salida
Instrucciones de Movimiento
Variables de Usuario
Condicionalidad
Variables de Entrada
―
•
 SENSOR_X
Configuración de Sensores
―
―
―
―
•
IN_X
SetSensorTouch(IN_X);
SetSensorLight(IN_X);
SetSensorSound(IN_X);
SetSensorLowspeed(IN_X);
0-1
0 - 100
0 - 100
0 - 1023
Ciclos
–
while(condición){
acciones;
}
–
repeat(cantidad){
acciones;
}
while(1){} ,
 SensorUS(IN_X);
0 - 255
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 - 127
break;
case 2 :
acciones; // 128 - 191
break;
case 3 :
acciones; // 192 - 255
break;
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 texto
TextOut(primer_pixel, LCD_LINEX, “Texto");
•
Escribir valores
NumOut(primer_pixel, LCD_LINEX, variable);
•
Limpiar la pantalla
ClearScreen();
•
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. Navarrete
Junio 17 de 2011
Descargar

Sexta Clase