Publicado el 21 de Abril del 2018
811 visualizaciones desde el 21 de Abril del 2018
685,3 KB
13 paginas
Creado hace 14a (09/12/2010)
19.2. PRIMITIVAS ORIENTADAS A LA RED
193
19.2. Primitivas orientadas a la red
xLogo dispone de 4 primitivas que permiten comunicarse a través de una red: escuchatcp,
ejecutatcp, chattcp y enviatcp.
En los ejemplos siguientes, mantendremos el esquema de red de la subsección anterior.
escuchatcp: esta primitiva es la base de cualquier comunicación a través de la red.
No espera ningún argumento. Permite poner al ordenador que la ejecuta a la espera
de instrucciones dadas por otros ordenadores de la red.
ejecutatcp: esta primitiva permite ejecutar instrucciones sobre otro ordenador de
la red.
Sintaxis: ejecutatcp palabra lista → La palabra indica la dirección IP o el nom-
bre del ordenador de destino (el que va a ejecutar las órdenes), la lista contiene las
instrucciones que hay que ejecutar.
Ejemplo: desde el ordenador liebre, deseo trazar un cuadrado de lado 100 en el otro
ordenador. Por tanto, hace falta que desde el ordenador tortuga ejecute la orden
escuchatcp. Luego, desde el ordenador liebre, ejecuto:
ejecutatcp "192.168.2.2 [repite 4 [avanza 100 giraderecha 90]]
o
ejecutatcp "tortuga [repite 4 [avanza 100 giraderecha 90]]
chattcp: permite chatear entre dos ordenadores de la red, abriendo una ventana en
cada uno que permite la conversación.
Sintaxis: chattcp palabra lista → La palabra indica la dirección IP o el nombre
del ordenador de destino, la lista contiene la frase que hay que mostrar.
Ejemplo: liebre quiere hablar con tortuga.
tortuga ejecuta escuchatcp para ponerse en espera de los ordenadores de la red.
liebre ejecuta entonces: chattcp "192.168.1.2 [buenos días].
Una ventana se abre en cada uno de los ordenadores para permitir la conversación
enviatcp: envía datos hacia un ordenador de la red.
Sintaxis: enviatcp palabra lista → La palabra indica la dirección IP o el nom-
bre del ordenador de destino, la lista contiene los datos que hay que enviar. Cuando
xLogo recibe los datos en el otro ordenador, responderá Si , que podrá asignarse a
una variable o mostrarse en el Histórico de comandos.
194
CAPÍTULO 19. UTILIZACI ÓN DE LA RED CON XLOGO
Ejemplo: tortuga quiere enviar a liebre la frase "3.14159 casi el número pi".
liebre ejecuta escuchatcp para ponerse en espera de los ordenadores de la red.
Si tortuga ejecuta entonces: enviatcp "liebre [3.14159 casi el número pi],
liebre mostrará la frase, pero en tortuga aparecerá el mensaje:
Qué hacer con [ Si ] ?
Deberíamos escribir:
es enviatcp "liebre [3.14159 casi el número pi]
o
haz "respuesta enviatcp "liebre [3.14159 casi el número pi]
En el primer caso, el Histórico de comandos mostrará Si, y en el segundo "respuesta
contendrá la lista [ Si ], como podemos comprobar haciendo
es lista? :respuesta
cierto
es :respuesta
Si
Con esta primitiva se puede establecer comunicación con un robot didáctico a través
de su interfaz de red. En este caso, la respuesta del robot puede ser diferente, y se
podrán decidir otras acciones en base al contenido de :respuesta.
Un pequeño truco: lanzar dos veces xLogo en un mismo ordenador.
En la primera ventana, ejecuta escuchatcp.
En la segunda, ejecuta
ejecutatcp "127.0.0.1 [repite 4 [avanza 100 giraderecha 90]]
¡Así puedes mover a la tortuga en la otra ventana! (¡Ah sí!, esto es así porque 127.0.0.1
indica tu dirección local, es decir, de tu propio ordenador)
19.3. Robótica
Desde 2006, xLogo es capaz de comandar una interfaz externa para robótica, (y así
se presentó en el congreso Cafeconf - Aulas Libres). Las primitivas de comunicación por
red que acabamos de ver, además de ser utilizadas para la tareas grupales en red, chat,
comandar la tortuga en una PC desde otra PC, etc. permiten experimentar en robótica.
Me duele reconocer que mucho del trabajo realizado por Marcelo en este área se nos ha
ido con él, pero intentaré explicar las cosas de forma lo bastante clara para que cualquiera
pueda seguir el tema sin problemas.
Es aquí más que en ningún otro sitio del curso, donde agradeceré cualquier ayuda y/o
corrección que usted, lector o lectora, sea capaz de proporcionar.
19.3. ROB ÓTICA
19.3.1. Presentación
195
Prólogo: Prof. María Cristina Moreno.
En los libros de ciencia ficción, el escritor, como un alquimista, le dió vida a los robots que
hoy se incorporan a nuestra vida cotidiana; desde una simple cafetera, hasta el Mars Rover.
El objetivo es que tecnología y educación recorran juntas el camino hacia el futuro.
La propuesta es lograr que en casa y en la escuela se construyan y manejen pequeños robots
didácticos.
Con estas premisas, Marcelo Duschkin nos dejó el proyecto Mi Primer Robot, basado
en una interfaz electrónica simple y económica, TortuRob, que todos pueden construir
libremente, al ser liberada bajo Licencia Creative Commons.
19.3.2. La electrónica
El currículo de la asignatura de Tecnología en la Enseñanza Secundaria nos presen-
ta un bloque de control de procesos y robótica, pero habitualmente no se acompaña de
una dotación adecuada en lo referente al material necesario para experimentar en el taller.
Lo más habitual es aprovechar las tarjetas controladoras antiguas (tipo Inves, Enconor,
CNICE, ladrillos Lego,. . . ), con el problema que ello conlleva: su incompatibilidad con los
sistemas Windows actuales. Por otro lado, tampoco es raro el caso de disponer de pocas
unidades de los equipos citados, lo que añade un sobrecoste económico a la asignatura.
Nuestra propuesta de interfaz electrónica es el proyecto TortuRob.
El proyecto TortuRob
Es un circuito basado en un microprocesador PIC16F628A, que recibe comandos desde el
PC, y contiene puertos de entrada y salida para controlar una mecánica de robot. También
están incluídos 4 pulsadores y cuatro LEDs, con el objeto de usarlos en la etapa de aprender
a usar el sistema. De esta manera, las primeras pruebas no necesitan de una mecánica a
controlar.
196
CAPÍTULO 19. UTILIZACI ÓN DE LA RED CON XLOGO
La placa es de reducidas dimensiones (9,5 x 7 cm) y es muy fácil de armar por el aficionado
a la electrónica. Los detalles técnicos para su construcción pueden descargarse de:
http://downloads.tuxfamily.org/xlogo/robotica/TortuRob.zip
+11
+5
JK1
1N4007
+
D4
FU1
7805
.1
C10
9−12 Vcc
470/25
C2
+5
10K
R7 R8 R9 R10
Diodos: 1N4148
R3
1K
2N2222
K
0
0
1
2
R
+
100uf
C1
D2
D3
RX
2
3
Gnd
5
D1
TX
DB9−H
R4
SI !!! positivo a masa
2K2
1K5
R5
+5
R6
4K7
BC327
U1 C/ZOCALO
6
17
RA0
RB0
18
1
2
3
16
15
5
RA1
RA2
RA3
RA4
16F84
RB1
RB2
RB3
RB4
RB5
RB6
OSC1
RB7
VCC
OSC2
GND
/MCLR
7
8
9
10
11
12
13
14
4
+5
K
0
1
5
1
R
C4
C3
XTAL
8MHz
22pf
10uf/TANT
+
C9
1K
R11
R12
R13
R14
.1
C6
C5
C7
C8
+5
+11
7
6
1
2
3
4
5
s/c
1
2
3
4
5
6
7
R1
220
BZ1
+11
SW1
SW2
SW3
SW4
C11
.1
1
2
3
4
5
6
7
8
9
U2
s/c
2003
8
0
0
2
2
2
2
R16 R17 R18 R19
RO
VE
AM
AZ
Linux
Powered
Archivo
torturob1.fig
Rev.
2
Titulo
TORTUROB 1
INTERFASE PARA XLOGO
M.D.
02/07/07
Autor
Obs.
Fecha
Hoja de
La placa tiene interfaz serie, por ser el sistema más económico y sencillo, pero como
xLogo utiliza la conexión ethernet, es necesario hacer algún tipo de conversión. Lo más
simple es una conversión por software. En Linux puede utilizarse un script Tcl/Tk liberado
bajo licencia GPL:
http://downloads.tuxfamily.org/xlogo/robotica/tcptty-es.zip
que se ejecuta “por detrás” (background ) de xLogo.
Por desgracia, la versión en Visual Basic para Windows no es GPL y no puede proporcio-
narse un enlace al mismo (por razones obvias).
La otra solución es utilizar un módulo de hardware externo al PC, es decir, un convertidor
ethernet/rs232 de los hay muchos en el mercado. Esta solución, por supuesto, es más
cara, pero tiene una aplicación interesante:
En un aula con muchos ordenadores en red, se coloca un sólo módulo convertidor
con el robot, y cualquier alumno lo comanda desde su puesto.
Finalmente, decir que tiene seis salidas (la séptima dedicada a un buzzer ) y soporta cuatro
sensores digitales, que pueden ser: contactos, pulsadores, fotorresistores u optoacopladores.
19.3. ROB ÓTICA
197
19.3.3. El lenguaje de la TortuRob
Evidentemente, para poner ejemplos sobre robótica debemos elegir un lenguaje. De
acuerdo a nuestra elección sobre la placa, explicaremos el lenguaje de la TortuRob. Ob-
viamente, entendiendo esta terminología, podremos utilizar los ejemplos en las tarjetas de
que disponga el lector en su Centro.
El protocolo de comunicación con la TortuRob parte de las tres premisas siguien-
tes:
1. La placa TortuRob nunca inicia una comunicación, solo responde.
2. Todo comando enviado recibe una respuesta.
3. Todos los comandos y respuestas tienen la estructura: $Lx...x %[CR], donde:
$ → Identificador de inicio de comando.
% → Identificador de fin de comando.
L y x...x → L es una letra que identifica la acción (mayúscula si es comando, mi-
núscula si es respuesta), mientras que x...x son los datos asociados a las órde-
nes/respuestas anteriores y su longitud es variable.
Con esta breve información, veamos unos ejemplos antes de entrar en detalle:
El semáforo
La TortuRob posee colores, concretamente, las salidas 3, 4 y 5 se corresponden con
los LED rojo, verde y amarillo, respectivamente. ¿No invita eso a construir un semáforo?
En este programa sólo damos órdenes a la placa, concretamente a los LED y al zumbador.
Los códigos asociados a los LED comienzan con A seguido del número del LED y un 0 ó
1 según queramos apagarlo o encenderlo, mientras que activamos el buzzer con B seguido
del número de zumbidos que queremos que haga:
para semaforo
haz "estado enviatcp "localhost [$A40%] # apaga verde
haz "estado enviatcp "localhost [$A50%] # apaga amarillo
haz "estado enviatcp "localhost [$A31%] # enciende rojo
haz "estado enviatcp "localhost [$B1%]
espera 100
# un beep (semaforo para ciegos)
#
haz "estado enviatcp "loca
Comentarios de: Curso XLogo - Capítulo 19 - Utilización de la red con xLogo (0)
No hay comentarios