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

Programación Básica con “NQC”

  • Upload
    tien

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

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: - PowerPoint PPT Presentation

Citation preview

Page 1: Programación Básica con “NQC”

Programación Básicacon “NQC”

Pedro F. Toledo – Patricio Castillo15/08/2006

Page 2: Programación Básica con “NQC”

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.

Page 3: Programación Básica con “NQC”

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.

Page 4: Programación Básica con “NQC”

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.

Page 5: Programación Básica con “NQC”

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.

Page 6: Programación Básica con “NQC”

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

Page 7: Programación Básica con “NQC”

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

Page 8: Programación Básica con “NQC”

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.

Page 9: Programación Básica con “NQC”

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);

Page 10: Programación Básica con “NQC”

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);

Page 11: Programación Básica con “NQC”

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);

Page 12: Programación Básica con “NQC”

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

Page 13: Programación Básica con “NQC”

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)

Page 14: Programación Básica con “NQC”

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

Page 15: Programación Básica con “NQC”

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

Page 16: Programación Básica con “NQC”

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

Page 17: Programación Básica con “NQC”

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.

Page 18: Programación Básica con “NQC”

Programación Básicacon “NQC”

Pedro F. Toledo – Patricio Castillo15/08/2006