Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | hakeem-sampson |
View: | 36 times |
Download: | 0 times |
Resumen• Variables de Salida
― OUT_ABC
• Instrucciones de movimiento― OnFwd(OUT_X,POWER); - OnRev(OUT_X,POWER);― Off(OUT_X); - Float(OUT_X);― RotateMotor(OUT_X,POWER,DEGREES); - Wait(MILISECS);
• Variables de Usuario– 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:
– IN_1– IN_2– IN_3– IN_4
• 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:– 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– SetSensorTouch(IN_X); SENSOR_X: Valor 0 ó 1
• Sensor de Luminosidad– SetSensorLight(IN_X); SENSOR_X: Valor de 0 a 100
• Sensor de Sonido– SetSensorSound(IN_X); SENSOR_X: Valor de 0 a 100
• Sensor de Distancia por ultrasonido– 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-Else• if( condición ){
instrucciones si se cumple condición;
}
else{
instrucciones si no se cumple condición;
}
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 programatask 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