Quinta Clase
Patricio A. Navarrete
Septiembre 24 de 2011
Resumen
•
Variables de Salida
―
•
Instrucciones de movimiento
―
―
―
•
OnFwd(OUT_X,POWER);
Off(OUT_X);
RotateMotor(OUT_X,POWER,DEGREES);
- OnRev(OUT_X,POWER);
- Float(OUT_X);
- Wait(MILISECS);
Variables de Usuario
–
–
–
–
–
–
–
•
OUT_ABC
Definición: int nombre;
Asignación: nombre = 1;
Aritmética: Suma (+), Diferencia (-), Producto (*), División (/), Módulo (%)
Lógica: Not (!), And (&&), Or (||)
Comparación: Igual (==, !=), Desigual estricto (<, >), Desigual inclusivo (<=, >=)
Aleatoriedad: Random();
Constantes: #define nombre valor
Condicionalidad
–
if(condición){
acciones Sí;
}
else{
acciones No;
}
Variables de Entrada
•
•
•
El robot será capaz de conocer su entorno.
Los “Sensores” son recibidos a través de los 4 “puertos de entrada” del NXT.
Cada entrada está definida por un nombre de sistema:
–
–
–
–
•
•
•
Se puede conocer el estado real del sensor midiendo el valor de su variables de
entrada: SENSOR_X
Con esta información se pueden determinar las acciones a tomar a medida que
transcurre el programa.
El kit con el que se trabaja en las actividades prácticas cuenta con 4 sensores:
–
–
–
–
•
IN_1
IN_2
IN_3
IN_4
Sensor de Tacto (2)
Sensor de lumninosidad (1)
Sensor de sonido (1)
Sensor de distancia por ultrasonido (1)
Por ejemplo, si el Sensor de Tacto se encuentra conectado a la entrada IN_1, el valor
de su variable será “1” si el sensor está presionado o “0” si no lo está.
Configuración de Sensores
•
En lenguaje NXC se encuentran implementadas funciones que permiten ajustar los
parámetros de los dispositivos de entrada para que el sensor que tiene conectado
funcione correctamente.
•
Con las siguientes instrucciones se indica el tipo de sensor que está conectado para
que el NXT pueda hacerlo funcionar.
•
Sensor de Tacto
–
•
SENSOR_X: Valor de 0 a 100
SetSensorSound(IN_X);
SENSOR_X: Valor de 0 a 100
Sensor de Distancia por ultrasonido
–
•
SetSensorLight(IN_X);
Sensor de Sonido
–
•
SENSOR_X: Valor 0 ó 1
Sensor de Luminosidad
–
•
SetSensorTouch(IN_X);
SetSensorLowspeed(IN_X);
Protocolo I2C – Valor de 0 a 1023
Conversión a centímetros del ultrasonido
–
SensorUS(IN_X);
SENSOR_X: Valor de 0 a 255
Ciclos
•
Un ciclo, como lo indica su nombre, es una estructura que se repite según las
condiciones.
•
Similar a la condicionalidad, vista la clase anterior, pero en este caso la acciones se
realizan y se continúan realizando cuando se cumple la condición y se dejan de
realizar cuando la condición deja de cumplirse.
•
Se realiza mientras se cumple una condición:
– while( condición ){
}
•
acciones;
O se puede realizar una cantidad específica de veces:
– repeat( cantidad ){
}
acciones;
Diagramas de Flujo
•
Con las nuevas estructuras de control vistas en esta clase, se añaden nuevas formas de
diagramas de flujo a las alternativas de programas posibles.
•
Estructuras de control vistas:
– if(){}else{}
– while(){}
– repeat(){}
If
•
if( condición ){
instrucciones si se cumple condición;
}
If-Else
•
if( condición ){
instrucciones si se cumple condición;
}
else{
instrucciones si no se cumple condición;
}
While
•
while( condición ){
instrucciones que se realizan mientras se cumple la condición;
}
Repeat
•
repeat( cantidad ){
instrucciones que se repiten una cantidad determinada de veces;
}
Programación
•
Recordar : Condicionalidad
– if-else
•
Ciclos:
– repeat (catidad determinada)
– while (según variables)
•
Formato al escribir programas:
– Indentación (TAB)
– Comentarios (// ó /**/)
– Constantes (#define)
Programa
// Definicion de constantes
#define PW 50
#define FW 2000
#define RT 400
// Inicia programa
task main()
{
// Robot Avanza (1) : Encender Motores A y C adelante
OnFwd(OUT_AC, PW);
Wait(FW);
// Robot Gira (1) : Encender Motor A adelante y C atras
OnFwd(OUT_A, PW);
OnRev(OUT_C, PW);
Wait(RT);
// Robot Avanza (2) : Encender Motores A y C adelante
OnFwd(OUT_AC, PW);
Wait(FW);
// Robot Gira (2) : Encender Motor A adelante y C atras
OnFwd(OUT_A, PW);
OnRev(OUT_C, PW);
Wait(RT);
// Robot Detenido : Apagar Motores
Off(OUT_ABC);
}
// Termina programa
Quinta Clase
Patricio A. Navarrete
Septiembre 24 de 2011
Descargar

Quinta Clase