Controladora Logo

Anuncio
--
Capítulo 1:
PRIMITIVAS Y PROCEDIMIENTOS
3.1. EL LENGUAJE WIN-LOGO
WIN-LOGO
PRIMITIVAS
PROCEDIMIENTOS
APLICACIONES
-El lenguaje de programación Logo fue creado por Seymout
Papert (matemático del MIT) en los años 60 como consecuencia
del fracaso escolar del alumnado. En colaboración con Piaget,
pedagogo suizo realizó este lenguaje con un planteamiento
pedagógico, de manera que hoy es un material didáctico de
primera magnitud.
Cuenta con órdenes muy sencillas (primitivas) que pueden crear
pequeños programas (procedimientos), que se pueden usar con
posterioridad como nuevas órdenes. Esta peculiaridad hace que
se pueda realizar un aprendizaje progresivo sin conocimientos
previos de informática
.
Como se indicaba en la sección anterior, para trabajar con
la controladora cargamos el fichero CONTROLA.LOG. Este
fichero contiene los comandos y órdenes del micromundo
de control. En el momento en que el fichero CONTROLA.
LOG se ha cargado en la memoria del ordenador, se
enciende el led situado debajo de ACT, en el frontal de la
controladora, como señal de buen funcionamiento.
Como se indicaba en la sección anterior, para trabajar con la controladora cargamos el fichero
CONTROLA.LOG. Este fichero contiene los comandos y órdenes del micromundo de control. En el momento
en que el fichero CONTROLA. LOG se ha cargado en la memoria del ordenador, se enciende el led situado
debajo de ACT, en el frontal de la controladora, como señal de buen funcionamiento.
Las primitivas son las órdenes escritas en la pantalla de
trabajo, que es el sector inferior izquierdo de la presentación
del programa Winlogo. Las primitivas se deben escribir en
mayúsculas.
.
En la mayoría de los casos, se requiere la composición de
varias primitivas para que se ejecute la orden deseada y
además puede que queramos conservarlas para su uso
posterior, para ello se elaboran pequeños subprogramas que
son composiciones de varias primitivas y los llamamos
procedimientos.
Para la creación de estos procedimientos se comienza en la primera línea con la primitiva «PARA», seguida de
un espacio y a continuación el nombre que se otorgue al procedimiento (que debe ser distinto del de las
primitivas). A continuación se escribirán las sucesivas primitivas con los valores correspondientes, y una vez
terminadas, en la última línea se pone la primitiva «FIN» exclusivamente.
El procedimiento así creado será válido en tanto el ordenador esté con el programa Logo cargado y se perderá al
apagarlo. Para guardarlas para su uso posterior, debes acudir a la barra de menú «Edición», seleccionar
«Seleccionar todo», a continuación «copiar». Luego seleccionamos la pantalla de Edición, y a continuación
«pegar» y finalmente se selecciona en la barra de menús «Archivos» y «Grabar».
Una característica muy útil de los lenguajes de alto nivel, (y Logo es uno de ellos) es la recursividad, que es la
posibilidad que ofrece un programa de llamarse a sí mismo en un bucle sin fin. Esto se logra escribiendo el
nombre del procedimiento en la última línea del mismo, esta línea se denomina línea de recursividad.
Las estructuras recursivas se utilizan muy a menudo en los programas de robótica. En gran cantidad de ocasiones
las máquinas, además de ejecutar acciones habituales, están alertas ante cualquier cambio que pueda producirse
gracias a su programación. Dentro de su programa de funcionamiento, se incluyen programas recursivos que se
activan debido a los cambios en las condiciones de la máquina.
Un primer problema por resolver en un procedimiento
recursivo, es encontrar la forma de abandonar su
ejecución infinita del procedimiento sin pulsar la tecla
[ESC]. se puede abandonar dicha ejecución mediante
el uso de la sentencia: SI TECLA? [ALTO]
Capítulo 2:
PRIMITIVA
PRIMITIVAS Y PROCEDIMIENTOS
ACCION
M1_"D
M1_"I
• El motor nº 1 gira a la derecha
• El motor nº 1 gira a la izquierda
M1_"P
• El motor nº 1 se para
M?
M_:L
CONECTA_1
DESCONECTA_1
CONECTADOS?
ESPERA_100
SD?
SD:NU
OBSERVACIONES
• Estas primitivas son las
que se emplean para el
funcionamiento de
bombillas y motores
• Da información del estado (D-I-P)
del giro de los cinco motores
• Permite controlar los 5 motores
con una sola primitiva
• Es una primitiva equivalente a
M1_D
• Es una primitiva equivalente a
M1_P
• Devuelve una lista con el estado
0/1 de las parejas de salidas de
• Nos da cuenta del sentido
motores( S1-S2, S3-S4, S5-S6, S7- de giro
S8,S9-S10)
• Si escribimos: M1_»D
• Indica que la acción se ejecute
ESPERA_200_M1_»P
durante un periodo de 100 (cada
• El motor girará hacia la
acción se corresponde
derecha 2 segundos y se
aproximadamente con 1 segundo)
para.
• Lee las 10 entradas digitales y
• Esta misma acción se
devuelve (en la Ventana de textos) puede realizar también con la
una lista de 10 elementos, que
primitiva ESTADO
indican el estado 0/1 de cada una
de ellas.
• Lee el valor de una entrada
digital, indicando su número (:num
ES "HOLA
del 1 al 10)
• Escribe la palabra que viene
detrás de las comillas
• Escribe el valor de la variable :N
ES :N
ES_SD1
• Nos describe en la pantalla de
texto si un sensor digital está
activado o desactivado
SI_SD1_=_1 [M1 "P]
• Si el sensor digital nº 1 está
activado
SAW
SAX
SAY
SAZ
SA?
ES_SAX
SI_SAX_>_2.42[M1_D]
SI_SAX_<_2.4[M1_"I]
• Da el valor de la entrada
analógica conectada a IN0
• Da el valor de la entrada
analógica conectada a IN1
• Da el valor de la entrada
analógica conectada a IN2
• Da el valor de la entrada
analógica conectada a IN3
• Devuelve el valor de las 4
entradas analógicas
• Nos describe en la pantalla de
texto el valor que tiene un sensor
analógico en un momento
determinado
• Si el sensor analógico X > 2.42 el
motor nº 1 gira a la derecha
Si el sensor analógico X<2.4 el
motor nº 1 gira a la izquierda
• Cuando está activado
aparece en la ventana de
textos el valor (1). Si está
desactivado, aparece el valor
(0)
• Esta primitiva nunca puede
ir así, hay que decirle lo que
se pretende. Por ejemplo:
SI_SD1_=_1[M1_P]
• Si el sensor digital nº 1 está
activado, entonces el motor
nº 1 se para.
• SAX, SAY, SAW, SAZ, son
las variables que contienen
las respectivas entradas
analógicas introducidas
• Varía el valor según mayor
o menor luminosidad o
temperatura
• Al activarse el
procedimiento EMPEZAR
éste valor es 0 (2 V)
• Da un valor a la salida analógica • Puede tomar valores entre
ACELERA:NUM
aplicada al motor
0 y 15 (:NUM )
• Acelera el funcionamiento del
• El motor nº 5 acelera
M5_D_ACELERA_10_ESPERA200
motor nº 5
durante 2 segundos
• Nos indica el inicio de un
• Ha de ir precedido de una
PARA
procedimiento
palabra
• A continuación se deben
• Nos indica el principio del
PARA_MOTOR
escribir las primitivas del
procedimiento MOTOR
procedimiento
• Nos indica el final de un
FIN
procedimiento
• Pone todas las salidas a 0 y
• Detiene todo el
APAGA
desactiva la controladora.
funcionamiento del sistema
• Repite lo escrito a continuación
• X puede tomar valores
REPITE_X
entre corchetes X veces
1,2,3,...
• Sirve para detener la ejecución
• Solo actúa inserta en un
ALTO
del procedimiento en curso
procedimiento
• El procedimiento recursivo se
SI TECLA? [ALTO]
detiene cuando pulsamos cualquier
tecla del teclado
HAZ "N34
• Da a la variable N el valor 34
VALOR?
• Devuelve el valor (0-15) de la
salida analógica.
HAZ "N:N+1
• Aumenta en 1 el valor de la
variable N
2.1. PROCEDIMIENTOS
1.
Movimiento de un motor o funcionamiento de una bombilla de forma indefinida.
PROCEDIMIENTO
PARA MOTOR
M1 "D
FIN
ACCIONES
1.- Inicio del procedimiento.
2.- El motor nº 1 se pone a girar hacia la derecha.
3.-Como no se le ha indicado cuanto tiempo queremos que
funcione, el motor está funcionando indefinidamente.
2. Cómo parar el motor o apagar la bombilla que está funcionando de forma indefinida
PARA_MOTOR
M1_"D
FIN
MOTOR
APAGA
1.- Inicio del procedimiento.
2.- El motor nº 1 se pone a girar hacia la
derecha.
3.- Al escribir APAGA y pulsar INTRO el
motor se para.
Esta acción también se puede realizar pulsando la
tecla ESCAPE
3. Cómo hacer que un motor o una bombilla esté funcionado durante un tiempo
determinado.
PARA_MOTOR1
M1_"D_ESPERA_500
M1_"P
1.- Inicio del procedimiento.
2.- El motor nº 1 está funcionando durante 5
segundos y se para.
FIN
4. Cómo hacer que un motor o una bombilla funcionen de forma intermitente
PARA_MOTOR1
M1_"D_ESPERA_500
M1_"P_ESPERA_100
MOTOR1
FIN
1.- Inicio del procedimiento.
2.- El motor nº 1 está funcionando durante 5 segundos y se
para durante un segundo.
3.- El proceso comienza de nuevo (para detener el proceso
hemos de hacer como se indica en el procedimiento 2).
5. Cómo hacer que un motor varíe el sentido de giro
PARA CAMBIA_GIRO
1.-El motor gira hacia la derecha 5 segundos
M1_"D_ESPERA_500
M1_"P
M1_"I_ESPERA 500
M1_"P
se para y gira hacia la izquierda otros 5
segundos
FIN
6. Cómo poner en marcha un motor mediante un pulsador conectado a una entrada digital
PARA_INICIARGIRO
SI_SD1=1 [M1_"D
ESPERA_500_M1_"P]
FIN
1º Si se acciona el pulsador conectado a la
entrada digital 1 el motor comienza a girar a
la derecha y a los 5 segundos se para
7. Cómo parar un motor usando una tecla cualquiera del ordenador
PARA_PARAR
M1_"D
SI_TECLA? [ALTO ]
FIN
1º El motor comienza a girar a la derecha
2º Pulsando cualquier tecla del ordenador el
motor se para
8. Cómo variar la velocidad de un motor usando las salidas analógicas
PARA VELOC_MOTOR
M5_D ACELERA_ 0
ESPERA_500
ACELERA_3
ESPERA_500
ACELERA_1
M5_"P
FIN
1.-El motor gira hacia la derecha durante 5
segundos a la velocidad mínima, aumenta su
velocidad permaneciendo en ella durante
otros 5 segundos. Disminuyendo el número
de la primitiva acelera la velocidad se reduce
y posteriormente se para.
APLICACIONES
1.
Ascensor entre 2 pisos
1º. Procedimiento de subida
PARA SUBE
M1 "D ESPERA 500 M1 "P
FIN
2º. Procedimiento de bajada:
PARA BAJA
M1 "I ESPERA 500 M1 "P
FIN
3º. Unión de los dos procedimientos utilizando 2 pulsadores de llamada, uno para cada piso
(conectados a las entradas digitales y a + 5Vcc)
2. Móvil con dos motores
Si los motores situados en ambas ruedas giran a la vez en el mismo sentido, el móvil irá adelante
o atrás según el sentido de giro.
• Si solo gira un motor, el móvil se desplazará hacia el lado contrario del motor que gira.
• Vamos a controlar el movimiento del móvil utilizando cuatro pulsadores cada uno conectado a
una entrada digital
El procedimiento global que controla el móvil sería
Los cuatro procedimientos que controlan el movimiento del móvil son los siguientes:
PARA ADELANTE
M1 "D M2 "D ESPERA 200
M1 "P M2 "P
FIN
PARA IZQUIERDA
M1 "D ESPERA 200 M1 "P
FIN
PARA ATRAS
M1 "I M2 "I ESPERA 200
M1 "P M2 "P
FIN
PARA DERECHA
M2 "D ESPERA 100 M2 "P
FIN
5. Control de un semáforo
La secuencia será verde, ámbar, rojo y vuelta al verde
El procedimiento semáforo queda como sigue
.
PARA VERDE
M1 "I ESPERA 100 M1 "P
FIN
PARA ROJO
M2 "I ESPERA 100 M2 "P
FIN
PARA AMBAR
M1 "D ESPERA 20 M1 "P
FIN
Estos son los procedimientos que sirven para
encender cada una de las bombillas
EJERCICIOS
1. Control de 2 semáforos en cruce
Habrá que modificar los procedimientos
VERDE, AMBAR y rojo para añadir el segundo
semáforo
.
• El funcionamiento es el siguiente: si el primero está en verde, el segundo está en rojo, después
el primero pasa a ámbar, permaneciendo el segundo en rojo.
• Al terminar el periodo de ámbar del primer semáforo el segundo termina de estar en rojo,
pasando posteriormente el primer semáforo a rojo y el segundo a verde y así sucesivamente
Documentos relacionados
Descargar