1 / 18

Programación Básica con “NQC”

Programación Básica con “NQC”. Pedro F. Toledo – Patricio Castillo 15/08/2006. Entornos de programación. Los entornos de programación son los programas que se utilizan para escribir el código, ensamblarlo y compilarlo. Principalmente hay de 2 tipos:

tien
Download Presentation

Programación Básica con “NQC”

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. Programación Básicacon “NQC” Pedro F. Toledo – Patricio Castillo 15/08/2006

  2. Entornos de programación • Los entornos de programación son los programas que se utilizan para escribir el código, ensamblarlo y compilarlo. • Principalmente hay de 2 tipos: • Consola: Todo se maneja directamente con texto, no hay botones ni ninguna facilidad. Todo se ejecuta escribiendo líneas de comando. • Ventana: Este es el sistema mas amigable para escribir código. Dependiendo del modelo y la versión, todo se trabaja en una ventana de entorno Windows o parecido, las palabras reservadas son resaltadas y usa un formato con colores para indicar los diferentes detalles del código.

  3. Entorno de “NQC Edit” • “NQCEdit” será el programa que se utilizará a lo largo del curso para desarrollar, compilar y descargar programas a los “RCX” • La versión asociada al programa no es de la ventana donde se escribe. Esta asociado al archivo compilador “nqc.exe” que se encuentra en la misma carpeta que el ejecutable de la ventana.

  4. El Firmware • El Firmware a utilizar será el 0328, este fue escrito por “Lego Corporation”, y viene con el RIS 2.0 • El RIS es el programa entregado por el fabricante para programar los “RCX” en la versión infantil. Luego viene otro software llamado “Robolab”, y aunque este permite mayor capacidad de programación, no se compara con la programación por código ya que esta es programación bloque. Aún así, este programa también utiliza el mismo Firmware. • El Firmware determina el modo de funcionamiento de el RCX. Si lo comparamos con un computador normal, el Firmware equivale al Windows o Linux de nuestro computador de escritorio. Es decir el Firmware es el sistema operativo en este tipo de dispositivos que, aunque pequeños, no dejan de ser un computador.

  5. Botones del RCX y su función • Para el Firmware que utilizaremos los botones se comportan de la siguiente manera: • On-Off Permite encender o apagar el ladrillo • View Permite seleccionar la entrada o salida cuyo valor aparezca en la pantalla • Run Inicia el programa seleccionado • Prgm Permite seleccionar cual de los programas se va a ejecutar • Los botones solo funcionan de esta manera cuando el Firmware cargado está diseñado para que funcionen de esa manera. Dependiendo del Firmware se puede hacer que los botones realicen funciones diferentes.

  6. Estructura fundamental de un programa task main() { int x = 5; int y = 6; y=x-y; x++; } • Comentarios • // Todo lo que se escriba al lado derecho de la doble barra hasta el retorno de caro (Siguiente línea) no será considerado como parte del código del programa • /* …… */ Todo lo que se encuentra entre el primer símbolo y el segundo símbolo es considerado comentario, esto incluye saltos de carro

  7. Funcionamiento de sensores • Como ya habíamos comentado la clase anterior, dentro de las variables de sistema está el valor de los sensores. • Nombres de las variables de sistema que entregan los datos de los sensores: • SENSOR_1 • SENSOR_2 • SENSOR_3

  8. Funcionamiento de sensores • Dependiendo del tipo de sensor se tendrá diferentes requerimientos. • Dependiendo del tipo de sensor podremos obtener sus datos de diferentes maneras numéricas, algunas mas prácticas que otras en ciertos ámbitos. • Por los dos puntos anteriores, los sensores deben ser programados para que su funcionamiento sea realmente previsible, esta programación hace variar 2 factores: • Utilización de potencia: Algunos sensores requieren encender una luz, esto significa que consumen más energía que uno que no la enciende. Por lo anterior, uno de los factores es el consumo de potencia por parte del sensor. • Tipo de entrega de dato: Los sensores indican su valor a una zona de la memoria, esto significa que nosotros podemos interpretar el valor de esa zona de memoria como queramos.

  9. Modos de los sensores • El modo de los sensores dice como interpretar los datos de la dirección de memoria, los principales tipos son: • SENSOR_MODE_RAW • SENSOR_MODE_BOOL • SENSOR_MODE_PERCENT • Para cambiar el modo de interpretación se utiliza la siguiente sentencia: • SetSensorMode(Sensor,Modo_de_sensor);

  10. Tipos de sensores • Los tipos de sensores indican qué sensor es el que está conectado y de ello el sistema sabe si tendrá que suministrarle potencia o no. Los tipos de sensores que veremos serán: • SENSOR_TYPE_NONE • SENSOR_TYPE_TOUCH • SENSOR_TYPE_LIGHT • Para cambiar un tipo de sensor se utiliza: • SetSensorType(Sensor,Tipo_de_sensor);

  11. Configuraciones de sensores • El sistema de los RCX trae una manera predeterminada de funcionamiento de los sensores, por lo que toda la configuración de un sensor puede definirse con: • SENSOR_TOUCH • SENSOR_LIGHT • Lo anterior, utilizando la sentencia: • SetSensor(Sensor,Clase_de_sensor);

  12. Funcionamiento de los actuadores • Como ya habíamos comentado la clase anterior, dentro de las variables de sistema está el estado de los actuadores. • Nombres de las variables de sistema que controlan actuadores: • OUT_A • OUT_B • OUT_C

  13. Programación de características • Los motores pueden girar en un sentido o en el otro, esto también se lo debemos indicar al RCX para que los motores se muevan como requerimos. Para hacer esto se utilizan las siguientes sentencias: • Rev(Salida) La salida esta programada para girar hacia la derecha • Fwd(Salida) La salida está programada para girar hacia la izquierda • Toggle(Salida) La salida cambia el sentido de giro que tiene programado, es decir, si estaba programada para girar hacia la derecha ahora lo hará a la izquierda, y en caso de que esté programada hacia la derecha girará hacia la izquierda • SetDirection(Salida,Dirección) A la salida seleccionada se le indica en dirección si girará a la Rev (derecha) o Fwd (Izquierda)

  14. Programación de características • Otra característica (y una de las mas importantes) es si el motor está encendido o no, ya que aunque esté programado para girar en un sentido, si no esté encendido no girará. Por lo anterior están las siguientes 2 sentencias: • On(Salida) Enciende la salida • Off(Salida) Apaga la salida

  15. Insertar tiempos de espera • Va a haber momentos en los que simplemente se debe esperar a que los motores giren cierta cantidad de tiempo, por ello durante ese tiempo no se debe procesar ninguna línea de código aparte de esperar. Esto se programa con la simple línea: • Wait(Tiempo) Se espera la cantidad e tiempo indicada. La unidad que se utiliza es la centésima de segundo

  16. Funciones combinadas • Se quiere por ejemplo que un motor gire a la derecha por 5 segundos por lo que se escribe: Rev(OUT_A); On(OUT_A); Wait(500); Off(OUT_A); • La cuatro líneas anteriores se pueden resumir en simplemente una: OnRev(OUT_A,500) • Obviamente también está para los otros sentidos, por lo que se tiene las siguientes funciones combinadas: • OnFor(Salida, Tiempo) enciende la salida por la cantidad de tiempo • OnRev(Salida) enciende la salida hacia la derecha por la cantidad determinada de tiempo • OnFwd(Salida) enciende la salida hacia la izquierda pro la cantidad determinada de tiempo

  17. Torque de los motores • Cuando a un motor se le enciende con mayor o menor voltaje, esto significa que este motor tendrá mayor o menor fuerza al girar. Esto no significa que girará mas rápido o mas lento, sino con mayor o menor fuerza, lo que en ciertos casos se puede transformar en mayor o menor de velocidad. Aun así, la manera de determinar el torque de los motores es con la sentencia: • SetPower(Salida,Poder) Poder debe ser un numero de 1 a 7 que se asignará a la salida. Electrónicamente esto significa que el motor se encenderá con menor voltaje (mientras poder esté mas cercano a 1) y con mayor voltaje mientras este esté mas cercano a 7.

  18. Programación Básicacon “NQC” Pedro F. Toledo – Patricio Castillo 15/08/2006

More Related