La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Lección 6: Variables Soluciones de Programación RoboLab a NQC

Presentaciones similares


Presentación del tema: "Lección 6: Variables Soluciones de Programación RoboLab a NQC"— Transcripción de la presentación:

1 Lección 6: Variables Soluciones de Programación RoboLab a NQC

2 Ejercicio 1 Este programa requiere dos sensores de contacto.
El programa “recuerda” cuantas veces ha sido presionado el primer contacto. Al presionar el segundo contacto, el RCX emite sonidos el doble del número de veces que el primer sensor ha sido presionado.

3 Ejercicio 1: Solución Robolab
task monitorFirstTouch() { int numberOfTouches = 0; numberOfTouches++; until (SENSOR_1 == 0); while (true) { start monitorFirstTouch; task main() { } } until (SENSOR_1 == 1); } PlaySound(SOUND_FAST_UP); } until (SENSOR_3 == 1); repeat (numberOfTouches) { SetSensor(SENSOR_1, SENSOR_TOUCH); SetSensor(SENSOR_3, SENSOR_TOUCH); numberOfTouches *= 2;

4 Ejercicio 1 Esta es una variable global que
almacena el número de contactos int numberOfTouches; task monitorFirstTouch() { while (true) until (SENSOR_1 == 1); numberOfTouches++; until (SENSOR_1 == 0); } “global” significa que puede ser compartida entre distintas tareas Esta tarea monitorea el número de veces que el sensor 1 es accionado. Esto agrega 1 al número de contactos Esta línea asegura que sólo contamos los verdaderos contactos

5 Ejercicio 1: Solución NQC
task main() { SetSensor(SENSOR_1, SENSOR_TOUCH); SetSensor(SENSOR_3, SENSOR_TOUCH); start monitorFirstTouch; until (SENSOR_3 == 1); numberOfTouches *= 2; repeat (numberOfTouches) PlaySound(SOUND_FAST_UP); } stop monitorFirstTouch; Hace partir la tarea de monitoreo Multiplica por 2 el número de contactos Esto detiene la otra tarea antes de salir del programa.

6 Ejercicio 2 Enciende el motor A para que avance a nivel de potencia 1 por un segundo, después a nivel 2 por un segundo, etc. Sigue ese patron hasta llegar a nivel 5; entonces, detiene el motor. Use una variable para almacenar el nivel de potencia.

7 Ejercicio 2: Solución NQC
task main() { int powerLevel = 0; Fwd(OUT_A); repeat (5) SetPower(OUT_A, powerLevel); OnFor(OUT_A, 100); powerLevel++; } Esta variable almacena el nivel de potencia; se inicializa en 0. Esto ajusta el nivel de potencia del motor Incrementa en 1 el nivel de potencia cada vez que se ejecuta el lazo.

8 Ejercicio 3 Al partir el programa se almacena el valor de luz. Luego, tras un retardo de 8 segundos, si el sensor de luz lee un valor mayor que el almacenado, se ejecuta un sonido creciente. Si el valor que se lee es menor o igual al almacenado, se ejecuta un sonido descendente.

9 Ejercicio 3: Solución RoboLab
SetSensor(LIGHT, SENSOR_LIGHT); if (LIGHT > lightLevel) { PlaySound(SOUND_UP); } Wait(800); task main() { } else { PlaySound(SOUND_DOWN); } int lightLevel; lightLevel = LIGHT;

10 Ejercicio 3: Solución NQC
#define LIGHT SENSOR_1 task main() { int lightLevel; SetSensor(LIGHT, SENSOR_LIGHT); lightLevel = LIGHT; Wait(800); if (LIGHT > lightLevel) { PlaySound(SOUND_UP); } else { PlaySound(SOUND_DOWN); } Almacena la lectura del sensor en la variable lightLevel Note el signo igual único!


Descargar ppt "Lección 6: Variables Soluciones de Programación RoboLab a NQC"

Presentaciones similares


Anuncios Google