MICROBOTS
INFORMACIÓN SOBRE LOS COMPONENTES UTILIZADOS EN LA CONSTRUCCIÓN DEL MICROBOT
JESÚS SANTIAGO BAILE MARTÍN 2º D.P.E
LISTA DE COMPONENTES PARA LA CONSTRUCCIÓN DE NUESTRO MICROBOT
Esta página os indicará como hacer un microbot, con sus esquemas y circuitos, información y uso de los componentes más importantes para construir un microbot y una lista de componentes para que hagamos un microbot. Los componentes son fáciles de encontrar en cualquier tienda y la construcción del microbot no tiene una dificultad excesiva, por lo que os animo a hacer este proyecto.
INFORMACIÓN DE LOS COMPONENTES
ARQUITECTURA INTERNA
El PIC 16C84 al igual que los demás miembros de su familia, se caracterizan por que :
*Su procesador es segmentado, "pipe-line".
*Su procesador es tipo RISC
*Tiene una arquitectura HARVARD
*El formato de las instrucciones es ortogonal
*Todas las instrucciones tienen la misma longitud (14 bits)
*La arquitectura está basada en banco de registros
Pero que significa todo esto? . Pues vamos a intentar aclarar estos conceptos:
*Procesador segmentado "pipe-line": quiere decir que aplica la técnica de segmentación que permite al procesador realizar simultáneamente la ejecución de una instrucción y la búsqueda de código de la siguiente. De esta manera, se puede ejecutar una instrucción en un ciclo. (Cada ciclo de instrucción son cuatro ciclos de reloj).

Procesador tipo RISC: Las CPU´s atendiendo al tipo de instrucciones que utilizan pueden clasificarse en:
CISC: (Complex Instruction Set Computer) Computadores de juego de instrucciones complejo, que disponen de un repertorio de instrucciones elevado (unas 80), algunas de ellas muy sofisticadas y potentes, pero que como contrapartida requieren muchos ciclos de máquina para ejecutar las instrucciones complejas.
RISC: (Reduced Instruction Set Computer) Computadores de juego de instrucciones reducido, en los que el repertorio de instrucciones es muy reducido (en nuestro caso 35), las instrucciones son muy simples y suelen ejecutarse en un ciclo máquina. Además los RISC deben tener una estructura pipeline y ejecutar todas las instrucciones a la misma velocidad.
SISC.(Specific Instriction Set Computer) Computadores de juego de instrucciones específico.
Arquitectura Harvard: Tradicionalmente los microprocesadores se basan en la estructura de Von Neumann, como la de la figura siguiente, que se caracteriza por disponer de una única memoria principal en la que se almacenan los datos y las instrucciones. A esta memoria se accede a través de un sistema de buses único:
-Bus de datos
-Bus de direcciones
-Bus de control

Arquitectura según el modelo de Von Neumann
El modelo Harvard , representado en la figura siguiente, dispone de dos memorias:
Memoria de datos
Memoria de Programa
Además cada memoria dispone de su respectivo bus, lo que permite, que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Como los buses son independientes éstos pueden tener distintos contenidos en la misma dirección .

Arquitectura
según el modelo HARVARD
Arquitectura Ortogonal: Cualquier instrucción puede utilizar cualquier elemento de la arquitectura como fuente o destino.
Arquitectura basada en banco de registros: Implica que todos los elementos del sistema, es decir, temporizadores, puertos de entrada/salida, posiciones de memoria, etc, están implementados físicamente como registros.
En los PIC el manejo del banco de registros, que participan activamente en la ejecución de las instrucciones, es muy interesante al ser ortogonales. En la figura siguiente se muestra como la ALU (Unidad Aritmético-Lógica) efectúa sus operaciones con dos operandos, uno que proviene del registro W (Work), que en otras CPUs recibe el nombre de Acumulador, y el otro que se encuentra en cualquier otro registro o del propio código de instrucción.

Registros
que pueden enviar datos a la ALU. El resultado puede ir a cualquier
registro o al registro W
En la Figura siguiente se representa el diagrama de bloques del PIC 16C84 del que podemos resaltar las siguientes características:
Memoria de programa EEPROM de 1Kx14 bits
Memoria de datos dividida en 2 áreas:
Área RAM formada por 22 registros de propósito específico (SFR) y 36 de propósito general (GPR).
Área EEPROM formada por 64 bytes.
ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando que puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio código de instrucción.
Recursos conectados al bus de datos: PortA de 5 bits <RA0:RA4> , PortB de 8 bits <RB0:RB7>, Temporizador con Preescaler TMR0, etc.
Contador de programa de 13 bit (lo que en teoría permitiría direccionar 4 KB de memoria, aunque el 16C84 solo dispone de 1KB de memoria implementada).
Pila de 8 niveles.
PIC16F83PIC16F83: La memoria de programa es de 512 palabras de 14 bits y la RAM de datos tiene 36 bytes de registros de propósito general.
PIC16CR83PIC16CR83: Igual que el PIC16F83, pero la memoria de instrucciones es de tipo ROM, o sea, sólo grabable durante el proceso de fabricación y utilizada en grandes series.
El elemento diferencial más importante del PIC16C84 respecto al resto de los elementos de la familia media de los PIC, es que la su memoria de programa es del tipo EEPROM y en el caso del PIC16F84 es que su memoria es del tipo Flash, por lo demás, otros dispositivos de esta familia disponen de más memoria, tienen más periféricos, etc..
El Contador de Programas (PC)
Los microcontroladores de la gama media disponen de un Contador de Programa (PC) de 13 bits, cuyos bits de menor peso corresponden a los 8 bits del registro PCL, implementado en la posición de memoria RAM 02h (y duplicado en la posición 82h),y los cinco bit de mayor peso del PC corresponden con los 5 bits de menor peso del registro PCLATCH, implementado en la posición de memoria RAM 0Ah (y duplicado en la posición 8Ah), lo que le permite direccionar hasta 8 K x 14 bits dividido en páginas de 2 K x 14 bits. Sin embargo, el PIC16C84 dispone tan solo de 1Kx14 bits de memoria implementada, desde la posición 0000h hasta la 03FFh, los 3 bit de mayor peso del PC no los tiene en cuenta, así pues la dirección 30h, 430h, 830h, C30h,1430h, 1830 y 1C30h se considera como la misma.

En las instrucciones CALL y GOTO los 11 <10:0> bits de menos peso corresponden al código de operación, mientras que los 2 bit de mayor peso<12:11> los suministran respectivamente los bit 4 y 3 del registro PCLATH que realmente apuntan a una de las 4 páginas del mapa de memoria que puede direccionar el PC.
Un Reset provoca que se pongan a cero todos los bits del los registros PCL y PCLATCH, forzando que la dirección de inicio sea la 0000h.
Como puede verse en la siguiente figura, el vector de reset se almacena en la dirección 0000h, mientras que el vector de interrupción está en la dirección 0004h. La memoria de programa de usuario propiamente dicha, comienza en la posición 0005h y llega hasta la 03FFh
La pila es una zona de memoria, que se encuentra separada tanto de la memoria de programa como de la de datos. Tiene una estructura LIFO (Last In First Out), por lo que el último valor que se guarda es el primero que sale. Dispone de 8 niveles de profundidad cada uno de ellos con una longitud de 13 bits. Su funcionamiento es como el de un buffer circular, de tal forma que el valor que se obtiene al realizar nueve desplazamientos, es igual al primer desplazamiento.
La única manera de cargar la Pila es a través de la instrucción CALL (llamada a subrutina) o por una interrupción que hacen que con cada una de ellas, se cargue el contenido del PC en el valor superior de la Pila. Para recuperar el contenido de la Pila en el PC hay que ejecutar una instrucción RETURN, RETLW o RETFIE (vuelta del programa de atención a una subrutina o interrupción).
No se dispone de ningún flag (identificador) que indique un desbordamiento de la Pila.
PALABRAS DE CONFIGURACIÓN E IDENTIFICACIÓN
Los PIC de la gama media disponen de una palabra de configuración de 14 bits que se escribe durante el proceso de grabación del dispositivo y que debe hacerse de acuerdo con el sistema en el que se va a insertar. Dichos bits ocupan la posición reservada de memoria de programa 2007h. En la Tabla siguiente se muestra la estructura de la Palabra de configuración.
PATILLAJE DEL PIC16C84
El microcontrolador PIC16C84 es un chip que como puede apreciarse en la figura siguiente, dispone de 18 patillas. Seguidamente describiremos cada una de ellas.

VSS y VDD: (pines 5 y 14) son respectivamente las patillas de masa y alimentación. Está comprendida entre 2V y 6V
OSC1/CLKIN y OSC2/CLKOUT: (pines15 y 16) son los pines de la entrada de cristal/ fuente externa de reloj y salida de oscilador a cristal respectivamente. Los distintos elementos de la familia 16X84X, dependiendo de la nomenclatura que utilizan tienen distintas características de:
* Frecuencia máxima de funcionamiento
* Tipo de oscilador utilizado para generar frecuencias de reloj
* Margen de la tensión de alimentación.
Los modelos que contienen las letras C, F o CR admiten tensiones de alimentación comprendidas entre 4V y 4,5V como mínimo hasta 5,5V a 6V como máximo. Los modelos que contienen las letras LC, LF o LCR admiten desde 2V a 6V.
Los microcontroladores PIC, permiten cuatro tipos de osciladores externos para aplicarles la frecuencia de funcionamiento. Durante el proceso de grabación, antes de introducir el programa en memoria, debe indicarse el tipo de oscilador empleado en los bits FSOC1 y FSOC2 de la Palabra de Configuración. Los tipos de osciladores que puede utilizar nuestro microcontrolador son:
* Oscilador de cristal o resonador de alta velocidad "HS"(High Speed Crytal/Resonator):Es un oscilador una frecuencia comprendida entre 4MHz y 20MHz.
* Oscilador o resonador cerámico "XT" (Crystal/Resonator): Se trata de un oscilador estándar que permite una frecuencia de reloj comprendidas entre 100KHz y 4 MHz.
* Oscilador de cristal de cuarzo o resonador cerámico de baja potencia "LP" (Low Power Crystal): Se trata de un oscilador de bajo consumo con un cristal o resonador diseñado para trabajar con frecuencias comprendidas entre 32KHz y 200KHz.
El circuito para cualquiera de las configuraciones anteriores se representa en la siguiente figura y depende de los valores de C1, C2 y del cristal para el buen funcionamiento del mismo. Se recomienda ver la tabla de datos del fabricante.

Oscilador tipo "RC": Es un oscilador de bajo coste formado por una red RC. Su circuito de aplicación es el que se muestra en la siguiente figura Se trata de un oscilador de baja precisión que depende de la estabilidad de la red RC, pero como contrapartida está su bajo precio que lo hace interesante para muchas aplicaciones.

MLCR /Vpp: (pin 4) Entrada de Reset si está a nivel bajo y entrada de la tensión de programación cuando se está programando el dispositivo. Más adelante veremos como se realiza el reset del microcontrolador y que formas hay de hacerlo.
RA0-RA4/TOCK1 : (Pines 17,18,1,2 y 3 respectivamente) Corresponden a cuatro líneas bidireccionales de E/S del PORTA. Es capaz de entregar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. El pin RA4, si se programa como salida es de colector abierto. Como entrada puede programarse en funcionamiento normal o como entrada del contador/temporizador TMR0.
RB0-RB7: (Pines 6,7,8,9,10,11,12 y 13 respectivamente) Corresponden a ocho líneas bidireccionales de E/S del PORTB. Es capaz de entregar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede programarse además como entrada de interrupciones externas INT. Los pines RB4 a RB7 pueden programarse para responder a interrupciones por cambio de estado. La patilla RB6 y RB7 corresponden con las líneas de entrada de reloj y entrada de datos respectivamente, cuando está en modo programación.
LAS INTERRUPCIONES
Las interrupciones constituyen quizá el mecanismo más importante para la conexión del microcontrolador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos externos.
El funcionamiento de las interrupciones es similar al de las subrutinas de las cuales se diferencian principalmente en los procedimientos que las ponen en marcha. Así como las subrutinas se ejecutan cada vez que en el programa aparece una instrucción CALL, las interrupciones se ponen en marcha al aparecer en cualquier instante un evento externo al programa, es decir por un mecanismo hardware.
El PIC16C84/PIC16F84 dispone de 4 posibles fuentes de interrupción:
-Activación del pin RB0/INT
-Desbordamiento del temporizador TMR0
-Cambio de estado en uno de los 4 pines de más peso (RB7:RB4) del PORTB
-Finalización de la escritura en la EEPROM de datos.
Cuando se produce cualquiera de los sucesos indicados anteriormente, se origina una petición de interrupción, que si se acepta, guarda el valor del PC actual en la Pila, pone a cero el bit GIE (Global Interrupt Enable), lo que prohibe cualquier otra interrupción y se carga el PC con el valor 0004H , que es la posición del vector de interrupción, y comienza a ejecutarse el programa de atención a la interrupción que se encuentra a partir de esta dirección.
Cada causa de interrupción está controlada mediante dos bit. Uno de ellos actúa como señalizador o flag que indica si se ha producido o no la interrupción, y la otra funciona como bit de permiso o prohibición de la interrupción en sí, tal y como se muestra en la siguiente figura:

INTRODUCCIÓN
Los motores paso a paso (PaP) difieren en gran medida de los motores que todos conocemos de CC (corriente continua). Al aplicar a sus bobinas un conjunto adecuado de impulsos eléctricos éstos giran sobre su eje un ángulo fijo, este ángulo recorrido que depende de las características del motor, se le llama paso, de forma que se puede controlar, mediante un circuito electrónico, la cantidad, velocidad y sentido de los pasos.

Hay dos tipos básicos de motores PaP, los BIPOLARES que se componen de dos bobinas y los UNIPOLARES que tiene cuatro bobinas. Externamente se diferencian entre sí por el número de cables. Los bipolares solo tienen cuatro conexiones dos para cada bobina y los unipolares que normalmente presentan seis cables, dos para cada bobina y otro para alimentación de cada par de éstas, aunque en algunos casos podemos encontrar motores unipolares con cinco cables, básicamente es lo mismo, solo que el cable de de alimentación es común para los dos pares de bobinas.
CONTROL EN LOS MOTORES PASO A PASO
Está constituido esencialmente por dos partes:
a) Una fija llamada "estator", construida a base de cavidades en las que van depositadas las bobinas que excitadas convenientemente formarán los polos norte-sur de forma que se cree un campo magnético giratorio.
b) Una móvil, llamada "rotor" construida mediante un imán permanente, con el mismo número de pares de polos, que el contenido en el estator; este conjunto va montado sobre un eje soportado por dos cojinetes que le permiten girar libremente.
Si por el medio que sea, conseguimos excitar el estator creando los polos N-S, y hacemos variar dicha excitación de modo que el campo magnético formado efectúe un movimiento giratorio, la respuesta del rotor será seguir el movimiento de dicho campo, produciéndose de este modo el giro del motor.
Así pues, un motor paso a paso es un elemento que transforma impulsos eléctricos en movimientos de giro controlados, ya que podremos hacer girar al motor en el sentido que deseemos y el número de vueltas y grados que necesarios.
Según la construcción de las bobinas del estator, podemos diferenciar entre motores "bipolares" y motores "unipolares". Los primeros tiene las bobinas con un arrollamiento único, mientras que los segundos tienen las bobinas compuestas por dos arrollamientos cada una.
En la FIG.1 podemos ver esta diferencia de forma gráfica. A igual número de espiras, el unipolar, deberá tener menor sección en el hilo de las bobinas, aumentando por tanto su resistencia y disminuyendo su par a bajas velocidades.Al número de grados que gira el rotor, cuando se efectúa un cambio de polaridad en las bobinas del estator, se le denomina "ángulo de paso" y puede ser muy variado en función de la aplicación y por tanto de la construcción del mismo. Además, existe la posibilidad (con el control electrónico apropiado) de conseguir una rotación de medio paso. En los motores que tratamos a continuación el paso completo es de 7'5º (medio paso 3'75º) y el número de pasos por vuelta completa es de 48. En cada paso puede producirse un error cifrado de 0'5º en adelanto o en retraso, sin embargo, este error no es acumulativo, quedando anulado en el transcurso de los 360 grados eléctricos. Deberemos considerar que cuando se efectúe medio giro, el motor desarrollará un par menor y ejecutará el giro con menor precisión. Los motores son fabricados para trabajar en un rango de frecuencias determinado por el fabricante y rebasado dicho rango, estaremos provocando una velocidad de giro del campo magnético creado por el estator muy elevada, no siendo el rotor capaz de alcanzar esa velocidad, provocando una pérdida de sincronización y quedando frenado en estado de vibración. Para estos motores, la máxima frecuencia admisible está alrededor de los 625 Hz.

FIGURA
1
SECUENCIA DE EXCITACION DE LAS BOBINAS
Puesto que estamos hablando de dos tipos de motores paso a paso, el bipolar y el unipolar, tendremos también dos modos de excitación de sus devanados:
1.- Devanado bipolar. Tenemos dos bobinas de arrollamiento único y su excitación, es decir, el orden en que se les aplica la tensión, hace circular una determinada intensidad en un sentido u otro, creando así los polos Norte-Sur y produciendo el giro del motor. La secuencia se expresa en la tabla siguiente. Si seguimos el orden 1, 2, 3, 4, estaremos efectuando un giro hacia la derecha. Para invertir el giro no tendremos más que seguir la secuencia inversa, es decir, 4, 3, 2, 1.
2.- Devanado unipolar. Tenemos dos bobinas con doble arrollamiento y la excitación precisa en las bobinas se representa también en la misma tabla. Los valores 1 y 0 representan niveles lógicos. Con la secuencia 1, 2, 3, 4 se realiza un giro a la derecha y para cambiar el sentido de giro se efectúa la secuencia contraria.
CIRCUITOS DE MANDO.
El manejo operativo de un motor paso a paso, puede llevarse a cabo de dos modos básicos, bien mediante un control por tensión constante o bien mediante un control por corriente constante.
Vamos a mostrar el control por tensión constante de un motor bipolar, mediante un circuito integrado diseñado específicamente para esta labor. se trata del SAA 1042 (fabricado por Motorola) cuya distribución de patillas se muestra en la FIG.2. Seguidamente describiremos la función de cada una de ellas:
Patilla 1: Salida de control de una bobina del motor en unión con la patilla 3.
Patilla 2: Sirve para proteger las salidas 1, 3, 14, y 16, amortiguando los transitorias que introducen las bobinas del motor en los cambios de nivel de los pulsos de control. Es necesario conectar un diodo zener entre la patilla 2 y la 15 (zener de 3V3).
Patilla 3: Salida de control de una bobina del motor en unión con la patilla 1.
Patilla 6: Terminal con dos funciones básicas, a través de una resistencia adapta la corriente del motor y con un pulso a través de la resistencia se efectúa un set de las salidas de control. Si no se utiliza la función set, debe colocarse a masa a través de la resistencia.
Patilla 7: Entrada de reloj, activa en el flanco positivo del pulso. Por cada pulso que llegue, el motor gira 7'5º (o bien 3'75º según este conectado el terminal 8).
Patilla 8: (Full/Half step) Determina el ángulo de rotación del motor por cada pulso que llegue de reloj. En estado bajo, el motor gira un paso completo (7'5º).
Patilla 9: Masa.
Patilla 10: (CW/CCW) Determina el sentido de giro. Cuando esta a nivel bajo, gira en sentido de las agujas del reloj. A nivel alto, el giro es contrario al de las agujas del reloj.
Patilla 11: Alimentación de la parte lógica del SAA 1042. Puede variar de los +5V hasta los +20V. Puede ser la misma tensión que la alimentación del motor (patilla 15) o bien puede alimentarse a +5V para ser acoplado a señales de nivel TTL.
Patilla 14: Salida de control de una bobina del motor en unión con la patilla 16.
Patilla 15: Tensión a la que vamos a alimentar al motor.
Patilla 16: Salida de control de una bobina del motor en unión con la patilla 14.
El integrado SAA 1042 puede controlar motores con tensiones desde 6V hasta 12V y el SAA 1042A controla motores de 24V. Soportan una corriente de salida de 600 mA y poseen internamente diodos supresores de parásitos. sus entradas son compatibles con familias lógicas como MOS, DTL y TTL.

Para construir el microbot tenemos la opción de usar el sensor infrarrojo IS471F o un bumper.
CARACTERISTICAS DEL SENSOR IS471F

Sensor basado en el dispositivo SHARP IS471F inmune a interferencias de luz normal. Este sensor incorpora un modulador/demodulador integrado en su carcasa y a través de su patilla 4 controla un diodo LED de infrarrojos externo, modulando la señal que este emitirá, para ser captada por el IS471F que contiene el receptor. cuando un objeto se sitúa enfrente del conjunto emisor/receptor parte de la luz emitida es reflejada y demodulada para activar la salida en la patilla 2 que pasará a nivel bajo si la señal captada es suficientemente fuerte.
El uso de luz IR modulada tiene por objeto hacer al sensor relativamente inmune a las interferencias causadas por la luz normal de una bombilla o la luz del sol.
FUNCIONAMIENTO
Como puede verse en el esquema, el sensor se alimenta por sus patitas 1 y 3 y estas corresponden a Vcc y Gnd respectivamente, la patita 2 es la salida del detector y la patita 4 es la salida que modula al led emisor externo. Mediante el potenciómetro P1 se varia la distancia a la que es detectado el objeto. Contra mas baja sea la resistencia de este potenciómetro, mas intensa será la luz emitida por el diodo de IR y por lo tanto mayor la distancia a la que puede detectar el objeto.
El siguiente esquema vemos el simple circuito necesario para hacer funcionar al sensor.

ESQUEMA
DEL SENSOR IS471F
Si quieres información más detallada sobre este sensor pincha aqui
CARACTERÍSTICAS DEL BUMPER

El bumper es un conmutador de 2 posiciones con muelle de retorno a la posición de reposo y con una palanca de accionamiento mas o menos larga según el modelo elegido.
FUNCIONAMIENTO
En estado de reposo la patita común (C) y la de reposo (R) están en contacto permanente hasta que la presión aplicada a la palanca del bumper hace saltar la pequeña pletina acerada interior y entonces el contacto pasa de la posición de reposo a la de activo (A), se puede escuchar cuando el bumper cambia de estado, porque se oye un pequeño clic, esto sucede casi al final del recorrido de la palanca.
Se usan para detección de obstáculos por contacto directo. No son adecuados para robots de alta velocidad ya que cuando detectan el obstáculo ya están encima y no da tiempo a frenar el robot.
La batería es una unidad productora de energía eléctrica constituida por varias pilas.
Las baterías son uno de los componentes más importantes para construir un microbot si PINCHAS AQUÍ obtendras información sobre la evolución histórica de las baterías.
Nosotros usaremos baterías de Ni-Cd que tiene las siguientes características:
a) Baja resistencia de salida, lo que implica que suministren alta corriente al descargarse.
b) Buen rendimiento: prácticamente, toda la energía suministrada hasta plena carga se recupera en la descarga.
c) Es común su fallo dando tensión nula, pero no circuito abierto, por lo que en caso de este fallo el paquete de baterías seguirá alimentando su carga, pero con un elemento menos (no nos deja totalmente tirados).

OTROS COMPONENTES
Con este componente podremos controlar nuestro microbot. Sí pinchas aquí obtendras las características técnicas de este dispositivo.
El L293B es un driver de 4 canales capaz de proporcionar una corriente de salida de hasta 1A por canal. Cada canal es controlado por señales de entrada compatibles TTL y cada pareja de canales dispone de una señal de habilitación que desconecta las salidas de los mismos. Dispone de una patilla para la alimentación de las cargas que se están controlando, de manera que dicha alimentación es independiente de la lógica de control.
La Tabla 1 se muestra su encapsulado de 16 pines, la distribución de patillas y la descripción de las mismas:

Montaje del driver L293B con el microcontrolador PIC
Para comprobar el funcionamiento del driver L293B con el un microcontrolador vamos a utilizar el PIC16F84, que es un microcontrolador que todos nuestros lectores ya conocen, un motor de los que ya hemos utilizado, un inversor tipo Trigger Schmitt del tipo 40106 y nuestro driver.

Motor
para las prácticas con el microcontrolador y el driver
Y montaremos el circuito de la Figura 6.

Figura
6.- Esquema del montaje para el control de motores con el driver
L293B y el PIC16F84
Para comprobar su funcionamiento, vamos a escribir el programa motor1.asm, que controla el driver del motor de manera que dependiendo del estado del conmutador RA0. Si RA0 cerrado (0) o abierto (1), el motor se para o gira respectivamente.
Para las aplicaciones en las que se requiere diseñar específicamente una fuente regulable de amplio margen de salida, es altamente recomendable utilizar otro regulador el LM317. En principio sus características son similares a cualquier 78XX, es decir un regulador positivo. Sin embargo, posee una diferencia fundamental que lo hace ideal para fuentes regulable: su tensión de referencia (la XX de la expresión anterior) es de sólo 1,25V, con lo ofrece la posibilidad de un amplio rango de tensiones de salida.
Características de este transistor en .PDF

CONSTRUCCIÓN DE UN MICROBOT FAMOSO: BICHO 2
Bicho-2 es un microbot cilíndrico, de unos 12 cm de diámetro y 6 de altura. Tiene dos motores que actúan de forma diferencial sobre sus dos únicas ruedas y que le permiten moverse con total libertad sobre superficies lisas. Su "cerebro" es un microcontrolador PIC 16F84, cuyos puertos controlan la dirección, velocidad y sentido de los motores, y reciben información de dos sensores infrarrojos de proximidad y de tres interruptores que detectan las posibles colisiones. Su 0programa original (se puede modificar para que realice otras tareas, como seguir líneas dibujadas en el suelo) le hace deambular evitando chocar contra cualquier obstáculo, deteniéndose de vez en cuando y reanudando la marcha tras cierto tiempo.
LA BASE Y LA CARCASA
El cuerpo principal del robot está formado por dos piezas de metacrilato o plexiglás: una, con forma aproximada de disco, constituye la base (ver fig. 2), y otra, de forma cilíndrica, protege todo el conjunto. La pieza cilíndrica se encuentra "flotando" sobre la base, de forma que, si el robot choca contra algo, el movimiento relativo entre ambas piezas permita la activación de tres microinterruptores solidarios con la base. Estos microinterruptores, que a partir de ahora llamaré bumpers (a veces conviene recurrir al inglés para abreviar), son del tipo "de lámina", y van colocados como se ve en la figura 3, siendo la parte superior de ésta el frontal del robot. Lo que permite que la carcasa quede bien sujeta a la base pero flotante son tres cables de acero colocados uno al lado de cada bumper.

Fig
2. Pieza de la base

Fig
3. Base con los interruptores y la carcasa
Para hacer el cuerpo principal del microbot necesitamos el siguiente material:
- 2 láminas de metacrilato de 2 mm de grosor, una para la base y otra para la carcasa.
- 3 microinterruptores SPDT de lámina.
- 3 tornillos de métrica 2 mm con sus tuercas.
- Alambre delgado de acero (leer más abajo).
- Chapa de cobre (leer más abajo).
- 6 tornillos de métrica 3 mm con sus tuercas.
- 2 separadores hexagonales de latón con sus tuercas.
Para no arriesgar, es muy recomendable acabar de leer todo este artículo y tener claro qué tipo de motores se van a utilizar, ya que las medidas de las piezas y la posición de los agujeros dependerán de éstos. Esa es la razón por la que no doy medidas precisas, la forma de las piezas es sólo orientativa.
Podemos encontrar láminas de metacrilato cortadas a medida en algunas tiendas de materiales plásticos. También se venden en muchos sitios láminas de tamaños fijos para cubrir cuadros. Una vez que obtengamos el material, daremos forma a la pieza de la base con una sierra, lima y un taladro. Lo mejor es utilizar una sierra eléctrica de cinta, pero se puede lograr lo mismo con una sierra de mano y algo de paciencia. Si no se dispone de taladro eléctrico para hacer los agujeros, un berbiquí de mano es la solución más económica.
Ahora viene lo más interesante: para dar forma cilíndrica a la otra pieza, la meteremos en el horno de la cocina a unos 250º C durante 20 minutos. Con mucho cuidado y utilizando unos buenos guantes de cocina (¡hay que recordar que está a 250º C!) cogemos la lámina, que ahora estará blanda y manejable, y la enrollamos alrededor de un objeto cilíndrico y resistente, como un bote de pintura, que tenga el diámetro requerido, que ha de ser 5 o 6 mm mayor que el de la base. Tras un par de minutos el metacrilato recuperará su rigidez. Sólo tenemos que pegar los extremos para obtener un cilindro perfecto.

Fig
4
Para la sujeción móvil de la carcasa a la base necesitaremos tres alambres de acero de unos 4 cm de longitud, suficientemente flexibles y a la vez resistentes. Después de pensarlo mucho, he encontrado que las cuerdas entorchadas para guitarra eléctrica son perfectas para este fin. Podemos escogerlas más gruesas o más delgadas según la sensibilidad a los choques que le queramos dar al robot. Un buen grosor puede ser el de 0.024 pulgadas.
Para que los alambres nos sirvan de algo debemos estañar cada uno de ellos a dos chapas agujereadas que irán atornilladas a las piezas de metacrilato, como se aprecia, más o menos, en la figura 5. Pueden servirnos las chapas de cobre que sirven de contactos en las pilas "de petaca" de 4,5 voltios. Si limpiamos bien las superficies no deberíamos tener ningún problema para realizar las uniones con un pequeño estañador.

Fig
5.
Las chapas irán atornilladas a la base en los agujeros de 3 mm que están dibujados al lado de cada bumper en la figura 3, y a la carcasa en otros tres agujeros que debemos practicar a la altura adecuada para que el disco de la base quede a ras del cilindro.
Atornillaremos cada bumper a la base mediante un tornillo de 2 mm, de forma que, aflojándolo, podamos regular el recorrido necesario para su activación. Se pueden encontrar tornillos de esta medida en tiendas de hobby y modelismo (demasiado caras), o en algunas tiendas de componentes electrónicos. Más adelante, en el apartado conectores explicaré cómo unir los cables a los terminales.
Para terminar con la carcasa según aparece en la figura 4 sólo nos queda atornillar los separadores hexagonales que soportarán la placa con los circuitos. Debemos escoger una posición en la que no molesten para después colocar los motores.
RUEDAS Y MOTORES
Esta es la parte que más problemas suele dar al diseñar un microbot casero: ¿qué motores y qué reductoras utilizar?, ¿cómo conseguirlos?, y , sobre todo: ¿cómo adaptar los ejes a unas ruedas?. He elegido usar un modelo de moto-reductor distribuido por Micro-log, principalmente porque es el más barato que he encontrado (alrededor de 6 euros). Consiste en un pequeño motor de continua con una tensión de funcionamiento entre 1,5 y 12 voltios insertado en un chasis de chapa con engranajes, como se aprecia en la figura 7. Cada rueda está construida con un círculo de metacrilato de 3,5 cm de diámetro (de forma que sobresale 5 mm por debajo de la base del microbot) con forma de polea, al que he pegado en su perímetro una junta tórica de goma.
Este diseño de ruedas no es el único posible y tiene el inconveniente de precisar ciertas herramientas que no todo el mundo tiene en sus casas. Aún así, puede servir de insipiración para otros diseños más asequibles para el lector.

Fig
7.
Material necesario:
- 2 moto-reductores como el de la figura 7, con eje de 4 mm.
- 4 tornillos de métrica 3 mm con sus tuercas.
- Lámina de metacrilato de 2 mm de espesor.
- 2 juntas tóricas de goma de 2 mm de grosor y 30 mm de diámetro.
- 4 tuercas de métrica 4.
Con un compás marcaremos un círculo de 35 mm de diámetro en la lámina de metacrilato, que recortaremos con mucho cuidado y repasaremos con una lima. En su centro haremos un agujero de 4 mm. Si no disponemos de torno ni de un taladro con soporte tendremos que hacer el canal exterior también con la lima y mucha paciencia, pero si disponemos de tales herramientas podemos rectificar el círculo y hacer el canal sin ningún problema. Repetiremos todo el proceso para hacer la otra rueda y pegaremos las juntas tóricas con un pegamento fuerte que no descomponga la goma.
Para adaptar cada rueda a los ejes de los moto-reductores debemos ántes cortar éstos, de forma que quepan bien dentro de la carcasa exterior del robot. A continuación roscaremos la parte de los ejes donde vamos a colocar las ruedas, utilizando para ello una terraja de métrica 4. En las ferreterías podemos encontrar juegos de terrajas y machos para roscar a precios muy baratos. La calidad no es demasiado importante si no les vamos a dar mucho uso. En cualquier caso, siempre podremos acudir a un taller para que nos echen una mano con nuestro "invento".
Una vez roscados los ejes, sólo nos queda sujetar cada rueda con un par de tuercas como se ve en la figura 7. En la figura 8 se muestra el aspecto que debería tener el microbot con los moto-reductores ya atornillados a la base.

Fig
8.
CONECTORES, CABLES Y BATERÍA
Es famosa la frase de Anita Flynn, del Instituto Tecnológico de Massachussets, que dice que "la robótica es un problema de conectores". Yo no diría tanto, pero es cierto que los conectores pueden llegar a dar muchos disgustos si no se les da la atención que merecen. Es muy común que un circuito no funcione por culpa de un mal contacto en alguno de sus conectores. En las tiendas podemos encontrar unos buenos sistemas de conexión para placas de circuito impreso en los que el macho va soldado a la placa y tiene el aspecto de una hilera de pines. La hembra soporta los cables, que pueden ir sujetos a presión mediante "crimpado", o soldados. A nosotros nos vendrá mejor soldar los cables a los contactos de la hembra, así no necesitaremos herramientas especiales. En la figura 9 se muestran las partes de las que consta una conexión de este tipo.

Fig
9.
Es muy recomendable proteger con funda termorretráctil todas aquellas soldaduras que lo permitan, como las de los contactos de los motores y de los bumpers. Nos sobrará con unos 15 cm de macarrón de 3 mm de diámetro para todo el robot. La forma de utilización es sencilla: cortamos un trozo de la longitud deseada (unos 6 mm), lo introducimos en el cable, hacemos la soldadura y calentamos el macarrón con una pequeña llama o con el propio soldador. Lo mejor es realizar varias pruebas antes de correr el riesgo de quemar algún componente delicado.
La fuente de alimentación de Bicho-2 está formada por 6 baterías recargables de tipo AA, de 1.2 V y 1000 mAh. Es el mismo tipo de baterías que se encuentran en el interior de muchos de los packs utilizados por coches de radiocontrol. Para hacer nuestro propio pack sólo debemos pegar las baterías de la forma que se muestra en la figura 10 utilizando un pegamento fuerte y unir en serie los contactos soldando chapas o cables, de forma que entre dos de ellos obtengamos una tensión nominal de 7.2 V. A estos dos contactos soldaremos un par de cables acabados en un conector de 2 vias.
El paquete de baterías irá unido a la base del microbot mediante una brida para cables de 188 mm que pasará por los agujeros alargados que aparecen en las figuras 2 y 3. La parte de la brida que quede por debajo de la base servirá de apoyo para el microbot.

Fig
10.
CIRCUITOS Y SENSORES
En los siguientes esquemas se aprecian las distintas partes de que consta la parte electrónica del microbot.
Fuente de alimentación
El robot utilizará dos tensiones diferentes: 5 voltios regulados para los circuitos digitales y 7.2 voltios sin regular para los motores. El regulador utilizado para los 5 voltios es un típico 7805 en encapsulado TO220. En la figura 11 vemos también también el interruptor de encendido, que es de tipo deslizante, un par de condensadores que actúan como filtros de ruido, y el LED indicador de encendido.

Fig
11. Batería y Fuente de Alimentación
Microcontrolador
El PIC 16F84 controla todas las actividades del microbot mediante 14 de las 15 líneas de entrada/salida presentes en sus dos puertos (las flechas en la figura 12 indican cuáles son de entrada y cuáles de salida). Su frecuencia de reloj está generada por un cuarzo de 4 MHz. El microcontrador debe ir necesariamente montado sobre un zócalo, ya que será necesario extraerlo y colocarlo cada vez que se quiera reprogramar. A la programación del PIC está dedicado todo el artículo siguiente.

Fig
12. Microcontrolador
Control de motores
Como las líneas digitales no pueden excitar directamente cargas grandes, es necesario algún componente que amplifique lo suficiente estas señales. De eso se encarga el integrado L293B, de SGS-THOMSON, que es un driver de 4 canales que pueden ser utilizados para activar 2 pequeños motores de contínua y hacerlos girar en ambos sentidos. Entre las características más interesantes del L293B se encuentran la protección contra sobre-temteraturas, la alta inmunidad al ruido, la alimentación separada para las cargas y la capacidad de proporcionar una corriente de salida de 1 A por canal.
Los cables de los motores parten de un conector de 4 pines en la placa del circuito.

Fig
13. Control de Motores
En su movimiento, Bicho-1 se guía mediante sensores infrarrojos de reflexión. Al igual que la luz visible, los infrarrojos se reflejan en cualquier objeto cercano con mayor o menor intensidad, dependiendo del material de éste. Existen muchas fuentes de infrarrojos, naturales o artificiales, a las que el robot podría ser sensible, por esta razón se modula la señal de infrarrojos a una cierta frecuencia y se hace que el receptor sólo sea sensible a ésta. Como se aprecia (más o menos) en la figura 1, existen tres LEDs en la parte delantera de la carcasa: uno apunta al frente y los otros dos a los lados, con un ángulo de unos 40º respecto al frontal.
El circuito del emisor de infrarrojos está construido con cinco de los seis inversores CMOS contenidos en el integrado 74HC04. Dos de ellos están montados formando un oscilador de onda cuadrada cuya frecuencia, en torno a los 40 KHz, se puede ajustar mediante el potenciómetro R4. La salida de este oscilador satura el transistor T1, por cuyo colector circula la corriente de los LEDs. Cada LED es activado por un inversor, que actúa como buffer, al poner la entrada de éste a nivel lógico "0".
Los cables de los LEDs infrarrojos parten de un conector de 6 pines en la placa.

Fig
14. Emisores Infrarrojos
Receptores de infrarrojos
Simplificando las cosas (ya se verá con más detalle en la sección sobre el software), la técnica utilizada para la detección de obstáculos es la siguiente: el robot envía pulsos de infrarrojos por uno de los LEDs a la vez que lee la salida del receptor, si éste recibe los pulsos, existe un obstáculo en esa dirección. Esto se realiza para cada LED, cubriendo así las tres direcciones. Aunque, en teoría, bastaría con un sólo receptor de infrarrojos, en la práctica el gran ángulo cubierto por los emisores hace que sea más fiable utilizar dos.
Los receptores son pequeños módulos encerrados en una cubierta metálica, como los utilizados en muchos aparatos que funcionan con mando a distancia. En su interior tienen todo lo necesario para la recepción, demodulación y amplificación de la señal. Existen distintos modelos, yo he usado el GP1U56 de Sharp, cuyo diagrama de conexionado aparece en la figura 17. Su salida es TTL invertida: es "1" en ausencia de señal, y "0" cuando la recibe. Los cables que parten de cada sensor llegan a la placa del circuito mediante un conector de 3 pines.
Como se ve en la figura 1, los sensores de infrarrojos van montados en el exterior de la parte superior de la carcasa. Para sujetarlos podemos utilizar pegamento. Lo ideal es usar adhesivo de fusión dispensado por una pistola térmica.

Fig
15. Sensores Infrarrojos
Bumpers
La conexión de los bumpers al microcontrolador es de lo más sencillo. Tres resistencias pull-up se encargan de mantener a nivel alto las tres entradas del PIC. Cuando el robot choca con algo y uno de los interruptores se activa, la línea correspondiente pasa a nivel bajo. Los cables de los tres bumpers van soldados a un único conector de 6 pines.

Fig
16. Bumpers
CONSTRUCCIÓN DE LA PLACA
Los circuitos están montados en una placa de fibra de vidrio de pistas paralelas. En este tipo de placas los taladros ya vienen hechos y están unidos en la parte inferior mediante líneas paralelas de cobre estañado. Son la mejor alternativa a la engorrosa técnica del fotograbado en la fabricación de circuitos impresos permanentes. Para crear las conexiones entre componentes debemos cortar las pistas con una cuchilla por donde sea necesario y después unir los tramos de pista mediante cables por debajo de la placa. El aspecto de la parte superior e inferior de la placa terminada se ve en las figuras 18 y 19. Afortunadamente la parte inferior no es visible una vez que se encuentre montada en el cuerpo del microbot.

Fig
18.

Fig
19.
Para permitir la experimentación con distintas configuraciones de sensores y actuadores, cada uno de los subcircuitos de las figuras 12, 13, 14, 15 y 16 se construye en la placa de forma independiente, sin realizar las conexiones de las líneas de datos. Éstas serán configurables, de la misma manera que los jumpers en las tarjetas para ordenador. La forma de hacer esto es utilizando hileras de pines torneados y puentes de cable rígido que inserten a presión en ellos. En las figuras 19 y 20 se aprecia la placa ya atornillada al microbot y con los conectores externos de sensores, motores y batería. En la figura 19 aún no están hechas las conexiones del microcontrolador a los demás circuitos. En la figura 20 vemos las conexiones implementadas mediante cables rígidos de color gris y marrón.

Fig
19.

Fig
20.
Componentes utilizados en el circuito:
- 1 microcontrolador PIC16F84
- 1 74HC04
- 1 L293B
- 1 LM7805
- 1 BC547C
- 2 sensores de infrarrojos tipo GP1U56
- 1 cuarzo de 4 MHz
- 3 LEDs infrarrojos
- 1 LED rojo
- 1 potenciómetro de 5K
- 3 resistencias de 100 ohmios
- 1 resistencia de 390 ohmios
- 5 resistencias de 2.2 K
- 1 resistencia de 6.8 K
- 1 resistencia de 100 K
- 2 condensadores cerámicos de 15 pF
- 1 condensador electrolítico de 330 uF
- 1 condensador de 1 nF
- 1 condensador de 100 nF
- 1 zócalo DIL de 18 pines
- 1 interruptor deslizante
- 1 tira de 36 pines torneados
- 1 conector de 2 pines
- 2 conectores de 3 pines
- 1 conector de 4 pines
- 2 conectores de 6 pines
1 placa de pistas paralelas
-Cable rígido de distintos colores
-Cable flexible de distintos colores
1º PRACTICA
PINCHA AQUI PARA VER EL ESQUEMÁTICO
PINCHA AQUI PARA VER EL ESQUEMÁTICO
PINCHA AQUI PARA VER EL ESQUEMÁTICO
PINCHA AQUI PARA VER EL ESQUEMATICO
PINCHA AQUI PARA VER EL ESQUEMÁTICO
6º PRACTICA
PINCHA AQUI PARA VER EL ESQUEMÁTICO
PINCHA AQUI PARA VER EL ESQUEMÁTICO
LISTA DE COMPONENTES PARA LA CONSTRUCCIÓN DE NUESTRO MICROBOT
|
COMPONENTE |
COSTE DEL COMPONENTE |
Nº UNIDADES |
COSTE |
|
SENSOR IS 471F-SH |
5,09 |
1 |
5,09 |
|
16F84A-04/P |
4,96 |
1 |
4,96 |
|
SO21 48paso/vuelta 5Vlts. 250mA Bipolar |
8,26 |
2 |
16,52 |
|
L293 (Control de mando de motores) |
7,87 |
2 |
15,74 |
|
R6 (Ni-mH) 4,9 x 1,4 cm 1.2 V 1400 mA |
4,74 |
4 |
18,96 |
|
Condensadores 10uF |
0,17 |
1 |
0,17 |
|
BC547 |
0,09 |
1 |
0,09 |
|
Cristal de cuarzo 4MHZ |
0,84 |
1 |
0,84 |
|
Condensadores 15-18pF |
0,17 |
1 |
0,17 |
|
LM317T |
0,51 |
1 |
0,51 |
|
|
|
TOTAL |
63,05 |
TRABAJO REALIZADO POR JESUS SANTIAGO BAILE MARTIN DE 2 D.P.E DEL I.E.S LEONARDO DA VINCI EN MARZO DEL 2003
TODOS LOS DERECHOS RESERVADOS 2003 TM