Anda di halaman 1dari 28

Proyecto de creatividad: "Sistema automtico de posicin para un enlace punto a punto (P2P) microondas"

Participantes del proyecto: Casillas Bracamontes Jos Ramn Bracamontes Hernndez Luis Manuel Martnez de la Cruz Victor Manuel Septiembre 2009

ndice general

1. RESUMEN 2. TEORIA 2.1. Software: Mplab . . . . . . . . . . . . . . . . . . . 2.1.1. Descripcin . . . . . . . . . . . . . . . . . 2.1.2. Directivas . . . . . . . . . . . . . . . . . . 2.1.3. Compilacin del programa y carga al PIC 2.2. Software: Labview . . . . . . . . . . . . . . . . . . 2.2.1. Descripcin . . . . . . . . . . . . . . . . . 2.2.2. Principales Caractersticas . . . . . . . . . 2.2.3. Historial . . . . . . . . . . . . . . . . . . . 2.2.4. Programas en Labview . . . . . . . . . . . 2.3. Interfaz USB . . . . . . . . . . . . . . . . . . . . 2.3.1. Descripcin . . . . . . . . . . . . . . . . . 2.3.2. Funcionamiento del USB . . . . . . . . . . 2.3.3. Componentes del USB estandart . . . . . 2.3.4. Cables y Conectores . . . . . . . . . . . . 2.4. Microcontrolador PIC 18f4550 . . . . . . . . . . . 2.4.1. Diagrama de pines del microcontrolador . 2.4.2. Caractrsticas del USB . . . . . . . . . . . 2.4.3. Modos de alimentacin . . . . . . . . . . . 2.4.4. Estructura del oscilador . . . . . . . . . . 3. DESARROLLO 3.1. Metodologa . . . . . . . . . . . . . . . . . . . 3.1.1. Procedimieto y actividades realizadas . . 3.2. Programacin en Labview . . . . . . . . . . . . 3.3. Programacin del microcontrolador PIC 18f4550 3.4. Simulacin . . . . . . . . . . . . . . . . . . . . . 3.5. Resultados . . . . . . . . . . . . . . . . . . . . . 4. CONCLUSIONES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 3 3 3 3 5 5 5 6 7 8 9 9 10 11 12 12 13 13 14 14 16 16 16 16 17 24 24 27

NDICE GENERAL

1. RESUMEN
En el proyecto "Sistema automtico de posicin para un enlace punto a punto (P2P) microondas"se llevaron acabo diversas operaciones para mejorar el rendimiento del equipo que se esta utilizando, parte de estas mejoras se basa en la manipulacin del sistema mediante el uso de la computadora por medio del puerto usb. En este reporte el cual se ha anexado al reporte original nos muestra todos los cambios realizados al propotito principal, desde el microcontrolador que se utiliza, hasta el medio con el cual se dan las instrucciones de giro a la antena de microondas.

RESUMEN

2. TEORIA
2.1. Software: Mplab
2.1.1. Descripcin MPLAB es un Entorno de Desarrollo Integrado (IDE) fcil de aprender y fcil de usar como se muestra en la gura 2-1. La caracterstica IDE proporciona a los desarrolladores de software para aplicaciones la exibilidad para editar, compilar, emular, simular, desarrollar y depurar su propio software para las familias de microcontroladores PIC16/17/18 de Microchip. Sus pricipales caracteristicas son sus diversas directivas y su forma de compilar y cargar el PIC.

2.1.2. Directivas Las directivas son palabras reservadas para indicarle al MPLAB R que funciones debe congurar cuando compile nuestro programa. Las indispensables para la correcta compilacin del programa son: DIRECTIVA CBLOCK #DEFINE DT ELSE END ENDIF ENDM ENDW EQU IF #INCLUDE LIST MACRO ORG WHILE DESCRIPCIN Dena un Bloque de Constantes Dena una Etiqueta de Substitucin de Texto Dena Tabla Empieza el bloque alternativo de un IF Fin de bloque de programa Fin del bloque de condiciones ensambladas Fin de la denicin de una Macro Fin de un bucle de While Dene una constante para el ensamblador Empieza un bloque de cdigo condicional Incluye Ficheros fuentes adiccionales Opciones listado Declara la Denicin del Macro Pone el Origen del Programa Realiza el bucle Mientras la Condicin es Verdadera

TEORIA

Figura 2-1 IDE de MPLAB para edicion de programas.

SOFTWARE: MPLAB

Figura 2-2 Programador Picstar Plus de microchip

2.1.3. Compilacin del programa y carga al PIC Una vez escrito y depurado el programa, se procede a la compilacin. Para esto, desde el men PROYECT se elige la opcin BUILD ALL que, si no existen errores, devolver un mensaje como BUILD SUCCESFULL. Los errores que muestra el compilador son del tipo sintcticos, es decir que si se llegara a tener un error, se espera que se ponga un bit en 0 y nunca pasa, se estar en un bucle innito y el compilador compilar perfectamente porque no hay error de sintaxis. Tambin existen mensajes y advertencias; los mensajes pueden ser, por ejemplo, que se est trabajando en un banco de memoria que no es el bank 0, etc. Las advertencias tienen un poco ms de peso, por ejemplo: el PIC seleccionado no es el mismo que esta denido en el programa, etc. En ambos casos, mensajes y advertencias, la compilacin termina satisfactoriamente pero hay que tener en cuenta siempre lo que nos dicen estos para prevenir errores. Terminada la compilacin el MPLAB R nos genera un archivo de extensin .hex el cual es completamente entendible para el PIC. Es decir, solo resta grabarlo al PIC por medio de una interfaz como por ejemplo el programador Picstart Plus de microchip que se muestra en la gura2-2. Una vez completado esto, se alimenta al mismo y el programa ya se estar ejecutando.

2.2. Software: Labview


2.2.1. Descripcin LabVIEW es una herramienta grca para pruebas, control y diseo mediante la programacin. El lenguaje que usa se llama lenguaje G, donde la G simboliza que es lenguaje Grco. Este programa fue creado por National Instruments (1976) para funcionar sobre mquinas MAC, sali al mercado por primera vez en 1986. Ahora est disponible para las plataformas Windows, UNIX,

SOFTWARE: LABVIEW

MAC y Linux. La versin actual 8.6, liberada en Agosto de 2008, cuenta tambin con soporte para Windows Vista. Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o VIs, y su origen provena del control de instrumentos, aunque hoy en da se ha expandido ampliamente no slo al control de todo tipo de electrnica (Instrumentacin electrnica) sino tambin a su programacin embebida. Un lema tradicional de LabVIEW es: "La potencia est en el Software", que con la aparicin de los sistemas multincleo se ha hecho an ms patente. Entre sus objetivos estn el reducir el tiempo de desarrollo de aplicaciones de todo tipo (no slo en mbitos de Pruebas, Control y Diseo) y el permitir la entrada a la informtica a profesionales de cualquier otro campo. LabVIEW consigue combinarse con todo tipo de software y hardware, tanto del propio fabricante (tarjetas de adquisicin de datos, PAC, Visin, instrumentos y otro Hardware) como de otros fabricantes.

2.2.2. Principales Caractersticas Su principal caracterstica es la facilidad de uso, vlido para programadores profesionales como para personas con pocos conocimientos en programacin pueden hacer (programas) relativamente complejos, imposibles para ellos de hacer con lenguajes tradicionales. Tambin es muy rpido hacer programas con LabVIEW y cualquier programador, por experimentado que sea, puede beneciarse de l. Los programas en LabView son llamados instrumentos virtuales (VIs) Para los amantes de lo complejo, con LabVIEW pueden crearse programas de miles de VIs (equivalente a millones de pginas de cdigo texto) para aplicaciones complejas, programas de automatizaciones de decenas de miles de puntos de entradas/salidas, proyectos para combinar nuevos VIs con VIs ya creados, etc. Incluso existen buenas prcticas de programacin para optimizar el rendimiento y la calidad de la programacin. El labView 7.0 introduce un nuevo tipo de subVI llamado VIs Expreso (Express VIS). Estos son VIs interactivos que tienen una conguracin de caja de dilogo que permite al usuario personalizar la funcionalidad del VI Expreso. El VIs estndard son VIs modulares y personalizables mediante cableado y funciones que son elementos fundamentales de operacin de LabView. Presenta facilidades para el manejo de: Interfaces de comunicaciones: Puerto serie Puerto paralelo GPIB PXI VXI TCP/IP, UDP, DataSocket Irda Bluetooth
SOFTWARE: LABVIEW 6

USB OPC... Capacidad de interactuar con otros lenguajes y aplicaciones: DLL: libreras de funciones .NET ActiveX Multisim Matlab/Simulink AutoCAD, SolidWorks, etc Herramientas grcas y textuales para el procesado digital de seales. Visualizacin y manejo de grcas con datos dinmicos. Adquisicin y tratamiento de imgenes. Control de movimiento (combinado incluso con todo lo anterior). Tiempo Real estrictamente hablando. Programacin de FPGAs para control o validacin. Sincronizacin entre dispositivos.

2.2.3. Historial Fue en 1986 que la primera versin de LabVIEW se realiza sobre Macintosh. Se sigue un trabajo incesante para aadir funcionalidades. 1986 : LabVIEW 1.0, primera versin en Mac OS 1990 : LabVIEW 2.0, mximo aprovechamiento de los resultados 1992 : LabVIEW 2.5, primera versin en Windows 3.1 y Solaris 1993 : LabVIEW 3.0 1994 : LabVIEW 3.0.1, primera versin en Windows NT 1994 : LabVIEW 3.1 1995 : LabVIEW 3.1.1, integracin del Application Builder (creacin de archivos ejecutables)
SOFTWARE: LABVIEW 7

1996 : LabVIEW 4.0 1997 : LabVIEW 4.1 1998 : LabVIEW 5.0, multitarea, contenedores ActiveX, asistente para la adquisicin de dato (tarjetas de adquisicin DAQ) e asistente para el control de instrumentos 1999 : LabVIEW 5.1, primera versin para Linux, primera versin de LabVIEW RT (Real Time) 2000 : LabVIEW 6.0, controles grcos en 3D, referencias de controles 2001 : LabVIEW 6.1, mejoramiento y correcciones, primera versin en Palm OS 2003 : LabVIEW 7.0, VI Express, primera versin en Windows Mobile 2003 2004 : LabVIEW 7.1, traduccin en francs, alemn y japons 2005 : LabVIEW 8.0, Project Explorer, XControls, shared variables 2005 : LabVIEW 8.1, mejoramiento y correcciones 2006 : LabVIEW 8.20, Programacin orientada a objetos 2007 : LabVIEW 8.5, primera version del toolkit FPGA y del toolkit Statechart 2008 : LabVIEW 8.6, limpieza automtica de los diagramas

2.2.4. Programas en Labview Como se ha dicho es una herramienta grca de programacin, esto signica que los programas no se escriben, sino que se dibujan, facilitando su comprensin. Al tener ya pre-diseados una gran cantidad de bloques, se le facilita al usuario la creacin del proyecto, con lo cual en vez de estar una gran cantidad de tiempo en programar un dispositivo/bloque, se le permite invertir mucho menos tiempo y dedicarse un poco ms en la interfaz grca y la interactuacin con el usuario nal. Cada VI consta de dos partes diferenciadas: Panel Frontal: El Panel Frontal es la interfaz con el usuario, la utilizamos para interactuar con el usuario cuando el programa se esta ejecutando. Los usuarios podrn observar los datos del programa actualizados en tiempo real (como van uyendo los datos, un ejemplo sera una calculadora, donde tu le pones las entradas, y te pone el resultado en la salida). En esta interfaz se denen los controles (los usamos como entradas, pueden ser botones,marcadores etc..) e indicadores (los usamos como salidas, pueden ser grcas ....). Diagrama de Bloques: es el programa propiamente dicho, donde se dene su funcionalidad, aqu se colocan conos que realizan una determinada funcin y se interconectan (el cdigo que controla el programa). Suele haber una tercera parte icono/conectorque son los medios utilizados para conectar un VI con otros VIs.
SOFTWARE: LABVIEW 8

Figura 2-3 Diagrama de bloques de un programa en Labview

En el panel frontal, encontraremos todo tipos de controles o indicadores, donde cada uno de estos elementos tiene asignado en el diagrama de bloques una terminal, es decir el usuario podra disear un proyecto en el panel frontal con controles y indicadores, donde estos elementos sern las entradas y salidas que interectuaran con la terminal del VI. Podemos observar en el diagrama de bloques, todos los valores de los controles e idicadores, como van uyendo entre ellos cuando se esta ejecutando un programa VI. En la Figura 2-3 se muestra un Diagrama de Bloques de un programa en el que se genera un array de 100 elementos aleatorios, a continuacin se hace la FFT de este array y se muestra en una grca:

2.3. Interfaz USB


2.3.1. Descripcin USB es una interfaz para transmisin de datos y distribucin de energa que ha sido introducida en el mercado de PCs y perifricos para mejorar las lentas interfaces serie (RS-232) y paralelo. Esta interfaz de 4 hilos, 12 Mbps y plug and play , distribuye 5V para alimentacin, transmite datos y est siendo adoptada rpidamente por la industria informtica. El Universal Serial Bus, es un bus serie que hace posible la conexin de hasta 127 perifricos a una nica puerta de un PC, con deteccin y conguracin automticas, siendo esto posible con el PC conectado a la red y sin tener que instalar ningn hardware ni software adicionales, y sin tener que reiniciar el ordenador. Ha sido desarrollado por empresas lderes del sector de las telecomunicaciones y de los ordenadores: Compaq, DEC, IBM, Intel, Microsoft, NEC y Northern Telecom. En este momento ya hay en el mercado PCs y perifricos (teclados, ratones, monitores, etc.) que disponen de puertos USB. Hasta el momento se han desarrollado tres versiones: Versin 1.0 (Enero 1996).
INTERFAZ USB 9

Figura 2-4 Descripcin del USB

Versin 1.1 (Septiembre 1998). Versin 2.0 (Abril 2000).

2.3.2. Funcionamiento del USB Las seales del USB se transmiten en un cable de par trenzado con impedancia de 90 15 %, cuyos pares se denominan D+ y D como se muestra en la gura 2-4. Estos, colectivamente, utilizan sealizacin diferencial en half duplex para combatir los efectos del ruido electromagntico en enlaces largos. D+ y D suelen operar en conjunto y no son conexiones simples. Los niveles de transmisin de la seal varan de 0 a 0;3V para bajos (ceros) y de 2;8 a 3;6V para altos (unos) en las versiones 1;0 y 1;1, y en 400mV en alta velocidad (2;0). Este puerto slo admite la conexin de dispositivos de bajo consumo, es decir, que tengan un consumo mximo de 100mA por cada puerto.

INTERFAZ USB

10

Figura 2-5 Posible esquema de conexiones del bus USB.

2.3.3. Componentes del USB estandart El sistema de bus serie universal USB consta de tres componentes: Un controlador.- Reside dentro del PC y es responsable de las comunicaciones entre los perifricos USB y la CPU del PC. El controlador es tambin responsable de la admisin de los perifricos dentro del bus, tanto si se detecta una conexin como una desconexin. Para cada perifrico aadido, el controlador determina su tipo y le asigna una direccin lgica para utilizarla siempre en las comunicaciones con el mismo. Hubs o concentradores.- Son distribuidores inteligentes de datos y alimentacin, y hacen posible la conexin a un nico puerto USB de 127 dispositivos. Perifricos.- USB soporta perifricos de baja y media velocidad. Empleando dos velocidades para la transmisin de datos de 1.5 y 12 Mbps se consigue una utilizacin ms eciente de sus recursos. Los perifricos de baja velocidad tales como teclados, ratones, joysticks, y otros perifricos para juegos, no requieren 12 Mbps. Empleando para ellos 1.5 Mbps, se puede dedicar ms recursos del sistema a perifricos tales como monitores, impresoras, modems, scanners, equipos de audio, etc, que precisan de velocidades ms altas para transmitir mayor volumen de datos o datos cuya dependencia temporal es ms estricta. En las guras 2-5 y 2-6 se puede ver cmo los hubs proporcionan conectividad a toda una serie de dispositivos perifricos.

INTERFAZ USB

11

Figura 2-6 Dispositivos USB conectados a un PC.

Figura 2-7 Esquema del cable para USB

2.3.4. Cables y Conectores USB transere seales y energa a los perifricos utilizando un cable de 4 hilos, apantallado para transmisiones a 12 Mbps y no apantallado para transmisiones a 1.5 Mbps. En la gura 2-7 se muestra un esquema del cable, con dos conductores para alimentacin y los otros dos para seal, debiendo estos ltimos ser trenzados o no segn la velocidad de transmisin. El calibre de los conductores destinados a alimentacin de los perifricos vara desde 20 a 26 AWG, mientras que el de los conductores de seal es de 28 AWG. La longitud mxima de los cables es de 5 metros.

2.4. Microcontrolador PIC 18f4550


Las caracteristicas principales que tiene este tipo de microcontrolador se pueden representar fcilmente mostrando la hoja de datos provista por el fabricante (Microchip).
MICROCONTROLADOR PIC 18F4550 12

Figura 2-8 Diagrama de pines del microcontrolador PIC 18f4550

En esta ocacin solo mostraremos los que a nuestro punto de vista son los mas importantes

2.4.1. Diagrama de pines del microcontrolador

En la gura 2-8 se presenta el diagrama de pines del microcontrolador que se utiliz, en este caso es el microcontrolador PIC 18f4550 de 40 pines.

2.4.2. Caractrsticas del USB

Velocidad del USB: Baja velocidad (1; 5 M b=s) Mxima velocidad (12 M b=s) Soporta hasta 32 puntos nales (16 bidireccional)
MICROCONTROLADOR PIC 18F4550 13

Interfaz para o-chip transceptor USB 1 Kbyet de RAM de doble acceso para USB

2.4.3. Modos de alimentacin

Ejecutado: CPU encendido, los perifricos encendidos. Lento: CPU apagados , los perifricos encendidos. Descanso: CPU apagados , los perifricos apagados. Las corrientes de modo inactivo llegan hasta 5,8 A de manera tpica. Corriente de descanso llegan hasta 0,1 mA tpicamente. Oscilador Timer1: 1,1 A tpico, 32 kHz, 2V Watchdog Timer: 2,1 A tpica

2.4.4. Estructura del oscilador

Cinco modos de Cristal, incluyendo alta precisin PLL para USB Dos modos de Exteriores RC, hasta 4 MHz Dos modos de reloj externo, de hasta 40 MHz. Bloque del oscilador interno: 8 frecuencias seleccionables por el usuario, a partir de 31 kHz a 8 MHz Permite deterterce de manera segura en caso de que el reloj pare. En la gura 2-9 se presentan los valores de la capacidad de las memorias de datos y las memorias de programa de los microcontroaldores de la misma familia (18f4550,18f2455,18f2550,18f4455).

MICROCONTROLADOR PIC 18F4550

14

Figura 2-9 Datos de microcontroladores de la misma familia

MICROCONTROLADOR PIC 18F4550

15

3. DESARROLLO
3.1. Metodologa

3.1.1. Procedimieto y actividades realizadas La metodologa que se sigui para realizar los cambios al prototipo principal del proyecto se bas prcticamente en la manipulacin del microcontrolador PIC 18f4550 y en el uso de los softwares Labview y Mplab. La desicin del manejo de esta clase de microcontrolador se tom gracias a que nos brinda la oportunidad de interconectarlo con una computadora utilizando el puerto usb, de esta manera nos permite controlar el moviemiento de la antena por medio del mouse. Los principales puntos a considerar para el desarrollo este proyecto se tomaron en cuenta para el manejo de nuevo equipo electrnico y para cada uno de los dispositivos electrnicos que fueron sustituidos para la obtencin de un mejor desempeo. A continuacin se muestran las consideraciones de software y hadware que se tomaron en cuenta para este proceso: 1. Sustitucin de comoponentes electrnicos considerando el nuevo control por computadora: Sustituimos el microcotrolador PIC 16f874A por el microntrolador PIC 18f4550 para hacer posible la comunicacin por el puerto USB. 2. Software instalados para el proceso de control de la antena: Instalacin de los progrmas de microchip Mplab y de el programa de National Instruments Labview en sus versiones ms actualizadas. 3. Software y lenguaje de programacin para el nuevo microcontrolador: Software CCS Complier con lenguaje C de programacin. Las instruciones que son requeridas para el control de la antena son manipuladas de una manera grca por el usuario, es decir, para designarle el nmero de grados de giro para la antena se toma como referencia la posicin del cursor en donde se la click en la imagen del mapa, dependiedo de los grados indicados en la computadora va a ser el giro de la antena y la nueva posicin que tendr la cul ser visuaizar en ela pantalla de LCD.

3.2. Programacin en Labview


Se realiza la programacin debida en el software de Labview para el desarrollo adecuado del proyecto, este te programa desarrolla una interfaz muy amigable con el usuario capaz de permitirle
DESARROLLO 16

tener nocin de la direccin de la antena y poderla modicar a gusto teniendo en cuenta la informacin que se le presenta, tal como grados y magnitud. En la gura 3-1 se presenta el diagrama a bloques en Labview. EL fucionamiento de cada etapa se describe a continuacin: Etapa 1.- se hace la adquisicin de la imagen en la cual se basar el posicionamiento de la antena. La imagen es .bmp en este caso, pero LabView tambin permite utilizar otras extensiones tales como .jpg. Es necesario que una vez establecida la imagen, se ajusten el nmero de pxeles de la imagen establecida, tanto en X como en Y. Etapa 2: tenemos el control de la imagen por medio de un evento del mouse; en cuanto se presione un botn (click del mouse) se efectuarn todos los dems bloques, tales como el procesamiento, el clculo de datos y el envo serial al PIC. Etapa 3: se hace un simple procesamiento para obtener los grados y magnitud del posicionamiento seleccionado con el evento para nalmente presentarlo al usuario para que pueda realizar los ajustamientos adecuados. Etapa 4: slo se hace la adaptacin de datos y la comunicacin serial para el envo de un dato en el rango [0,255] que ser el regulador del PWM.

3.3. Programacin del microcontrolador PIC 18f4550


EL programa que se us para la programacin del PIC 16f874A fue modicado con las caracteristicas del nuevo microcontrolador que se va a utlizar, estos cambios que se hicieron son muy pequeos ya que las caracteristicas de los pines de un microntrolador con respecto al otro son identicas, por lo tanto solo fue necesario cambiar nicamente los parmetros referentas a la conexin USB. El compitaldor que se utiliz para desarrollar el programa del microcontrolador fu el CCS Compiler. A continuacin se muestra el programa que se le implement al microcontrolado PIC 18f4550: #dene __USB_PIC_PERIF__ 1 #if !dened(__PCH__) #error USB CDC Library requires PIC18 #endif #include <ant1.h> #include <usb_cdc.h> #include <usb.h> #include <usb.c> #dene motor_inc output_c(1); #dene motor_dec output_c(2); #dene motor_paro output_c(0); #build (reset=0x000800,interrupt=0x000808:0x000818) #ORG 0x000, 0x07FF {} void usb_debug_task(void) {
PROGRAMACIN DEL MICROCONTROLADOR PIC 18F4550 17

Figura 3-1 Diagramas de bloques en Labview

PROGRAMACIN DEL MICROCONTROLADOR PIC 18F4550

18

static int8 last_connected; static int8 last_enumerated; int8 new_connected; int8 new_enumerated; static int8 last_cdc; int8 new_cdc; new_connected=usb_attached(); new_enumerated=usb_enumerated(); new_cdc=usb_cdc_connected(); if (new_connected && !last_connected) printf(SB connected, waiting for enumaration...nrnnnn"); if (!new_connected && last_connected) printf(SB disconnected, waiting for connection...nrnnnn"); if (new_enumerated && !last_enumerated) printf(SB enumerated by PC/HOSTnrnnnn"); if (!new_enumerated && last_enumerated) printf(SB unenumerated by PC/HOST, waiting for enumeration...nrnnnn"); if (new_cdc && !last_cdc) { printf("Serial program initiated on USB<->UART COM Portnrnnnn"); printf(usb_cdc_putc, "nrnnnnCCS CDC (Virtual RS232) Examplenrnnnn"); } last_connected=new_connected; last_enumerated=new_enumerated; last_cdc=new_cdc; } char c; const int histeresis=2; unsigned int16 valor_adc=0; unsigned int16 grados=0; unsigned int16 sp=180,pre_sp=0; unsigned int num=17,num_pos=0,x =0; void main() { setup_adc_ports(AN0jVREF_VREF); // AN0 // setup_adc_ports(AN0_VREF_VREF); //AN0 setup_adc(ADC_CLOCK_INTERNAL); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); // setup_wdt(WDT_OFF); //setup_timer_0(RTCC_OFF); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); //setup_timer_3(T3_DISABLEDjT3_DIV_BY_1); //setup_comparator(NC_NC_NC_NC);
PROGRAMACIN DEL MICROCONTROLADOR PIC 18F4550 19

//setup_vref(VREF_LOW); set_adc_channel(0); set_tris_e(0x00); usb_init_cs(); lcd_init(); lcd_gotoxy(1,4); lcd_putc("nf SISTEMA "); // INICIANDO EL LCD delay_ms(500); lcd_gotoxy(1,2); lcd_putc(.A UTOMATICO DE "); delay_ms(500); lcd_gotoxy(2,3); lcd_putc("POSICION PARA "); delay_ms(500); lcd_gotoxy(2,4); lcd_putc(N ENLACE P2P "); delay_ms(2000); kbd_ini(); lcd_putc("nf"); set_tris_c(0x00); output_c(0x00); lcd_gotoxy(1,3); lcd_putc("* PARA ACEPTAR"); lcd_gotoxy(1,4); lcd_putc("# PARA BORRAR"); lcd_gotoxy(1,1); while (TRUE) { if(!input(PIN_E0)) { // si se tiene un potenciometro de 1 vuelta // valor_adc * 360 // grados = = valor_adc * 0.3515625 // 1024 valor_adc=read_adc(); //if(valor_adc<103) valor_adc=103; //(unsigned int16)grados=((unsigned int16)valor_adc*( oat)3.519061587)-360; (unsigned int16)grados=(unsigned int16)valor_adc*( oat)0.3515625; lcd_gotoxy(1,1); printf(lcd_putc,"Posicion= %Lu %c ",grados,0xDF); if(num_pos==0) { lcd_gotoxy(1,2); printf(lcd_putc,"Set point= %Lu %c ",sp,0xDF);
PROGRAMACIN DEL MICROCONTROLADOR PIC 18F4550 20

} if((sp<356) & (grados < sp - histeresis)) motor_inc else if((sp > 1) & (grados > sp + histeresis)) motor_dec else motor_paro num=teclado(); if(num <10 ) { switch (num_pos) { case 0: pre_sp=0; //(unsigned int16)pre_sp=(int)num * 100; for(;num;num ) {pre_sp+=100;} lcd_gotoxy(1,2); printf(lcd_putc,"Set point %Lu_ %c ",pre_sp,0xDF); num_pos++; break; case 1: pre_sp=(unsigned int)num*10+pre_sp; lcd_gotoxy(1,2); printf(lcd_putc,"Set point %Lu_ %c ",pre_sp,0xDF); num_pos++; break; case 2: pre_sp=(unsigned int)num+pre_sp; lcd_gotoxy(1,2); printf(lcd_putc,"Set point %Lu_ %c ",pre_sp,0xDF); num_pos++; break; default: break; } //switch num } //if num<10 if ((num ==14) & (num_pos!=0)) { if((pre_sp>355) j (pre_sp<1+histeresis)) {pre_sp=sp; lcd_gotoxy(1,2); lcd_putc("valor erroneo "); delay_ms(1000); } sp=pre_sp; num_pos=0; } if(num==15) {
PROGRAMACIN DEL MICROCONTROLADOR PIC 18F4550 21

pre_sp=0; num_pos=0; } if(num==10) { if(sp<355) sp++; pre_sp=0; num_pos=0; } if(num==11) { if(sp>1+histeresis) sp ; pre_sp=0; num_pos=0; } } else { usb_task(); if (usb_attached()) { lcd_putc("nf"); lcd_gotoxy(7,1); printf(lcd_putc,ONTROL"); lcd_gotoxy(7,2); printf(lcd_putc,"POR LA"); lcd_gotoxy(4,3); printf(lcd_putc,OMPUTADORA"); } else { lcd_putc("nf"); lcd_gotoxy(7,1); printf(lcd_putc,.E R ROR"); } if(usb_cdc_connected()) { usb_debug_task(); // si se tiene un potenciometro de 1 vuelta // valor_adc * 360 // grados = = valor_adc * 0.3515625 // 1024 valor_adc=read_adc(); //if(valor_adc<103) valor_adc=103; //(unsigned int16)grados=((unsigned int16)valor_adc*( oat)3.519061587)-360; (unsigned int16)grados=(unsigned int16)valor_adc*( oat)0.3515625; printf(usb_cdc_putc,"nnnnnrPosicion= %Lu %c",grados,0xDF); if(num_pos==0) {
PROGRAMACIN DEL MICROCONTROLADOR PIC 18F4550 22

lcd_gotoxy(1,2); printf(usb_cdc_putc,"nnnnnrSet point= %Lu %c } if((sp<356) & (grados < sp - histeresis)) motor_inc else if((sp > 1) & (grados > sp + histeresis)) motor_dec else motor_paro while(usb_cdc_kbhit()) { for(x=0;x<10;x++) printf(usb_cdc_putc,"nnnnnr %d",x); delay_ms(500); printf(usb_cdc_putc,"nnnnnrTesting"); c=usb_cdc_getc(); num=(int16)c; } if(num <10 ) { switch (num_pos) { case 0: pre_sp=0; //(unsigned int16)pre_sp=(int)num * 100; for(;num;num ) {pre_sp+=100;} lcd_gotoxy(1,2); printf(usb_cdc_putc,"nnnnnrSet point %Lu_ %c num_pos++; break; case 1: pre_sp=(unsigned int)num*10+pre_sp; lcd_gotoxy(1,2); printf(usb_cdc_putc,"nnnnnrSet point %Lu_ %c num_pos++; break; case 2: pre_sp=(unsigned int)num+pre_sp; lcd_gotoxy(1,2); printf(usb_cdc_putc,"nnnnnrSet point %Lu_ %c num_pos++; break; default: break;

",sp,0xDF);

",pre_sp,0xDF);

",pre_sp,0xDF);

",pre_sp,0xDF);

PROGRAMACIN DEL MICROCONTROLADOR PIC 18F4550

23

} //switch num } //if num<10 if ((num ==14) & (num_pos!=0)) { if((pre_sp>355) j (pre_sp<1+histeresis)) {pre_sp=sp; lcd_gotoxy(1,2); lcd_putc("valor erroneo "); delay_ms(1000); } sp=pre_sp; num_pos=0; } if(num==15) { pre_sp=0; num_pos=0; } if(num==10) { if(sp<355) sp++; pre_sp=0; num_pos=0; } if(num==11) { if(sp>1+histeresis) sp ; pre_sp=0; num_pos=0; } }//usb_connected } } //else }// while true }//main

3.4. Simulacin
Para demostrar el correcto funcionamiento del programa que se le instal al microcontrolador PIC 18f4550 decidimos realizar una simulacin similar a la que se realiz con el prototipo principal. En la gura ?? se muetra la simulacin que se realiz en el software proteus, basandonos en esta simulacin procedimos a armar el circuito fsicamente con toda la seguridad de que iba a tener un funcionamiento ptimo.

3.5. Resultados
En esta secccin se presentan los resultados de las mediciones realizadas ahora con el nuevo microcontrolador PIC 18f4550, asi mismo se presenta una breve expliacin de los resultados obtenidos. Como se menciona en la seccin anterior se llevo acabo una simulacin previamente a la construccin fsica del circuito, con esta simulacin se comprueba que el control manual por medio del teclado es el
SIMULACIN 24

Figura 3-2 Simulacin del proyecto en el software Proteus

RESULTADOS

25

Figura 3-3 Diseo del teclado implementado fsicamente

correcto y su funcioanmiento es el idoneo. Por otra parte se implement el programa elaborado en el software Labview, en este programa comprobamos su funcioanmiento directamente al pic y vericamos que las funciones dadas fueran las correctas. Teniendo ambos mtodos de control de la antena listos, procedimos a unir ambas parte en un solo mdulo, de esta manera controlado con un switch podemos elejir fcilmente con que tipo de control lo queremos manejar, esta opcin la tenemos gracias a que el microcontrolador tiene la capacidad de elejir algn modo de control dependiendo simplemente de la seal que recibe en un pin del puerto E, es decir, si el microcontrolador recibe un uno a la entrada del pin del puerto E entonces el modo de control de la antena ser por medio de la computadora, de lo contrario si el microcontrolador recibe un cero en la entrada del pin del puerto E, el modo de control ser manual por medio del teclado. En la gura 3-3se presenta la imagen del modulo que se esta utilizando para el control del movimiento de la antena el cual contiene en su interior el circuito desarrollado en este proyecto.

RESULTADOS

26

4. CONCLUSIONES
El haber desrrollado las mejoras al propotitopo pricipal del proyecto "Sistema automtico de posicin para un enlace punto a punto (P2P) microondas", ha brindado un gran benecio para el usuario de este sistema, ya que la combinacin de ambos modos de control permite que se pueda manipular el giro de la antena de dos maneras. Si se usa el modo de control por teclado, el usuario tiene la ventaja de poder moverse por cualquier lugar sin tener que llevar con sigo obligatoriamente una computadora, es decir, el nico requisito que se tiene para poder hacer uso de este sistema es que la antena se ecuentre correctamente conectada al modulo y conocer los grados de giro a los cuals la antena va a responder. Por otra parte si se utiliza el modo de control por compuadora, el usuario cuenta con una ventaja mayor que el modo anterior, esto es, gracias a que se puede utilizar este modo de control por computadora en conjunto con el modo de control por teclado utilizando nicmente un switch. El modo de control por computadora se basa prcticamente en la visualizacin del mapa del lugar donde esta situada la antena de microondas, el nico requisito para manejar la antena con este modo de control es conocer el punto en el lugar en donde se encutra la seal transmisora, y a partir de ahi solo basta daar un click sobre el punto indicado en el mapa y la ante automaticamente girar con con lo grados calculados por la misma computadora.

CONCLUSIONES

27