tesis minirobot

download tesis minirobot

of 84

Transcript of tesis minirobot

UNIVERSIDAD AUTNOMA METROPOLITANA

UNIDAD IZTAPALAPA CB I

REPORTE DE PROYECTO TERMINAL DE LA LIC. DE INGENIERA ELECTRNICA

MINI-ROBOT RECOLECTOR DE OBJETOS E INTERFAZ USB

ALUMNOS: BRAVO INFANTE ADRIN CERVANTES PALACIOS JAVIER

Aprobado por: _________________________________________________________ ASESOR DE PROYECTO: ING. JOEL RICARDO JIMNEZ CRUZ

FECHA:

7- DICIEMBRE 2006

________________________________________________________________________-1-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Resumen.Nuestro proyecto consiste en el diseo e implementacin de un mini-robot recolector de objetos y la interfaz para poder comunicarnos con ste, por medio del puerto USB, con estas premisas de desarrollo y configuracin se lleg a la conclusin de que la mejor forma de implementar este dispositivo era hacerlo mediante microcontroladores, puesto que son dispositivos programables caracterizados principalmente por su reducido tamao, sencillez de programacin y gran diversidad de aplicaciones de control de sistemas. Para ser capaz de trabajar eficazmente el mini-robot cuenta con varias partes que describimos a continuacin: sensores que utilizan seales infrarrojas instalados en dos ubicaciones, en el seguidor de lnea, que es un foto detector que recibe la seal luminosa reflejada por las marcas de color negro que se encuentren en el piso, y en la parte media de la pinza de recoleccin. Esta pinza esta hecha en baquelita y se encuentra controlada por 1 servomotor, el cual le da el soporte necesario para realizar el esfuerzo mecnico para abrir o cerrar la pinza. El brazo up-down, tambin controlado por 1 servomotor, se utiliza para subir y bajar la pinza de recoleccin, permitiendo al descender que la pinza detecte el objeto y lo sujete, inmediatamente el brazo up-down eleva al objeto. Se cuenta con 2 detectores de obstculos colocados en los costados delanteros del robot para evitar choques que lo desestabilicen, por ltimo, el circuito de control se encuentra alimentado con una batera de 9V, ubicada en la parte superior del mini-robot. Al mismo tiempo se proporciona una alimentacin de energa para el circuito de potencia, refirindose a la parte donde intervienen los motores que generan el desplazamiento. Debido a sus caractersticas tanto de programacin como de aplicacin, la unidad recolectora de objetos puede ajustarse a desempear una diversa gama de aplicaciones, mediante pequeas variaciones en la programacin y la sustitucin de los transductores para trabajar con diferentes variables de control. La implementacin de la interfaz USB del proyecto, pretende mostrar como enviar/recibir datos por el puerto USB desde el PIC al PC, el programa fue hecho de tal manera que fuera sencillo y entendible, por lo que sirve de introduccin al uso del puerto USB. La principal lnea de continuacin en proyectos futuros es la preparacin de software especfico de comunicacin va puerto USB. A partir de este software se podr finalizar el desarrollo de ms circuitos que utilicen la comunicacin va puerto USB.

________________________________________________________________________-2-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

ndice generalTtulo __Pgina

INTRODUCCIN .................................................................................................................6 DESARROLLO .....................................................................................................................7 Captulo 1: Microcontroladores: Caractersticas generales............................................8 1.1. Definicin............................................................................................................8 1.2. Recursos comunes a todos los microcontroladores.............................................8 1.2.1. Arquitectura bsica...............................................................................8 1.2.2. Procesador CPU ...................................................................................8 1.2.3. Memoria ...............................................................................................9 1.2.4. Puertas de Entrada y Salida............................................................... 10 1.2.5. Reloj Principal................................................................................... 10 1.3. Recursos especiales.......................................................................................... 11 1.4. Lenguajes de programacin ............................................................................. 12 1.5. Fabricantes ....................................................................................................... 12 Captulo 2: Microcontroladores PIC............................................................................. 14 2.1. Las gamas PIC ................................................................................................. 14 2.1.1. Gama baja.......................................................................................... 14 2.1.2. Gama media....................................................................................... 15 2.1.3. Gama alta y gama mejorada .............................................................. 15 2.2. Microcontroladores 18F2XXX ........................................................................ 16 2.2.1. Caractersticas generales ................................................................... 16 2.2.2. Detalles individuales de la familia PIC18 ......................................... 17 2.2.3. Diagrama de conexionado del PIC18F2550...................................... 18 2.3. PIC18F2XXX: Caractersticas Relevantes ...................................................... 20 2.3.1. Organizacin de la memoria ............................................................. 20 2.3.1.1. Memoria de programa ........................................................ 20 2.3.1.2. Direccionamiento ............................................................... 21 2.3.1.3. Banco de registros y memoria de datos.............................. 22 2.3.2. Oscilador principal ............................................................................ 23 2.3.3. Perro guardin WDT ......................................................................... 23 2.3.4. Reset .................................................................................................. 23 2.3.5. Modo de reposo Sleep ....................................................................... 24 2.3.6. Interrupciones.................................................................................... 25

________________________________________________________________________-3-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Ttulo

__Pgina

2.4. Perifricos ........................................................................................................ 26 2.4.1. Modulacin por anchura de pulsos (PWM) ...................................... 27 2.4.1.1 Periodo PWM ...................................................................... 28 2.4.1.2 Ciclo de trabajo del PWM ................................................... 28 2.4.1.3 Implementacin del PWM................................................... 28 2.4.2. Interfaz de comunicaciones USB ...................................................... 29 2.4.2.1 Caractersticas del modulo USB de los PIC18.................... 29 2.4.2.2 Control y estatus del USB ................................................... 30 2.5. Lectura y escritura de la memoria de datos EEPROM .................................... 31 2.5.1. Lectura de la memoria de datos......................................................... 31 2.5.2. Escritura de la memoria de datos ...................................................... 31 Captulo 3: Diseo del mini-robot recolector de objetos .............................................. 32 3.1. Descripcin de los componentes usados en el mini-robot............................... 32 3.1.1. Sensores usados .................................................................................... 32 3.1.1.1. Sensor Reflexivo IS471F ................................................... 32 3.1.1.2. Sensor Reflexivo CNY70 .................................................. 33 3.1.1.3. Sensor Mecnico Bumper.................................................. 34 3.1.2. Servomotores ........................................................................................ 34 3.1.3. Circuito de prueba para ver el funcionamiento de los motores del mini-robot ........................................................................................ 35 3.1.4. Sistema de Actuacin............................................................................ 38 3.1.4.1. Control de Motores ............................................................ 38 3.1.4.2. Control de Motores por Medio de Microcontrolador ........ 40 3.1.4.3. Giro de dos motores en un nico sentido........................... 41 3.1.5. Montaje del Driver L293B con el Microcontrolador PIC...................... 42 3.1.6. Etapa de Potencia .................................................................................. 43 3.1.7. Etapa de Control.................................................................................... 44 3.1.7.1. Placa del sensor de color negro.......................................... 45 Captulo 4: Implementacin del mini-robot recolector de objetos ............................... 46 4.1. El seguidor....................................................................................................... 46 4.2. La pinza recolectora......................................................................................... 46 4.3. El detector de obstculos ................................................................................. 47 4.4. El brazo up-down............................................................................................. 48 4.5. Suministro de energa y movimiento............................................................... 48 4.6. Diagrama de flujo ............................................................................................ 49 4.7. Funcionamiento del mini-robot ....................................................................... 50 4.8. Programa PFinal.asm del mini-robot recolector de objetos ........................ 53

________________________________________________________________________-4-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Ttulo

__Pgina

Captulo 5: Implementacin de la interfaz de comunicacin USB ............................... 57 5.1. Funcionamiento de la interfaz USB ................................................................. 58 5.2. Programa PicUSB.C para la interfaz de comunicacin USB ....................... 61 Anexo 1: Software de programacin y lenguaje C ............................................................. 64 Anexo 2: Ideas y mejoras para el mini-robot ..................................................................... 79 Bibliografa y Referencias .................................................................................................. 83

________________________________________________________________________-5-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Introduccin.Para el diseo e implementacin del mini-robot recolector de objetos y la interfaz USB, es necesario seguir una serie de pautas o fases que se detallan a continuacin. La primera fase comprende un estudio general de los microcontroladores. En esta etapa se definen con detalle todas las caractersticas fundamentales y sus aplicaciones principales, as como los lenguajes de programacin de los mismos. Todo ello para tener un conocimiento de los microcontroladores en general y de los microcontroladores PIC de la casa MICROCHIP en particular, centrando el estudio en una familia de gama altamejorada muy comercial en estos das. Los dos primeros captulos del desarrollo estn dedicados a los fundamentos tericos de los microcontroladores, tal y como se comenta en el prrafo anterior. El primer captulo describe de manera general los microcontroladores hablando de sus recursos comunes, aplicaciones y fabricantes. El segundo captulo est dedicado a la gama alta-mejorada de los microcontroladores PIC, especialmente a la familia 18FXXXX, ya que el PIC que escogimos para nuestro proyecto, el 18F2550, pertenece a esta familia. Aqu se hace un estudio detallado de todos sus recursos y aplicaciones, la organizacin de la memoria, sus perifricos, etc. La segunda fase del proyecto abarca la totalidad del tercer captulo donde se encuentra la descripcin detallada del diseo del mini-robot, explicando el funcionamiento de los componentes utilizados, los circuitos usados para prueba y los esquemas de las placas, con la explicacin de sus conexiones, para las etapas de potencia y control. Con lo anterior se pretende que se entienda claramente, la parte del ensamblado de los circuitos en el minirobot, todo ello gobernado por el microcontrolador PIC18F2550. La tercera fase del proyecto abarca los dos ltimos captulos, en el cuarto captulo, tenemos la explicacin del armado e implementacin de todos los circuitos en el minirobot, el diagrama de flujo a utilizar para el programa que gobierna al mini-robot, la descripcin de su funcionamiento, con imgenes que detallan claramente cada uno de los pasos que constituyen su operacin, al final encontraran su respectivo programa .asm comentado. Por ultimo, en el quinto captulo, se encuentra la descripcin de los pasos a seguir para la implementacin de la interfaz USB en los microcontroladores, lo que ofrece una visin mas clara sobre el detalle que entraa este tipo de comunicacin, se describe el funcionamiento de la interfaz USB y se incluye su programa .c comentado. Adems de todo lo comentado anteriormente, en este proyecto se aade al final del mismo dos anexos. El primer anexo describe de manera prctica el software MPLAB, que es la herramienta necesaria para llevar acabo la programacin de los PICS, incluye un resumen de las directivas empleadas por el compilador CCS que trabaja en lenguaje C. El segundo anexo es de ideas y mejoras a futuro, estas podran ser implementadas en el mini-robot recolector de objetos, para un mejor funcionamiento para asignarle diferentes caractersticas de operacin. ________________________________________________________________________-6-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

DESARROLLO

________________________________________________________________________-7-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Captulo 1. Microcontroladores: Caractersticas generales.1.1 DefinicinRecibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Aunque el concepto de controlador ha permanecido invariable a travs del tiempo, su implementacin fsica ha variado frecuentemente. Hace tres dcadas, los controladores se construan exclusivamente con componentes de lgica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo computador contenido en el chip de un circuito integrado.

1.2 Recursos comunes a todos los microcontroladoresAl estar todos los microcontroladores integrados en un chip, su estructura fundamental y sus caractersticas son muy parecidas. Todos deben disponer de los bloques esenciales: procesador, memoria de datos e instrucciones, lneas de entrada y salida, oscilador de reloj y mdulos controladores de perifricos. Sin embargo, cada fabricante intenta enfatizar los recursos idneos para las aplicaciones a las que se destintan preferentemente.

1.2.1 Arquitectura bsicaAunque inicialmente todos los microcontroladores adoptaron la arquitectura clsica de Von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de Von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a travs de un sistema de buses nico (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes: una, que contiene slo instrucciones y otra, slo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias

1.2.2 ProcesadorEs el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel hardware como a nivel de software. Se encarga de direccionar la memoria de instrucciones, recibir el cdigo de la instruccin en curso, su decodificacin y la ejecucin de la operacin que implica la instruccin, as como la bsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales:

________________________________________________________________________-8-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

CISC: Computadores de Juego de Instrucciones Complejo: Disponen de ms de 80 instrucciones mquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecucin. RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo.La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especfico).

1.2.3 MemoriaEn los microcontroladores la memoria de instrucciones y datos est integrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las variables y los datos. La RAM en estos dispositivos es de poca capacidad pues slo debe contener las variables y los cambios de informacin que se produzcan en el transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Segn el tipo de memoria ROM que dispongan los microcontroladores, la aplicacin y utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no voltil que se pueden encontrar en los microcontroladores del mercado. 1. ROM con mscara Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. 2. OTP El microcontrolador contiene una memoria no voltil de slo lectura programable una sola vez por el usuario. OTP (One Time Programmable). La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas.

________________________________________________________________________-9-

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

3 EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador controlado desde una PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. 4 EEPROM Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de una PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan grabadores en circuito que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. 5 FLASH Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta.

1.2.4 Puertos de Entrada y SalidaLa principal utilidad de las patitas que posee la cpsula que contiene un microcontrolador es soportar las lneas de E/S que comunican al procesador interno con los perifricos exteriores.

________________________________________________________________________- 10 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

1.2.5 Reloj principalTodos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico o una red R-C.

1.3 Recursos especialesCada fabricante oferta numerosas versiones de una arquitectura bsica de microcontrolador. En algunas ampla las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo mnimo que satisfaga todos los requerimientos de su aplicacin. De esta forma, minimizar el coste, el hardware y el software. Los principales recursos especficos que incorporan los microcontroladores son: 1. Temporizadores o Timers: Se emplean para controlar periodos de tiempo y para llevar la cuenta de acontecimientos que suceden en el interior. 2. Perro guardin o Watchdog: Es un temporizador que cuando se desborda y pasa por 0 provoca un reset automticamente en el sistema. 3. Proteccin ante fallo de alimentacin o Brownout: Se trata de un circuito que genera un reset cuando el voltaje de alimentacin VDD es inferior a un voltaje mnimo establecido. 4. Estado de reposo o de bajo consumo: Es un estado del sistema donde se detiene el reloj principal y sus circuitos asociados con el objetivo de ahorrar energa en periodos de tiempo donde el microcontrolador se mantiene en espera de instrucciones. 5. Conversor A/D: Procesa seales analgicas convirtindolas en seales digitales. 6. Comparador analgico: Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que acta como comparador entre una seal fija de referencia y otra variable ________________________________________________________________________- 11 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

que se aplica por una de las patitas de la cpsula. La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor o menor que la otra. 7. Modulador de anchura de impulsos o PWM: Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a travs de las patitas del encapsulado. 8. Puertos de comunicacin: Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: - UART, adaptador de comunicacin serie asncrona. - USART, adaptador de comunicacin serie sncrona y asncrona -Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. - USB (Universal Serial Bus), que es un moderno bus serie para la PC. - Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. -CAN (Controller Area Network), para permitir la adaptacin con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automviles.

1.4 Lenguajes de programacinSe han desarrollado todo tipo de lenguajes para los microcontroladores, pero los ms usados son el Ensamblador, el BASIC y el C. Los programas escritos en Ensamblador son compactos y rpidos, sin embargo, utiliza mnemnicos inteligibles y si no estn bien confeccionados resultarn de gran tamao y lentos. Los lenguajes de alto nivel como el BASIC y el C son ms fciles de comprender y por tanto de disear. Pero como toda mquina digital, el microcontrolador es capaz de entender exclusivamente el lenguaje binario grabado en la memoria. Los compiladores son programas que se encargan de traducir el programa de trabajo escrito en cualquier lenguaje a cdigo mquina para luego grabarlo en la memoria del microcontrolador y ejecutarlo.

1.5 FabricantesEn la actualidad, gran parte de los fabricantes de circuitos integrados disponen de su propia lnea de microcontroladores. As tendremos Intel, que ha ido siempre por delante presentando nuevos productos, as por ejemplo el 8048 se considera el primer microcontrolador de 8 bits y lo fabric Intel en la dcada de los 70. ________________________________________________________________________- 12 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Otra de las principales empresas del mundo de los dispositivos programables es Motorola y los microcontroladores PIC de la empresa americana Microchip han sido conocidos en los ltimos aos. Su popularidad avanza da a da, siendo incluidos en la mayora de proyectos debido a su bajo coste, reducido consumo, pequeo tamao, fcil programacin y abundancia de herramientas econmicas de soporte. En la Tabla 1.1 se muestra el avance de Microchip respecto de las otras compaas fabricantes de microcontroladores. Todos los microcontroladores que se fabrican en el presente son buenos y el mejor no siempre es el mismo. Cambian el modelo y fabricante segn la aplicacin y las circunstancias que lo envuelven.

Tabla 1.1

________________________________________________________________________- 13 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Captulo 2. Microcontroladores PIC.Para la realizacin de este proyecto se eligi la familia PIC de Microchip por diversos motivos: 1. Por la cantidad de informacin disponible sobre estos microcontroladores, y es que para las aplicaciones ms habituales la eleccin de una versin adecuada de PIC es la mejor solucin. 2. Por su sencillez de manejo, tienen un juego de instrucciones reducido, de 35 en la gama media, 75 en la gama alta-mejorada. 3. Por la facilidad de obtener muestras gratuitas. 4. Por su velocidad y promedio de parmetros en consumo, tamao, etc. 5. Porque posee gran variedad de herramientas, tanto de software como de hardware, baratas y fciles de utilizar. Una de las razones del xito de los PIC se basa en su utilizacin. Cuando se aprende a manejar uno de ellos, conociendo su arquitectura y su repertorio de instrucciones, es muy fcil emplear otro modelo.

2.1 Las gamas PICPara resolver aplicaciones sencillas se precisan pocos recursos; en cambio, las aplicaciones grandes requieren numerosos y potentes. Siguiendo esta filosofa, Microchip construye diversos modelos de microcontroladores orientados a cubrir, de forma ptima, las necesidades de cada proyecto. As, hay disponibles microcontroladores sencillos y baratos para atender las aplicaciones simples y otros complejos y ms costosos para las de mucha envergadura. Con las gamas de PIC se dispone de gran diversidad de modelos y encapsulados, pudiendo seleccionar el que mejor se acople a las necesidades de acuerdo con el tipo y capacidad de las memorias, el nmero de lneas de E/S y las funciones auxiliares precisas. Sin embargo, todas las versiones estn construidas alrededor de una arquitectura comn, un repertorio mnimo de instrucciones y un conjunto de opciones muy apreciadas, como el bajo consumo y el amplio margen del voltaje de alimentacin.

2.1.1 Gama BajaLa gama baja de los PIC encuadra nueve modelos fundamentales en la actualidad. A muchos de estos microcontroladores de gama baja se les llama enanos porque solamente disponen de 8 patillas. La memoria de programa puede contener 512, 1 k. y 2 k palabras de 12 bits, y ser de tipo ROM, EPROM aunque tambin hay modelos con memoria OTP. La memoria de datos puede tener una capacidad comprendida entre 25 y 73 bytes. Slo disponen de un temporizador (TMR0), un repertorio de 33 instrucciones. El voltaje de alimentacin admite un valor muy flexible comprendido entre 2 y 6,25 V, lo cual posibilita el funcionamiento mediante pilas corrientes teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz ). ________________________________________________________________________- 14 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

2.1.2 Gama MediaEn esta gama sus componentes aaden nuevas prestaciones a las que posean los de la gama baja, hacindoles ms adecuados en las aplicaciones complejas. Admiten interrupciones, poseen comparadores de magnitudes analgicas, convertidores A/D, puertos serie y diversos temporizadores. Algunos modelos disponen de una memoria de instrucciones del tipo OTP que resulta mucho ms econmica en la implementacin de prototipos y pequeas series. Otros en cambio, disponen de una memoria de instrucciones tipo EEPROM, que, al ser borrables elctricamente, son mucho ms fciles de reprogramar que las EPROM, que tienen que ser sometidas a rayos ultravioleta durante un tiempo determinado para realizar dicha operacin.

2.1.3 Gama Alta y Gama MejoradaLos dispositivos de la gama alta PIC17C4X responden a microcontroladores de arquitectura abierta pudindose expansionar en el exterior al poder sacar los buses de datos, direcciones y control. As se pueden configurar sistemas similares a los que utilizan los microprocesadores convencionales, siendo capaces de ampliar la configuracin interna del PIC aadiendo nuevos dispositivos de memoria y de E/S externas. Esta facultad obliga a estos componentes a tener un elevado nmero de patitas comprendido entre 40 y 44. Admiten interrupciones, poseen puerto serie, varios temporizadores y mayores capacidades de memoria, que alcanza los 8k palabras en la memoria de instrucciones y 454 bytes en la memoria de datos. En 2002, Microchip lanzaba la gama alta-mejorada, varios modelos de microcontroladores de gran potencia y velocidad (PIC18FXXX), y se destinan a aplicaciones muy avanzadas. Con un patillaje que llega desde las 28 hasta las 84 patillas, la memoria de cdigo alcanza las 64k palabras y una frecuencia de 40 MHz. El PIC elegido para realizacin de las prcticas, el 18F2550, pertenece a esta gama y en lo sucesivo, las explicaciones se centrarn en l. En la figura 2.1 se representan las gamas disponibles de PICS.

Fig. 2.1. Gamas de PICS.

________________________________________________________________________- 15 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

2.2 Microcontroladores PIC18F2XXX 2.2.1 Caractersticas generales.1 La arquitectura del procesador sigue el modelo Harvard: En esta arquitectura, la CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos y as permitir su acceso simultaneo. PIC18: Arquitectura Harvard. (Fig. 2.2) Espacios separados de memoria de instrucciones y datos. Incremento de Rendimiento. Ancho del bus de datos y del programa pueden ser diferentes.

Fig. 2.2

2 Se aplica la tcnica de segmentacin (pipe-line) en la ejecucin de las instrucciones: La segmentacin permite al procesador realizar al mismo tiempo la ejecucin de una instruccin y la bsqueda del cdigo de la siguiente. De esta forma se puede ejecutar cada instruccin en un ciclo (un ciclo de instruccin equivale a 4 ciclos del reloj) excepto las instrucciones de salto (p.e. GOTO, CALL o escribir a PC) que ocupan dos ciclos al no conocer la direccin de la siguiente instruccin hasta que no se haya completado la de bifurcacin. (Fig. 3.2 ).CLK

ciclo

BI3

BI2

BI1

EI3

EI2

EI3

Fin INSTR0 Fin INSTR1 Fin INSTR2

Fig. 2.3

________________________________________________________________________- 16 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

3 El formato de todas las instrucciones es de la misma longitud: Las instrucciones de los microcontroladores de la gama media tienen una longitud de 14 bits. Las de la gama alta tienen 1000014 bits y ms las de la gama alta. Esta caracterstica es muy ventajosa en la optimizacin de la memoria de instrucciones y facilita enormemente la construccin de ensambladores y compiladores. 4 Procesador RISC (Computador de Juego de instrucciones reducido): Los modelos de la gama media disponen de un repertorio de 35 instrucciones y 75 los de la gama alta-mejorada. 5 Todas las instrucciones son ortogonales: Cualquier instruccin puede manejar cualquier elemento de la arquitectura como fuente o como destino. 6 Arquitectura basada en un banco de registros: Esto significa que todos los objetos del sistema (puertas de E/S, temporizadores, posiciones de memoria, etc.) estn implementados fsicamente como registros.

2.2.2 Detalles individuales de los miembros de la familia PIC18.Los PIC de la familia 18FXXXX (gama mejorada) tienen las siguientes diferencias respecto a los microcontroladores de la gama alta: 1. Flash program memory (hasta 32 Kbytes). 2. Canales A/D (10). 3. Puertos I/O (3 puertos bidireccionales y 1 puerto de solo entrada). 4. CCP y CCP mejorado (tiene 2 mdulos CCP estndar). Todas las dems caractersticas individuales de la familia 18FXXXX; incluyendo al microcontrolador utilizado en este proyecto (PIC18F2550); se resumen en la tabla 3.1.

________________________________________________________________________- 17 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Tabla 2.1. Caractersticas de la familia PIC18.

2.2.3 Diagrama de conexionado del PIC 18F2550 (Fig. 2.4)

Fig. 2.4: Diagrama de conexionado del PIC 18F2550

En la figura 2.4 se muestra el diagrama de conexionado de un PIC 18F2550. A continuacin se nombran las funciones de todas las patitas: - MCLR/VPP: Reset externo. Por esta patita se aplica tambin la tensin / VPP usada en la grabacin del programa. - RA0/AN0: E/S digital o entrada analgica ________________________________________________________________________- 18 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

-

RA1/AN1: E/S digital o entrada analgica RA2/AN2/VREF: E/S digital, entrada analgica o salida de la tensin de referencia RA3/AN3/ VREF: E/S digital, analgica o entrada externa de VREF RA4/TOCKI: E/S digital o entrada del reloj para TMR0 RA5/AN4/SS: E/S digital, analgica o seleccin del puerto serie sncrono RB0/INT-RB7: E/S digitales del Puerto B. RB0/INT puede actuar como entrada de interrupcin externa. RB4-RB7 pueden provocar interrupcin cuando cambian de estado RE0/RD/AN5: E/S digital del Puerto E. Seal de lectura del Puerto paralelo esclavo. Entrada analgica. RE1/WR/AN6: E/S digital. Seal de escritura del Puerto paralelo esclavo. Entrada analgica. RE2/CS/AN7: E/S digital. Seal de activacin del Puerto paralelo esclavo. Entrada analgica. VDD: Entrada del positivo de la alimentacin OSC1/CLKIN: Entrada al cristal cuarzo o reloj externo OSC2/CLKOUT: Salida del cristal. En modo R-C por esta patita sale FOSC1 RC0/T1OSO/T1CL1: E/S digital del Puerto C. Conexin del oscilador externo para el temporizador TMR1 o entrada de reloj para el TMR1 RC1/T1OSI/CCP2: E/S digital del Puerto C. Conexin del oscilador externo para TMR1 o salida del modulo 2 de captura/comparacin RC2/CCP1: E/S digital del Puerto C. Salida del modulo 1 de captura/comparacin RC3/SCK/SCL: E/S digital. E/S de reloj para el Puerto serie sncrono (SSP) de los mdulos SPI a I2C RC4/SDI/SDA: E/S digital. Entrada de datos serie en el modo USB. E/S de datos serie en modo I2C RC5/SD0: E/S digital del Puerto C. Salida de datos serie en el modo USB RC6/TX/CK: E/S digital. Transmisin serie asncrona. Entrada de reloj para comunicacin serie sncrona RC7/RX/DT: E/S digital. Recepcin serie asncrona. Lnea de datos en la comunicacin serie sncrona. RD0/PSP0-RD7/PSP7: E/S digitales del Puerto D. Este Puerto puede trabajar como Puerto paralelo esclavo para interconexin con un bus de datos de 8 bits de otro microprocesador

Una vez explicado el funcionamiento de cada patita del PIC18F2550, en la figura 2.5 se muestra su arquitectura interna, un diagrama de bloques donde se muestran los perifricos y las lneas de entrada y salida.

________________________________________________________________________- 19 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Fig. 2.5: Arquitectura interna del 18F2550

2.3 PIC18F2XXX: Caractersticas Relevantes.Arquitectura PIC18. Alto desempeo de 8-bit RISC CPU. 40 MHz / 10 MIPs de operacin sostenida Operacin de 2.0V a 5.5V Direccionamiento de memoria de programa lineal de hasta 2MB Direccionamiento de memoria de datos lineal de hasta 4KB 3 punteros de datos con 5 modos de direccionamiento. Instrucciones relativas de brinco condicional. Hasta 10MIPS @ 10MHz con 4X PLL Flash memory mejorada: o 2 Segundos de tiempo de programacin o Bajo costo del soporte MPLAB-ICD-II o Proteccin flexible de la memoria del programa.

2.3.1 Organizacin de la memoria.2.3.1.1 Memoria de programa Los microcontroladores de la familia PIC18F2XX implementan un contador de programa de 21-bit el cual es capaz de direccionar un espacio de 2-Mbyte de memoria de programa. Si se accesa a una locacion sobre el limite de la memoria implementada fsicamente en los 2-Mbyte de direcciones, el CP regresa solamente 0s (instruccin NOP). ________________________________________________________________________- 20 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

El PIC18F2550 y el PIC18F4550 tienen cada uno 32 Kbytes de memoria Flash y pueden almacenar hasta 16,384 instrucciones de una palabra. Los PIC18 tienen dos vectores de interrupcin. El vector Reset esta en la direccin 0000h y los vectores de interrupcin estn en las direcciones 0008h y 0018h. El mapa de memoria del PIC18FX550 se muestra en la figura 2.6.

Fig. 2.6. Mapa de memoria del PIC18FX550.

2.3.1.2 Direccionamiento de memoria de programa. En los PICs 18F2550, el contador de programa (CP) del microcontrolador tiene un tamao de 21 bits, con lo que es posible direccionar un tamao total de memoria de programa hasta 2M. El contador del programa, al estar formado por 21 bits, est compuesto por tres registros de 8 bits cada uno tal y como se muestra en la figura 2.7. El byte bajo viene del registro de PCL que puede ser ledo y escrito, PCL es forzado a 0. El byte alto (PC), est alojado en el registro PCH, sobre el que no se puede leer ni escribir, pero se puede acceder a l indirectamente a travs del registro PCLATH. El byte superior (PC) est alojado en el registro PCU, sobre el que no se puede leer ni escribir, pero se puede acceder a l indirectamente a travs del registro PCLATU.

Fig. 2.7: Contador de programa.

________________________________________________________________________- 21 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

2.3.1.3 Banco de registros y memoria de datos, EEPROM. La memoria de datos en los PIC18 se implementa como una RAM esttica. Cada registro en la memoria de datos es una direccin de 12-bit , permitiendo hasta 4096 bytes de memoria de datos. El espacio de memoria es dividido en 16 bancos de registros que contienen cada uno 256 bytes . Los PIC18F2455/2550/4455/4550 tienen implementados 8 bancos completos para un total de 2048 bytes. La Fig. 2.8 muestra la organizacin de la memoria de datos para los PIC18. La memoria de datos contiene Registros de Funcin Especial(SFRs) y Registros de Propsito General (GPRs). Los SFRs son usados para control y estatus del controlador y para funciones de los perifricos, mientras que los GPRs son usados para almacenamiento de datos y operaciones de aplicacin de usuario. Cualquier lectura de una locacion no implementada debe ser leida como 0s. La instruccin set y la arquitectura permiten operaciones a travs de los bancos. El total de los datos en la memoria puede ser accesado en los modos de direccionamiento Directo, Indirecto o Indexado.

Fig. 2.8: Banco de registros del PIC 18F2550

La memoria de datos EEPROM de 256 bytes en el PIC18F2550 puede almacenar de forma indefinida cualquier dato que se desee retener cuando se apague la alimentacin. Esta memoria es de 8 bits y no forma parte del espacio normal direccionable, y slo es accesible en lectura y escritura a travs de dos registros.

________________________________________________________________________- 22 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

2.3.2 Oscilador principalLos PIC18 tienen una estructura de Oscilador Flexible: Cuatro formas de cristales incluido un PLL de alta precisin para USB. Dos modos de reloj externo, sobre los 48 MHz Bloque de oscilador interno: - 8 frecuencias a seleccionar por el usuario, desde 31 kHz hasta 8 MHz Oscilador secundario usando el Timer1 @ 32 kHz El microcontrolador permite una opcin de doble oscilador y modulo USB corriendo a diferentes velocidades de reloj. La tabla 2.2 muestra los diferentes modos del oscilador del PIC18F2550:

Tabla 2.2

2.3.3 Perro guardin (WDT)El Perro guardin vigila que el programa no deje de ejecutarse segn las instrucciones secunciales del mismo tal como lo ha previsto el diseador. Para realizar esta labor de vigilancia, el perro guardin da un paseo por la CPU cada cierto tiempo y comprueba si el programa se ejecuta normalmente; en caso contrario, el perro provoca un reset, y reinicia el sistema. Este temporizador est controlado por un oscilador interno independiente, con una temporizacin nominal de 18 ms, que puede aumentarse asignando el divisor de frecuencia al perro guardin, con el cual, trabajando en el rango mayor, puede alcanzar hasta 3 segundos. Para evitar que se desborde el WDT y genere un reset, hay que recargar o refrescar su cuenta antes de que llegue el desbordamiento. Este refresco, que en realidad consiste en ponerle a 0 para iniciar la temporizacin, se consigue por software con las instrucciones CLRWDT y SLEEP.

2.3.4 ResetEl reset de los microcontroladores puede ser originado por alguna de las siguientes causas: 1 Conexin de la alimentacin (POR: Power-On-Reset) 2 Activacin de la patita MCLR (Master Clear Reset) durante una operacin normal. ________________________________________________________________________- 23 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

3 Activacin de MCLR en el estado de Reposo o SLEEP. 4 Desbordamiento del Perro guardin. 5 Instruccin RESET. Como se aprecia en el esquema de la figura 2.9, cualquiera de estas posibilidades introduce un nivel bajo en la entrada S del flip-flop y pone en marcha un temporizador propio que, al cabo de 18 ms, origina un flanco ascendente en la salida Q que supone la generacin del reset interno. El bloque temporizador de la figura produce un retraso en la generacin del reset para dar tiempo a que se estabilice la tensin VDD de alimentacin y la frecuencia del oscilador principal. Este temporizador est gobernado por un oscilador RC independiente.

Fig.2.9: Diagrama de bloques del circuito de Reset

2.3.5 Modo de reposo (Sleep)Este modo especial de funcionamiento ocasiona un consumo de energa muy bajo y se entra en l con la ejecucin de la instruccin SLEEP. Con esta instruccin ocurren las siguientes acciones: 1. Si el perro guardin est activado, se refrescara su valor (se borra) pero sigue funcionando normalmente. 2. El oscilador principal del sistema deja de funcionar. 3. Los puertos de E/S mantienen el mismo estado que tenan antes de ejecutar SLEEP. ________________________________________________________________________- 24 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

4. Los bits TO y PD del registro de estado toman los valores 1 y 0, respectivamente. Para salir del estado de Reposo hay dos posibilidades: 1 Se activa la patita MCLR y se genera un reset. 2 El Perro guardin que estaba activo cuando se ejecuto SLEEP se desborda y genera un reset. Para conocer la causa por la que se ha salido del Estado de Reposo se analizan los bits TO y PD.

2.3.6 Interrupciones.Una interrupcin consiste en una detencin del programa en curso para realizar una determinada rutina que atienda la causa que ha provocado la interrupcin. Es como una llamada a subrutina, que se origina por otra causa que por una instruccin del tipo CALL. Tras la terminacin de la rutina de interrupcin, se retorna al programa principal en el punto en que se abandono. Las causas que originan una interrupcin pueden ser externas, como la activacin de una patita con el nivel lgico apropiado, e internas, como las que pueden producirse al desbordarse un temporizador, como el TMR0. En las aplicaciones industriales, las interrupciones son un producto muy potente para atender los acontecimientos fsicos en tiempo real. Las interrupciones evitan que la UCP explore continuamente el nivel lgico de una patita o el valor de un contador. Los PIC18F2XXX tienen mltiples fuentes de interrupcin, sus prioridades son asignadas respecto a su fuente . los vectores de alta prioridad estn en la direccin 000008h y los vectores de baja prioridad estn en 000018h. Hay diez registros para la operacin de control de las interrupciones, estos son: RCON INTCON INTCON2 INTCON3 PIR1, PIR2 PIE1, PIE2 IPR1, IPR2 Cada fuente de interrupcin tiene tres bits de control y operacin. La funcin de estos bits es : El bit de bandera indica que un evento de interrupcin ha ocurrido. El bit de habilitacin permite brincar en la ejecucin de un programa a la direccin del vector de interrupcin cuando el bit de bandera esta en set. El bit de prioridad informa si es de alta o baja prioridad.

________________________________________________________________________- 25 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

En la figura 2.10 se ofrece el esquema lgico que controla la generacin de la interrupcin, cuando aparece un nivel alto en su lnea INT de salida.

Fig. 2.10: Lgica de control para la generacin de la interrupcin

Cada causa de interrupcin esta controlada mediante dos lneas o seales. Una de ellas acta como una bandera de sealizacin que indica si se ha producido o no el acontecimiento, mientras que la otra es el permiso o prohibicin de la interrupcin en si.

2.4 Perifricos.Las patitas de comunicacin de los microcontroladores se agrupan en conjuntos llamados puertos porque dejan entrar y salir la informacin al procesador o pines. Dichos puertos deben soportar las lneas que precisan los distintos perifricos que hay integrados en la cpsula. Cuantos ms perifricos dispone el modelo, exige ms lneas de comunicacin y mayor numero de patitas, con ms multiplexado de seales. Esto es lo ms destacado de los perifricos de los PIC18: Alta corriente de alimentacin /25 mA Tres interrupciones externas Cuatro mdulos de Timer (Timer0 a Timer3) Mdulos de Capture/Compare/PWM (CCP) : - Capture es de 16-bit, mx. resolucin 6.25 ns (TCY/16) ________________________________________________________________________- 26 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

- Compare es de 16-bit, mx. resolucin 100 ns (TCY) - Salida de PWM : su resolucin es 1 a 10-bit Modulo de Capture/Compare/PWM (ECCP) - Mltiples modos de salida - Polaridad seleccionable - Programacin de tiempo muerto - Auto-cerrado y Auto-Restaurado Modulo USART mejorado: - Soporta bus LIN Modulo Master Synchronous Serial Port (MSSP) soporta 3-cables SPI ( 4 modos) y modo maestro esclavo de I2C 10-bit, hasta 13-canales del modulo convertidor Anlogo-a-Digital (A/D) Doble comparador anlogo con entrada multiplexada. Ya que el Modulo de Anchura de Pulsos (PWM), lo ocupamos para mover los servomotores del mini-robot, explicaremos con mas detalle el funcionamiento del mismo.

2.4.1 Modulo de Anchura de Pulsos (PWM)En el modo de Pulse-Width Modulation (PWM) , el pin CCPx produce hasta 10-bit de resolucion PWM de salida. Desde el pin CCP2 es multiplexado con el seguro de datos del PORTB o PORTC, el bit apropiado del TRIS debe ser limpiado para hacer del pin CCP2 una salida. La Figura 2.11 muestra el diagrama de bloques simplificado del modulo CCP en el modo PWM.

Fig. 2.11

La salida PWM (Figura 2.11.1) tiene un tiempo base (periodo) y un tiempo en el que la salida se mantiene en un nivel alto (duty cycle). La frecuencia del PWM es el inverso del periodo (1/periodo).

________________________________________________________________________- 27 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Fig. 2.11.1

2.4.1.1 Perodo PWM. El perodo del PWM se especifica escribiendo en el registro PR2. El perodo PWM puede ser calculado usando la siguiente ecuacin:

La frecuencia PWM es definida como 1/ [PWM periodo]. Cuando el TMR2 es igual a PR2, tres eventos pueden ocurrir en el siguiente ciclo de reloj: TMR2 es limpiado El pin CCPx se pone a set (exceptuando: si el ciclo de trabajo de PWM = 0%) 2.4.1.2 Ciclo de Trabajo del PWM. El ciclo de trabajo del PWM se especifica escribiendo en el registro CCPRxL y en el CCPxCON bits. Arriba de 10-bit de resolucin estan disponibles. El CCPRxL contiene los ocho bits MSbs y el CPxCON contiene los dos bits LSbs. El valor de los 10-bit es representado por CCPRxL:CCPxCON. La siguiente ecuacin es usada para calcular el ciclo de trabajo del PWM en tiempo:

CCPRxL y CCPxCON pueden ser escritos en cualquier tiempo, pero el valor del ciclo de trabajo no esta asegurado dentro del CCPRxH hasta que una comparacin entre PR2 y TMR2 ocurra (i.e., se complete un periodo). En modo PWM, CCPRxH es un registro de solo lectura. 2.4.1.3 Implementacin del PWM. Los siguientes pasos deben ser tomados en cuenta, cuando configuremos el registro (modulo) CCP para la operacin del PWM: 1. Asignar el periodo del PWM escribiendo en el registro PR2 . 2. Asignar el ciclo de trabajo del PWM escribiendo en el registro CCPRxL y en el CCPxCON bits. ________________________________________________________________________- 28 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

3. Hacer del pin CCPx una salida, limpiando adecuadamente el bit TRIS. 4. Asignar el valor de preescalamiento del TMR2, luego habilitar el Timer2 escribiendo al registro T2CON. 5. Configurar el modulo CCPx para la operacin del PWM. La tabla 2.3 muestra los registros relacionados con el Modulo de Anchura de Pulsos y con el Timer 2.

Tabla 2.3: Registros asociados con el PWM y el TIMER2.

2.4.2 Interfaz de comunicacin Universal Serial Bus (USB).2.4.2.1 Caractersticas del modulo USB (Universal Serial Bus) de los PIC18. Cumple con los parmetros USB V2.0 Baja velocidad (1.5 Mb/s) y alta velocidad (12 Mb/s) Soporta transferencias de lotes de Control, interrupcin y sincronizacin. Soporta hasta 32 endpoints (16 bidireccionales) 1-Kbyte dual de acceso a RAM para USB Circuito interno USB de transmisin-recepcin con regulador de voltaje Interfaz para un circuito externo USB de transmisin-recepcin Los PIC18FX455/X550 incorporan un completo modulo de comunicacin compatible con el USB Serial Interface Engine (SIE) esto permite una rpida comunicacin entre cualquier host USB y el microcontrolador PIC. El SIE puede ser una interfaz directa al puerto USB utilizando el transceptor interno, o puede ser conectado a travs de un transceptor externo. Un regulador interno de 3.3V tambin esta disponible para alimentar al transceptor interno en aplicaciones que necesiten 5V. ________________________________________________________________________- 29 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Algunas caractersticas especiales de hardware estn incluidas para un mejor desempeo. La Memoria de doble puerto en el espacio de la memoria de datos (USB RAM) provee el acceso directo a memoria entre el microcontrolador y el SIE. Descriptores de buffer tambin estn disponibles permitiendo al usuario programar los endpoint usando el espacio de la USB RAM . Un SPP(Streaming Parallel Port) provee el soporte para una transferencia ininterrumpida de un gran volumen de datos, tales como datos asncronos a buffer externos de memoria. La Fig. 2.12 presenta una perspectiva general del perifrico USB .

Fig. 2.12. Perspectiva general del puerto perifrico USB en el PIC 18F2550.

Los PIC18F2550 incorporan un completo modulo de comunicacin USB (Universal Serial Bus), el cual cumple con la especificacin USB 2.0, este modulo soporta los tipos de transferencia de datos de baja y alta velocidad. La operacin asncrona del reloj dual, permita al modulo USB de los PIC18 trabajar a alta frecuencia, mientras que el resto de los microcontroladores solo tienen un reloj que proviene de un oscilador interno de bajo poder. Adems de que esta disponible como fuente de reloj, el bloque de oscilador interno provee una estable referencia de reloj, esto da a la familia PIC18 la caracterstica de operacin robusta. 2.4.2.2 Control y estatus del USB. La operacin del modulo USB es configurada y manejada a travs de tres registros de control. En suma, un total de 19 registros son usados para el manejo de transferencias va USB. Estos registros son: USB Control register (UCON) USB Configuration register (UCFG) USB Transfer Status register (USTAT) ________________________________________________________________________- 30 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

USB Device Address register (UADDR) Frame Number registers (UFRMH:UFRML) Endpoint Enable registers 0 through 15 (UEPn)

2.5 Lectura y escritura de la memoria de datos EEPROM.En la familia de microcontroladores 18F2XXX tanto la memoria EEPROM de datos como la memoria de programa FLASH puede ser modificada sin necesidad de utilizar un programador exterior. Adems para controlar el proceso de lectura y escritura de la memoria EEPROM y FLASH se dispone de dos registros: el EECON1 y el EECON2.

2.5.1 Lectura de la memoria de datos.Para leer un dato de la EEPROM, el registro EEADR es cargado con la direccin de la EEPROM donde se encuentra el dato y luego el microcontrolador copia el dato de dicha posicin a EEDATA. A continuacin hay que poner a 0 el bit EEPGD (EECON1), para apuntar a la memoria de datos EEPROM. Una vez que se ponga a 1 la bandera RD (EECON1), el dato estar disponible en el registro EEDATA, donde permanecer hasta la siguiente escritura o lectura.

2.5.2 Escritura de la memoria de datosLa escritura, que es en realidad una programacin, es ms compleja por razones de seguridad. Antes de escribir un dato en la EEPROM, debe ponerse a 1 la bandera de activacin de escritura WR (EECON1). Para transferir el dato desde el registro EEDATA a la direccin de la EEPROM a la que apunta EEADR, debe ejecutarse una secuencia obligatoria indicada por el fabricante. Posteriormente, cuando se ha realizado con xito la operacin de la bandera EEIF (PIR1) se pone a 1. Si no lo hace, el almacenamiento ha sido incorrecto y no se ha realizado. Datos en la memoria EEPROM: Tamao de rangos entre 64 a 1024 bytes. Ciclos de borrado/escritura de 1 M (tpicamente) Retencin de datos >40 aos. Lectura y escritura de limite un byte Borrar antes de escribir Automtico Proteccin de cdigo y de escritura interna Acceso va los registros EEADR, EEDATA y EECONs.

________________________________________________________________________- 31 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Captulo 3. Diseo del mini-robot recolector de objetos.En la actualidad la automatizacin de procesos se ha convertido en una necesidad para aumentar la eficiencia de estos, por ello el sustituir personal humano por autmatas dentro de las lneas de proceso es cada vez mas importante, dando como resultado la reubicacin del personal humano en reas de mantenimiento y supervisin de los mecanismos automticos, adems de proveer mayores ganancias a la empresa el equipo automtico ofrece mayor seguridad a cada proceso donde se le asigna. Orientados a la automatizacin de un proceso de recoleccin de objetos y atendiendo los requerimientos que este conlleve. Se pretende disear un robot que genere tal propsito elevando as la eficiencia del proceso y reduciendo la presencia del hombre. Basados en el uso de un microprocesador se pretende analizar las diferentes variables de posicin para que mediante el principio del seguidor de lnea, se siga una ruta en la cual se encontraran los objetos que mediante deteccin infrarroja se localizar y efectuar un proceso mecnico de obtencin para su transporte y posterior almacenamiento, evitando por completo la presencia de personal humano. Tomando en cuenta las limitaciones econmicas se pretende efectuar en primera instancia un modelo a escala con el fin de obtener resultados y si fuesen los deseados se planeara la construccin de varios equipos al final.

3.1 Descripcin de los componentes usados en el mini-robot 3.1.1 Sensores usados3.1.1.1 Sensor Reflexivo IS471F Descripcin: Sensor basado en el dispositivo SHARP IS471F (Fig. 3.1) inmune a interferencias de luz normal. Este sensor incorpora un modulador/demodulador integrado en su carcasa y a travs de su patilla 4 controla un diodo LED de infrarrojos externo, modulando la seal que este emitir, para ser captada por el IS471F que contiene el receptor. Cuando un objeto se sita 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 seal captada es suficientemente fuerte. Fig. 3.1 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 potencimetro P1 se vara la distancia a la que es detectado el objeto. Contra mas baja sea la resistencia de este potencimetro, 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. ________________________________________________________________________- 32 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

En la figura 3.2 vemos el circuito necesario para hacer funcionar al sensor.

Fig. 3.2

Usos: Para deteccin de obstculos por reflexin. Ideas y mejoras: En el circuito anterior lo que vemos es un detector de distancia fija ajustable por un potencimetro, pero seria posible hacerlo de varias distancias o incluso un detector gradual de distancias. Para varias distancias se podra conmutar varias resistencias y as calcular la distancia del objeto haciendo pruebas antes, y creando una tabla de equivalencias. Para el detector gradual tambin seria posible controlando la corriente que le llega al diodo emisor mediante un conversor D/A y un circuito de potencia basado en algn transistor, todo esto controlado por un microcontrolador, que para nuestro proyecto es el PIC 18F2550. 3.1.1.2 Sensor Reflexivo CNY70 Descripcin: El CNY70 es un pequeo dispositivo con forma de cubo y cuatro patitas (fig. 3.3) que aloja en su interior un diodo emisor de infrarrojos que trabaja a una longitud de onda de 950 nm. y un fototransistor (receptor) estando ambos dispuestos en paralelo y apuntando ambos en la misma direccin, la distancia entre emisor y receptor es de 2.8 mm., estn separados del frontal del encapsulado Fig. 3.3 por 1 mm. El la figura 3.4 vemos la disposicin interna del CNY70 mirando el encapsulado desde arriba, as pues tenemos el diodo emisor de infrarrojos a la izquierda y el fototransistor a la derecha.

Fig. 3.4

________________________________________________________________________- 33 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Funcionamiento: El fototransistor conducir ms, mientras ms luz reflejada del emisor capte por su base. La salida de este dispositivo es analgica y viene determinada por la cantidad de luz reflejada, as pues para tener una salida digital se podra poner un disparador Trigger Schmitt y as obtener la salida digital pero esto tiene un problema, y es que no es ajustable la sensibilidad del dispositivo. Usos: Comnmente utilizado en los robots rastreadores (Sniffers) para deteccin de lneas pintadas sobre el suelo, debido principalmente a su baja distancia de deteccin. 3.1.1.3 Sensor Mecnico Bumper Descripcin: El bumper es un conmutador de 2 posiciones con muelle de retorno a la posicin de reposo y con una palanca de accionamiento con tamao segn el modelo elegido (Fig. 3.5). Funcionamiento: En estado de reposo la patita comn (C) y la de reposo (R) estn en contacto permanente hasta que la presin aplicada a la palanca del bumper hace saltar la pequea pletina acerada interior y entonces el contacto pasa de la posicin de reposo a la de activo (A), se puede escuchar cuando el bumper cambia de estado, porque se oye un pequeo clic, esto sucede casi al final del recorrido de la palanca.

Fig. 3.5

Usos: Se usan para deteccin de obstculos por contacto directo. No son adecuados para robots de alta velocidad ya que cuando detectan el obstculo ya estn encima y no da tiempo a frenar el robot. Ideas y mejoras: Pocas mejoras puede tener un dispositivo tan simple pero una buena idea seria utilizar un multiplexor para poner mas bumpers de control en nuestro robot y usar el mnimo de lneas de control.

3.1.2 ServomotoresDescripcin: El servo es un pequeo pero potente dispositivo que dispone en su interior de un pequeo motor con un reductor de velocidad y multiplicador de fuerza, tambin dispone de un pequeo circuito que gobierna el sistema (Fig. 3.6). El recorrido del eje de salida es de 180 en la mayora de ellos, pero puede ser fcilmente modificado para tener un recorrido libre de 360 y actuar as como un motor.Fig. 3.6

Funcionamiento: El control de posicin lo efecta el servo internamente mediante un potencimetro que va conectado mecnicamente al eje de salida y controla un PWM (modulador de anchura de pulsos) interno para as compararlo con la entrada PWM externa del servo, mediante un sistema diferencial, y as modificar la posicin del eje de salida hasta que los valores se igualen y el servo pare en la posicin indicada, en esta posicin el motor del servo deja de consumir corriente y tan solo circula una pequea corriente hasta ________________________________________________________________________- 34 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

el circuito interno, si forzamos el servo (moviendo el eje de salida con la mano) en este momento el control diferencial interno lo detecta y enva la corriente necesaria al motor para corregir la posicin. Para controlar un servo tendremos que aplicar un pulso de duracin y frecuencia especficas. Todos los servos disponen de tres cables dos para alimentacin (Vcc, Gnd) y otro cable para aplicar el tren de pulsos de control que harn que el circuito de control diferencial interno ponga el servo en la posicin indicada por la anchura del pulso. En la tabla 3.1 estn indicados los valores de control y disposicin de cables de varias marcas que comercializan servos.Duracin pulso (ms) Fabricante Futaba Hitech Graupner/Jr Multiplex Robbe Simprop min. 0.9 0.9 0.8 1.05 0.65 1.2 neutral. mx.. 1.5 1.5 1.5 1.6 1.3 1.7 2.1 2.1 2.2 2.15 1.95 Hz 50 50 50 40 50 disposicin de cables + batt rojo rojo rojo rojo rojo rojo -batt negro negro marrn negro negro azul pwm. blanco amarillo naranja amarillo blanco negro

2.2 50 Tabla 3.1

La figura 3.7 muestra la posicin del servo con los diferentes anchos de pulso del PWM.

Fig. 3.7

3.1.3 Circuito de prueba para ver el funcionamiento de los motores del mini-robotAhora que describimos los componentes utilizados, veremos como est formado el conjunto de sensores, as como los sistemas bsicos para su manejo. Vamos a construir un sistema de control para conseguir un mvil reactivo, que no est controlado por un micro controlador, pero que nos servir como paso previo para obtener conocimientos sobre cmo hacer funcionar estos circuitos. ________________________________________________________________________- 35 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Comenzaremos de una manera sencilla, construyendo un circuito que dependiendo de una seal de entrada 0 o 1 haga girar un motor de corriente continua hacia delante o hacia atrs, es decir en sentido horario o en sentido antihorario. El circuito que utilizamos para el primer robot reactivo no utiliza ningn microcontrolador y lo hemos diseado as para empezar a comprender el funcionamiento de los sensores de infrarrojos CNY7O, cuyas caractersticas se incluyen en este mismo reporte y el circuito de control de potencia para los motores. El primer circuito que hemos utilizado ha sido el de la figura 3.8, que no es ms que un puente en H de transistores controlado por los sensores CNY7O y unos inversores Schmitt Trigger, que se encargan de conformar las seales del sensor a niveles lgicos ms estables.

Fig. 3.8

Para los sensores CNY70 son tpicos los dos montajes que se indican en la figura 3.9. Los valores de las resistencias comnmente son: RT = 10K para el fototransistor, mientras que para el diodo emisor es RD = 220.

Fig. 3.9

________________________________________________________________________- 36 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

El circuito por el que nos hemos inclinado en el diseo es el de la opcin a, de manera que cuando el sensor est sobre el fondo negro la luz es absorbida y el fototransistor se mantiene en corte, por lo que a la salida el circuito entrega un nivel bajo, mientras que cuando el sensor est sobre el fondo blanco que refleja la luz, el fototransistor se satura y a la salida del circuito obtenemos un nivel alto. El funcionamiento del circuito b es justamente al contrario, cuando el sensor est sobre la lnea negra, el fototransistor permanece en corte y entregando a la salida un nivel alto en el colector, mientras que si se encuentra sobre un fondo blanco, el haz infrarrojo se refleja y el fototransistor se satura entregando, a la salida del circuito, un nivel bajo. Para obtener seales digitales desde estos sensores utilizamos compuertas inversoras Schmitt Trigger, el chip que utilizamos es el CD40106 que tiene la ventaja de que cuenta con seis inversores de este tipo. Estos dispositivos tienen una caracterstica de transferencia, como la que se muestra en la figura 3.10.

Fig. 3.10

En esta curva se aprecia que si la tensin de entrada asciende desde 0V hasta un nivel alto, la transicin se produce siguiendo la curva A y se produce para el valor VT+ denominado umbral ascendente. Por el contrario, si la entrada est a un nivel alto y se va disminuyendo hasta 0V, la transicin se produce siguiendo la curva B, cuando se alcanza el denominado umbral descendente VT-. Los valores de VT+ y de VT- para las compuertas de tecnologa TTL, son de 4,7V y 0,9V respectivamente, pero para el caso del CD40106 depende de la tensin de alimentacin y puede tomar los valores de la tabla 3.2.

Tabla 3.2.

________________________________________________________________________- 37 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Estas compuertas son de gran utilidad cuando se desea controlar un circuito digital con seales provenientes de sensores como los infrarrojos. En la figura 3.11 se muestra cmo acta un circuito no inversor, el circuito frente a una seal que no es puramente digital. Cuando la seal V1 alcanza el valor VT+ la salida V0 cambia a un nivel alto, y no vuelve a tomar un nivel bajo hasta que la entrada no llegue a VT-.

Fig. 3.11

3.1.4 Sistema de Actuacin.3.1.4.1 Control de Motores En nuestro mini-robot, los motores estn controlados por un puente en H (Fig. 3.8), formado por cuatro transistores de potencia montados en antiparalelo. Los transistores trabajan en conmutacin y se comportan como interruptores controlados por la seal que les llega desde el sensor a travs del inversor. Su funcionamiento es el siguiente: en la figura 3.12 vemos el puente de transistores controlado por el sensor y su inversor asociado.

Fig. 3.12.

Si el sensor con su puerta inversora entrega un nivel alto, a la base de los transistores TR3 y TR2 (NPN y PNP) les llega respectivamente un nivel alto y un nivel bajo, lo que les hace entrar simultneamente en saturacin mientras que a TR1 y TR4 que les llegan las mismas seales se quedan en corte por ser de signo contrario (PNP y NPN respectivamente), en estas condiciones el motor gira en un sentido como puede verse en la figura 3.13(a). Cuando cambian el valor de la seal que entrega el sensor, los transistores que se saturan ________________________________________________________________________- 38 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

son TR1 y TR4, mientras que los que pasan al estado de corte son TR3 y TR2, como puede verse en la figura 3.13 (b).

Fig. 3.13(a)

Fig. 3.13(b)

El problema de este tipo de circuitos es la cada de tensin real que hay en los transistores y que habr que compensarla con la batera, que por supuesto va disminuyendo en la medida que sta se va agotando. Para evitar estos problemas en el diseo final hemos utilizado un puente integrado, el LM293B. Este circuito es un driver de 4 canales, capaz de proporcionar una corriente de salida de hasta lA por canal. Cada canal es controlado por seales de entrada compatibles TTL y cada pareja de canales dispone de una entrada de habilitacin que desconecta las salidas de los mismos. El circuito dispone, adems, de una patita para la alimentacin de las cargas que se estn controlando, de forma que dicha alimentacin es independiente de la lgica de control. En la figura 3.14 se muestran su encapsulado de 16 pines.

Fig. 3.14

La tabla 3.3 muestra su distribucin de patillas y la descripcin de las mismas.

________________________________________________________________________- 39 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Tabla 3.3.

3.1.4.2 Control de Motores por Medio de Microcontrolador. Al construir el mini-robot se observa que enseguida toma velocidad, ya que tiene poco coeficiente de reduccin de los motores. Haciendo un anlisis detallado del funcionamiento del driver L293 para el manejo de motores de corriente contina, gobernado por un PIC microcontrolador, hemos elegido el P1C18F2550. Las salidas OUT se asocian con las correspondientes IN. Las seales de salida son amplificadas respecto a las de entrada tanto en tensin, como en corriente (mximo lA), la tabla 3.4 es la de funcionamiento para cada uno de los drivers.

Tabla 3.4

En la tabla 3.5 se describen los valores absolutos mximos del driver L293B.

Tabla 3.5

________________________________________________________________________- 40 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Veamos, seguidamente, algunas formas de conectar los motores de corriente continua al driver del L293B. 3.1.4.3 Giro de dos motores en un nico sentido En la figura 3.15 se muestra el modo de funcionamiento de dos motores de corriente continua que giran en un nico sentido: El motor M1 se activa al poner a nivel bajo la entrada de control A. El motor M2 se activa al poner a nivel alto la entrada de control B

Fig. 3.15

En la figura anterior vemos la conexin de dos motores de continua, M1 activo por 0 y M2 por 1. En la tabla 3.6 vemos el modo de funcionamiento del circuito. Los diodos Dl y D2, estn conectados para proteger el circuito cuando se generan los picos de arranque de los motores. Si no se trabaja a mxima potencia de trabajo, pueden eliminarse del circuito.

Tabla 3.6.

3.1.5 Montaje del Driver L293B con el Microcontrolador PICPara comprobar el funcionamiento del driver L293B con el de un microcontrolador, utilizamos el P1C16F84A. Tambin usamos un motor de los que ya hemos empleado, un inversor tipo Schmitt Trigger del chip CD40106 y nuestro driver. ________________________________________________________________________- 41 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

El circuito utilizado es el de la figura 3.16, que muestra el esquema del montaje para el control de motores con el driver L293B y el P1C16F84A, para el proyecto solamente se sustituyo el PIC16F84A por el PIC 18F2550, ya que la conexin a las patillas es prcticamente la misma.

Fig. 3.16

Enseguida se encuentran los esquemas de las placas usadas en el mini-robot para la etapa de potencia y la de control, as como la explicacin de sus conexiones.

________________________________________________________________________- 42 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

3.1.6 Etapa de Potencia.Placa en donde se controla la etapa de potencia del mini-robot (Fig. 3.17 (a) y (b)), en este circuito reducimos el voltaje de 9V de la pila a 5V, que es el voltaje que necesitamos para alimentar todo el circuito.

(a)

(b)

Fig. 3.17. Placa para la etapa de potencia: (a) Diseo del circuito. (b) Circuito armado.

Alimentacin Principal de la pila de 9V. Switch para alimentar el circuito; este se encuentra colocado en la parte inferior del mini-robot. Cabezal colocado para conectar un led y as ver que el circuito esta activado. (En el circuito final no se coloco el led, porque al encender el mini-robot tiene ya cargado una determinada secuencia a realizar, por lo cual si no se realiza esta secuencia es claro que hay problemas con la alimentacin) Alimentacin para los otros 2 circuitos del mini-robot. Cabezales para la conexin de los motores IN3, IN4 Se usan para el motor de arranque, las seales de control se dan por medio del puerto C del PIC es decir de RC1 y RC0. IN1, IN2 Se usan para el motor de direccin, las seales de control se dan por medio del puerto C del PIC es decir de RC6 y RC7.

________________________________________________________________________- 43 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

3.1.7 Etapa de Control.Placa que controla todas las actividades (Fig. 3.18 (a) y (b)), es decir es el cerebro del mini-robot; aqu se encuentra colocado el PIC 18F2550 que contiene el programa que se encargara de dar todas las instrucciones para el correcto funcionamiento.

(a)

(b)

Fig. 3.18. Placa para la etapa de control: (a) Diseo del circuito. (b) Circuito armado.

Cabezal que se conecta a la mano del mini-robot, el potencimetro es para variar la distancia de deteccin del sensor de proximidad que se encuentra colocado en este mismo. Cabezales en los que se conectan los 2 servomotores, que se usan para controlar el brazo y la mano, estos reciben las seales de control PWM de los puertos C y B C RC2 para el servo de la mano B RB3 para el servo del brazo Jumpers colocados para la alimentacin de los servomotores; se colocaron estos previendo el consumo de corriente, es decir se puede realizar una conexin externa de alimentacin independiente a la que alimenta a todo el circuito; reduciendo considerablemente el consumo de corriente. Conector colocado para programar el PIC sin necesidad de retirarlo del circuito Puerto A del PIC usado para controlar los sensores estos son: RA0 Controla el sensor de choque izquierdo RA1 Controla el sensor de choque derecho RA2 Controla el sensor detector de color negro RA3 Controla el sensor detector de objetos Conectores de los sensores de choque. ________________________________________________________________________- 44 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

3.1.7.1 Placa del sensor de color negro. En esta placa se instalo el sensor de color negro (Fig. 3.19 (a) y (b)) y con la conexin del chip CD40106 obtenemos mayor sensibilidad en la deteccin del color; mismo que se usa para el sensor de localizacin de objetos colocado en la pinza del mini-robot.

(a)

(b)

Fig. 3.19. Placa del sensor de color negro: (a) Diseo del circuito. (b) Circuito armado.

________________________________________________________________________- 45 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Captulo 4. Implementacin del mini-robot.Para la implementacin del mini-robot recolector de objetos es necesario definir exactamente todas y cada una de las partes que componen el mini-robot y que vamos a utilizar para controlar el proceso, recordando que los sensores que utilizan seales infrarrojas se encuentran en dos ubicaciones: en el seguidor de lnea y en la pinza de recoleccin.

4.1 El seguidorLa deteccin de la marca del piso esta basada en la capacidad de los colores para reflejar la luz, basndose en eso se ha decidido utilizar el CNY70 que es un sensor de proximidad, constituido principalmente de una fuente emisora de luz y un foto detector que recibe la seal luminosa reflejada por las marcas de color negro que se encuentren en el piso, la principal problemtica ser la calibracin para que pueda detectar las marcas de color negro brindando una seal lgica 0 o 1 (0 y 5V respectivamente) dependiendo si esta presente la marca o no para poder acoplarla directamente al PIC que se encargara de efectuar el proceso de toma de decisiones necesario para controlar los motores que se encargaran de la realizacin del desplazamiento de la unidad, figuras (4.1(a) y (b)).

(a)

(b)

Fig. 4.1(a) y (b). Circuito seguidor ya implementado en el mini-robot .

4.2 La pinza recolectoraEsta hecha en baquelita y se encuentra controlada por 1 servomotor, figuras (4.2(a) y (b)), el cual le dar el soporte necesario para realizar el esfuerzo mecnico con el que podr abrir o cerrar la pinza, dependiendo si ha encontrado o no un objeto en su trayecto, cuando la unidad motriz se detenga proceder a la sujecin y carga de dicho objeto. Contara con un sensor reflexivo IS471F, el cual estar conformado por una fuente infrarroja y un fototransistor que crearan una barrera que al ser interrumpida indique que se ha encontrado con algn objeto el cual deber recolectar para despus continuar su trayecto. ________________________________________________________________________- 46 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

(a)

(b)

Fig. 4.2(a) y (b). Pinza recolectora implementada en el mini-robot .

4.3 El detector de obstculosEst basado en los diferentes estados en los que se podr encontrar el motor que se encargan de la traccin: adelante y atrs para controlar el desplazamiento en lnea recta y direccin derecha y direccin izquierda para los giros a la derecha e izquierda respectivamente. Se cuenta con 2 detectores colocados en los costados delanteros del robot, figuras (4.3(a) y (b)), cada uno dar una seal que se procesara de acuerdo a la tabla 4.1:

(a)

(b)

Fig. 4.3(a) y (b). Detector de obstculos implementado en el mini-robot .

Detector1 0 0 1 1

Detector2 0 1 0 1

Motor1 Atrs Atrs Adelante Adelante

Motor2 ---Derecha Izquierda ----

Tabla 4.1. Sentido de los motores segn la presencia de obstculos.

________________________________________________________________________- 47 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

4.4 El brazo up-downEl sensor detector de color mandara la seal de interrupcin que inhibir el funcionamiento de los motores dejndolos en espera , hasta que el proceso de recoleccin haya concluido, este consiste en lo siguiente: al detenerse el mini-robot, el brazo up-down, tambin hecho en baquelita y gobernado por 1 servomotor, siempre al inicio se encuentra en su posicin ms alta, desciende a la posicin mas baja, permitiendo a la pinza la deteccin del objeto y su sujecin, inmediatamente el brazo up-down comienza a elevar el objeto sujetado por la pinza, por encima del chasis del robot hasta quedar en su posicin ms alta, en este momento se activa una seal que accionara el proceso de continuar.

(a)

(b)

Fig. 4.4(a) y (b). El brazo up-down implementado en el mini-robot .

4.5 Suministro de energa y movimientoEl circuito de control se encontrara alimentado con un batera de 9V, la cual estar ubicada en la parte superior del mini-robot (Figuras 4.5(a) y (b)). Al mismo tiempo se proporciona una alimentacin de energa para el circuito de potencia, refirindose as a la parte donde estarn interviniendo los motores que generan el desplazamiento as como los servomotores. Debido a sus caractersticas tanto de programacin como de aplicacin, la unidad recolectora de objetos puede ajustarse a desempear una diversa gama de aplicaciones, mediante pequeas variaciones en la programacin y la sustitucin de los transductores para trabajar con diferentes variables de control.

(a)

(b)

Fig. 4.5(a) y (b). Circuito para el suministro de energa implementado en el mini-robot.

________________________________________________________________________- 48 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

4.6 Diagrama de flujoEl diagrama de flujo (Fig. 4.6) muestra los pasos a seguir para la elaboracin del programa final del mini-robot recolector de objetos Inicio

Si

Detecto Marca

No

Interrupcin del desplazamiento

Avanza de frente

Coloca brazo en su posicin mas baja

Detecto marca Si

No

Detecta el objeto y lo levanta

Brazo en su posicin ms alta

No

Si

Avanza de frente

Fig. 4.6. Diagrama de flujo del comportamiento del mini-robot recolector.

________________________________________________________________________- 49 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

4.7 Funcionamiento del mini-robot.Estos son los pasos del funcionamiento del mini-robot recolector de objetos, de acuerdo al diagrama de flujo:

Paso 1: Al inicio del funcionamiento del mini-robot recolector de objetos, el brazo up-down se eleva a su posicin ms alta, como lo muestra la figura 4.7.

Fig. 4.7.

Paso 2: El mini-robot avanza hasta detectar la marca de color negro, en donde se detiene, como lo muestra la figura 4.8.

Fig. 4.8.

________________________________________________________________________- 50 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Paso 3: El brazo up-down se mueve hacia su posicin mas baja, permitiendo al sensor instalado en la parte de en medio de la pinza, detectar el objeto, tal como lo muestra la figura 4.9.

Fig. 4.9.

Paso 4: El sensor de la pinza detecta el objeto y manda una seal al microcontrolador, el cual inicia la secuencia para cerrar la pinza y sujetar el objeto, como lo muestra la figura 4.10.

Fig. 4.10.

________________________________________________________________________- 51 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

Paso 5: Al sujetar la pinza el objeto, el brazo up-down se eleva hasta su posicin ms alta, como lo muestra la figura 4.11.

Fig. 4.11.

Paso 6 El mini-robot recolector continua su recorrido con el objeto sujetado por la pinza, como lo muestra la figura 4.12.

Fig. 4.12.

De acuerdo a la informacin antes descrita, nuestro programa PFinal.asm para el control del mini-robot recolector de objetos se muestra a continuacin:

________________________________________________________________________- 52 -

Bravo Infante Adrin --- Cervantes Palacios Javier Proyecto de Ingeniera Electrnica Universidad Autnoma Metropolitana

4.8 Programa PFinal.asm del mini-robot recolector de objetos:;======================================================================== ; Nombre del Archivo: Proyecto Final ; ; Descripcion del programa: Este programa se encarga de controlar los motores del carro los cuales son el Motor de arranque (M1) y el Motor de direccion (M2), estos motores seran controlados por medio del puerto C, los bits que se utilizaran seran RC para M1 y RC para M2. ; Se utiliza RC2 para controlar el servo de la mano recolectora, y RB3 para controlar el servo del brazo. Los bits del registro RA contendran el sensor de choque izquierdo (RA0), el sensores de choque derecho (RA1),el sensor detector de color negro (RA2) y el sensor detector de objetos (RA3). ; ; Version de Archivo: 1.06 ; ; Autores: Adrian Bravo Infante - Javier Cervantes Palacios ; ; Escuela: UAM-I ;