- Para esta sesión de programación grafica se deberá ensamblar un bonus model del Lego Mindstorm NXT 2.0 , el cual se denomina “Manty Robot”.
- Se hará uso de los sensores de contacto y ultrasonido.
- Una vez armado el robot se procederá a la programación el robot, usando la multiprogramación.
BREVE EXPLICACION DE
LA MULTIPROGRAMACIÓN:
- Se denomina multiprogramación a una técnica por la que dos o más procesos pueden alojarse en la memoria principal y ser ejecutados concurrentemente por el procesador o CPU.
- Con la multiprogramación, la ejecución de los procesos se va solapando en el tiempo a tal velocidad, que causa la impresión de realizarse en paralelo.
- Se trata de un paralelismo simulado, dado que la CPU sólo puede trabajar con un proceso cada vez . De ahí que, en rigor, se diga que la CPU ejecuta «concurrentemente» (no simultáneamente) varios procesos; en un lapso de tiempo determinado, se ejecutarán alternativamente partes de múltiples procesos cargados en la memoria principal.
ARMADO DEL MANTY
ROBOT:
- Como primer paso se procederá al armado del robot.
- Una vez armado el Manty Robot , procederemos a la desarrollo de la programación que está establecido en la práctica.
ACTIVIDAD:
- Se hará uso de variables el cual almacena datos para luego usarlos en el programa.
- Antes de programar lo que se hará es crear un módulo o bloque que sincronizará las patas del robot que están trabajando con los motores B y C para que haya movimiento hacia adelante, el bloque se llamará sincronización, específicamente el bloque sincronización realizará las siguientes instrucciones.
- Motor B:
Avanza hasta que el sensor de contacto sea pulsado.
- Motor B:
Avanza 180°.
- Motor C:
Avanza hasta que sensor de contacto sea pulsado.
- Motor C:
Detener.
- Para esta sesión el programa deberá realizar las siguientes instrucciones.
- PROCESO 1:
1. Variable
objeto=false.
2. Llamar a
módulo de sincronización.
3. Repetir:
3.1 Avanzar hasta
que variable objeto=true.
3.2 Generar
numero aleatorio entren 0 y 100.
3.3 Si numero
aleatorio es mayor que 50 entonces:
3.3.1 Girar a la derecha.
3.4 En caso
contrario:
3.4.1 Girar ala izquierda.
3.5 Variable
objeto=false.
Por siempre.
- PROCESO 2:
1. Repetir:
1.1 Movimiento
de orejas.
1.2 Repetir:
1.2.1 Movimiento
de orejas.
Hasta que
el sensor ultrasónico detecte un objeto a 50 cm.
1.3 Variable
objeto =true.
1.4 Movimiento
de orejas.
1.5 Repetir:
1.5.1 Esperar
1 segundo.
- El proceso 1 y 2 se ejecutarán concurrentemente, para
ello utilizaremos la multiprogramación.
- A continuación les mostraremos el programa.
EXPLICACIÓN
DEL PROGRAMA:
- En el proceso 1 que está en la parte superior realiza las siguientes instrucciones:
§ El programa
lo iniciamos dándole un valor a una variable a la variable objeto, le asignaremos el valor falso.
§ Como
siguiente paso haremos uso del bloque sincronización creado previamente que realizará movimiento del robot hacia adelante.
§ Dentro del
bucle :
-Haremos que
los motores BC avancen ilimitadamente
hasta que el la variable objeto de un valor verdadero.
- Después
creamos un bloque que producirá un numero aleatorio entre 1 y 100.
- Vemos un bloque de comparación que lo que hará es comparar si el numero producido
aleatoriamente es mayor que 50.
o Si es
verdad entonces haremos girar el robot a la derecha, usando los motores CB.
o En caso
contrario el robot girará hacia la izquierda, de igual manera que el anterior utilizaremos los motores CB.
- Asignamos a
la variable objeto el valor de falso.
§ Este bucle
se repetirá para siempre.
- En el proceso 2:
§ Dentro del
bucle:
- Vemos un
bloque de sonido que lo que hará es mandar un sonido.
- Haremos uso
del bloque de movimiento de orejas.
- La
instrucción anterior lo realizará hasta que el sensor ultrasónico detecte un
objeto a 50 cm.
- Le
asignamos a la variable objeto el valor de verdad.
- Nuevamente
utilizaremos el bloque de movimiento de orejas.
- Creamos un
bucle que realizara los siguiente pasos:
Ø Esperar 1
segundo hasta que variable objeto produzca un valor de falsedad.
§ Este bucle
se repetirá por siempre.
- A continuación les mostraremos el programa en ejecución.
- El cual tuvo algunos inconvenientes, que no ejecuta todas las
instrucciones.
CONCLUSIONES:
- En la actual sesión aprendimos a usar la
multiprogramación.
- Las variables fueron muy importantes para esta sesión
el cual nos produjo valores lógicos.
No hay comentarios:
Publicar un comentario