1 / 16

Sexta Clase

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

ozzy
Télécharger la présentation

Sexta Clase

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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; }

  3. Resumen estructuras de control

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

  5. if-else • if( condición ){ sentencias si se cumple condición; } else{ sentencias si no se cumple condición; }

  6. repeat • repeat( cantidad ){ sentencias que se repiten; }

  7. while • while( condición ){ sentencias que se realizan mientras se cumple la condición; }

  8. do-while • do{ sentencias que se repiten mientras se cumple la condición; } while( condición );

  9. for • for( instrucción previa ; condición ; instrucción de fin de ciclo ){ sentencias que se realizan mientras se cumple la condición; }

  10. 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; }

  11. 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; }

  12. Diagrama de Flujo • La estructura switch – case se representa con el siguiente diagrama de flujo:

  13. “until”-esperar hasta… • until(“condición a esperar”); Ejemplo: “Avanzar hasta chocar con pared” taskmain(){ SetSensorTouch(IN_1); OnFwd(OUT_BC,50); until(SENSOR_1==1); Off(OUT_BC); }

  14. 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.

  15. LCD • El robot cuenta con una pantalla LCD (iquidcrystaldisplay) 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.

  16. Sexta Clase Patricio A. Navarrete Junio 17 de 2011

More Related