Está en la página 1de 26

CONTROLABOT (1)

Metodologa clsica de la robtica en el taller de Tecnologa.


En los nuevos currculos de Tecnologa se incorporan contenidos relativos a el control y la robtica, sin tener en cuenta el elevado coste que supone, para los Centros o departamentos, la adquisicin de nuevos equipos que permitan poder experimentar en el taller dichos contenidos con los alumnos . La solucin tpica por parte del profesorado, consiste en aprovechar las dotaciones de tarjetas controladoras (tipo Inves, Enconor, CNICE) que se recibieron en los Institutos en los aos 90 o quizs posteriores dotaciones de ladrillos Lego (adquiridas por las Consejeras de Educacin de algunas Comunidades); el problema surge cuando existen insuficientes unidades de los equipos citados (con un precio mnimo de alrededor de 100 euros por unidad), de modo que es complicado que cada uno de los seis grupos de trabajo (compuesto de 4 5 alumnos) con los que se organiza normalmente una clase en el taller de Tecnologa, pueda disponer de su propia tarjeta o ladrillo. Aunque cualquiera de estas circunstancias pueda solventarse por parte del profesor, con estrategias metodolgicas diversas e imaginativas que aprovechen nuestros siempre escasos recursos, creo que todos estamos de acuerdo en que son contenidos que deben ser tratados dignamente, ya que adems suponen para muchos chicos y chicas, el punto de partida para ser atrados hacia estudios tecnolgicos posteriores. Las tarjetas controladoras a las que me he referido anteriormente, utilizan el lenguaje LOGO para su programacin, y para funcionar, se conectan con el ordenador a travs del puerto serie (Enconor) o paralelo (Inves, CNICE); adems se necesita cargar un programa de cierta complejidad que las permita entenderse con el ordenador y con el software de programacin correspondiente. En este punto es, en mi opinin, donde los alumnos (y sobre todo las chicas) se asustan con la robtica, perdiendo muchos el inters hacia los conocimientos relativos al mbito de la Tecnologa, la cual se muestra conceptualmente inabordable. Pasan de un modo sbito, dsde montar sencillos circuito elctricos (por ejemplo, un mando con pulsadores conectado mediante un cable a un dispositivo mvil) o electrnicos (tipo sensores de luz con transistor y rel para activar un motor incidiendo en una LDR con una linterna) que pueden llegar a comprender, hasta trabajar con una tarjeta comercial llena de elementos electrnicos, componentes integrados y rels, es decir, de circuitera excesivamente compleja. No cabe duda del potencial que tienen estas tarjetas para automatizar todo tipo de proyectos utilizando sus entradas y salidas digitales o analgicas, pero creo que es de sumo inters que adems los alumnos comprendan qu est pasando en cada dispositivo utilizado (as como a travs de los cables con los que se conectan al ordenador) cada vez que se ejecuta una instruccin de programacin.

Aprovechando los ordenadores antiguos.


En los ordenadores o porttiles de ltima generacin prcticamente han desaparecido los puertos de conexin con perifricos de tipo paralelo o serie, siendo sustituidos por el puerto USB. Entender el funcionamiento de los dos ltimos citados resulta difcil incluso para cualquier profesor del rea, sin embargo ocurre justo lo contrario con el puerto paralelo que, a grandes rasgos, puede ser explicado a los alumnos y ser utilizado por ellos con soltura, tanto para establecer su cableado, como para programar a travs de l. Cualquier ordenador antiguo (incluso con procesador Pentium I) que disponga de puerto paralelo, puede ser utilizado para el desarrollo de las prcticas y circuitos que pasar a describir a lo largo de este monogrfico; no se necesitan tampoco requerimientos especiales

de memoria Ram, excepto la que permita poner a funcionar el sistema operativo (desde Windows 95). Es importante saber que si nuestro sistema operativo va a ser el 2000 el XP, debemos instalar un fichero especial en el sistema, tal y como se explica al descargar la aplicacin gratuita UserPort (existen otras, pero esta es la ms recomendable). Dicho de otro modo, podemos aprovechar un montn de ordenadores desechados del aula de informtica de nuestro Instituto o inutilizados por los profesores y por los mismos alumnos debido, sobre todo, a su incapacidad de conectarse en buenas condiciones a Internet; adems existen en el mercado virtual muchos sitios donde adquirir equipos de segunda mano a muy bajo coste, y con garanta de al menos un ao.

Breve introduccin al puerto paralelo.


Al ser un puerto inventado por los ingenieros de IBM para conectar una impresora a los primeros ordenadores all por 1981, tiene desde mi punto de vista, un carcter tecnolgico muy primitivo que le proporciona un gran atractivo hoy da. Durante su funcionamiento se transmite un byte de informacin digital en cada instruccin efectuada desde el ordenador y los 8 bits que lo componen se transmiten a la vez (en paralelo) y desde su correspondiente pin numerado del puerto; en cada uno de ellos se podr conectar un cable que nos lleve una seal digital desde el ordenadorhasta el dispositivo exterior que queramos controlar. El puerto tiene 25 pines clasificados en cuatro grupos: ocho pines de salida o de Datos (del nmero 2 al 9), ocho de puesta a tierra (del nmero 18 al 25), cinco de entrada o de Estado (del 10 al 13 y el 15) y cuatro pines de Control (que no usaremos). Como consecuencia tenemos la posibilidad de enviar 8 seales electrnicas desde el ordenador y de detectar fcilmente hasta 5 seales desde el exterior; para ello bastar utilizar un cable para cada uno de estos pines, junto con uno ms, conectado a los pines de masa (GND).

Los diodos led que voy a montar en mi placa electrnica, a modo de display, se van a alimentar nicamente con la corriente proporcionada por las propias salidas del puerto, es decir, sin necesidad de bateras externas: en la mayora de los PC el puerto paralelo proporciona corriente suficiente (unos 20 mA) para una clara indicacin visual de los diodos. Como primer ejemplo, la programacin del encendido de un diodo led slo necesitara de dos cables, lo que configura un circuito electrnico elemental (y conocido por los alumnos) compuesto por el ordenador (que hace de fuente de alimentacin), cable de salida, resistencia de proteccin (que puede ser de valor 220 ohmios), diodo led y cable de puesta a tierra. Si queremos programar tres leds de distintos colores a modo de semforo, slo necesitaremos tres cables de salida ms uno comn de puesta a tierra, pasando el circuito a tener una configuracin en paralelo: enlazamos as el mundo del control con los conceptos ms bsicos

del estudio de la electricidad. Finalmente, si conectamos 8 diodos leds (con su resistencia de proteccin) tendremos que utilizar 9 cables para programar sus secuencias de encendido desde el puerto. En las tiendas de electrnica pueden adquirirse conectores macho de 25 pines con los que fabricarse un cable que sirva para unir nuestros dispositivos con el puerto hembra del ordenador: es una opcin que considero mucho ms didctica que el utilizar cables de tipo paralelo con su cableado completo y oculto; otra alternativa interesante puede ser pelar la funda exterior de algn cable paralelo standard antiguo y dejar slo los cables del interior correspondientes a los pines que se vayan a utilizar. Para programar con los alumnos recomiendo utilizar el lenguaje LOGO a travs del programa de distribucin gratuita MSWLogo en su versin 6.3c (anterior y distinta de la ltima desarrollada por el CNICE, que es la 6.5 y que sirve para las controladoras comerciales). Las ventajas frente a otros lenguajes de programacin son la sencillez de su sintaxis, su vocabulario en castellano y , por supuesto, la facilidad que tiene el usuario para comunicarse con el puerto paralelo.

Construccin de una mini-tarjeta con 8 leds.


Para elaborar una pequea tarjeta con 8 diodos led (cada bit de informacin va ha ser visualizado en un led de salida) basta con conectar cada uno de ellos en serie con una resistencia de unos 300 ohmios sobre un pletina de pruebas de fibra de vidrio con topos de soldadura (de venta en cualquier tienda de componentes electrnicos). Los tamaos standard de una pletina pequea suelen ser de 77 x 90 mm de 100 x 80 mm, pero para esta experiencia bastar con utilizar una mitad (puede cortarse fcilmente con una sierra de metal). Lo ms correcto, dado que as aparecen en las tarjetas comerciales, sera utilizar diodos leds del mismo color ordenados en lnea y con la salida correspondiente al pin 2 del puerto conectado al led situado ms a la derecha; esta disposicin tiene la ventaja de permitir que los alumnos entiendan fcilmente el paso de la numeracin en cdigo decimal a cdigo binario, lo cual supone su iniciacin en el mundo digital.

En mi caso he decidido realizar la tarjeta en un cuadrado de 5 x 5 cm (que descubr que me caba en un envase de plstico de los utilizados en los bricolajes para clasificar tornillos) y

disponiendo los leds en dos lneas, ligeramente desplazadas, con una secuencia de colores rojo verde amarillo; adems he utilizado una pletina con tiras de cobre cada 5 mm para as reducir el nmero de soldaduras; por contra, hay que eliminar algunas partes de la tira de cobre (utilizando la punta de una tijera o un cutter) para evitar cortocircuitar los diodos o las resistencias. Al colocar los componentes, he tratado de crear dos lneas transversales de eliminacin del cobre en cada tira (como puede observarse en la foto).

El circuito tiene un esquema simblico sencillo, repitindose ocho veces la conexin: cable del pin de un dato, diodo led (polarizado correctamente), resistencia de proteccin (que puede tambin situarse antes del led) y conexin comn al cable de puesta a tierra, realizada en mi caso con grapas soldadas a las pistas, de modo que unen las ocho lneas transversalmente para terminar en una novena pista en el extremo de la placa donde conectar el cable de masa que vuelve al pin 18.

Para conectarme con el ordenador he utilizado un cable paralelo antiguo que he dejado con una longitud de ms o menos 1 m; despus de quitar su vaina exterior y su empantallado de aluminio, he cortado todos los cables sobrantes conectados a los pines que no voy a utilizar y slo he dejado los que van del pin 2 al 9 ms el de masa (aunque no se si es del todo necesario, yo he unido con un cable todos los pines de puesta a tierra, del 18 al 25). El ltimo paso ha sido soldar cada cable a su pista correspondiente, aunque previamente, para asegurar su resistencia a ms que posibles tirones, he anudado los hilos de cada cable tras hacerlos pasar por dos orificios contiguos de la placa.

Conclusin
Hasta aqu queda descrito el modo de construccin de la tarjeta, dejando para los prximos captulos de este monogrfico la parte de su puesta en funcionamiento, con ejemplos de programacin, as como el conexionado de sensores a los denominados pines de entrada o Estado.

CONTROLABOT (2)
Introduccin
Una vez est terminada la placa electrnica con su cableado, antes de conectarla al puerto del ordenador, podemos verificar visualmente, o mejor con un polmetro, que no existe ninguna soldadura defectuosa y que los cables estn ordenados y relacionados con el pin del conector macho del puerto paralelo, segn la numeracin prevista.

Probando la mini-tarjeta.
Ya he comentado en el artculo anterior que voy a utilizar MSWLogo 6.3 (sin olvidarme instalar el fichero UserPort.sys en mi Sistema Operativo si ste es Windows 2000 XP) para realizar

los programas que enciendan los leds de la mini-tarjeta. Aparte de conocer la sintaxis de un procedimiento en el lenguaje LOGO, es obligado utilizar la primitiva ESCRIBEPUERTO 888 dato, que sirve para enviar una salida desde el puerto paralelo del ordenador a la tarjeta, indicando el nmero correspondiente al led que quiere encenderse. Con un byte de informacin podemos enviar nmeros decimales del 1 al 255, que aparecern convertidos al cdigo binario con el encendido en el display de unos u otros leds. La numeracin en binario se ordena de derecha a izquierda con las potencias del nmero dos: el dato = 1 (salida 0 en la tarjeta, cable conectado al pin 2 del puerto) se corresponder a 2 0, el dato = 2 (salida 1, cable en el pin 3) se refiere a 21,despus vendran sucesivamente los datos 4, 8, 16, 32, 64 y finalmente el dato = 128 (salida 7, cable en el pin 9) que significa 27. Cualquier nmero en decimal puede ser traducido a binario (e indicado en nuestra tarjeta) sumando los valores de datos anteriores: por ejemplo, 219 ser la suma de 128 + 64 + 16 + 8 + 2 + 1, encendindose simultneamente los leds numerados en mi tarjeta como 7, 6, 4, 3, 1 y 0. Una vez est terminada la tarjeta con su cable conectado al puerto, en la barra inferior del programa MSWLogo teclearamos ESCRIBEPUERTO 888 219, y despus pulsaramos el botn de ejecutar; para apagar los leds, tenemos que teclear ESCRIBEPUERTO 888 0 y si queremos que el encendido dure un tiempo concreto (por ejemplo, 5 segundos) intercalamos ESPERA 500 entre las dos instrucciones anteriores.

Siempre es ms correcto en LOGO crear procedimientos y almacenarlos en el Editor (botn Archivo Editar en la barra del men), ya que aqu son ms fciles de probar y depurar; un ejemplo de procedimiento para realizar una secuencia luminosa sera: PARA LUCES ESCRIBEPUERTO 888 1 ESPERA 100 ESCRIBEPUERTO 888 128 ESPERA 100 ESCRIBEPUERTO 888 2 ESPERA 100 ESCRIBEPUERTO 888 64 ESPERA 100 ESCRIBEPUERTO 888 4 ESPERA 100 ESCRIBEPUERTO 888 32 ESPERA 100 ESCRIBEPUERTO 888 8 ESPERA 100

ESCRIBEPUERTO 888 16 ESPERA 100 ESCRIBEPUERTO 888 0 FIN Tecleando LUCES en la barra de ejecucin, en la tarjeta observaramos la secuencia de encendido de los leds 0, 7, 1, 6, 2, 5, 3, 4 durante un segundo cada uno, apagndose todos al final. Si queremos que la secuencia se repita una y otra vez, modificaramos el procedimiento intercalando la palabra LUCES antes de FIN; ahora, dada la recursividad introducida en el programa, tendremos que pulsar sobre el botn Alto de la parte inferior derecha de la pantalla para poder detenerlo. (Nota: estoy utilizando las maysculas para la programacin con la intencin de facilitar la lectura del documento, ya que MSWLogo admite mejor la escritura en minsculas). Los alumnos se sienten cmodos y se familiarizan rpidamente con el lenguaje LOGO, escribiendo al principio una serie de programas que definan con exactitud el nmero decimal que quieren que se exprese en binario en los leds correspondientes; as pueden crear simulaciones de estribillos musicales sencillos, intermitencias que imiten las luces de los establecimientos, de las atracciones de feria, de supuestas naves espaciales, de coches fantsticos, y por supuesto, de semforos: PARA SEMAFORO ESCRIBEPUERTO 888 146 ESPERA 200 ESCRIBEPUERTO 888 36 ESPERA 50 ESCRIBEPUERTO 888 73 ESPERA 200 ESCRIBEPUERTO 888 0 ESPERA 10 FIN Escribiendo en la ventana de ejecucin REPITE 5 [SEMAFORO] se crear una secuencia de cinco encendidos completos de nuestro particular semforo. La primitiva REPITE he comprobado que es una de las favoritas de los alumnos y que la usan aadiendo nmeros de repeticin elevados en cuanto tienen definido algn procedimiento para su comprobacin.

Programacin con variables de la mini-tarjeta


Los procedimientos pueden ser mejorados, hacindolos ms flexibles, utilizando variables que modifiquen a nuestro antojo el tiempo de encendido o la salida que debe iluminarse. Si al procedimiento anterior lo denominamos LUCES :SEG y despus en cada instruccin escribimos ESPERA :SEG, a partir de ahora el tiempo de encendido deja de tener un valor fijo de un segundo y se puede variar indicndolo al escribir en la barra de ejecucin: por ejemplo, con LUCES 50 se encenderan los leds medio segundo. Un procedimiento de pocas lneas para la traduccin de nmeros decimales a binario podra ser: PARA NUMERO :LED ESCRIBEPUERTO 888 :LED ESPERA 500 ESCRIBEPUERTO 888 0

FIN Si tecleamos NUMERO 219 en la barra de ejecucin, conseguiremos el mismo resultado en la tarjeta que con nuestro primer programa, pero con la ventaja de que ahora podemos expresar fcilmente en cdigo binario, a travs del encendido de los leds, cualquier nmero inferior a 256. Para utilizar dos variables a la vez bastara con indicarlas en el ttulo del procedimiento y despus asignarle su valor al llamar al procedimiento en la barra de ejecucin; en el siguiente ejemplo (que incorpora una recursividad) se encenderan unos leds cualesquiera, establecindose un parpadeo de tiempo a decidir por el programador: PARA PARPADEO :LED :SEG ESCRIBEPUERTO 888 :LED ESPERA :SEG ESCRIBEPUERTO 888 0 ESPERA :SEG PARPADEO :LED :SEG FIN

Ahora hay que teclear dos nmeros acompaando al ttulo (como PARPADEO 36 50, que crea en mi tarjeta una luz intermitente amarilla de medio segundo de duracin). A partir de este momento se abre un enorme abanico de posibilidades de programacin, ya que adems podemos aadir operaciones matemticas que modifiquen los valores asignados de inicio a las variables. Un procedimiento a proponer a los alumnos sera el que enciende de uno en uno los leds de tarjeta, en este caso durante 20 centsimas de segundo : PARA SECUENCIA :LED ESCRIBEPUERTO 888 :LED ESPERA 20 SECUENCIA :LED*2 FIN El programa se iniciara escribiendo en la barra de ejecucin SECUENCIA 1 y no termina, debido a la recursividad, hasta que pulsemos el botn Alto. El valor 1 (que enciende el led 0) asignado a la variable en el inicio, se multiplica por 2 (led 1 encendido) en el primer ciclo recursivo, y este nuevo resultado vuelve a multiplicarse por 2 en la segunda recursividad, y as sucesivamente hasta que la variable valga 128 y se encienda el led 7. El recorrido del encendido de leds puede invertir su sentido utilizando en la divisin por la mitad de la variable (:LED/2), a la que de inicio asignaramos el valor 128.

Programacin de la mini-tarjeta incluyendo el condicional


Cualquier enunciado que se proponga en el taller para crear combinaciones matemticas en el encendido de los leds, predispone a los alumnos a ejercitar el clculo mental: se convierten as en sujetos activos de su aprendizaje al disear combinaciones originales de rfagas luminosas que aumenten su tiempo de encendido en un sentido creciente, decreciente o integrando en un slo procedimiento varios subprocedimientos que se sucedan uno tras otro (lo que ms propiamente dicho se define como modularidad). A medida que las combinaciones se van haciendo ms complejas, es necesario poner unos lmites a los valores numricos que alcanzan las variables tras sucesivos ciclos recursivos, ya que es la nica manera de que la mini-tarjeta no se quede colgada y podamos continuar ejecutando instrucciones con ella. Podemos marcar un lmite a la variable :LED escribiendo una lnea en el programa que diga que SI (:LED >256) [ALTO], que ejemplifica la sintaxis de una instruccin condicional, en la que si se cumple el parntesis, se ejecuta el procedimiento entre corchetes (en este caso se detiene la recursividad cuando en el display se supere la indicacin en binario del nmero 256, tal como si pulsramos el botn de la pantalla).

Con el siguiente programa activaremos los leds de salidas de nmero par con RAFAGA 1, y las de nmero impar con RAFAGA 2 , con una duracin de 30 centsimas para el encendido de los leds: PARA RAFAGA :LED SI (:LED >128) [ALTO] ESCRIBEPUERTO 888 :LED ESPERA 30 RAFAGA :LED*4 FIN Si nuestro propsito fuese alternar ambas posibilidades, teniendo en cuenta que todos los procedimientos y la denominacin de sus variables queda almacenada en el Editor de MSWLogo, escribiramos simplemente: PARA DOBLERAFAGA RAFAGA 1 RAFAGA 2 DOBLERAFAGA FIN

Tambin es interesante observar el resultado de operar con la suma o la resta para modificar la variable de tiempo en sucesivos ciclos recursivos, configurando aceleraciones o deceleraciones en el parpadeo de la mini-tarjeta, como el siguiente ejemplo, donde aprovecho la situacin alternativa de mis leds por COLORES, para despus ir aumentando los tiempos de activacin en 10 centsimas:

PARA COLOR :LED :SEG SI (:LED >128) [ALTO] ESCRIBEPUERTO 888 :LED ESPERA :SEG COLOR :LED*8 :SEG+10 FIN PARA COLORES COLOR 1 10 COLOR 2 40 COLOR 4 70 COLORES FIN

Conclusin
En esta segunda entrega del monogrfico hemos podido comprobar la mini-tarjeta y practicar con la programacin en lenguaje LOGO, automatizando su funcionamiento segn lo que se denomina control en lazo abierto de un dispositivo, ya que slo se modifican las variables de los programas sin tener en cuenta posibles perturbaciones externas o seales de entrada a travs de los correspondientes pines de Estado del puerto paralelo. Todo el captulo no deja de ser un paso previo, aunque necesario, para acercarnos a la robtica propiamente dicha, en la que se da por supuesto que deben detectarse seales desde sensores diseados al efecto, que sean activados por contacto, variacin de la luminosidad, etc.

CONTROLABOT (3)
Introduccin
En los dos captulos anteriores de este monogrfico, hemos aprovechado la facilidad de programar salidas desde el puerto paralelo para encender los leds de una mini-tarjeta diseada para tal efecto, pero cabe recordar que disponemos de 5 pines donde conectar seales de entrada digitales para crear variaciones en nuestros programas cuando dichas entradas se accionen, es decir, cuando por ejemplo se cierre un pulsador al presionarlo.

Conexin a los pines de Entrada del puerto paralelo


Ya sabemos que el puerto paralelo proporciona 5 voltios de tensin en sus pines de salida, y tambin podemos decir que los pines de entrada son como un borne elctrico que tuviera por defecto dicho potencial, con lo que al cerrar un circuito entre dos pines del puerto provocamos que una pequea corriente recorra un cable fino (en el que intercalaramos una resistencia) que una el pin de entrada (que hace las veces de un polo positivo) con el pin de masa (polo negativo). Al no existir alimentacin externa, los riesgos de daar el ordenador son mnimos, ya que en mi opinin, es como si estuviera el puerto paralelo autodetectndose. El circuito de un sensor digital ms sencillo, estar constituido por un pulsador (yo he escogido para mi montaje uno de tipo fin de carrera) en serie con una resistencia de 100 ohmios; desde la patilla libre de sta saldr un cable que se conecte al pin 25 (de puesta a tierra) del conector

macho del puerto paralelo que he utilizado en la mini-tarjeta, y desde la patilla libre del pulsador saldr otro cable que me lleve hasta el pin 13, que es el que detectar cuando, el circuito que acabo de configurar, est abierto o cerrado.

He repetido el montaje con otro fin de carrera conectando su cableado correspondiente a los pines 12 (entrada) y 24 (masa), disponiendo as de dos entradas que, contando con la posibilidad de pulsar los dos a la vez, me permitan tener al menos tres combinaciones de deteccin. Una vez terminemos de soldar los elementos y los cables, tendremos la posibilidad de interactuar con la mini-tarjeta durante la ejecucin de nuestros programas; el circuito electrnico completo tendra la siguiente representacin simblica:

Escritura de programas que interpreten las seales de entrada


La primitiva de LOGO con la que podemos conocer el estado de las entradas del puerto paralelo es LEEPUERTO 889, de tal modo que si lo escribimos en la barra de ejecucin, el programa MSWLogo nos devuelve una respuesta, que queda registrada en su ventana de Trabajo, y que en el caso de no estemos accionando ningn pulsador de entrada, dice literalmente: No me has dicho que hacer con 120 ; ste valor numrico en cdigo decimal, es la traduccin de la informacin en forma de byte 01111000 cdigo mquina que entiende el ordenador y que, en este caso, significa que no detecta nada en el puerto en entrada;con dos pulsadores conectados, podremos leer los siguientes mensajes numricos en la ventana de Trabajo: Entrada pulsada Pin 13 Pin 12 Pines + 13 Mensaje decimal 104 88 12 74 Byte en puerto 01101000 01011000 01001000 el

Se observa como al ser presionado cada pulsador o ambos, el bit en el puerto pasa del estado en cdigo binario 1 al valor cero0, es decir, segn una lgica negativa, justo al contrario de la lgica positiva con la que se programan los pines de salida. Conociendo los valores de la tabla y recordando la expresin condicional utilizada en el lenguaje LOGO que ya utilic en el captulo anterior de este monogrfico, escribiremos programas con la siguiente sintaxis: PARA PULSADORES :SEG SI ((LEEPUERTO 889) =120) [ESCRIBEPUERTO 888 0] SI ((LEEPUERTO 889) =104) [ESCRIBEPUERTO 888 (128+16+2) ESPERA :SEG] SI ((LEEPUERTO 889) =88) [ESCRIBEPUERTO 888 (64+8+1) ESPERA :SEG/2] SI ((LEEPUERTO 889) =74) [ESCRIBEPUERTO 888 (32+4) ESPERA :SEG*2] PULSADORES :SEG FIN En este programa sencillo visualizaremos en la tarjeta el encendido, durante tiempos cambiantes con la variable, de los leds agrupados por colores (para el caso de esta minitarjeta): los verdes si pulsamos el pin 13, los rojos con el pin 12 y los amarillos si pulsamos 12 y 13 a la vez. La primera lnea del procedimiento sirve para apagar los leds hasta la siguiente pulsacin, pero como existe recursividad, el procedimiento permanece activo hasta que hagamos click en el botn Alto de la pantalla de MSWLogo.

Dentro de los corchetes de la expresin condicional de PULSADORES, podremos incluir cualquiera de los programas que prob en la segunda entrega de este monogrfico, ya que todos procedimientos que realicemos para la mini-tarjeta se pueden guardar agrupados en un solo fichero en el disco duro del ordenador, lo que permite aprovechar las variables :LED y :SEG (u otras con el nombre que se quiera, pero siempre indicadas con los dos puntos antes de la primera letra), que ya utilizamos anteriormente: PARA SECUENCIANDO SI ((LEEPUERTO 889) =120) [ESCRIBEPUERTO 888 0] SI ((LEEPUERTO 889) =104) [SEMAFORO] SI ((LEEPUERTO 889) =88) [LUCES] SI ((LEEPUERTO 889) =74) [NUMERO 129] SECUENCIANDO FIN Conviene que los procedimientos entre corchetes no dispongan de su propia recursividad, ya que no se observaran cambios en el funcionamiento de la mini-tarjeta mientras el procedimiento SECUENCIANDO contine activo, a pesar de que pulsemos en las entradas.

Nueva propuesta de mini-tarjeta controladora


Dado lo econmico (menos de 6 euros) que va ha suponer elaborar este tipo de placa electrnica, podemos proponer a los alumnos que realicen su propia mini-tarjeta y que dispongan los diodos de manera lgica (sin desordenar la numeracin de las salidas), pero con un cierto grado de libertad en su colocacin (delimitando un cuadrado, en diagonal, haciendo una lnea quebrada, combinando colores, etc.). El inconveniente principal de este proyecto sera el de un consumo excesivo de cables paralelos pelados (en funcin del nmero de grupos de alumnos del Centro), lo que se soluciona utilizando un conector de 25 pines acodado para pinchar en la placa (lo he escogido de tipo macho, pues voy a utilizar los cables paralelos de las controladoras del taller). Aunque tenemos dos lneas en dicho conector con trece y doce pines, nos basta con utilizar la lnea de trece pines completa (que consta de 8 pines de salida y 4 de entrada) junto con el pin 25 (de la otra lnea) para la puesta a tierra, el cual ligeramente doblado, lo podremos alinear con los anteriores; todos los dems pines (incluido el 1) pueden ser recortados ya que no vamos a utilizarlos y adems, nos impediran pinchar nuestro nuevo conector en las placas estndar.

Como ejemplo, he realizado una mini-tarjeta sobre una placa recortada de 4,5 x 7 cm, sobre la que he dispuesto los diodos leds configurando tres lneas diagonales paralelas de dos, cuatro y dos diodos, que me permitirn realizar distintas figuras luminosas; adems, sus colores se ordenan agrupados (tres rojos, dos amarillos y dos verdes) en orden creciente al valor del bit de salida. Cada uno de los diodos led se conecta en serie con una resistencia de 220 ohmios, las cuales deben conectarse al pin 25 de masa, tal como ya se explic en el primer captulo de este monogrfico.

Si bien la placa sobre la que se realiza el montaje dispone de una trama de topos de cobre cada 2,5 mm donde se supone que se pueden soldar los componentes, yo he optado por doblar las patillas de diodos y resistencias sin recortar, aprovechando su rigidez, para soldarlas alineadas directamente entre s bajo la placa, incluso para llegar hasta cada pin correspondiente del conector. La conexin a masa de las patillas de las resistencias que cierran

cada circuito las he soldado entre s, volviendo por la superficie de la placa con un cable de cobre negro hasta el pin 25 del conector. He querido completar la mini-tarjeta aprovechando al menos dos de las entradas digitales de las cuatro posibles que me posibilitan los pines 10 al 13, eligiendo precisamente estas dos extremas; para su activacin utilizar dos mini pulsadores de cuatro patillas, conectados en serie con resistencias de 220 ohmios. El circuito simblico completo vuelve a ser el mostrado justo antes del inicio del apartado b) de este captulo, cambiando el pin 12 por el 10, por lo que las posibilidades de programacin ahora quedaran as: Entrada pulsada Pin 13 Pin 10 Pines 13 10 Mensaje decimal 104 56 + 40 Byte en puerto el

01101000 00111000 00101000

Podemos probar esta nueva mini-tarjeta con distintos programas como, por ejemplo, el de simulacin de un carrusel de luces de tiempo variable, el encendido de una flecha o el parpadeo de dos comillas: PARA FLECHA :SEG ESCRIBEPUERTO 888 (1+2+8+32+64+128) ESPERA :SEG ESCRIBEPUERTO 888 0 ESPERA :SEG FIN

PARA COMILLAS :SEG ESCRIBEPUERTO 888 (4+32+128) ESPERA :SEG ESCRIBEPUERTO 888 0 ESPERA :SEG ESCRIBEPUERTO 888 (2+16+64) ESPERA :SEG ESCRIBEPUERTO 888 0 ESPERA :SEG ESCRIBEPUERTO 888 (4+32+128+2+16+64) ESPERA :SEG ESCRIBEPUERTO 888 0 ESPERA :SEG FIN

PARA CARRUSEL :SEG ESCRIBEPUERTO 888 1 ESPERA :SEG ESCRIBEPUERTO 888 2 ESPERA :SEG ESCRIBEPUERTO 888 16 ESPERA :SEG ESCRIBEPUERTO 888 64 ESPERA :SEG

ESCRIBEPUERTO 888 32 ESPERA :SEG ESCRIBEPUERTO 888 4 ESPERA :SEG ESCRIBEPUERTO 888 0 FIN PARA BOTONES SI ((LEEPUERTO 889) =120) [ESCRIBEPUERTO 888 0] SI ((LEEPUERTO 889) =104) [CARRUSEL 50] SI ((LEEPUERTO 889) =56) [FLECHA 100] SI ((LEEPUERTO 889) =40) [COMILLAS 30] BOTONES FIN El ltimo programa integra los tres primeros posibilitando, a travs de los pulsadores, que se ponga en marcha uno u otro, convirtiendo a la mini-tarjeta en un moderno panel de leds a escala reducida.

Conclusin
La posibilidad de que cada grupo de alumnos disee su propia placa, va a provocar que disfruten de su propia y original lista de programas consecuencia de la experimentacin con distintas combinaciones luminosas, y como consecuencia, la motivacin o curiosidad por estos contenidos de la Tecnologa irn en aumento. Una vez dominada la programacin de figuras luminosas, ser el momento de pasar a escribir procedimientos menos caprichosos en los que se busquen combinaciones matemticas, como los propuestos en el captulo anterior.

CONTROLABOT (4)
Introduccin
Hasta el momento hemos programado con una mini-tarjeta aadiendo pulsadores para aprovechar la capacidad de deteccin de entradas digitales que posee el puerto paralelo; las posibilidades de crear programas combinando estas seales se podra aprovechar en algn dispositivo de salida ms completo, de mayor robustez, y donde aparezcan los pulsadores ordenados y sujetos a la base de una pequea tarrina de plstico (de las utilizadas para la conservacin de alimentos).

Propuesta de construccin de un display de 7 segmentos


Si duplico el nmero de leds (conectados en paralelo) en cada circuito de salida, manteniendo una sola resistencia de proteccin para ambos, puedo imitar a un display de siete segmentos y disear un contador luminoso (imitando a los displays de 7 segmentos comerciales) en el que se puedan representar los nmeros del 9 negativo al 9 positivo: las salidas 1 a 7 del puerto paralelo configuran los segmentos del display y la salida 0 la utilizo para representar el signo negativo. Esta disposicin de los leds no slo me sirve para representar nmeros (o secuencias programadas de operaciones matemticas sencillas), sino que tambin puedo mostrar algunas

letras en mayscula del alfabeto (A, C, E, H, etc.) con las que visualizar palabras o mensajes, una vez que se escriban los programas correspondientes.

Aunque en un primer vistazo el esquema electrnico parezca complicado, realmente la dificultad del montaje consiste en la diferenciacin, para cada par de diodos led, entre las uniones en paralelo de nodos y ctodos, y sobre todo, las conexiones entre todos stos para formar un nico camino que cierre el circuito en el pin 25 del conector paralelo (que hace de polo negativo del conjunto); en resumen, lo que tenemos es un conjunto de 8 circuitos independientes con pin datos + resistencia + 2 leds en paralelo + conexin a masa.

He recortado una placa de fibra de vidrio estandar (con topos para la soldadura cada 2,54 mm), con unas dimensiones de 6,5 x 8,5 cm, y sobre la que he ido colocando ordenadamente los leds (observando la polaridad que corresponda a cada par, segn el esquema electrnico); las distancias en vertical y horizontal son de unos 0,5 cm, tal como puede apreciarse en la fotografa. A continuacin he colocado las resistencias (de 220 ohmios) sin recortar sus patillas, pues las aprovecho como camino elctrico hasta el nodo del diodo led al que deba conectarse cada pin del conector para cable paralelo. Las primeras soldaduras que voy a acometer cuando le de la vuelta a la placa, tienen que ser, como he subrayado antes, las de nodos y ctodos de cada par de leds; despus conecto las

resistencias, por un lado,a cada pin del conector paralelo (soldado en la cara inferior de la placa) y por otro, al nodo de los diodos correspondientes. Pintado con rotulador negro puede apreciarse en la fotografa el camino de unin de los ctodos con el pin 25 del conector: lo he realizado doblando y soldando entre s las patillas de aluminio de los diodos y aprovechando las zonas de holgura entre componentes para evitar contactos indeseados.

Los cables de colores que se aprecian en la imagen anterior me conectarn la placa con los pulsadores. Para la construccin propiamente dicha del contador, se necesita tener acabada la placa de leds y as poder marcar con precisin en la base de la tarrina, la posicin de los agujeros donde se alojan los diodos, los pulsadores y los tornillos que servirn para fijar la placa; en la cara lateral se recortar un hueco por el que asome su conector paralelo (elegido de tipo macho como en las controladoras comerciales).

CONTROLABOT (5)
Introduccin
El objetivo final de este monogrfico es la construccin de un dispositivo mvil, dotado de sensores y reprogramable a travs del puerto paralelo. Con el desarrollo de estos primeros captulos adquirimos los conocimientos tcnicos y tericos que nos permitirn lograr dicho objetivo, si bien nos interesa adems experimentar con una serie de dispositivos tpicamente utilizados en las aulas de Tecnologa y de fcil adquisicin en las tiendas de electrnica, incluyendo el control de pequeos motores.

Los drivers en robtica


La corriente suministrada por el puerto, que hasta ahora utilizbamos para encender leds, es insuficiente para accionar un pequeo motor; la solucin para que funcionen es aadir una alimentacin de voltaje externa, pero a travs de un nuevo componente electrnico denominado genricamente en robtica como driver. En un monogrfico anterior denominado Robot-bichos digitales explicaba como crear una tarjeta de control con transistores darlington TIP 120 y TIP 125 combinados formando un esquema electrnico de puente en H. Sin embargo, existen circuitos integrados comerciales que incorporan esta disposicin en H, ya que es muy utilizada en robtica; de entre los ms comunes yo he escogido el TC-4424. Se trata de un driver de rpida respuesta, econmico, que incorpora diodos de proteccin (necesarios en nuestro caso para no daar el puerto paralelo del ordenador) y slo 8 patillas, con lo que se facilita enormemente su conexionado y la explicacin de su funcionamiento a los alumnos; como cada motor necesita un integrado para su control, tambin se detectan rpidamente los posibles fallos en el accionamiento del mvil.

En el esquema de conexionado del driver se observa que a un lado se disponen las patillas donde se soldaran los cables de salida provenientes de los pines del puerto paralelo, y del otro, las patillas que deben unirse a los cables del motor; las dos patillas, una a cada lado, que se alternan con las anteriores son para la conexin con el portapilas (teniendo en cuenta la polaridad) y quedan dos ltimas patillas extremas sin utilidad, ya que estn desconectadas del circuito interno de las anteriores.

Diseo de una tarjeta para robtica de reducidas dimensiones


Como ya plante en las propuestas de mini-tarjetas controladoras de los captulos anteriores, podemos conectarnos al puerto paralelo de ordenador con un cable standar grueso, o podemos pelarlo y eliminar todos los cables correspondientes a los pines que no vayamos a utilizar; en mi primera propuesta de tarjeta con drivers utilizar la segunda opcin ya que es ms fcil de entender y confeccionar. La tarjeta que he diseado tiene de dimensiones cuadradas de 4,5 cm, y pistas de cobre en su cara inferior cada 5 mm (cada dos perforaciones). Para su elaboracin situar los dos drivers en la zona central (pinchados sobre un zcalo), haciendo coincidir las patillas de datos con las pistas de cobre, con una separacin entre ellos de 1,5 cm y dejando a ambos lados al menos 3 pistas libres (a travs de las que posteriormente ampliar las posibilidades de funcionamiento con la incorporacin de sensores).

Con el cable paralelo ya pelado, dejar solamente los cables correspondientes a los cuatro primeros pines de datos de salida, los pines 12 y 13 de entrada y el pin 25 de masa (cortocircuitado con el resto de los de puesta a tierra del conector); en total 7 cables que en su otro extremo soldar (con una disposicin simtrica) al mismo nmero de pistas de cobre en la tarjeta, haciendo coincidir cada par de cables de datos con las patillas de su driver. En el siguiente paso unir, con un cable fino rgido, las patillas de idntica polaridad a ambos lados de los drivers, para despus pelarles en una zona intermedia, en la que soldar un trozo de cable que atraviese por un agujero de la placa coincidente con una pista de cobre de las situadas en el espacio entre los drivers: de este modo he definido cules sern las pistas a las que conectar la alimentacin de las pilas.

Para poder enlazar los cables de los motores y el portapilas con la pistas correspondientes de la placa voy a utilizar tres regletas dobles de circuito impreso (cuya distancia de separacin entre patillas coincide con la distancia entre pistas de cobre) que situar por delante de los drivers (coincidiendo con las patillas de salida a los motores), y tambin entre ellos (sobre las pistas citadas en el prrafo anterior). El penltimo paso ser resolver el conexionado de sensores a la placa, para lo que he optado por utilizar tres pines metlicos alineados donde podr pinchar los cables que se conectan a los sensores; uno de los pines metlicos de cada lado (el ms extremo) se debe conectar a la pista correspondiente al cable del puerto paralelo de cada entrada (nmero 12 a un lado y 13 al otro), mientras que las otras dos se unen, mediante cables en superficie, con las pistas de los polos positivo y negativo de la alimentacin. Antes de dar la placa por finalizada debo cortar las pistas de cobre justo debajo de cada driver (ya que sino entradas y salidas estaran conectadas, inutilizando el dispositivo) y tambin delante de las regletas de los motores (por precaucin).

Construccin de un robot-explorador
Antes de comprobar la tarjeta para el control de pequeos motores diseada en el captulo anterior, voy a construirme un sencillo robot-explorador con una pieza de tablero perforado de 8 x 10 cm, una rueda loca, un portapilas de 6V y dos motores con mecanismo de gran reduccin (con carcasa de plstico) y dos ruedas pequeas. La rueda loca la sujetar al tablero con dos tornillos con tuercas (de mtrica 4 mm), mientras que los motores (una vez dispuestas las ruedas en su eje de salida) los encolar al tablero con pistola termofusible, dejando los cables soldados a sus bornes con una longitud suficiente. En la parte superior del tablero ser donde se site la tarjeta de control de los motores (unida a un ordenador mediante los cables de salidas hacia el puerto), junto con el portapilas. Para verificar la tarjeta con los drivers podemos sujetarla sobre el tablero de nuestro mvil (con una simple goma elstica), conectando a continuacin los cables de ambos motores y del portapilas en las regletas azules y gris, respectivamente; enviando el mensaje ESCRIBEPUERTO 888 seguido del nmero 1 2 (motor derecho) y 4 u 8 (motor izquierdo), comprobaremos si los ejes giran en los dos sentidos.

Primeros programas de exploracin


Nuestro pequeo robot mvil ya puede ser programado para hacer movimientos temporizados, es decir, mediante un control en bucle abierto, sin la intervencin de sensores; podemos escribir procedimientos con los que el mvil realice un sencillo baile, un movimiento de zigzag, una maniobra de aparcamiento o sencillamente trace un recorrido. Para cualquiera de estos ejemplos necesitamos conocer que combinacin de salidas (suma de dos nmeros decimales, uno para cada motor) deben ser enviadas desde el puerto paralelo para producir el movimiento de nuestro mvil en sentido de avance, de retroceso y de giro a la derecha o a la izquierda; en el siguiente procedimiento se alternaran, en ese mismo orden, estas cuatro posibilidades, variando su duracin mediante una variable con operadores matemticos: PARA BAILECITO :SEG ESCRIBEPUERTO 888 (1+4) ESPERA :SEG*2 ESCRIBEPUERTO 888 (2+8) ESPERA :SEG ESCRIBEPUERTO 888 (1+8) ESPERA :SEG/2 ESCRIBEPUERTO 888 (2+4) ESPERA :SEG/2 ESCRIBEPUERTO 888 0 FIN Para lograr que nuestro robot reaccione a variables fsica externas (contacto, luz, magnetismo,etc..), adems de incluir la primitiva LEEPUERTO 889 en nuestros programas, debemos utilizar las conexiones de entrada que hemos previsto en nuestra tarjeta. He recuperado los cables que se incluyen (pero no se usan) al adquirir un lector de CDRom para los ordenadores , ya que disponen de un conector con tres cables para insertar en pines metlicos como los que he soldado en mi tarjeta. Soldando dos de estos cables en las patillas de un pulsador de tipo final de carrera (con una resistencia de 100 ohmios en serie con una de sus patillas) y fijando ste sobre la plataforma del mvil con cola termofusible, dispondremos de un sensor de contacto o detector de choques, elemento que duplicaremos a ambos lados del extremo frontal del mvil.

La programacin de su funcionamiento esquivando obstculos puede escribirse as: PARA SALVAOBSTACULO SI ((LEEPUERTO 889) = 120) [ESCRIBEPUERTO 888 5] SI ((LEEPUERTO 889) = 104) [ESCRIBEPUERTO 888 10 ESPERA 50 ESCRIBEPUERTO 888 9 ESPERA 50] SI ((LEEPUERTO 889) = 88) [ESCRIBEPUERTO 888 10 ESPERA 50 ESCRIBEPUERTO 888 6 ESPERA 50] SI ((LEEPUERTO 889) = 72) [ESCRIBEPUERTO 888 10 ESPERA 50] SALVAOBSTACULO FIN Cuando se ejecuta el programa el robot avanza recto, pero si detecta un obstculo con su pulsador izquierdo, retroceder medio segundo y girar otro tanto a la derecha, reinicindose el programa; si detecta el obstculo por la derecha, retroceder y despus girar a la izquierda y, por ltimo, en el caso de sean presionados los dos detectores la vez, el robot antes de continuar su avance de modo indefinido, retroceder durante medio segundo. Para detener el programa pulsaremos ALTO en la pantalla de MSWLogo 6.3c.

Conclusin
Puede proponerse a los alumnos que escriban programas que nos permitan salir de un laberinto o efectuar otros movimientos ms caprichosos cuando se presionen los finales de carrera, en lo que constituir, sin duda, su experiencia ms autntica en el mundo de la robtica.