Home

Memoria. Introducción 0

image

Contents

1. TOC T1 PB1 BRA ds ob SS PB4 MOSI PB5 MIS O P SCK PR 4 2 ipc serial inj 2 5 GNDj 3 3 pe serial out 4I 18jGND 2 21 GND 3 1 Stabs 4 2 Data 0 5 11 Busy s tsilnit GND 2 VCC 3 GND Ilustraci n 17 Esquema de conexionado 2 2 4 Disposici n real de componentes Con el esquema de la Ilustraci n 17 Esquema de conexionado el programa pasa a una segunda pantalla de desarrollo en la que los componentes aparecen con su forma verdadera Se le pide al usuario su ubicaci n que debe ser realizada de la forma m s ptima posible para que posteriormente el programa calcule autom ticamente los caminos que debe tener cada una de las pistas que fueron establecidas en la pantalla anterior El usuario elige el n mero de capas que quiere para su placa en nuestro Memoria Sistema de Almacenamiento de Datos SAD 48 caso una capa a dos caras y tiene la opci n de colocar todas las pistas manualmente o de que el programa genere las pistas y luego modificar alguna de estas pistas Una vez que las pistas est n colocadas a gusto del usuario este Esquema Real puede imprimirse en papel para trasparencias mostrando solo las capas de pistas para su posterior isolaci n En la Ilustraci n 18 se muestra dicho disefio de pistas brd tu 6 1u Er Ex gt C N O 2 0 M AX3223C
2. essen 21 3 Software de la Unidad de Medida Inercial 24 3 LATA SIS ime t esee e eMe e E 24 3 2 Modificaciones a nivel de software sse 33 E eee tates ite ede ee tad P e s 33 SZ Di Contig D dn tit tet Ho s MINI e o Me od 33 32 3 Ppm h iei teet eee etie eene iere 34 IDA IO Ci AA A pn eget te ete qr 35 3 2 5 Makefile eR e e en eee 35 4 Resultados parciales obtenidos con la IMU eeeeeeees 36 5 Futuras ampliaciones del Sistema de Medida 37 5 1 Otras variables que convendr a medir sse 37 Cap tulo 3 Sistema de Almacenamiento de Datos SAD 36 1 Introducci n eee eese eese eese een tentent ttes stessa sten setas tasto seta setas tn ne 38 2 Etapas de desarrollo 4 eres eese eene eene eene tenentes tnnt etse tss ta sn 39 Memoria Introducci n 2 1 Etapa 1 De la idea hasta los componentes ssssseeeeee 40 2 2 Etapa 2 Desarrollo con Eagle 45 2 2 1 Introducci n de componentes ssssssssssseeeeeeeneen enne 45 2 2 2 El conector para tarjetas tipo SD sss 45 2 2 3 Conexionado el ctrico esses nennen enne nete 46 2 2 4 Disposici n real de componentes sss 47 2 2 Tablas y res menes s e tete ee ee eise tte dre red eee et 49 2
3. esesssseeeeeeeeeeeeeennen nene 90 4 2 Memoria 4 dne ie iere feet ee ee e e e eben 91 4 3 V a SPI Serial Periferial Interface sees 92 4 4 USART Universal Syncronous Asyncronous Reciever Transmiter 96 AS Titmets ice denn eiie e eec E I e e E e E HERES 100 4 6 PW Mis iier ctt eoe eo cree a av Et Rack eee tege ee o Ee e Reed odes 103 4 TInterrupciones s scc ete SEED n tice e e E dis 105 4 8 Otros recursos no utilizados en este proyecto 106 Anexo II C digo del Sistema de Adquisici n de Datos 107 Anexo III C digo modificado de la Unidad de Medida Inercial 117 Mainloop C ueste OR RR neo s 117 Conte Tio os Seas a teme us tr Da MR Cone e each 132 Iden 136 SEI VOICI spent e e IR ERE tet e pec MM Oei e bee Ra 146 A stimulis tete deck 156 Anexo IV Caracter sticas del conector z calo para tarjetas SD 165 Parte II Estudio Econ mi co eee ee eee eee eene eee ee eene en eene en an 168 Cap tulo 1 Coste del Proyecto e eeeee eese eene eene eren eee enne nnne 169 Parte Ill Manual de usuario eee eee eee eee eee eene nena neat eee eese sana 172 Memoria Introducci n Parte I MEMORIA Memoria Introducci n Capitulo 1 INTRODUCCI N La presente memoria pretende mostrar con toda la claridad y detalle posible la motivaci n con que arranc este proyecto sus fases de elabora
4. Ilustraci n 14 Comprobaci n de funcionamiento de la IMU Memoria Unidad de Medida Inercial IMU 5 Futuras ampliaciones del Sistema de Medida En este apartado se dan una serie de ideas para futuras ampliaciones que futuros proyectos podr an desarrollar 5 1 Otras variables que convendr a medir Adem s de la medida de las variables inerciales hay otras que es conveniente digitalizar aunque no son necesarias para el correcto control del movimiento del aparato durante un vuelo Estas son A Variables del motor Garantizan la seguridad del aparato Por ejemplo revoluciones por minuto del motor revoluciones por minuto del rotor nivel de combustible temperatura de los gases de escape temperatura del motor etc B Variables de posici n global Latitud longitud y altitud Informan de si el aparato est donde queremos que este Pueden medirse con un GPS pero ser necesario incluir alg n tipo de sensor de ultrasonidos para las medidas de altitud cuando el aparato est volando a baja altura debido a la escasa precisi n de los GPS en esa direcci n C Variables del equipo instalado a bordo por ejemplo el zoom en c maras fotogr ficas y videoc maras o cantidad que queda de venenos en tareas de fumigaci n de campos de cultivos El muestreo de estos tres nuevos grupos de variables puede ser m s lento que el de las variables inerciales porque su relevancia para el control y seguridad del helic ptero es men
5. vuelo por el nombre que se crea adecuado
6. El led verde se coloca en el conector de dos pines marcado con una V y el rojo en el marcado como R El polo positivo est marcado tanto en la placa como en el conector de los leds Una vez enchufados se colocan en los taladros practicados para ello en el panel de mando El verde se saca por el marcado como POWER y el rojo por STATUS Es conveniente fijarlos con silicona Paso 4 Colocaci n de los interruptores ver Ilustraci n 32 Para el interruptor de POWER que es el grande de los dos se ha construido un cable que da alimentaci n a la Placa de Control y al SAD y recibe un cable desde la bater a El interruptor de STATUS el peque o se coloca en el conector de dos pines cercano a la ranura de la SD con la flecha en el pin de la izquierda y se fija al panel de mandos a trav s del taladro practicado para ello Paso 5 Conexi n de los dem s cables Las conexiones de los diferentes m dulos de la Unidad de Medida Inercial ya se vieron en el apartado 2 2 del Cap tulo 2 ver Ilustraci n 6 Placa de Control Cara inferior Ilustraci n 7 Placa XY e Ilustraci n 8 Placa Z El cable serie que va desde la Placa de Control de la IMU al SAD se conecta en la IMU en el banco de conectores blancos en el marcado como 78 Memoria Integraci n de IMU y SAD 79 RS 232 con el cable pintado de negro en el punto negro respectivo y en el SAD seg n la Ilustraci n 33 Ilu
7. Get and return received data from buffer return UDR 4 5 Timers Este micro tiene tres timers Timer CounterO de 8 bits Timer Counterl de 16 bits Timer Counter2 de 8 bits Se explicar el primero de ellos por ser el que se ha usado en este proyecto Los dem s son an logos 100 Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 101 Adem s de los modos de funcionamiento con PWM explicados en el apartado siguiente existen otros dos modos Modo Normal TCNTO realiza la cuenta desde 0x00 BOTTOM hasta OxFF MAX es decir la cuenta completa Modo CTC TCNTO realiza la cuenta desde 0x00 BOTTOM hasta TOP valor que se define en el registro OCRO A continuaci n se pasan a describir los principales registros del Timer0 Registro de Control 7 e 5 4 3 2 1 0 Lrocs woman cows T como T womor csoz cs0 c9 tecro FOCO Se fuerza un Fin de Conteo en uno de los modos no PWM WGM00 01 Selecci n de modo seg n WGM01 WGMO00 Timer Counter Mode Update of TOVO Flag CTCO PWMO of Operation OCRO Set on apo el a a a T OA Aa ee 000 iveco max 3 3 porem A we wax COMO00 01 Configura el pin de salida OCO de forma que se ponga a 1 o a 0 o cambie de valor cada vez que se de un Final de Conteo ver 5 Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 102 CS00 02 Configura el pre escalado del Timer0 Adve
8. 51 Memoria Sistema de Almacenamiento de Datos SAD REGULADOR TENSI N VI Entrada desde bater a GND Tierra referencia VO Salida regulada SD CONNECTOR CS Chip Select DI Entrada de datos SCLK Reloj de sincronizaci n DO Salida de datos Tabla 3 Resumen del layout del SAD 2 3 Etapa 3 Fuse Bits y Bootloader Los Fuse Bits de un microprocesador son unos bits para la configuraci n de aspectos como la velocidad de arranque la memoria reservada para el bootloader la frecuencia del cristal etc Las dos im genes siguientes han sido extra das del manual del ATMEGA32 L y muestran los diferentes Fuse Bits 52 Memoria Sistema de Almacenamiento de Datos SAD Table 105 Fuse High Byte Fuse High Byte Descri ption Default Value OCDEN Enable OCD 1 unprogrammed OCD disabled JTAGEN ELI Enable JTAG 0 programmed JTAG enabled SPIEN Enable SPI Serial Program and Data Downloading 0 programmed SPI prog enabled CKOPT Oscillator options 1 unprogrammed EESAVE 3 EEPROM memory is preserved 1 unprogrammed EEPROM not through the Chip Erase preserved Select Boot Size see Table 100 BOOTSZN for details 0 programmed Select Boot Size see Table 100 Bone for details 0 programmed BOOTRST 0 Select reset vector 1 unprogrammed Table 106 Fuse Low Byte Fuse Low Byte Description Default Value BODLEVEL Brown out Detector
9. Lower the HS servo line cbi SERVO PORT SERVO HS CLOCK Lower the regular servo line cbi SERVO PORT SERVO A CLOCK Set all servos including HS at their midpoints servo hs mid point Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 152 for i20 i lt SERVO MAX i servo widths i mid point Select the first servo servo 1 Reset the high speed servo driver hs_state 0 Set the regular servos to go off some long time from now SERVO_A_OCR 32768u1 SERVO_HS_OCR 65535ul Configure output compare to toggle the output bits The high speed servo alternates between the on and off state while the regular servo will force a change ay TCCR1A 0 1 lt lt SERVO_HS_COMO 0 lt lt SERVO_HS_COM1 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 1 SERVO A COMO 0 SERVO A COMI Clear the interrupt flags in case they are set 1 SERVO HS FLAG 1 lt lt SERVO A FLAG Unassert the decade counter reset to start it running cbi SERVO PORT SERVO A RESET Enable our output compare interrupts TIMSK 0 1 lt lt SERVO A ENABLE 1 lt lt SERVO HS ENABLE For each servo output we check to see if the output compare flag has been set If it has been set we compute the next pulse width a
10. Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 118 the Free Software Foundation either version 2 of the License or at your option any later version Autopilot is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with Autopilot if not write to the Free Software T Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA y include lt avr io h gt include lt avr pgmspace h gt include timer h include uart h include string h Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 119 include servo h include ppm h include adc h define CONFIG PNI ifdef CONFIG V2X include v2x h endif ifdef CONFIG_PNI include pni h endif These are optional features that control the software UART for a GPS the engine tach pulse counter and the LCD output We re not using them right now since they are detracting from the main goal of servo driving and flight control S if 0 include soft_uart h Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 120 include tach h include lcd h include led h endif static uint
11. Autopilot is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with Autopilot if not write to the Free Software ud Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA pA include include include include uintl6 t avr io h lt avr signal h gt servo h timer h servo widths SERVO MAX Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 148 uintl6 t servo hs Current servo being driven static uint8 t Servo High speed servo state static uint8 t hs state For the 2 4 boards Servo bank A is the only 4017 bank and it is driven by OCR1A with reset on PORTD7 define SERVO_PORT PORTD define SERVO_DDR DDRD define SERVO_A_OCR OCR1A define SERVO A ENABLE OCIElA define SERVO A FLAG OCF1A define SERVO A FORCE FOCIA define SERVO_A_RESET 7 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 149 define SERVO A CLOCK 2 define SERVO A COMO COM1A0 define SERVO_A_COM1 COM1A1 define SERVO_HS_OCR OCR1B define SERVO_HS_ENABLE OCIE1B define SERVO_HS_FLAG OCF1B define SERVO_HS_CLOCK 4 define SERVO HS COMO COM1BO define SERVO_H
12. Adquisici n de Datos int i 0 char sArchivo 12 sNum 3 sNomb vuelo sTipo txt char s SMAX init devices Smal glitch on leds Pequefio parpadeo para comprobar que el programa comienza PORTA amp OxF3 Encendemos los leds rojo y verde delay ms 250 PORTA 0x0C apagandos los leds rojo y verde SD card initialization Inicializaci n de la tarjeta SD while initialize media 0 Blink LED while waiting to initialize PORTA 0x0C delay_ms 250 PORTA OxFB When initialization finished green led on Cuando esta lista encendemos el led verde while 1 113 Memoria Anexo II C digo del Sistema de Adquisici n de Datos 114 delay ms 10 retraso para filtrar rebotes m todo cutre while PINB amp 1 PB2 Esperamos mientras 1 en el jumper de escritura PB2 jumper no conectado delay ms 10 PORTA amp OxF7 Cuando escribimos datos encendemos el led rojo p_in p_out buffer inicializamos los punteros para el buffer circular Looking for the first free file Buscamos el Ultimo archivo escrito for i 1 i lt 99 i strcpy sArchivo sNomb itoa i sNum strcat sArchivo sNum strcat sArchivo sTipo if pf fopen sArchivo APPEND NULL fclose pf else break Memoria Anexo II C digo del Sistema de Adquisici n de Datos 115 Creating the file Creamos el archivo de datos pf fcreate sArchivo 0 Writing
13. DONT ACT COPPER ALLOY 00501 170 10154 IL ta e evelianre insertes SD care oniy J Me AWIATION Searers EN err LECTRON ics INDUSTRY LTD art gpectigus ceases E amaron o A ee E iv CURAWIND MO I 4035888 E 7 ENT MICA T 9t WEFRDGUDED SITATET WRITTEN CONSENT OF UNE Memoria 167 Estudio Econ mico Parte II ESTUDIO ECONOMICO 168 Estudio Econ mico Coste del Proyecto 169 Capitulo 1 CosTE DEL PROYECTO En este cap tulo se desglosan los costes que en los que hubiera incurrido una empresa en el caso de haber acometido esta parte proyecto desde cero El gasto real no ha sido tanto por los siguientes motivos e FEl sueldo de ingeniero que aqui se menciona es nulo por ser este un Proyecto Fin de Carrera llevado a cabo por el que escribe e El ordenador que aqu se incluye como coste es propiedad del proyectando e Las licencias del software empleado son compartidas por todos los alumnos y profesores de la Universidad Estudio Econ mico Coste del Proyecto Desglose de costes en uros e Construcci n de prototipos o IMU Compra a Rotomotion Bater as LIPO 1250mAh Compra Flash File Fabricaci n placas Componentes o Caja para montaje IMU SAD e Sueldo Ingeniero 700 horas e Consumo el ctrico e Ordenador Licencias software o Code Vision HP InfoTech o Eagle v4 11 Standart CadSoft o AVR Studio 4 ATMEL o AVR Dude o Kargador e Recursos Aeromod
14. Gu a b sica sobre manejo de AVR ATMEL Atmega 98 UMSEL Selecciona entre Modo S ncrono 1 o As ncrono 0 UPM1 0 Modo de paridad seg n Parity Mode Enabled Even Parity Enabled Odd Parity UCSZ1 0 Tama o de car cter Registro de Selecci n de Baud Rate 15 14 13 12 11 10 9 8 URSEL UBRR 11 8 UBRRH UBRRI7 0 UBRRL URSEL Selecciona entre acceder a UBRRH 0 o UCSRC 1 UBRRI1 0 Selecci n de Baud Rate seg n el Cristal que genera el reloj por ejemplo para un cristal de 8 MHz Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega um e wi uem Enor uam Enor 207 Otras tablas como esta se pueden encontrar en 5 Algunos ejemplos sencillos de manejo del USART void USART_Init unsigned int baud Set baud rate UBRRH unsigned char baud gt gt 8 UBRRL unsigned char baud Enable receiver and transmitter UCSRB 1 lt lt RXEN 1 lt lt TXEN Set frame format 8data 2stop bit UCSRC 1 lt lt URSEL 1 lt lt USBS 3 lt lt UCSZO 99 Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega void USART Transmit unsigned char data Wait for empty transmit buffer while UCSRA amp 1 lt lt UDRE Put data into buffer sends the data UDR data unsigned char USART Receive void Wait for data to be received while UCSRA amp 1 lt lt RXC
15. baud rates ancho de car cter configurable y detecci n de errores de transmisi n Cada car cter de transmisi n consta de 1 bit de comienzo 5 6 7 806 9 bits de datos 1 bit de Paridad 2 bits de Stop nivel alto Los registros de configuraci n y funcionamiento del USART son los siguientes Registro de Datos 7 6 5 4 3 2 1 0 RXB 7 0 UDR Read TXB 7 0 UDR Write RXB Buffer de lectura TXB Buffer de escritura 96 Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 97 Registros de Control 7 6 5 4 3 2 1 0 exc ixc_ uone T Fe oon A RXC A 1 si hay datos sin leer del RXB Puede usarse para generar interrupciones TXC A 1 si la transmisi n se ha completado Puede usarse para generar interrupciones UDRE A 1 si UDR esta vacio Puede usarse para generar interrupciones FE DOR y PE Control de errores de frame sobrecarga y paridad respectivamente U2X A 1 dobla la velocidad de transmisi n en modo as ncrono MPCM Habilita el Modo de Comunicaci n de Multi Procesador 7 6 5 4 3 2 1 0 RXCIE TXCIE y UDRIE Habilita interrupciones en RXC TXC y UDRE RXEN y TXEN Habilita el receptor y transmisi n UCSZ2 Tama o del car cter RXB8 y TXB8 El noveno car cter en recepci n o transmisi n 3 2 1 0 ri 6 5 3 2 Cunset umsec uewr uewo T uses ucszi ueszo ucPoL UcsRC Memoria Anexo I
16. caracteres m nimo MINCHAR momento en el que se escribe ese grupo de caracteres finalmente en la tarjeta SD define SMAX 320 59 Memoria Sistema de Almacenamiento de Datos SAD define MINCHAR 30 char buffer SMAX p in p out char psc Cada vez que p in o p out hacen una operaci n de lectura p_in UDR o escritura avanzan una posici n dentro de la cadena buffer y cuando llegan al final buffer SMAX se devuelve el puntero al principio buffer if p out gt buffer SMAX p_out buffer En caso de que p_in alcanzase a p_out lo que supondria que el primero ha dado una vuelta completa mas rapido que el segundo significaria que la longitud de la cadena SMAX es demasiado corta y es necesario modificar el c digo para aumentarla adem s generar a una se al de alarma v a parpadeo de los leds del sistema void error rebose void while 1 PORTA 0x0C delay ms 500 La lectura de los datos desde la IMU se hace por medio de la interrupci n generada por finalizaci n de recepci n El control del 60 Memoria Sistema de Almacenamiento de Datos SAD 61 movimiento de los punteros por la memoria reservada para el buffer se gestiona parte en dicha interrupci n y parte en la funci n encargada de la lectura del car cter entrante migets La Ilustraci n 22 muestra un diagrama explicativo buffer SMAX Ilustraci n 22 Buffer circular 2 6 2 Progra
17. defines ESTADO this last width 5 I Almacenar width Estadc Memoria Unidad de Medida Inercial IMU 3 2 Modificaciones a nivel de software Para reprogramar la IMU es necesario trabajar con sistema operativo Linux porque los archivos de c digo de la misma est n preparados con su Makefile para que as se haga Los archivos que se modifican para la configuraci n y adaptaci n del c digo son los que se explican a continuaci n El c digo completo modificado se anexa en el Anexo III donde los cambios realizados se encuentran en color rojo para ayudar al lector 3 2 1 Mainloop c Si una br jula est disponible en el sistema al principio de mainloop c se coloca la etiqueta define CONFIG PNI o define CONFIG V2X para elegir el modo de funcionamiento de la misma Si como en nuestro caso no existe br jula alguna dichas etiquetas se deben omitir define CONFIG PNI En la funci n main se ha reordenado el c digo para hacerlo m s efectivo 3 2 2 Config h Como se explic anteriormente este archivo es de configuraci n de bancos de servos y entrada PPM o PCM seg n la versi n y las necesidades propias Las opciones que se dan son 33 Memoria Unidad de Medida Inercial IMU 3 2 3 Ppm h Elecci n de banco de servos normales entre SERVO BANK A y SERVO BANK B Como en la versi n de hardware rev2 4 no existe banco de servos B hay que eliminar la etiqueta define S
18. establecido el tipo de recepci n PPM es necesario elegir el n mero de canales PPM_MAX PULSES que tiene la emisora que se va ha utilizar que para este proyecto es 6 3 2 4 Servo c El cambio que hay que realizar en este archivo es muy sencillo y tiene que ver con el cambio realizado en el anterior Si en ppm h se ha seleccionado PPM_RX TYPE 1 Futaba deber aparecer la linea define CONFIG FUTABA mientras que si se ha elegido PPM RX TYPE 2 JR deber aparecer la l nea Zdefine CONFIG JR 3 2 5 Makefile Este archivo es un archivo de configuraci n de compilaci n del proyecto para trabajo en entorno Linux En el se pueden seleccionar los archivos que se quieren incluir en la compilaci n para la creaci n del as 6U7 Us LUstart Start 33 Memoria Unidad de Medida Inercial IMU 36 ejecutable tambi n se pueden seleccionar caracter sticas de configuraci n seg n la distribuci n y versi n de Linux empleada 4 Resultados parciales obtenidos con la IMU Para comprobar el correcto funcionamiento de la unidad una vez realizadas las modificaciones anteriores tanto de software como de hardware se ha utilizado un sencillo programa gratuito IMU Viewer que se puede encontrar en 3 As la Ilustraci n 14 Comprobaci n de funcionamiento de la IMU muestra los tres aceler metros y los tres gir scopos en correcto funcionamiento El movimiento se realiz con la mano E Rotimetion MAIL Viewer
19. estructura del fichero y 4B m s para el puntero a la base del fichero es decir 556B en total para cada fichero que deba estar abierto simult neamente En la aplicaci n que se ha dado a esta librer a para este proyecto solamente se trata un fichero cada vez por lo tanto se ha configurado un tamafio de heap de 556B Esta configuraci n se realiza en las opciones del compilador CodeVisionAVR v1 24 y queda Ilustraci n 21 A onu Project uictus pri Files C Compiler After Make Code Generation Globally Hdefine Paths SRAM Chip ATmega32L z Data Stack size 51 2 bytes Clock 8 000000 MHz Heap size 590 bytes Memory Model Internal SRAM size 2048 bytes C Tiny bytes Small External SRAM size Extemal SRAM Wait Sta Optimize for Size M Code Generation C Speed Bit Variables size 16 Promote char to int v charis unsigned Program Type a PE V 8 bitenumsiv Enhanced Core Instructions Application Y Automatic Register Allocation s printf features Use an External Startup Initialization File v Enable Warnings Stack End Markers s scanf features File Output Format s cor ROM HEX EEF long width Ilustraci n 21 Configuraci n de memoria Project gt Configure gt C Compiler gt Code Generation Memoria Sistema de Almacenamiento de Datos SAD 57 2 4 3 Opciones de compilaci n Todas las
20. its name in Escribimos el nombre del archivo dentro de l fprintf pf Ss r n sArchivo UCSRB 0x98 Activamos Interrupci n de Recepci n Completada What is red from the USART is writed in the file Lo que leemos de la v a serie lo imprimimos en el archivo while PINB amp 1 PB2 While the jumper remains connected fprintf pf Ss migets s UCSRB 0x18 desactivamos interrupci n de recepci n completa fflush pf Memoria Anexo II C digo del Sistema de Adquisici n de Datos 116 fclose pf PORTA 0x08 When writing finished red led off Cuando acabamos de escribir datos apagamos el led rojo Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 117 ANEXO III C DIGO MODIFICADO DE LA UNIDAD DE MEDIDA INERCIAL Los cambios realizados respecto de 3 han sido resaltados en rojo y explicados en el apartado 3 2 Mainloop c indent tabs mode T c basic offset 8 tab width 8 vi set ts 8 Id mainloop c v 2 26 2003 07 13 17 15 43 tramm Exp Mainloop for the rev2 x boards Integrates the ADC UART NMEA and tachometer as well as lots of other stuff c 2002 Trammell Hudson lt hudson swcp com gt ckckckckckckckckckckckckok This file is part of the autopilot onboard code package Autopilot is free software you can redistribute it and or modify jit under the terms of the GNU General Public License as published by
21. k k k k k k k k k Board revision specific configurations with pin assignments Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 135 if VERSION 2 2 2 2 board specific configurations elif VERSION 2 4 2 4 board specific configurations uA ifdef SERVO BANK B error 2 4 has no servo bank B endif else error Unknown board revision endif endif Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 136 Ppm h indent tabs mode T c basic offset 8 tab width 8 vi set ts 8 SId ppm h v 2 10 2003 07 08 17 57 29 tramm Exp Decoder for the trainer ports or hacked receivers for both Futaba and JR formats The ppm valid flag is set whenever a valid frame is received Pulse widths are stored as unscaled 16 bit values in ppm pulses If you require actual microsecond values divide by CLOCK For an 8 Mhz clock and typical servo values these will range from Oxl1F00 to 0x4000 c 2002 Trammell Hudson lt hudson rotomotion com gt ckckckckckckckckckckckckok This file is part of the autopilot onboard code package Autopilot is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 2 of the License or at your option any later version Memoria Anexo III C digo modificado de la Unidad de Med
22. kk ok Funciones de inicializaci n y configuraci n de perif ricos del microprocesador void port init void Configuraci n de las funciones y direcciones I O de los puertos Memoria Anexo II C digo del Sistema de Adquisici n de Datos 111 PORTA OxFF DDRA OxFF Todo salidas Luces inicialmente apagadas PORTB OxFF DDRB 0xB3 Todo salidas menos MISO PB6 y jumpers con pull up PORTC OxFF DDRC OxFF PORTD OxFF DDRD OxFF void uart0_init void Configuraci n de USART ifdef MEGAAVRDEV UCSRB 0x00 UCSRA 0x00 UCSRC 0x86 UBRRH 0x00 UBRRL 0x0C 38400 bauds con un xtal de 8 0MHz UCSRB 0x18 Todavia no se activa la Interrupci n de Recepci n Completada endif void init_devices void Configura resto de perif ricos y llama a las dos anteriores Memoria Anexo II C digo del Sistema de Adquisici n de Datos 112 Se la debe llamar antes de cualquier otra operaci n CLI Deshabilitar interrupciones durante inicializaci n port init uart0 init ACSR 0x80 SFIOR 0x00 TCCRO 0x00 TCNTO 0x00 OCRO 0x00 SEI Habilitar interrupciones S EEE K K K k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k ck ok k k k k k k k k KKKKKK KKK void main void Nariable declarations Declaraci n de variables FILE pf Memoria Anexo II C digo del Sistema de
23. trabajo del microprocesador se coloca un Regulador de Tensi n modelo LD33V de ST Microelectronics Puesto que la tensi n de trabajo del micro es 3 3V y el nivel t pico de toda v a serie as ncrona como la empleada en la comunicaci n de este con la IMU o con un ordenador personal es de 5V ha sido necesario colocar un adaptador de niveles l gicos para dichas tareas El elegido es el MAX 3223 Otros componentes necesarios para el funcionamiento del sistema son resistencias condensadores diodos LED y conectores varios La mayor parte de los condensadores utilizados son para el desacoplo entre etapas de tensi n Hay otros necesarios para el propio funcionamiento del MAX 3223 y del micro por ejemplo para el cristal de 8MHz que utiliza el micro para crear la se al de reloj Uno de los condensadores y una de las resistencias han sido empleadas para crear una red RC en la patita RESET del micro Los cuatro conectores son las uniones del SAD con el mundo exterior z calo de la memoria SD intercambio de datos v a SPI v a auxiliar para la carga del Bootloader intercambio de datos v a serie as ncrona y alimentaci n de tensi n Los diodos LED servir n para visualizar f cilmente el estado del sistema creado A continuaci n se incluye un listado funcional a modo de resumen de todos los componentes que forman el Sistema de Adquisici n de Datos Tabla 2 Componentes del SAD 42 Memoria Sistema de Almacenamiento de
24. trigger level 1 unprogrammed BODEN 6e Brown out Detector enable 1 unprogrammed BOD disabled Select start up time 1 unprogrammed SUTO EH Select start up time 0 programmed CKSEL3 Select Clock source 0 programmed CKSEL2 Select Clock source 0 programmed CKSEL1 Select Clock source 0 programmed IE Select Clock source 1 unprogrammed CKSELO Ilustraci n 20 Fuse Bits del Atmega32L 53 Memoria Sistema de Almacenamiento de Datos SAD La Tabla 4 muestra la configuraci n de los Fuse Bits para este caso concreto GRUPO DE BITS VALOR FUNCI N Cristal Externo de CKSEL 3 0 1 1 1 1 8MHz SUT 1 0 1 0 Tiempo de arranque CKOPT 1 Opciones del oscilador BOOTSZ 1 0 1 1 Tama o del bootloader BOOTRST 0 Vector de reset Resto Predefinido Tabla 4 Configuraci n de los Fuse Bits As obtenemos e High Byte 0x9E e Low Byte OXEF Para la programaci n de estos bits se utiliza AVRDUDE EXE que se explicar en el apartado 4 2 AVR Dude de Win AVR Un Bootloader es un c digo opcional que corre inmediatamente despu s del reset y que funciona como una especie de mini Sistema Operativo dentro del microprocesador permitiendo al usuario una m s f cil 54 Memoria Sistema de Almacenamiento de Datos SAD interacci n con el micro en temas de programaci n especialmente Suele estar programado en lenguaje Ensamblador Para este proyecto se ha utilizado un bo
25. y con grandes posibilidades porque su utilizaci n en cualquier tipo de almacenamiento a trav s de v a serie es f cilmente realizable gracias a unos pequefios retoques en el c digo ver Parte III Manual de usuario La combinaci n de estos dos m dulos IMU y SAD proporciona un sistema de sencillo uso como se podr concluir tras la lectura de la Parte III Manual de usuario La intenci n del proyecto ha sido su uso en helic pteros a escala pero su aplicaci n a todo cuerpo en movimiento es evidente Tras la realimentaci n generada por los ensayos realizados en la segunda parte del proyecto se ha llegado a la conclusi n de que seria conveniente redise ar la disposici n de los diferentes m dulos para que la influencia en las medidas fuera menor La l nea de investigaci n deber a ir por una dispersi n adecuada de los sensores en el chasis del helic ptero en vez de la caja creada en el Cap tulo 4 86 Memoria Bibliograf a 87 BIBLIOGRAF A Bibliograf a principal 1 2 3 4 5 Rotomotion Guia de Montaje de la IMU www rotomotion com rev2 4 build rev2 4 build toc html Analog Devices ADXL202 Datasheet www analog com Autopilot autopilot sourceforge net Progresive Resources LLC Guia de uso de Flash File www prllc com ATMEL Manual Atmega 32 32L Bibliografia complementaria 6 7 Buskey G Roberts J Corke P and Wyeth G Helicopte
26. 3 Etapa 3 Fuse Bits y Bootloader sss 52 2 4 Etapa 4 Adaptaci n de la librer a a las necesidades del proyecto 55 2 4 Descripci ii testate ttes 55 2 4 2 Consideraciones de memoria eese rennes 56 2 4 3 Opciones de compilaci n sees 57 2 5 Etapa 5 Comunicaci n con la Unidad de Medida Inercial 59 2 5 El b ftercircul t roe oe t bep ebur ret 59 2 5 2 Programa TWAIN iso entity iibi e ads 61 2 5 3 Funci n initialize media de la biblioteca FlashFile 63 2 5 4 Funci n fcreate de la biblioteca FlashFile esssssssss 63 2 5 5 Funci n fprintf de la biblioteca FlashFile sees 64 2 5 6 Funci n fflush de la biblioteca FlashFile sse 64 2 5 7 Funci n fclose de la biblioteca FlashFile sss 65 3 Resultados e 65 4 Recursos empleados e eeee sees eee e eese eene eene etn seta setas see tn setas eene 67 Z4 Baele cs ier Ni eco Ne Osho lbs Ned eni Hes 68 4 2 AVR Dude de Win AVR eceecesssseescseeseeecsesesecseecesecaeeaeeecaenaeeeceenaeeeceeeaeeeeeeeees 68 4 SAN RES ti diO A s 1 eode tea reet tee dre oa te seeker tee Peer I EE Yee 68 4 4 Kargador y bootloader sse eee 68 4 5 FLASHING 7 255 A ete 70 4 6 Code VISIOD 4 nde c o
27. 4 void vsget void La rutina de interrupci n debe leer UDR para devolver el flag de interrupci n a 0 de lo contrario error p_in UDR UDR USART Data Register if p_in gt buffer SMAX Al llegar al final del buffer p_in buffer se devuelve el puntero al principio if p in p out Si el puntero de lectura alcanza al de escritura error rebose se avisa de error de rebose Memoria Anexo II C digo del Sistema de Adquisici n de Datos 109 char migets char ps Funci n de lectura de int i char psc psc ps while 1 if p in p out pstt p_out EEE if p out gt buffer SMAX p_out buffer if i lt MINCHAR continue else break ps 0 Memoria Anexo II C digo del Sistema de Adquisici n de Datos 110 return psc Fin del c digo del buffer circular S BRK KK K K k k kk kk k k A kk k kk ok ck ok k k k k ck ok k k ck ck ck ck k k ck ck ck ck k k k k k k k k k k k k k k ck ok k k k k k k k k k k k k kckckckck ck kkk Configuraci n define RXC 7 define PB2 2 ifndef UART INT ifdef MEGAAVRDEV define rx_counter0 UCSRA amp 0x80 define tx_counter0 UCSRA amp 0x40 define rx_counterl UCSRA amp 0x80 define tx_counterl UCSRA amp 0x40 endif endif S BRK K K K k k k k k k k RAR RR k k k k RR k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k OK kK ck k
28. 5 Panel de mandos La Ilustraci n 32 muestra el panel de mandos compuesto por interruptor de encendido apagado interrupci n de grabaci n led de ESTADO led de ON OFF y ranura de extracci n Memoria Integraci n de IMU y SAD REC STATUS POWER ON Ilustraci n 32 Panel de Mandos de IMU SAD 6 Proceso de montaje paso a paso El proceso de montaje del sistema integral IMU SAD pasa por las siguientes fases Paso 1 Colocaci n de las 4 placas e Placa de Medida en los ejes XY Se coloca con la cara inferior hacia arriba y con los conectores negros hacia la pared posterior e Placa de Control de la IMU Tambi n con la cara inferior hacia arriba y con el banco de conectores blancos pegados a la pared izquierda e Placa de Medida en los ejes Z La cara superior debe estar pegada contra la pared derecha y con los conectores negros hacia arriba e Placa SAD La cara de componentes hacia arriba y con el Z calo para la tarjeta SD pegado a la ranura de la pared delantera panel de mandos Una imagen de la colocaci n de los 4 m dulos puede verse en el apartado 2 de este cap tulo TT Memoria Integraci n de IMU y SAD Paso 2 Fijar las placas con los tornillos El sistema de fijaci n ya ha sido comentado en el apartado 4 de este cap tulo Las herramientas necesarias son una llave allen para tornillos de m trica 3 y un alicate de punta fina para sujetar las tuercas Paso 3 Colocaci n de los LEDS
29. 8 t manual static uint8 t mode static uintl16 t command 8 Command processing and servo manipulation happens in here We are only called by the PPM interrupt once a complete frame is ready for us so there is no need to check that things are good The servo outputs are in a set order regardless of which radio type is used They are 0 Unused 1 Throttle E 2 Roll 3 Pitch Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 121 4 Yaw 5 Manual Auto switch not connected d 6 Collective B 7 Gyro gain K 8 Extra unused 9 Mode switch not connected The high speed servo output is just a copy of the tail servo 4 E void copy to servos void Toggle the manual control flag when ever the H thingy is flipped This is a vital thing to happen xy uintl6 t mode width ppm pulses mode index mode mode width lt mode threshold 0 CLOCK 0 mode width mode threshold 1 CLOCK 1 2 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial manual ppm pulses manual index gt manual threshold CLOCK Manual means all servos go to the receiver if manual Copy the current frame to our command so that we do not jump at all when switching to automatic mode command 0 ppm pulses roll index command 1 ppm pulses pitch index command 2 ppm pulses yaw index c
30. Datos SAD 43 Componente Funci n Comentarios Cerebro del SAD controla el flujo Se comunica con la SD por ATMega 32L deinformaci n entre la memoria SD medio del SPI y con la IMU por y la IMU v a serie RS 232 Conector SD Z calo donde colocar la memoria SD para unirla el ctricamente con el microprocesador Facilita el trabajo con la memoria MAX 3223 Adaptaci n de niveles l gicos LD33V Regulador de tensi n Salida a 3 3V Conector x 6 Conexi n auxiliar para la carga del bootloader Conectado a la v a SPI Conector x 3 Conexi n de las bater as al regulador de tensi n Dos posibles conexiones Conector x 3 Conexi n de la IMU al adaptador de niveles l gicos Tambi n es la posible conexi n del micro a un ordenador personal Las diferentes combinaciones Diodo LED Indicadores del estado del programa de colores se contar n en el apartado 3 Manual de Uso Uno para programaci n y otro para Jumpers manejo de la alimentaci n Cristal BMHz Se al de reloj del micro Memoria Sistema de Almacenamiento de Datos SAD 44 13 Condensadores C1 1pF C2 1uF C3 1uF Desacoplo C4 1 F Desacoplo C5 1Mf Desacoplo C6 56pF Red del Cristal C7 S6pF Red del Cristal C8 100nF C9 100nF C10 11F Red RC para RESET C11 1pF Desacoplo C12 1u
31. ERVO BANK B Selecci n de servo de alta velocidad SERVO HS A o SERVO HS B Como no se utilizan servos de este tipo se eliminan las dos etiquetas define SERVO HS A y tidefine SERVO HS D La decodificaci n PPM o PCM debe ser seleccionada para el correcto tratamiento de las sefiales provenientes desde la emisora En este proyecto se utiliza PPM por su simplicidad manejo y modificaci n as que se elimina la etiqueta PCM INPUT define PCM INPUT dejando activa define PPM INPUT Se debe definir PPM RX TYPE como l o como 2 para establecer la recepci n de sefiales desde la emisora como tipo Futaba o tipo JR respectivamente Futaba y JR son dos de los principales fabricantes de material electr nico para aeromodelismo del mundo emisoras gir scopos servos etc Cada uno de ellos tiene su propio est ndar de se ales en PPM Realmente la temporizaci n de las mismas es muy parecida pero se diferencian en la forma de transportar la informaci n mientras la sefial Futaba contiene la informaci n en los anchos altos de pulso JR la 34 Memoria Unidad de Medida Inercial IMU contiene en los bajos ver Ilustraci n 13 Informaci n en los PPM tipo Futaba y JR Pulso de informaci n uno por canal Pulso de separaci n Pulso de reset 0 7ms 1 7ms 0 3ms aprox 22 5 ms Futaba start JR Ilustraci n 13 Informaci n en los PPM tipo Futaba y JR Una vez
32. EST TXT nombre del archivo filel fcreate filename Se crea el archivo TEST TXT en la SD fclose filel Cerrar el archivo 2 6 5 Funci n fprintf de la biblioteca FlashFile La funci n fprintf recibe el puntero que apunta al archivo donde se va a escribir y los datos a escribir y no devuelve nada El funcionamiento es similar a su equivalente en lt stdio h gt de cualquier compilador de C void fprintf FILE rp unsigned char flash pstr Ejemplo sencillo de utilizaci n sum 4 sum 7 fprintf fp The number d is the answer sum imprimir en archivo apuntado por fp el valor de sum 2 6 6 Funci n fflush de la biblioteca FlashFile La funci n fflush recibe el puntero al archivo que debe salvar y devuelve un entero para comprobaci n de operaci n de salvado correcta int fflush FILE rp Ejemplo sencillo de utilizaci n C operaciones del programa flag fflush fp salvar el archivo apuntado fp Memoria Sistema de Almacenamiento de Datos SAD 65 2 6 7 Funci n fclose de la biblioteca FlashFile La funci n fclose recibe el puntero al archivo que debe cerrar y devuelve un entero para comprobaci n operaci n de cerrado correcta int fclose FILE rp Ejemplo sencillo de utilizaci n t operaciones del programa flag fclose fp cerrar el archivo apuntado por fp 3 Resultados Acabado el dise o montaje programaci n y depuraci n de la unid
33. F Desacoplo C13 1uF Desacoplo 2 Resistencias R1 0kQ R2 10kQ Red RC para RESET Tabla 2 Componentes del SAD Memoria Sistema de Almacenamiento de Datos SAD 2 2 Etapa 2 Desarrollo con Eagle El siguiente paso antes de la construcci n de la placa es la realizaci n de los esquemas en con alg n tipo de programa de dise o El programa elegido para tales efectos es Eagle 2 2 1 Introducci n de componentes o Eagle recibe del usuario un esquema en el que se especifican los componentes que componen la placa en este esquema los componentes son cajas negras de las que el programa solo conoce sus caracter sticas constructivas pineado tamafio forma y una serie de limitaciones de conexi n por ejemplo los pines que tienen que estar obligatoriamente conectados Normalmente los componentes se encuentran ya VAN ee caracterizados dentro de las propias librer as de Eagle pero en ocasiones el usuario tiene que realizar dicha tarea mediante el propio editor del programa Este es el caso del m dulo SDconnector que fue creado especialmente para este proyecto a partir de su hoja de caracter sticas 2 2 2 El conector para tarjetas tipo SD La Ilustraci n 16 Diagramas dimensional y funcional del z calo para tarjetas SD Las dimensiones reales se muestran en el Anexo IV Caracter sticas del conector z calo para tarjetas SD muestra la libreria Ibr SDconnec
34. III C digo modificado de la Unidad de Medida Inercial 157 SERIAL FLAGS N dprog avr910 N dpart auto N dserial dev ttyS0 N dspeed 38400 N ISP FLAGS N dprog stk200 N UISP usr bin uisp v TUISP FLAGS ISP FLAGS UISP FLAGS SERIAL FLAGS CFLAGS N 04 N W Wall DBOOT_BASE ARCH _base DCLOCK_SPEED ARCH _clock N LDFLAGS N Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 158 Zim all loader srec mainloop srec X install mainloop install mainloop srcs N mainloop c N uart c N string c N adc c N servo c AHRS_EXTRA ahrs c N imu c N pid c N calib c N mat c X Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 159 NO soft uart c N bob c N lcd c N mainloop objs N mainloop srcs c o N mainloop elf mainloop objs pem srcs pem c string c uart c N pcm objs N pcm srcs c o N pcm elf S pcm objs Memoria Anexo III C digo modificado de la Unidad de Medida Inercial Boot loader loader loader loader loader is always installed over the ISP Srcs zx loader c assembly sS objs S foreach a loader srcs basename a o elf loader objs LD LDFLAGS elf objs Ttext ARCH base o S SIZE install loader srec erase UISP S ISP FLAGS upload if lt 160 Memoria Anexo III C digo modifica
35. ION 2 4 S EEK K K Ck Ck kk RAR RR RR kk ck ok k k ck ok k k k ck ok ck ok ck ok ck ok ck ck ck ck k k ck ok k k k k ck ck k k ck ck k k ck ok k k ck ok k k k k k k Feature selection sy Low speed servo banks driven by the 16 bit timer overflows Uses a 4017 connected to the OCRnw pins and a reset pin Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 133 define SERVO BANK A define SERVO BANK B High speed servos driven by the 16 bit timer overflows Directly connects to the outputs No reset pin necessary define SERVO HS A define SERVO HS B PPM PCM decoding is selectable although PCM decoding is very buggy right now MA define PCM INPUT define PPM INPUT BR KR KK k kk kk kk RR RR kk kk kk kk RR c kok c i ok k k ck k k k k k Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 134 Consistency checks ny if defined SERVO HS A amp amp defined SERVO BANK A error Only one of SERVO HS A and SERVO BANK A may be defined endif if defined SERVO_HS_B amp amp defined SERVO_BANK_B error Only one of SERVO_HS_B and SERVO_BANK_B may be defined endif if defined PCM_INPUT amp amp defined PPM_INPUT error Only one of PCM_INPUT and PPM_INPUT may be defined endif S EEK K K K k k k K k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k
36. M para assembly S el bootloader memory h Manipulaci n de espacios de memoria average h Afiade un valor a la ventana de media m vil ins c C lculo de posici n y orientaci n en 3D AHRS 3D Memoria Unidad de Medida Inercial IMU 29 C lculo de la inclinaci n usando un aceler metro de dos ejes y un gir scopo de un eje relacionados a trav s de un Tilt h y tilt c filtro de Kalman cuyos estados son el ngulo y los bias del gir scopo Tabla I Archivos de la IMU rev2 4 en Autopilot Como se puede apreciar por lo dicho hasta el momento en este apartado la IMU adquirida en Rotomotion LLC tiene capacidad para calcular el estado del helic ptero y actuar sobre los servos para corregir las desviaciones que sucedan durante el vuelo mediante como ya se explicar un control PID La pregunta que surge en este punto es por qu si el prop sito ltimo de este proyecto es servir de infraestructura a otros proyectos que consigan esos objetivos no se utiliza esta unidad directamente Hay varias razones e Aunque la unidad tiene un control muy sencillo s lo permite estabilizar en vuelo estacionario su an lisis ayudar a una m s r pida comprensi n de c mo seguir en la investigaci n puesto que tiene licencia GNU lo que permite un estudio exhaustivo e FEl control que usa esta unidad es un control PID muy sencillo que tiene en cuenta l gicamente el estado posici n y orientaci n del he
37. Memoria Introducci n 0 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TECNICA SUPERIOR DE INGENIER A ICAI INGENIERO SUPERIOR INDUSTRIAL PROYECTO FIN DE CARRERA PRIMERAS ETAPAS EN EL DISENO DE UN ESTABILIZADOR DE VUELO PARA HELICOPTEROS A ESCALA Parte I Sistema de Adquisicion y Almacenamiento de Datos AUTOR MIGUEL NGEL TORROBA CA AS MADRID JUNIO 2005 Memoria Introducci n Partel Mentir idea 4 Capitulo O AT ANA A aeos ipeo eh pude si 5 Y AAA 5 2 Motivaci n del proyecto scccscsssssccsseccsscessccsssscecscscesscssescersssseessesees 6 3 SOD AA A TA 7 IEA O osses sos 8 JB 4 dnmdIdcie R 10 Capitulo 2 Unidad de Medida Inercial IMU e s 12 1 Introducci n esses eese eese eee tenentes sonata stesse ta seta seta se tosta setas etn ae 12 1 1 Objetivo de la Unidad de Medida Inercial sss 12 1 2 Breves apuntes sobre los sensores empleados sse 13 I Aceler metros s bosotte n aon aea t eee e e s 13 1 2 2 GIfOSCODOS e e eee ee Ge De AR t heteashees 15 2 Hardware de la Unidad de Medida Inercial 16 2 1 Caracter sticas principales esses enne 16 2 2 Descripci n del hardware essere 17 2 3 Montaje y conexi n E E E nennen eren nn enne nennen nnne 21 2 4 Modificaci n de los filtros anti aliasing
38. PP N 14 A15 2mm 101 D a JP2 100n ELO ern is cg Y gt 663 R3 EGA32 A Ilustraci n 18 Disefio de pistas del SAD La correcta colocaci n de los componentes pas por analizar la funci n de cada componente As el microprocesador cerebro de la placa est situado en el centro de la misma porque es uno de los componentes con m s Memoria Sistema de Almacenamiento de Datos SAD conexiones y hace de v nculo entre los dem s componentes El z calo para la SD est situado en un lateral y con la abertura orientada hacia fuera por facilidad de extracci n El MAX 3223 est colocado en un lateral y en paralelo al micro Y el resto de componentes condensadores regulador de tensi n resistencias est n colocados para minimizar los cortes entre pistas En la Ilustraci n 19 Sistema de Almacenamiento de Datos se puede observar el aspecto final de la placa fabricada 49 Ilustraci n 19 Sistema de Almacenamiento de Datos 2 2 5 Tablas y res menes La Tabla 3 muestra el pineado de la placa Memoria Sistema de Almacenamiento de Datos SAD N Pin Nombre Funci n ATMega 32 L Funci n especial del puerto D como receptor de datos v a 9 PDO RXD serie Funci n especial del puerto D como transmisor de datos 10 PD1 TXD v a serie 44 PB4 SS Funcion especial del puerto B como Chip Select del SPI Funci n especial del pue
39. RX del USART Las instrucciones b sicas de manejo de estos puertos para entrada salida son Para configurar la direcci n de los pines del puerto DDRx Puesto a 1 significa SALIDA y a 0 significa ENTRADA Enunpin de SALIDA se ESCRIBE mediante el comando PORTx En un pin de ENTRADA se LEE mediante el comando PINx Donde x es el puerto A B C o D Si uno se quiere referir a una posici n concreta del puerto por ejemplo para poner un 1 en dicha posici n es una forma sencilla utilizar Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 9 algo como esto PORTx 1 lt lt Pxn donde n es la posici n del puerto donde quieres escribir el 1 4 2 Memoria El mapa de memoria de este micro es el siguiente 0000 Application Flash Section Boot Flash Section 3FFF La Seccion de Bootloader es variable y se configura con los Fuse Bits como se hizo en el apartado 2 3 del cap tulo 3 seg n BOOTSZ1 0 en la tabla siguiente Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 92 Table 105 Fuse High Byte Fuse High Byte Description Default Value Enable OCD 1 unprogrammed OCD disabled JTAGEN 6 Enable JTAG 0 programmed JTAG enabled Enable SPI Serial Program and Data Downloading CKOPT Ks Oscillator options 1 unprogrammed SPIEN 5 0 programmed SPI prog enabled EESAVE 3 EEPROM memory is preserve
40. SES 1 Sanity check the pulse for a valid servo width if width lt 700ul CLOCK width gt 2300ul CLOCK goto restart ppm cycle Read a data pulses ppm pulses state 1 width return All done Mark it as valid and call the user supplied copy to servos routine to update the servo outputs Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 145 ppm valid 1 copy to servos restart ppm cycle state 0 sync_start TCNT2 static inline void ppm output void uint8_t abe puts SGPPPM if ppm valid puts rM return for i 0 i lt PPM MAX PULSES i Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 146 putc put uintl16 t ppm pulses i putnl endif Servo c indent tabs mode T c basic offset 8 tab width 8 vi set ts 8 SId servo c v 1 4 2003 06 24 22 50 34 tramm Exp c 2002 Trammell Hudson lt hudson rotomotion com gt Ckckckckckckckckckckckckok This file is part of the autopilot onboard code package Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 147 Autopilot is free software you can redistribute it and or modify jit under the terms of the GNU General Public License as published by the Free Software Foundation either version 2 of the License or at your option any later version
41. S_COM1 COM1B1 For the High speed servo output you must select either CONFIG_FUTABA or CONFIG_JR to drive the digital servos From experimental tests the rates are Futaba 275 Hz 3 65 ms frame rate JR 166 Hz 6 00 ms frame rate define CONFIG_FUTABA if defined CONFIG_FUTABA Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 150 define HS SPEED 3650 CLOCK elif defined CONFIG JR define HS SPEED 6000 CLOCK else error servo c Neither FUTABA nor JR is defined for high speed output endif We use the output compare registers to generate our servo pulses These should be connected to a decade counter that routes the pulses to the appropriate servo Initialization involves Reseting the decade counters Writing the first pulse width to the counters Setting output compare to set the clock line by calling servo enable Bringing down the reset lines Ideally you can use two decade counters to drive 20 servos EJ Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 151 void servo init void uint8 t i uint16_t mid_point servo_make_pulse_width 32768 Configure the reset and clock lines SERVO_DDR 0 1 lt lt SERVO A RESET 1 SERVO A CLOCK 1 lt lt SERVO HS CLOCK Reset the decade counter Sbi SERVO PORT SERVO A RESET
42. TH LENGTH 15 contiene el path del archivo Memoria Sistema de Almacenamiento de Datos SAD 2 5 Etapa 5 Comunicaci n con la Unidad de Medida Inercial 2 6 En este apartado se explica el c digo de programa concerniente al almacenamiento de datos El c digo completo se incluye en el Otros recursos no utilizados en este proyecto Para informaci n sobre los ADC los Comparadores anal gicos el TWI o el JTAG consultar 5 Anexo II C digo del Sistema de Adquisici n de Datos aunque algunas partes del mismo se incluyen en este apartado para ayudar a la explicaci n 2 6 1 El buffer circular Un buffer circular es necesario para el correcto trasvase de informaci n entre la IMU y el SAD porque sin l la diferencia de velocidades entre salida de datos por la v a serie de la IMU y la entrada de los mismos en la tarjeta de memoria SD provocar a la p rdida por el camino de algunos de ellos El funcionamiento del buffer circular es sencillo y se explica a continuaci n Se declaran una cadena de caracteres buffer que har de buffer con la longitud necesaria SMAX para evitar rebose de la misma y dos punteros uno lee continuamente las entradas al SAD p in y las almacena en memoria RAM del microprocesador y el otro p out que le sigue siempre por detr s va almacenando en un puntero auxiliar psc todos esos caracteres escupidos desde la IMU ps p_out hasta llegar a un numero de
43. ad se hicieron una serie de pruebas para comprobar el correcto funcionamiento Una de ellas fue conectar al SAD la IMU y mover el conjunto con la mano A continuaci n se muestra parte del contenido del archivo que se grab en ese ensayo Las columnas 5 6 y 7 son aceleraciones lineales en Z Y y X Las columnas 2 3 y 4 son las aceleraciones de rotaci n en los ejes Z X e Y Memoria Sistema de Almacenamiento de Datos SAD 66 5 GPADC 079 07C 1 1F 135 184 254 279 06A GPADC 07B 07E 1F 136 186 256 27B 06C GPADC 07E 080 1 1E 136 185 25B 275 06F GPADC OTE 081 11F 136 185 25D 277 06F GPADC 07B 07E 1F 136 184 25E 282 06C GPADC 07A 07D 11D 135 188 257 27A 06B GPADC 07E 081 11E 137 186 252 27F 06F GPADC 07C 07F 11E 136 185 259 288 06D GPADC 07D 080 11C 136 187 259 273 06E GPADC 07A 07D 11C 138 181 25C 27B 06B GPADC 07B 07D 11F 132 18A 264 272 06C Iss La representaci n de los valores contenidos en este archivo se hizo con ayuda de MATLAB Memoria Sistema de Almacenamiento de Datos SAD 1 500 600 Ilustraci n 24 Representaci n de los ADC Negro Verde y Morado Aceleraciones lineales Azul Rojo y Azul Oscuro Aceleraciones angulares Donde cada una de las se ales que aparecen representadas corresponden con uno de los canales ADC Analog to Digital Converter con los que se obtienen las medidas de aceleraci n lineal y velocidad angular del cu
44. alidad y versatilidad resultaban excesivamente caros se localiz uno que estaba dentro de las posibilidades econ micas de este proyecto Se adquiri en Rotomotion LLC por 324 95 Una ventaja importante de est unidad es que a parte de integrar los sensores b sicos para determinar el estado del helic ptero en el aire se compr a una empresa que se dedica a la investigaci n en este tema pero con c digo libre licencia GNU por lo 12 Memoria Unidad de Medida Inercial IMU tanto podremos alterar y modificar el c digo de la misma seg n las necesidades del proyecto 1 2 Breves apuntes sobre los sensores empleados En esta secci n se explica el funcionamiento b sico de los aceler metros y los gir scopos 1 2 1 Aceler metros Los aceler metros utilizados en la IMU tienen salida de ancho de pulso modulado PWM El modelo empleado es el ADXL202 de la casa Analog Devices Corp con un rango de medida de 42g y doble eje de medida Como los ADXL202 miden la aceleraci n en dos ejes perpendiculares y disponemos de dos de ellos es posible medir en las tres direcciones del espacio quedando un 4 eje de redundancia o en nuestro caso inhabilitado La salida de un aceler metro para uno de sus ejes tiene la forma mostrada en la Ilustraci n 2 T2 qq Ilustraci n 2 Salida PWM producida por un aceler metro 13 Memoria Unidad de Medida Inercial IMU 14 Donde T2 es la duraci n completa de u
45. break ifdef CONFIG PNI static inline void pni output void if pni state 0 return 128 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial if pni valid gt 0 puts SGPHDG put uintl16 t pni values 0 putc put uintl16 t pni values 1 putc put uint16 t pni values 2 putnl pni valid 0 if pni valid 0 if pni_read_axis 0 return else pni_valid 0 puts SERPNI r n 129 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 130 endif int main void timer init uart init servo init ppm init adc init ifdef CONFIG PNI pni init endif input init sei puts Id mainloop c v 2 26 2003 07 13 17 15 43 tramm Exp r n while 1 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 131 input task user task Every 32768 microseconds if timer periodic 0 continue adc output id ii ppm valid ppm output ppm valid 0 ifdef CONFIG PNI pni output endif Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 132 Config h Id config h v 1 1 2003 02 20 16 53 52 tramm Exp Configuration file for the different feature sets and pin outs EJ ifndef _REV2_CONFIG_H define REV2 CONFIG H define VERS
46. ci n la metodolog a de trabajo empleada y los recursos utilizados para su desarrollo Adem s se realiza con la idea de que los resultados y conclusiones alcanzadas as como el know how adquirido sobre las tecnolog as empleadas puedan ser utilizados en el futuro desarrollo de otros proyectos sean o no continuaci n directa de este 1 Precedentes El transporte a reo es la forma de transporte moderno que m s r pidamente se ha desarrollado Aunque los Hermanos Wright hicieron el primer vuelo de la historia en un aparato m s pesado que el aire en Carolina del Norte en el a o 1903 no fue hasta despu s de la I Guerra Mundial cuando el transporte a reo alcanz un lugar destacado en todos los pa ses Tras la II Guerra Mundial los aviones comerciales recibieron un mayor impulso gracias a la evoluci n de los propulsores de los aviones desde la h lice hasta los turborreactores y desde entonces la industria de la aviaci n no ha dejado de desarrollarse tecnol gicamente El siguiente paso en la evoluci n de esta industria viene de la mano de los sistemas que electr nica avanzada comunicaciones y sistemas inform ticos para aumentar la eficiencia y seguridad del transporte Uno de Memoria Introducci n los avances m s conocidos en este campo es el Piloto Autom tico Son sistemas de navegaci n en los que los pilotos introducen sus destinos y el aparato act a para llegar al mismo Este sistema est muy desarrollado en lo
47. cidad de carga que suele caracterizar a los helic pteros a escala todo ahorro de energ a supone un menor peso de bater as cuando el sistema se cargue en uno de estos La librer a a la que se hace referencia continuamente utiliza el puerto PB7 4 en su funci n de v a SPI Serial Peripheral Interface Interfaz Perif rico tipo Serie que es un puerto del tipo serie s ncrono como modo de direccionamiento entre el microprocesador y la memoria La utilizaci n de este recurso se expondr con m s detalle en el Anexo La comunicaci n de la Unidad Inercial con el micro se realiza por v a serie as ncrona gracias al recurso USART Universal Synchronous and Asynchronous serial Receiver and Transmitter Receptor o Transmisor Universal del tipo Serie S ncrono o As ncrono del ATMega que tambi n se explicar detalladamente en el apartado 4 4 del Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega Debido a que el ATMega viene de f brica limpio de programaci n fue necesario dejar una comunicaci n auxiliar v a SPI para poder cargarle el bootloader pequefio programa que da la capacidad de actualizar el c digo de programa del microprocesador mediante un mecanismo de auto 41 Memoria Sistema de Almacenamiento de Datos SAD programaci n escribe mientras lee En el apartado 4 4 se desarrollar lo referente al bootloader Para garantizar un suministro estable de tensi n de 3 3V que es la de
48. d 1 unprogrammed EEPROM not through the Chip Erase preserved Select Boot Size see Table 100 BOOISZI for details 0 programmed 0 BOOTSZO BOOTRST Select Boot Size see Table 100 for details 0 programmed Select reset vector 1 unprogrammed Tambi n es conveniente echar un vistazo a los Bootloader Lock Bits que permiten la protecci n de algunas secciones de la memoria seg n las necesidades del usuario 4 3 V a SPI Serial Periferial Interface Es una v a de comunicaci n serie s ncrona que permite una conexi n r pida con el exterior u otros AVR Existen dos posibles modos de funcionamiento Modo Maestro Master en ingl s y Modo Esclavo Slave en ingl s que definen si el AtMega es o no es quien maneja las comunicaciones en la SPI Una comunicaci n pasa por las siguientes etapas e El maestro de la SPI inicia la comunicaci n poniendo a cero por software el pin SS Slave Select del esclavo requerido e En maestro o esclavo seg n modo de configuraci n se colocan los datos en los Registros de Intercambio SPDR e El maestro genera la se al de reloj necesaria sincronismo Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 93 e La comunicaci n fluye por las l neas MOSI o MISO seg n esta vaya de maestro a esclavo o viceversa Al terminar se pone a uno la Bandera de Fin de Transmisi n Transmission Flag SPIF que generar una interrupci n si SPIE est ac
49. decet dte teen 70 5 Otras posibles aplicaciones eeeee cesse eese eene eren neenon seen se ennue 72 Cap tulo 4 Integraci n de IMU y SAD e eeeeeeee eee eren eerte nnn 73 1 Lacajaapropiada 44 eere e eres e cette eere eene en ener tn neta notans seen seen tsss 73 2 Ubicaci n de los m dulos eeeeeeee eee esee ee seen seen stent ta staat tn seta seta 73 3 Sistema de aislamiento eese eese eee eee e eene tenet tn etta seta sten setas etn seta 74 4 Sistema de sujeci n eee eee e ee esee eene seen eee tastes etn osse tn sete na seta 75 5 Panel de mandos ooccconnoonnconnconnnonnnonnnonanonnnocnnconaconaccnncconnconcconc conc cona cono conos 76 Memoria Introducci n 6 Proceso de montaje paso a paso eeeseeee eene ener en neenon nest tn se tnnue 77 EO A n 80 Capitulo Receptor escasos airada 82 Capitulo 6 Conclusiones dc siasiccssssscvesisssussssessscvsnsesuosssccsvvvesesstonssosvuvesers 85 Dong emm oaas 87 Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 88 1 Caracter sticas generales eres eese eres ee eee ee enne etant na seen osea seen 88 2 PFOSTAMACION m M 89 3 Arquitectura del microprocesador eeeeee eee ee eene eene en ann 89 4 Utilidades pp 90 4 1 Puertos I O Funciones alternativas
50. do de la Unidad de Medida Inercial 161 General rules elf LD N elf objs o LDFLAGS X S SIZE srec elf avr objcopy O srec Q install srec stk200 needs to be erased first S UISP S SERIAL FLAGS erase UISP S SERIAL FLAGS upload if lt erase S UISP S ISP FLAGS erase Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 162 clean rm f srec elf a out core o a Dependencies mainloop o mainloop c timer h uart h string h X soft uart h N servo h N ppm h N adc h N led h N tach h N button h adc o N adc c N Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 163 adc h N average h string o N string c N string h N uart h N uart o N uart c N uart h N lcd o N redre lcd h N loader o N loader c N led h N button h N soft uart o N soft uart c N Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 164 soft uart h N string h N Memoria Anexo IV Caracter sticas del conector z calo para tarjetas SD 165 ANEXO IV CARACTER STICAS DEL CONECTOR Z CALO PARA TARJETAS SD En este anexo se incluye un plano tanto dimensional como funcional del z calo para tarjetas SD utilizado en la construcci n del Sistema de Adquisici n de Datos Dicho z calo es el modelo S01V01381 de la casa JAE Ltd Jaran Aviation Electronics En la es
51. e se le quiere dar a esta interrupci n 4 8 Otros recursos no utilizados en este proyecto Para informaci n sobre los ADC los Comparadores anal gicos el TWI o el JTAG consultar 5 Memoria Anexo II C digo del Sistema de Adquisici n de Datos 107 ANEXO II C DIGO DEL SISTEMA DE ADQUISICI N DE DATOS En este anexo se incluye el c digo realizado para el control del SAD main c include options h Librer a de configuraci n de opciones de FlashFileSD include lt stdio h gt Librer a est ndar de control de entrada salida include lt delay h gt Librer a de generaci n de retrasos retardos S BRK RK Ck kk kk RIA Ck Ck k k Ck k k k k k k k Ck k k k k k k k ck ok k k ck ck k k k k ck k k k ck k k k ck k ck k ck ck ck ck k k k k k k ck ok k k k k k k k k kckckckckck kk Parte de c digo correspondiente al buffer circular include lt string h gt Librer a para la gesti n de cadenas de caracteres define SMAX 320 Maxima longitud del buffer define MINCHAR 30 Tamafio del grupo de caracteres que se graban cada vez en la SD Declaracion de varibles char buffer SMAX p_in p_out Memoria Anexo II C digo del Sistema de Adquisici n de Datos 108 void error rebose void Funci n a la que se llama cuando se produce un rebose del buffer circular A modo de alarma genera un parpadeo cada 1 2 segundo en los LEDS while 1 PORTA 0x0C delay ms 500 interrupt 1
52. ect define PPM MAX PULSES define EDGE_DETECT define collective_index define throttle_index define roll_index define pitch_index define yaw_index define yaw_gain_index define extra_index sbi 139 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 140 define manual_index 4 define manual_threshold 1500 define mode_index 8 define mode_threshold_0 1300 define mode threshold 1 1600 else error Unknown PPM type endif User routine to copy and modify the PPM values to the servos as soon as they are ready This should be as fast as possible y static void copy to servos void PPM pulses are falling edge clocked on the ICP which records Memoria Anexo III C digo modificado de la Unidad de Medida Inercial the state of the global clock We do not use any noise canceling features JR might be rising edge clocked set that as an option El static inline void ppm init void EDGE DETECT TCCR1B ICES1 No noise cancelation cbi TCCR1B ICNC1 Set ICP to input internal pull up sbi PORTD cbi DDRD 6 Enable interrupt on input capture sbi TIMSK TICIE1 141 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial Au uin uin Ay The pulse widths are recorded into this array If the values are not zeroed by the use
53. elisticos o Micro Receptor ACT e TOTAL 170 353 325 28 310 160 60 90 9 5 8945 25 1479 948 150 798 0 0 0 49 49 12118 Estudio Econ mico Coste del Proyecto 171 Manual de usuario Coste del Proyecto Parte III MANUAL DE USUARIO 172 Manual de usuario 173 La Ilustraci n 40 muestra la integraci n de los m dulos IMU y SAD Como podemos observar la parte frontal es un panel de mandos constituido por e Interruptor de alimentaci n con dos posiciones ON y OFF e Interruptor de escritura con dos posiciones REC y STOP e Ranura para introducci n extracci n de la tarjeta SD marcada como SD e Led rojo marcado como STATUS e Led verde marcado como POWER Ilustraci n 40 Integraci n IMU SAD La interfaz de usuario para utilizar el IMU SAD es muy sencilla se han de seguir los siguientes pasos Manual de usuario 174 1 Conectar la v a serie de un sistema que trabaje a 38400 baudios con la entrada serie del SAD En nuestro caso la IMU ya est conectada 2 Si se quiere conectar alg n sistema que trabaje a otra velocidad de transmisi n habr que modificar el c digo de programa En la funci n void uart init void se deber a elegir la velocidad deseada modificando UBRRL seg n el Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 3 Poner en ON el interruptor de alimentaci n 4 Tras la inicializaci n de los perif ricos un peq
54. emoria Sistema de Almacenamiento de Datos SAD 5 Otras posibles aplicaciones Este dispositivo ha sido disefiado en este proyecto con la nica idea de almacenar los datos que expulsa por v a serie la Unidad de Medida Inercial en un soporte de f cil uso una tarjeta de memoria tipo SD pero es l gico que cualquier futura aplicaci n que necesite de una recogida de datos que sean comunicados por una v a serie podr a utilizar este m dulo con tan s lo unos pocos retoques en el c digo si as se creyera necesario 72 Memoria Integraci n de IMU y SAD Capitulo 4 INTEGRACI N DE IMU Y SAD En este cap tulo se va a explicar el proceso de montaje de ambos sistemas dentro de una caja de pl stico para su protecci n 1 La caja apropiada El primer paso fue la busqueda de una caja de dimensiones adecuadas para albergar los m dulos y que adem s fuera lo suficientemente herm tica para que no entrasen desde el exterior part culas que pudieses da ar los sistemas que contienen La caja que se encontr tiene las siguientes caracter sticas 1 Dimensiones largo ancho alto en mil metros 150 x 90 x 48 2 Material Todo de pl stico excepto la tapa que es de metal y va atornillada 2 Ubicaci n de los m dulos El siguiente paso fue la planificaci n de espacio para determinar las posiciones de las diferentes placas teniendo en cuenta que el eje Z de la IMU tiene que estar totalmente vertical que los ejes X e Y de
55. erpo en estudio 4 Recursos empleados En esta secci n se explican brevemente los recursos empleados para la realizaci n de esta fase del proyecto 67 Memoria Sistema de Almacenamiento de Datos SAD 4 1 Eagle Eagle ya ha sido explicado detalladamente a lo largo de este cap tulo A modo de resumen solamente decir que es un programa de disefio para elaboraci n de circuitos electr nicos que permite generar el layout de una placa a partir de un esquema del conexionado de componentes que se realiza en un entorno gr fico muy sencillo 4 2 AVR Dude de Win AVR Es un programa que permite configurar los Fuse Bits de los microprocesadores AVR y cargar un bootloader en los mismos utilizando directamente la v a SPI 4 3 AVR Studio 4 Es el programa propio de ATMEL Corp utilizado para compilar el bootloader en ensamblador que se utiliza para este microprocesador AtMega32L 4 4 Kargador y bootloader El bootloader utilizado en este proyecto se llama Kargador y esta dividida en dos partes e Programa en lenguaje Delphi cedido por Alejando Weinsteinen que se ofreci a compilar una versi n del programa para la velocidad de comunicaci n serie de 38400 baudios ya que la versi n que l ten a disponible no se adaptaba a las necesidades Esta parte va directamente 68 Memoria Sistema de Almacenamiento de Datos SAD 69 instalada en el ordenador La imagen siguiente muestra la ventana que se ab
56. go de manejo de la IMU La funci n calib init debe llamarse antes que esto para poder leer los par metros de los aceler metros de la EEPROM CONTROL DE SUBSISTEMAS DE LA IMU V2x h Para la br jula en modo V2X pni h Para la br jula en modo PNI button h Lectura de botones en la rev2 2 la nuestra es la rev2 4 tach h Tac metro CONTROL DE PERIF RICOS DEL MICROPROCESADOR Y LIBRER AS DE APOYO Adc h y adc c C digo para la conversi n de valores anal gicos de los sensores a digitales Mat h y mat c Librer a de tratamiento de matrices optimizada para microcontroladores con memoria limitada Soft_uart h y soft_uart c String h y string c Funciones b sicas para salida de cadenas y n meros Memoria Unidad de Medida Inercial IMU Control de USART Universal Sincronous and Uart h y uart c Asincronous serial Receiver and Transmiter timer h Control de timers CONFIGURACI N C digo para recalibrar y almacenar los valores de los Calib h y calib c aceler metros en la EEPROM del Megal63 Selecci n de modo PPM o PCM y configuraci n de los config h bancos de servos OTROS Lazo principal Actualiza los servos y manda por la v a mainloop c serie los valores PPM etiqueta GPPPM ADC etiqueta GPADC y de la br jula etiqueta GPHDG loader c Bootloader de la IMU Rutinas de lectura escritura en la flash y la EEPRO
57. guaje C En este documento se utilizar el segundo de ellos Un completo juego de instrucciones puede encontrarse en 3 Arquitectura del microprocesador La Ilustraci n 39 muestra un esquema general de la arquitectura interna del microprocesador Data Bus 8 bit Status and Control 32x8 Instruction General Register Purpose Registrers Instruction Decoder Control Lines Program Program Counter Memory Interrupt Unit SPI Unit Watchdog Timer Analog Comparator Direct Addressing Indirect Addressing l O Module1 Data I O Module 2 SRAM EEPROM I O Lines O Module n Ilustraci n 39 Arquitectura del microprocesador Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 4 Utilidades 4 1 Puertos I O Funciones alternativas El AtMega 32L tiene 4 puertos paralelo de 8 bits para entrada salida desde PORTA hasta PORTD Adem s de la funci n t pica de entrada salida estos puertos pueden ser configurados para realizar otras funciones alternativas As por ejemplo el puerto A puede utilizarse como Conversor Anal gico Digital ADC el puerto B tiene funciones de Interfaz Serie SPI Comparador Anal gico y entradas de interrupci n externa el puerto C lleva un par de osciladores las funciones JTAG para depuraci n de programas y el TWI Two Wire Interface y por ltimo el puerto D lleva las salidas de los Timers un par de generadores de interrupci n externa y el TX
58. hs 4 static inline void input init void Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 125 uint8 t i for i20 i 8 1 command i servo make pulse width 32768ul static inline void reset void void bootloader void void BOOT BASE No interrupts until we restart in the boot loader cli No timer interrupts TIMSK 0 No OCR toggles TCCRIA 0 bootloader Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 126 SIGNAL SIG UART RECV static uint8 t phase static uint8 t Servo static uint8 t high bits static uint8 t low bits unsigned char c inp UDR switch phase case 0 Wait for sync pulse if c OxFF phase 1 break case ls servo c phase 2 break Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 127 case 2 high bits c phase 3 break case 3 low bits c Check for reset command if servo OxDE amp amp high bits OxAD amp amp low bits OxBE reset if servo SERVO MAX break command servo 0 int low_bits lt lt 0 int high bits lt lt 8 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial puts SSRV put uint8 t servo putet put uintl16 t command servo putnl uA Fall through default phase 0
59. i n 6 Placa de Control Cara inferior e Microprocesador ATMEL AtMega32 el cerebro de toda la unidad encargado de capturar los valores que miden los sensores mediante los ADC Analog to Digital Converter computarlos convenientemente filtrado del ruido filtro de Kalman y dar las ordenes necesarias a los servos Tambi n se ocupa de comunicar v a serie todas las medidas rdenes etc Se debe decir que en el modo que se ha programado para este proyecto solamente se utilizan las siguientes funciones o Captura de las medidas de los sensores mediante los ADC Actualizaci n cada 0 03276 segundos o Captura de las sefiales PPM que provienen de la emisora 18 Memoria Unidad de Medida Inercial IMU 19 e MAX 23I adaptador de tensiones para via serie e Conector con Placa XY marcado como J1 e Conector de alimentaci n marcado como J3 e 10 conectores para servos normales marcados del 0 al 9 e Conector para servo r pido marcado como H e Conector serie marcado como RS 232 e Conector para se al PPM marcado como P e Cristal 8MHz e Regulador de Tensi n LM7805 con salida estable a 5V e Resistencias y Condensadores varios La segunda placa es la PLACA XY En la Ilustraci n 7 se pueden observar los componentes principales Aceler metro Placa de Control Ilustraci n 7 Placa XY e Aceler metro ADXL202AE Memoria Unidad de Medida Inercial IMU 20 e Gir scopos CG16 DO e Ampl
60. ia En el pin OCn se genera una se al PWM seg n el momento en el que los valores OCRO registro de comparaci n y TCNTO registro de conteo se igualen Despu s de este momento el timer acaba la cuenta MAX OCn vuelve a su valor inicial y el contador TCNTn se reinicia ver imagen Para m s informaci n sobre los registros ver el apartado 4 5 de este anexo Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 104 OCRn Interrupt Flag Set OCRn Update and TOV Interrupt Flag Set ENTIER E TCNTN v4 T LIIS OCn 10 COMn1 0 2 i OCn L COMn1 0 3 Period Je J La segunda Phase Correct PWM provee una sefial muy precisa aunque de menor frecuencia por ello es util para control de motores El modo de funcionamiento difiere del anterior en que primero se realiza la cuenta hacia delante MAX y luego hacia atr s BOTTOM y el cambi de valor en OCn se produce entre TCNTn OCRn en bajada y TCNTn OCRn en subida ver imagen OCn Interrupt Flag Set Y Y OCRn Update TOVn Interrupt Flag Set Y y TCNTn t t OCn COMn1 0 2 OCn ES 1 fe COMn1 0 3 Period 1 2 ___ __ Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 105 4 7 Interrupciones Las interrupciones pueden generarse por multiples razones como puede observarse en la tabla siguiente que muestra el vector de interrupciones Program Vector No Address I
61. ida Inercial 137 Autopilot is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with Autopilot if not write to the Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA ifndef _ppm_h_ define _ppm_h_ Receiver types are E 1 Futaba 2 JR xp define PPM RX TYPE UR Memoria Anexo III C digo modificado de la Unidad de Medida Inercial include lt string h gt For memset include string h For puts eta include uart h Hif PPM RX TYPE 1 Futaba assignments for Trammell s radio on the Concept Falling edge detect Thresholds are in microseconds yf define PPM_MAX_PULSES 6 define EDGE_DETECT chi define collective_index 5 define throttle_index 2 define roll index 0 define pitch index i define yaw index 3 define yaw gain index 6 define extra index q 138 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial define manual_index define manual_threshold define mode_index define mode threshold O0 define mode threshold 1 elif PPM RX TYPE 2 1500 1000 1800 JR assignments for Dennis radio on the Nova Rising edge det
62. ificadores Operacionales Rail to Rail OPA4342PA y OPA2340PA e Conector con Placa de Control marcado como J4 e Conector con Placa Z marcado como J5 e Resistencias y condensadores varios La tercera placa es la PLACA Z En la Ilustraci n 8 se pueden observar los componentes principales Gir scopo Conexi n Placa XY Aceler metro Ilustraci n 8 Placa Z e Aceler metro ADXL202AE e Gir scopo CG16 DO e Amplificador Operacional OPA4342PA e Conector con Placa XY marcado como J6 e Resistencias y condensadores varios Memoria Unidad de Medida Inercial IMU 2 3 Montaje y conexi n El montaje de la placa se realiz seg n la gu a que se puede encontrar en 1 La Ilustraci n 9 Conexi n entre las placas de la IMU es una imagen de las placas terminadas y de la conexi n entre ellas Al SAD via serie Ilustraci n 9 Conexi n entre las placas de la IMU 2 4 Modificaci n de los filtros anti aliasing Las pruebas realizadas en la segunda parte del proyecto realizada por Fernando ngulo pusieron de manifiesto la existencia de una gran cantidad de ruido en las medidas realizadas con esta unidad en un helic ptero a escala como puede observarse en la Ilustraci n 10 21 Memoria Unidad de Medida Inercial IMU mA PA 0 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Ilustraci n 10 Ruido en las medidas Por la raz n anterior se crey convenie
63. isici n de las medidas necesarias para la determinaci n de la posici n de un cuerpo en tres dimensiones A parte otras muchas utilidades est n incluidas con este m dulo adquirido a la empresa Rotomotion LLC Si bien es cierto que dichas utilidades no permiten m s que un control muy sencillo del helic ptero para estabilizarlo en vuelo estacionario Comparado con otros sistemas del mercado que permiten hacer medidas similares es mucho m s barato pero tambi n es necesario decir que es seguramente mucho menos preciso y vers til a parte de incluir menor n mero de sensores integrados otros sistemas poseen GPS br jula 3D La mayor ventaja que se puede extraer del uso de esta IMU y no de otra es la posibilidad de estudiarla a fondo gracias a la licencia GNU que tiene el producto Este hecho nos proporciona la posibilidad de aprender m s y m s r pido que si hubi ramos hecho el desarrollo desde cero adem s de aprender de los errores de los dem s Aunque el estudio de las utilidades no relacionadas directamente con la adquisici n de datos no ha sido tan profundo como el de las que si lo estaban ha sido suficiente como para dejar las bases sobre todo 85 Memoria Conclusiones documentales que permitan en el futuro investigar en otras l neas como los Filtros de Kalman y la identificaci n de par metros en el Modelo Din mico En cuanto al Sistema de Adquisici n de Datos se debe decir que es muy vers til
64. la IMU tienen que estar horizontales y que la ranura del z calo SD tiene que estar pegada a una de las paredes de la caja para su f cil extracci n ver Ilustraci n 28 73 Memoria Integraci n de IMU y SAD Ilustraci n 28 Colocaci n de los 4 m dulos 3 Sistema de aislamiento Una vez determinada la posici n de cada uno de los componentes se coloc un aislamiento de goma espuma en los m dulos de medida XY y Z de la IMU y aislamiento de neopreno en la placa de control de la IMU con el fin de aislar en la medida de lo posible las vibraciones que pudieran aparecer durante la utilizaci n del m dulo ver Ilustraci n 29 74 Memoria Integraci n de IMU y SAD 75 Ilustraci n 29 Aislamiento 4 Sistema de sujeci n Para fijar cada uno de los m dulos convenientemente se han utilizado tornillos con relleno de silicona como muestra la Ilustraci n 30 Arandela Tornillo M3 Placa Arandela de silicona g Tuerca Pared de la Tubo de Caja silicona Z Ilustraci n 30 Sistema de Sujeci n Memoria Integraci n de IMU y SAD 76 Todos los tornillos son de m trica M3 cabeza tipo Allen y de 2 cent metros de longitud excepto los que sirven para la sujeci n de la placa de control de la IMU que son de 3 cent metros puesto que esta placa est colocada flotando sobre la placa de medida XY de la IMU Ilustraci n 31 Taladros Las tuercas son auto blocantes para mayor seguridad
65. leraciones lineales y angulares mediante los sensores adecuados aceler metros y gir scopos integr ndolos en una Unidad de Medida Inercial en ingl s Inertial Measurement Unit IMU Todo ello a un precio razonable e Almacenar dichas variables con un formato sencillo en un sistema de reducido tamafio y peso y lo m s vers til posible para facilitar su reutilizaci n en otras tareas de almacenamiento de datos e Montar el sistema completo formado por las dos unidades anteriores en una caja para darles robustez y compactaci n 4 Metodolog a La primera parte Sistema de Adquisici n y Almacenamiento de Datos consiste en el dise o y la construcci n de un m dulo que colocado en el helic ptero a escala o en cualquier otro objeto en movimiento sea capaz de medir y almacenar las aceleraciones lineales y las velocidades angulares del mismo a partir de las cuales en la segunda parte An lisis de los Datos y Estimaci n del Estado se pueda obtener mediante una serie de filtros y an lisis el estado del helic ptero en el aire es decir su posici n y orientaci n angular en los tres ejes del espacio Aunque ambas partes se presentan por separado el trabajo se ha realizado de forma conjunta por ambos proyectandos durante la duraci n integra del PFC porque permite sobre todo una mayor calidad de los resultados y agilizar ambas partes principalmente la primera cuya Memoria Introducci n finalizaci n es vi
66. lic ptero para corregir las desviaciones sufridas durante el vuelo pero no tiene en cuenta su modelo Memoria Unidad de Medida Inercial IMU din mico que es necesario para poder hacer un control fino y preciso del helic ptero El almacenamiento de los datos de los aceler metros y los gir scopos ADC as como de las posiciones de los servos PPM en cada momento del vuelo permitir mediante un procesado exterior en un ordenador realizar estimaciones de estado y modelos din micos mucho m s precisos y complejos que utilizando la limitada potencia de c lculo a bordo del helic ptero A partir de esos modelos y estimaciones ser posible en futuros proyectos realizar sistemas de control tremendamente m s eficaces seguros y precisos que el que actualmente se integra en la IMU 30 Memoria Unidad de Medida Inercial IMU 31 A continuaci n se muestran los diagramas de flujo de los archivos de c digo que tienen una relaci n directa con la adquisici n de datos MAINLOOP INICIALIZACI N timer usart servo Escribir en la via serie GPADC OxADCI OxADC2 Imprimir ADC s Ppm v lido Ppm_ valido 1 Imprimir PPM s ppm valido 0 Memoria Unidad de Medida Inercial IMU 32 Configuraci n de Tipo de Recepci n de PPM Configuraci n FUTABA Configuraci n JR flanco de bajada flanco de subida y N mero de canales seg n y N mero de canales seg n defines
67. ma main Lo primero que hace el program principal es inicializar los perif ricos del microprocesador Para ello llama a la funci n init devices que configura los puertos de entrada salida la velocidad de funcionamiento de la v a serie 38400 baudios y dem s perif ricos Despu s pasa a inicializar la tarjeta SD mediante la funci n initialize media que es parte de la librer a FlashFile y se explicar en el apartado 2 6 3 de este cap tulo Memoria Sistema de Almacenamiento de Datos SAD 62 Tras una serie de operaciones de comprobaci n del estado del sistema b squeda del ltimo archivo existente en la tarjeta SD y creaci n del nuevo archivo funci n fcreate de FlashFile se pasa a escribir los datos que entran por la v a serie a la tarjeta SD por medio del buffer circular ya explicado y la funci n de FlashFile fprintf Esta etapa termina accionando un interruptor y se pasa a cerrar el archivo mediante fflush y fclose que se explicar n en apartados sucesivos La Ilustraci n 23 Pseudoc digo de la funci n main muestra el pseudoc digo de lo que se acaba de explicar brevemente con palabras Inicializar perif ricos Parpadeo en los leds comprobaci n de comienzo de programa Inicializaci n de la SD Led verde ON Esperar mientras jumper escritura ON Filtro de rebotes Led rojo ON Buscar archivo libre en la SD Crear archivo siguiente Activar interrupciones de recepci n finalizada Escritura co
68. multiplexor porque es ah donde se realiza la separaci n de los canales de la sefial de la emisora antes de mandarlos demultiplexados a los distintos servos conectados al receptor En la Ilustraci n 38 Se ales robadas del Receptor se puede ver el pin del demultiplexor donde entra la sefial PPM de la que se ha estado hablando adem s se han marcado dos puntos V y V para colocar la alimentaci n del dispositivo Ilustraci n 38 Senales robadas del Receptor La SE AL robada se pasa conecta a la Placa de Control de la IMU en el conector marcado como P El siguiente fragmento es parte de una prueba que se hizo con el receptor conectado al sistema Ls GPADC 7FE0 7FE0 7FE0 5ESF 6CDE 5959 5112 47D6 GPPPM 2F1C 2F71 3BD7 3926 40CA 4052 GPADC 7FE0 7FE0 7FE0 5E60 6CE7 595A 510E 47D8 Memoria Receptor 84 GPPPM 2F1D 2F70 3BD8 3925 40CB 4051 GPADC 7FEO0 7FE0 7FE0 5E57 6CFA 595C 511A 47D5 GPPPM 2F1C 2F71 3BD7 3925 40CB 4053 GPADC 7FE0 7FE0 7FEO 5ESF 6CF0 595E 5116 47D9 GPPPM 2F1C 2F71 3BD7 3925 40CB 4053 GPADC 7FE0 7FE0 7FE0 5E54 6CF0 595B 5114 47D7 GPPPM 2F1C 2F71 3BD8 3924 40CB 4052 GPADC 7FE0 7FE0 7FE0 5E50 6CED 595E 511A 47D5 GPPPM 2F1C 2F71 3BD8 3925 40CB 4052 GPADC 7FE0 7FE0 7FE0 5E60 6CDF 595D 511F 47D8 GPPPM 2F1D 2F70 3BD7 3925 40CB 4052 Memoria Conclusiones Capitulo 6 CONCLUSIONES La Unidad de Medida inercial analizada y modificada en el Cap tulo 2 permite la adqu
69. n pulso per odo y T1 es la parte activa del pulso La relaci n entre ellas nos provee de una medida de la aceleraci n en n mero de g s en un eje seg n la Ecuaci n 1 Tl os A g n Ecuaci n 1 Medida de aceleraci n en g s seg n los anchos de pulso Donde k es un par metro que depende de la masa del modelo As su valor para los modelos ADXL202 y ADXL210 es 0 125g y 0 500g respectivamente Desafortunadamente la existencia de dos ejes de medida complica ligeramente la medida simult nea debido a que es el punto medio de los pulsos T1 el que coincide en vez del comienzo de los mismos Como se puede observar en la Ilustraci n 3 AEREO ra Tb Y Tc Td Ilustraci n 3 La manera de solucionar el problema es medir el pulso T1x Tp Ta primero y medir el pulso Tly Ta T despu s utilizando el tiempo de Memoria Unidad de Medida Inercial IMU microprocesador entre ambas tareas para realizar cualquier operaci n necesaria 1 2 2 Gir scopos Un gir scopo es un sensor capaz de medir la aceleraci n angular en torno a un eje Normalmente est n provistos de una entrada PWM utilizada como se al reloj para sus operaciones internas En cuanto a las salidas aparte de una se al por cada eje en el que midan la aceleraci n angular poseen una salida de temperatura interna y una referencia de voltaje en reposo Esto puede verse en la Ilustraci n 4 Vee ot Giroscopa Temperatu
70. nd reset the output value EJ 153 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial SIGNAL SIG OUTPUT COMPAREIA uintl6 t width uint8 t tmp servo if tmp SERVO MAX 2 goto no reset Sbi SERVO PORT SERVO A RESET tmp 1 no reset servo tmp width servo_widths tmp if width lt 1000ul CLOCK width 1000ul CLOCK if tmp 0 cbi SERVO PORT SERVO A OCR width SERVO A RESET Force a comparison to toggle the clock pin 154 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 155 TCCRIA 1 lt lt SERVO A FORCE High speed servo routine We want to toggle between on for servo hs time and off for HS SPEED either 275 Hz 3 65 ms for Futaba or 166 Hz 6 ms for JR x SIGNAL SIG OUTPUT COMPAREIB if hs state hs state 0 SERVO HS OCR HS SPEED servo hs else hs_state 1 SERVO_HS_OCR servo_hs Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 156 Makefile usr bin make Id Makefile v 2 13 2003 06 24 22 54 15 tramm Exp Rev2 control board and IMU makefile ARCH atmega32 atmegal63 base 0x3C00 atmegal63 clock 8 atmegal6 base 0x3C00 atmegal6 clock 16 atmega32 base 0x7C00 atmega32 clock 16 CC usr bin avr gcc mmcu ARCH LD CC SIZE avr size Memoria Anexo
71. nientemente mediante un filtro pasa baja para reducir el impacto del ruido sobre las medidas resultantes Las aplicaciones m s claras de este sistema son el control de vuelo y la estimaci n de estado de un cuerpo Adem s podr a aplicarse en sistemas de realidad virtual Las caracter sticas principales del mismo son e Tres gir scopos filtrados y amplificados e Tres aceler metros filtrados y amplificados Memoria Unidad de Medida Inercial IMU 17 10 canales para control de servos normales e 1 canal para control de servos r pidos e Comunicaci n serie RS 232 e Microprocesador ATMEL preprogramado Bootloader para programaci n por v a serie e Puerto de programaci n tipo SPI adecuado para programadores Atmel STK 200 y STK 500 Biblioteca de decodificaci n de PPM para JR o Futaba La IMU consta de tres placas interconectadas La primera o principal es la encargada del control de las otras dos y de los c lculos Las otras dos placas son las sensibles a los distintos ejes del espacio se tiene una que mide en los ejes XY y otra en el eje Z 2 2 Descripci n del hardware La placa principal es la PLACA DE CONTROL En la Ilustraci n 5 se puede ver la cara superior de la misma y en la Ilustraci n 6 la inferior Ilustraci n 5 Placa de Control Cara superior Memoria Unidad de Medida Inercial IMU Servo Servos normales r pido RS 232 PPM Alimentaci n Conexi n con Placa XY Ilustrac
72. nsferencia WCOL Se pone a l si SPDR se escribe durante una transferencia SPI2X Si est a 1 se dobla la frecuencia en Modo Maestro 94 Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 95 Registro de Datos Inicia la escritura cuando lo escribes y la actualizaci n del buffer si lo lees 7 z 5 4 3 2 1 0 MsSB 5 el LSB f SPDR A continuaci n se muestran ejemplos simples de inicializaci n transmisi n y recepci n de datos en c digo C void SPI MasterInit void MOSI y SCK como salidas El resto como entradas DDR SPI 1 lt lt DD_MOST 1 lt lt DD_SCK Activar interrupci n modo Maestro y frecuencia de reloj SPCR 1 lt lt SPE 1 lt lt MSTR 1 lt lt SPRO void SPI_MasterTransmit char cData Comienzo de transmisi n SPDR cData Esperar por POOLING while SPSR amp 1 lt lt SPIF void SPI SlaveInit void MISO como salida El resto como entradas DDR SPI 1 DD MISO Activar via SPI Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega SPCR 1 lt lt SPE char SPI_SlaveReceive void Esperar por POOLING while SPSR amp 1 lt lt SPIF Devolver dato return SPDR 4 4 USART Universal Transmiter Syncronous Asyncronous Reciever Es un recurso muy flexible de comunicaci n v a serie ya que permite comunicaci n s ncrona o asincrona multiples
73. nte la modificaci n de los filtros anti aliasing del disefio original de Rotomotion para tratar de reducir el citado ruido Dichos filtros son filtros anal gicos pasa baja situados a la salida de los sensores aceler metros y gir scopos y se muestran en la Ilustraci n 11 22 Memoria Unidad de Medida Inercial IMU Ilustraci n 11 Planos esquem ticos de las placas de medida de la IMU Se han marcado en rojo los filtros antialiasing La Ilustraci n 12 muestra los condensadores cambiados en cada una de las placas de medida para disminuir la frecuencia de corte de los filtros pasa baja antialiasing Los que est n en amarillo son los originales de la 23 Memoria Unidad de Medida Inercial IMU 24 placa los otros son de 220nF y 330nF rojo y verde respectivamente Ninguna resistencia ha sido cambiada Placa XY e no gcc 9 od a dute Placa Z 009999 Lt age an Condensadores 220nF 330nF Originales Ilustraci n 12 Modificaciones realizadas en los filtros antialiasing 3 Software de la Unidad de Medida Inercial 3 1 An lisis Como se ha comentado anteriormente la IMU tiene licencia GNU libre Aparejado a la gran ventaja que esto conlleva de facilidad de aprendizaje mediante el estudio directo de su hardware y software lleva la Memoria Unidad de Medida Inercial IMU enorme desventaja de una documentaci n en mucho
74. nterrupt Definition 000 RESET External Pin Power on Reset Brown out Reset Watchdog Reset and JTAG AVR Reset 002 INTO External Interrupt Request 0 006 INT2 External Interrupt Request 2 008 TIMER2 COMP Timer Counter2 Compare Match 6 soa TIMER2 OVF Timer Counter2 Overflow 00C TIMER1 CAPT Timer Counter1 Capture Event 8 00 TIMER COMPA Timer Counter Compare Match A ucc 010 TIMER1 COMPB Timer Counter1 Compare Match B 012 TIMER1 OVF Timer Counter1 Overflow 014 TIMEROCOMP Timer Countero Compare Match 016 TIMERO OVF Timer Counter0 Overflow 018 SPI STC Serial Transfer Complete USART RXC USART Rx Complete 01C USART UDRE USART Data Register Empty 01E USART TXC USART Tx Complete 020 ADC Conversion Complete 022 EE RDY EEPROM Ready 024 ANA COMP Analog Comparator 026 Two wire Serial Interface 028 SPM RDY Store Program Memory Ready La gesti n de las mismas necesita que Est n correctamente configurados los bits de Habilitaci n en ingl s Enable de la interrupci n concreta Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 106 Seescriba la funci n de interrupci n a la que se acudir cuando esta se produzca interrupt X void nombre void Aqui se escribe lo queremos que haga el programa cuando salte la interrupci n Donde X es el n mero de la interrupci n concreta en el vector de interrupciones y nombre es el nombre qu
75. ntinua en archivo Cerrar archivos Led rojo OFF Ilustraci n 23 Pseudoc digo de la funci n main Memoria Sistema de Almacenamiento de Datos SAD 63 Las configuraciones de perif ricos del microprocesador se explicar n en el Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega y para funci n de escritura continua en la SD se utiliza el buffer circular que ya se explic Las funciones de las que a continuaci n se incluye una breve descripci n y un sencillo ejemplo se encuentran en los ficheros sd cmd c y file sys c de FlashFile 2 6 3 Funci n initialize media de la biblioteca FlashFile La funci n initialize media no recibe ning n par metro y devuelve un car cter para comprobaci n de inicializaci n correcta Es necesario llamar a esta funci n para poder trabajar con la tarjeta de memoria SD o MMC unsigned char initialize media void Ejemplo sencillo de utilizaci n if initialize media Si la tarjeta se inicializa correctamente putsf OK imprimir OK Sino putsf ERROR imprimir ERROR 2 6 4 Funci n fcreate de la biblioteca FlashFile La funci n fcreate recibe el nombre del archivo a crear y devuelve un puntero a la direcci n donde ha sido creado Todo archivo abierto debe ser cerrado tras su uso FILE fcreate unsigned char NAME Memoria Sistema de Almacenamiento de Datos SAD 64 Ejemplo sencillo de utilizaci n strcpy filename T
76. o de Datos SAD utilizado para almacenar los datos lanzados por la anterior en un medio f sico como es una tarjeta comercial SD por lo tanto ambos sistemas crean en conjunto un Sistema de Adquisici n y Almacenamiento de Datos SAAD Memoria Introducci n La consecuci n de unos datos repetitivos y de calidad para facilitar una futura identificaci n de los par metros que caracterizan la respuesta din mica del helic ptero frente a cambios en las entradas rdenes del piloto y en las entradas externas por ejemplo r fagas de viento es el objetivo principal de la segunda parte del proyecto 11 Memoria Unidad de Medida Inercial IMU Cap tulo 2 UNIDAD DE MEDIDA INERCIAL IMU 1 Introducci n 1 1 Objetivo de la Unidad de Medida Inercial La determinaci n del estado de un cuerpo en 3D posici n y orientaci n espacial pasa por la medida y an lisis de una serie de variables inerciales a saber aceleraciones lineales y velocidades angulares en los tres ejes del espacio Tarea que se realiza mediante dos clases de sensores aceler metros y gir scopos En un primer momento se buscaron los sensores m s convenientes con el nimo de realizar esta unidad por nosotros mismos Vistas las dificultades que se planteaban se sigui una soluci n alternativa la busqueda de una placa que integrase estos dispositivos adem s del software que permita su utilizaci n Tras varios modelos encontrados que aunque de gran c
77. ols Settings Windows Help Almacenamiento de Datos SAD 71 Navigator 1 fineiude options n Sovan 9 rian em B Project blackbox 3 RS bc 5 Parte de c digo correspondiente al buffer circular TRE B finclude lt string h gt S Other Files 7 E options h B sdefine SMAX 320 9 define MINCHAR 30 10 11 char buffer SHAX p in p out 13 13 void error rebose void l MI 15 while 1 16 1 17 PORTA 0x0C 18 delay ms 500 19 20 a 22 interrupt 14 void vsget woid La rutina de interrupci n debe leer UDR para devolver el flag de interrupci n a 0 de lo contrario error 23 24 p intt UDR 2 if p_in gt buffer SMAX 26 p_in buffer 27 if p in p out 28 error rebose 29 3 Jl char migets char ps 3t 3 int i 34 char psc 8 i 0 E senis 38 while 1 3 if ip in p out 40 fpsht p_outtt 4 itt 42 43 4M if p out gt buffer SMAX 5 p out buffer 46 4 if i lt MINCHAR 48 continue 49 else 50 break 51 92 ps 0 53 return psc 54 5 ME SSO Messages 12 96 Insert Ilustraci n 27 Entorno de trabajo en CodeVision En la imagen anterior podemos distinguir varias partes La ventana principal Es la ventana en la que se tratan los archivos de c digo c y h El Navegador Situado a la izquierda muestra el rbol del proyecto Barras de herramientas Botones de acci n r pida M
78. ommand 3 ppm pulses collective index command 4 ppm pulses throttle index Determine who controls which servos const uint8 t manual roll manual const uint8 t manual pitch manual mode 1 const uint8 t manual yaw manual mode 1 const uint8 t manual coll manual mode lt 2 122 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial const uint8 t manual throttle manual mode 2 servo widths 1 manual throttle ppm pulses throttle index command 4 Mechanical mixing Drive the roll pitch and collective servo directly from the radio or computer generated signals servo widths 2 manual roll ppm pulses roll index command 0 Servo widths 3 manual pitch ppm pulses pitch index command 1 This channel is unused servo widths 5 ppm pulses manual index servo widths 6 manual coll ppm pulses collective index 123 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 124 command 3 Servo widths 4 manual yaw ppm pulses yaw index command 2 We should force normal mode on the gyro here servo widths 7 ppm pulses yaw gain index Extra servo servo widths 8 ppm pulses extra index This channel is unused servo widths 9 ppm pulses mode index Our high speed servo is a copy of our tail servo servo hs servo widt
79. opciones de compilaci n de la librer a se encuentran en ec i options h y permiten al usuario reducir el espacio que la librer a ocupa en la memoria flash del microprocesador ETIQUETA DESCRIPCI N USO Evita que el c digo se incluya varias options h En uso veces Activa las opciones de tiempo real _RTC_ON_ para impresi n de hora y fecha en los Desactivado archivos Permite actualizaci n simult nea de las tablas FAT mientras escribe Si _SECOND_FAT_ON_ Desactivado no se usa se evitan conflictos con el PC Permite el uso de sistema de archivos _FATI2 ON_ Activado FATI2 Elimina las funciones de escritura READ ONLY con la consecuente reducci n de Desactivado espacio Memoria Sistema de Almacenamiento de Datos SAD 58 Permite una salida por el puerto serie que se puede monitorizar con la DEBUG ON Desactivado HyperTerminal Tambi n permite usar read directory y GetVolID Solo una de las opciones puede estar _CVAVR_ activa y permite elegir entre los _CVAVR_ ICCAVR compiladores CodeVisionAVR y ImageCraftA VR define SD CS OFF PORTB 0x10 SD CS ON Definen el estado del pin selector de define SD CS ON SD CS OFF chip del SPI del Atmel AVR PORTE amp TOXER CS_DDR define CS DDR SETO DDRB 0x10 Longitud maxima de una cadena en FF MAX FPRINT 40 la funci n fprintf Longitud m xima de la cadena que FF PA
80. or 37 Memoria Sistema de Almacenamiento de Datos SAD Capitulo 3 SISTEMA DE ALMACENAMIENTO DE DATOS SAD 1 Introducci n Recordemos que uno de los principales objetivos de este proyecto es realizar un posterior an lisis de los datos proporcionados por la Unidad Inercial de Medida aceleraciones lineales y velocidades angulares para mediante un proceso inform tico determinar el Estado del helic ptero orientaci n espacial Por lo tanto una vez puesta en funcionamiento la IMU nace la necesidad de realizar un almacenamiento de las medidas provistas por esta Aunque el control del helic ptero no es objetivo de este proyecto necesita a parte de las medidas inerciales la posici n de los servos que controlan el gas del motor y la inclinaci n de las palas del rotor para que sea posible la identificaci n de par metros del modelo din mico Por tanto para facilitar futuras investigaciones se almacenar n tambi n mediante este sistema las sefiales de los servos Para afrontar esta tarea es necesario el dise o e implantaci n de un sistema electr nico consistente esencialmente en alg n tipo de memoria y en un microprocesador que controle la comunicaci n entre dicha memoria y la IMU 38 Memoria Sistema de Almacenamiento de Datos SAD La memoria seleccionada es del tipo SD por su gran capacidad de almacenamiento sus facilidades de ampliaci n y su reducido peso y tamafio hechos que se consideran una
81. os Varios archivos con diferentes prop sitos por ejemplo el bootloader y el lazo principal del sistema ARCHIVOS DESCRIPCI N C LCULOS Y CONTROL pem c Decodifica la se al PCM del pin ICP Ahrs h ahrs c y ahrs_data C lculo de posici n y orientaci n del helic ptero Versi n para micros con memoria limitada La actualizaci n de los ADC se realiza cada 0 3276 segundos Pid h y pid c Rutinas del control PID Proporcional Integral Diferencial Por ahora solamente PD Optimizado para microcontroladores con memoria limitada y sin unidad de coma flotante Manda por v a serie sus resultados bajo la etiqueta GPAUT ppm h C lculo de los anchos de las sefiales PPM y env o de los mismos a trav s del puerto serie Run ahrs c C lculo de orientaci n e inclinaci n del helic ptero para la rev 2 4 con la br jula tipo PNI de 3 ejes Toda la potencia de c lculo y toda la memoria se gasta para el procesamiento se lanzan por v a serie los resultados as que no se pueden utilizar servos etc Fast ahrs h y fast ahrs c C lculo de posici n y orientaci n del helic ptero Memoria Unidad de Medida Inercial IMU Servo h y servo c Control de los servos mediante el contador de 16 bits Se genera un ancho de pulso seg n el valor entre 0 y 65536 0 es todo a la izquierda pulso de 1 0ms y 65536 es todo a la derecha 2 0ms Imu h e imu c C di
82. otloader que se explica en el apartado de recursos 4 4 Kargador y bootloader 2 4 Etapa 4 Adaptaci n de la librer a a las necesidades del proyecto Lo primero es explicar las generalidades de manejo de la librer a FlashFile de Progressive Resources LLC 2 4 1 Descripci n FlashFile es un sistema de archivos para tarjetas de memoria Secure Digital SD o Multimedia Cards MMC que permite leer y escribir datos en formato FAT12 FAT16 usando microprocesadores del tipo Atmel AVR Una importante ventaja de trabajar en formato FAT12 FAT16 es que todo dato guardado en la tarjeta de memoria puede ser manejado directamente por un PC utilizando el lector correspondiente El conjunto total de funciones de dicha librer a ocupa aproximadamente 20kB de la memoria programable tipo Flash del microprocesador cuando se trabaja con los est ndares CodeVisionAVR y aproximadamente 30kB si se trabaja con ImageCraftAVR Para este proyecto se ha decidido trabajar con CodeVisionAVR porque el microprocesador elegido ATMega32 L ir a muy ajustado trabajando con ImageCraftAVR 55 Memoria Sistema de Almacenamiento de Datos SAD 2 4 2 Consideraciones de memoria Puesto que las tarjetas SD deben ser le das o escritas en grupos de 512B es necesario un buffer de memoria SRAM en el microprocesador de este tama o para tales acciones Adem s es necesario establecer un tama o del heap de 512B para el buffer 40B para la informaci n sobre la
83. quina inferior derecha se encuentra e El cajet n de identificaci n del plano e Una tabla con los diferentes contactos del z calo explicando su funci n identificando el material con que est n hechos y mostrando algunos comentarios e Un cuadro con los dos posibles modelos de fijaci n que se tienen disponibles En la esquina inferior izquierda se encuentra una tabla explicativa de los posibles estados de los contactos seg n se haya introducido la tarjeta o no y seg n est o no protegida contra escritura El resto de la parte inferior est ocupada por una serie de notas sobre el plano y su interpretaci n y el resto del plano contiene las diferentes vistas del z calo convenientemente acotadas Memoria 166 BBBSEOnS Mek Gare o nof neacaretiou WT aus Se E vug 2 besoizoo1 sasaa fomamor sor we rosiriom auorosma Pte A o at ee E E ey E MO PATTERNS IN THIS AM A OONTAGT w0 2 5 6 7 8 NACULM anea ms val i EI 2 z E le HOLO DOWN SECT A A POSITION SOALE Sit CALL TERMINALS INSIDE TYPE 3 Z CARD tock STAINLESS y m 1 corren attor Euer ar mem A Fr COPPER ALLOY inp min fao PIANO WIRE ZINC PLATING 0 0 15 TC8TAND OFF PROTECT switch 142 HOMMAL OFEN GLASS FILLED LCP COPPER ALLOY 5 515517 stot Joorrer accor ROS T AGT WRITE RITE ROTECT LOCK ROTECT UNLOCK COPPER ALLOY
84. r Automation Using a Low Cost Sensing System Australasian Conference on Robotics and Automation 2003 Buskey G Roberts J Corke P and Wyeth G Sensing and Control for a Small Size Helicopter International Symposium on Experimental Robotics Italy 2002 Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 88 ANEXO I GU A B SICA SOBRE MANEJO DE AVR ATMEL ATMEGA Esta gu a pretende explicar el manejo b sico de los microprocesadores utilizados en el desarrollo del proyecto En los ejemplos y para los valores concretos se utilizar como referencia el ATMEL AtMega32 L por lo tanto es posible que en algunos puntos si se utiliza otro microprocesador de la familia AtMega 163 AtMega 8515 etc los ejemplos no sean v lidos 1 Caracter sticas generales La familia AtMega est compuesta por microprocesadores con registros y ALU de 8 bits e Pensados como microprocesadores de prop sito general e Disponen de memorias RAM EEPROM y Flash internas e Integran en el chip un amplio abanico de perif ricos o Controladores de comunicaci n serie SPI y USART o Varios puertos paralelo o Varios Timers Counters 8 y 16 bits o Comparador anal gico o Conversor Anal gico Digital ADC Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 89 o Moduladores PWM para electr nica de potencia 2 Programaci n Los AtMegas se pueden programar tanto en lenguaje ensamblador como en len
85. ra m Vret Ilustraci n 4 Entradas y salidas de un gir scopo Existen dos clases ampliamente utilizadas en helic pteros RC Radio Control piezo el ctricos y mec nicos Los primeros suelen ser de bajo consumo y de peque o tama o y peso pero la m xima aceleraci n angular que miden es baja y son bastante sensibles a la temperatura En cambio los mec nicos son m s robustos ante cambios de temperatura pero su consumo peso y tamafio es mayor El proceso para obtener un valor del ngulo girado a partir de la medida del gir scopo pasa por una doble integraci n de la aceleraci n angular corregida con la temperatura 15 Memoria Unidad de Medida Inercial IMU Dado que las sefiales se presentan con ruido para obtener una buena precisi n se hace necesario el uso de m todos sofisticados de filtrado por ejemplo filtro de Kalman 2 Hardware de la Unidad de Medida Inercial 2 1 Caracter sticas principales A continuaci n se muestra una descripci n de la Unidad de Medida Inercial el proceso de montaje necesario y un an lisis a grosso modo de los diferentes componentes de la misma La informaci n ha sido extra da de 1 Este sistema es una Unidad de Medida Inercial de seis grados de libertad en su revisi n 2 4 disefiada por Rotomotion LLC que mide la aceleraci n en los ejes X Y Z y la rotaci n en torno a estos Las sefiales anal gicas provenientes de los sensores son amplificadas y filtradas conve
86. re en la pantalla del ordenador al ejecutar Kargador e Programa en ensamblador que se instala en el microprocesador En l neas generales el bootloader sigue el siguiente proceso Arranque del micro Salto a bootloader Esperando rdenes del PC C Programa Pral Ilustraci n 25 Diagrama de flujo del Bootloader Mientras el bootloader est a la espera de rdenes Modo Escucha En la ventana del ordenador Ilustraci n 26 se eligen los siguientes par metros e Microcontrolador a programar e Puerto para la programaci n Memoria Sistema de Almacenamiento de Datos SAD 70 e Pinchar en Load File y seleccionar el archivo compilado a cargar en el micro e Pinchar en Program y esperar 2 Kargador Mega32 fi Load File Program Ilustraci n 26 Ventana principal de Kargador 4 5 FlashFile Es una librer a de funciones adquirida en Progresive Resources LLC para el tratamiento de ficheros y archivos en tarjetas SD Su utilizaci n ha sido explicada ya en los apartados anteriores 4 6 CodeVision CodeVision es un compilador de C para desarrollo de ejecutables para microprocesadores de la familia AVR El entorno de trabajo se muestra en la Ilustraci n 27 Memoria Sistema de CondeVisionAVIL blackbox pri Gn opumentsandiserinpsWipuelWisdopumentosWGATIPROYEGTOYorpyecto finde carreralsd softwarelblackboxcy Mai me Fie Edit Project To
87. rs they will never be reset t16 t ppm pulses PPM MAX PULSES t8 t ppm valid Pulse width is computed as the difference between now and the previous pulse If no pulse has been received between then and now the time of the last pulse will be equal to the last pulse we measured Unfortunately the Input Capture Flag ICF1 will not be set since the interrupt routine disables it Sync pulses are timed with Timer2 which runs at C1k 1024 This is slow enough at both 4 and 8 Mhz to measure the lengthy 10ms or longer pulse Otherwise compute the pulse width with the 16 bit timerl push the pulse width onto the stack and increment the pulse counter until we have received eight pulses SIGNAL SIG INPUT CAPTURE 142 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial static uintl16 t last uintl6 t this uintl6 t width static uint8 t state static uint8 t sync start Also sync width this ICRI width this last last this if state uint8_t end inp TCNT2 uint8_t diff end sync start sync start end Waiting for a sync pulse at least 10 ms long 10000 us CLOCK 1024 gt about 9 CLOCK ticks If we use C1k 256 then it overflows too quickly if diff 4 CLOCK 143 Memoria Anexo III C digo modificado de la Unidad de Medida Inercial 144 state 1 sync start diff return if state lt PPM MAX PUL
88. rtir que el pre escalado es el mismo para los tres Timers por lo tanto si lo fijas para uno queda fijado para los dem s Las posibilidades de pre escalado son las siguientes o e 0 re aoe sauce tinara soo Estes clk No prescaling MAA Clk 8 From prescaler te te ae Clk 0 64 From prescaler BESSEREN Clk 0 256 From prescaler AAA Clkjjo 1024 From prescaler 1 eternal tak sore on TO pin Co aig adge 1 1 eral tk sore on TO pin Clk on ng ede Registro de Conteo El que lleva la cuenta 7 8 5 3 2 1 0 TCNTO 7 0 TCNTO Registro de Valor TOP Con el que se compara 7 8 5 4 E 2 1 0 OCRO 7 0 OCRO Registro de Habilitaci n de Interrupciones 7T 5 3 2 1 0 7 8 5 B Cone toe neer Tene ocer Tort eoe Toco tisk OCIEO y TOIEO A 1 habilitan la interrupci n por Comparacion y Rebose respectivamente Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega 103 Registro de Banderas 7 8 5 4 3 2 1 2 Loea tove_ ler ocria ocris rovi ocro row tir OCFO0 y TOCO Se ponen a 1 si se produce una Comparaci n o un Rebose respectivamente Se pueden usar como generadores de interrupci n 4 6 PWM Los PWM son una utilidad del TimerO Tienen dos formas de operaci n Fast PWM y Phase Correct PWM La primera Fast PWM es muy apropiada para regulaci n de potencia y rectificaci n dada su gran frecuenc
89. rto B como MOSI Master Out 1 PBS MOSI Slave IN del SPI Funci n especial del puerto B como MISO Master In 2 PB6 MISO Slave Out del SPI 3 PB7 SCK Funci n especial del puerto B como se al de reloj del SPI 39 6 18 28 GND Puesta a tierra 38 5 17 VCC Tensi n de alimentaci n 3 3V 27 AVCC Tensi n de alimentaci n del puerto A y del conversor A D 29 AREF Referencia anal gica del conversor A D 7 XTAL2 Salida del amplificador para el oscilador 8 XTALI Entrada del circuito de reloj 4 RESET Entrada de reset exterior Memoria Sistema de Almacenamiento de Datos SAD MAX 3223 Entrada de habilitaci n enable Siempre encendido 1 EN GND 2 4 Cl Cl Condensador de trabajo 1 uF 3 7 V V Alimentacion y referencia 5 6 C2 C2 Condensador de trabajo 1 uF Los datos que han sido mandados por el micro se reciben TUN en TIIN el MAX 3223 adapta los niveles l gicos a los de 13 17 TIOUT la v a serie tradicional y salen por TIOUT hacia el receptor Los datos que han sido mandados por v a serie se reciben RIOUT 16 15 en RIIN el MAX 3223 adapta los niveles l gicos a 3 3V RIIN y salen por RIOUT hacia el receptor del micro No se utiliza pero para que no haya problemas de pines 9 R2IN flotantes se ha colocado a GND No se utiliza pero para que no haya problemas de pines 12 T2IN flotantes se ha colocado a GND FORCEON 14 20 FORCEOFF Siempre encendido VCC
90. s aviones pero en pa ales si hablamos de helic pteros El siguiente paso a dar en el desarrollo de la aviaci n es la creaci n de sistemas de control que conviertan los helic pteros en Veh culos A reos Aut nomos La tecnolog a y los conocimientos necesarios para este prop sito ya est n disponibles y la investigaci n en este campo viene de la mano del ej rcito americano A parte varias universidades en el mundo est n desarrollando proyectos para crear estos sistemas aplic ndolos a helic pteros a escala algunos ejemplos posibles son el MIT Massachussets Institute of Technology y ahora el IIT Instituto de Investigaci n Tecnol gica de la Universidad Pontificia de Comillas que empieza su andadura en el campo de los Helic pteros No Tripulados con este proyecto que ser la base de futuros desarrollos 2 Motivaci n del proyecto El proyecto Primeras etapas para el desarrollo de un estabilizador de vuelo para helic pteros a escala surgi al principio con la intenci n de la construcci n de Veh culo A reo Aut nomo en adelante VAA Para llegar a la exitosa consecuci n de este amplio requisito hubiera sido necesario adem s de un equipo humano m s amplio que el que participante en esta aventura un periodo de tiempo mucho m s dilatado y unos medios en absoluto justificables para un Proyecto Fin de Carrera en adelante PFC Por estos motivos se redujo la pretensi n inicial de crear un VAA en su Memoria Introd
91. s puntos deficiente o insuficiente Por lo tanto un paso previo a la utilizaci n de esta unidad es l gicamente el estudio y compresi n del software que maneja los recursos de la misma Aprovechando este estudio se generar una documentaci n m s detallada en los puntos de mayor importancia para este proyecto y una documentaci n b sica que se podr utilizar para las futuras ampliaciones del mismo Toda la documentaci n utilizada para este apartado se encuentra en 3 Adem s el c digo que se describe en la Tabla 1 se entrega en un CD al director del proyecto El siguiente cuadro muestra los archivos de c digo que se incluyen en la distribuci n de la IMU rev2 4 ordenados por categor as y acompa ados de una breve explicaci n de su funci n Las categor as en las que se ha clasificado son las cinco siguientes e C lculos y control Archivos encargados de alguna tarea de c lculo o incluso del control del helic ptero e Control de subsistemas de la IMU Archivos para el control de los diferentes sensores adicionales que se pueden conectar a la IMU como un tac metro o una br jula e Control de perif ricos del microprocesador y librer as de apoyo Son archivos de c digo para el control de los perif ricos del microprocesador optimizados para las necesidades del proyecto e Configuraci n Archivos que contienen parte de la configuraci n general del sistema 25 Memoria Unidad de Medida Inercial IMU 26 e Otr
92. straci n 33 Cable Serie del SAD Los cables de alimentaci n salen del interruptor de alimentaci n y deben conectarse en La bater a La Placa de Control de la IMU Ilustraci n 34 EI SAD Ilustraci n 35 Memoria Integraci n de IMU y SAD 80 Ilustraci n 34 Alimentaci n IMU Ilustraci n 35 Alimentaci n SAD Paso 6 Poner la tapa y atornillar 7 Ejes Los ejes del conjunto as obtenido quedan como se indican en la Ilustraci n 36 Los ejes del SAAD Memoria Integraci n de IMU y SAD Ilustraci n 36 Los ejes del SAAD 81 Memoria Receptor 82 Capitulo 5 RECEPTOR La IMU tiene la posibilidad de lanzar por v a serie adem s de las medidas de los sensores una cadena con los PPM recibidos de la emisora Esto es muy til porque en futuros an lisis de datos para la realizaci n de un Modelo Din mico del aparato ser necesario relacionar Entradas y Salidas del Sistema Las salidas son las medidas de los sensores y las entradas los PPM As en este cap tulo se explica como se ha trucado un receptor comercial para robar su sefial PPM y poder almacenarla en el SAD El receptor trucado es un Micro Receptor ACT de 6 canales que se muestra en la Ilustraci n 37 Receptor Contactos para servas Antena Demultiplexor Cara inferior Ilustraci n 37 Receptor Memoria Receptor 83 Lo necesario para robar la se al del tren de pulsos PPM es encontrar un de
93. tal para el comienzo de la segunda obteniendo un conocimiento m s amplio sobre el tema del proyecto La primera parte de la que soy autor oficial es la que se expondr en este documento Todas las fases tienen una estructura m s o menos t pica e B squeda de informaci n La mayor parte de la documentaci n manuales de componentes informaci n sobre la IMU que se compr para esta parte del proyecto ha sido extra da de Internet e Dise o o adaptaci n de los sistemas e Montaje e Programaci n en C e Pruebas de funcionamiento de los sistemas antes de que puedan ser utilizados en el helic ptero Primero comprobaci n del funcionamiento en tierra y luego en el aire Memoria Introducci n 10 5 Visi n general Los datos de la SD se An lisis descargan a un PC de los Aceleraciones mediante un lecto SAAMAA lineales datos gt IMU Aceler metros Gir scopos Velocidades angulares Ilustraci n 1 Visi n general del proyecto Observando la Ilustraci n 1 se puede comprender de un solo vistazo las intenciones de esta parte del proyecto Se tiene un helic ptero a escala en el aire tripulado desde tierra en el que se ha dispuesto un equipo electr nico compuesto por 1 Una Unidad de Medida Inercial IMU destinada a seguir el movimiento del mismo por medio de tres aceler metros y tres gir scopos 2 Un Sistema de Almacenamient
94. tivo e Para continuar mandando datos el maestro coloca otro en SPDR mientras que si se quiere dar por concluida la comunicaci n el maestro re sincroniza con el esclavo poniendo a uno el pin SS Nota importante Todo dato a transmitir no puede ser escrito al SPDR antes de que un ciclo de intercambio haya sido concluido mientras que todo dato recibido debe ser le do antes de que el siguiente entre MOSI MISO SCK y SS se configuran seg n la siguiente tabla Pin Direction Master SPI Direction Slave SPI MOSI User Defined Input MISO Input User Defined SCK User Defined Input SS User Defined Input Los registros necesarios para la configuraci n y funcionamiento del SPI son Registro de Control 4 3 2 1 0 7 6 5 4 2 sre ere bono ES TR CPOL CPHA _sPRI_ SPCR Memoria Anexo I Gu a b sica sobre manejo de AVR ATMEL Atmega SPIE Para habilitar interrupciones a 1 SPE Para habilitar dispositivo a 1 DORD 1 si LSB se transmite primero y a 0 si MSB se transmite primero MSTR 1 si Maestro SPR1 0 Configura la frecuencia del dispositivo segun Table 58 Relationship Between SCK and the Oscillator Frequency HA e fosc 16 osc 0 fosc 64 f 128 HERE A A ll heroe 2 Registro de Estado ri 6 5 4 3 2 1 0 ser woo _ seax sese SPIF Flag de interrupci n Se pone a 1 si se ha completado una tra
95. tor tal y como se cre con el editor de Eagle a partir de las 45 Memoria Sistema de Almacenamiento de Datos SAD caracter sticas dimensionales y funcionales del conector para SD extra das de la hoja de caracter sticas que se encuentra en el Anexo IV Caracter sticas del conector z calo para tarjetas SD Y y m m C C3 Ilustraci n 16 Diagramas dimensional y funcional del z calo para tarjetas SD Las dimensiones reales se muestran en el Anexo IV Caracter sticas del conector z calo para tarjetas SD Los contactos designados como PIN1 a PIN9 son los pines de informaci n est ndar de cualquier tarjeta de memoria tipo SD cuyas funciones se explicar n m s adelante Los contactos designados como DETECTI NI Y DETECTION son pines para la detecci n de la tarjeta SD en el z calo y los designados como PROTECTIONI y PROTECTION2 son pines que proporcionar informaci n sobre la protecci n contra escritura de la tarjeta Para m s informaci n consultar el Anexo III 2 2 3 Conexionado el ctrico Una vez terminada la introducci n de todos los componentes en el esquema se debe realizar la conexi n el ctrica necesaria para que el sistema 46 Memoria Sistema de Almacenamiento de Datos SAD 47 funcione como se desea Queda as finalizado el Esquema de la placa La Ilustraci n 17 Esquema de conexionado muestra dicho esquema sch
96. ucci n totalidad para hacer converger los objetivos hacia tareas de creaci n de una infraestructura que sirviera de base para la continuidad futura del objetivo principal Ajustando el tiempo los recursos y el equipo humano disponible a dichas tareas as el t tulo del Proyecto global queda como se ha mencionado anteriormente y se divide en dos partes bien diferenciadas una para cada uno de los proyectandos implicados e Sistema de Adquisici n y Almacenamiento de Datos e An lisis de los Datos y Estimaci n del Estado Las aplicaciones de un sistema como el comentado ser n tan variadas como variadas sean las situaciones en las que se pueda aplicar una acci n a rea desde el reconocimiento de una zona en b squeda de algo concreto bancales de malas hierbas por ejemplo hasta la supervisi n de instalaciones industriales 3 Objetivos Con todo lo expuesto anteriormente podr amos resumir los objetivos del proyecto como se hace a continuaci n El objetivo general del proyecto es establecer la infraestructura necesaria para facilitar futuros estudios sobre la identificaci n de par metros y el control de un helic ptero a escala El objetivo general de esta parte es dise ar y montar un Sistema de Adquisici n y Almacenamiento de Datos que sirva de recurso para la segunda parte del proyecto lo que conlleva los siguientes objetivos parciales Memoria Introducci n e Medir con la mayor precisi n posible las ace
97. ue o parpadeo aparece en los leds dando paso a la inicializaci n de la tarjeta SD 5 Mientras se inicializa la tarjeta SD continua ese parpadeo y si la inicializaci n es correcta el led verde se queda encendido y el rojo apagado En caso contrario los leds se quedan encendidos y se debe comprobar por este orden si a La tarjeta SD est debidamente introducida en la ranura correspondiente en nuestro caso marcada como SD b La tarjeta es la adecuada capacidad menor de 64 MB c La tarjeta esta correctamente formateada en nuestro caso FAT12 6 Poner en REC el interruptor de escritura con lo que se empieza a guardar datos en la SD 7 El led rojo se enciende cuando las operaciones de escritura se est n llevando a cabo 8 Cuando el usuario quiera dar por terminada la sesi n de escritura de datos tan solo tendr que colocar el interruptor en la posici n STOP con lo que la luz roja se apagar Manual de usuario 175 9 Sise quiere comenzar otro archivo seguir los pasos 6 7 y 8 10 Repetir el paso 9 tantas veces como archivos de datos quieran hacer 11 Para apagar el sistema llevar el interruptor de alimentaci n a su posici n OFF 12 Ahora la SD puede extraerse de su ranura y manipular sus archivos con un lector comercial En nuestro caso los archivos vienen nombrados como vuelol txt vuelo2 txt etc si esta nomenclatura se quisiera cambiar se deber a modificar en la funci n main la declaraci n sNomb
98. ventaja vital en futuras aplicaciones Tras la elecci n del tipo de memoria descubrimos una nueva e inesperada ventaja que nos conduce a tomar el microprocesador ATMega 32L de la casa ATMEL como cerebro de la tarjeta SAD puesto que la empresa Progressive Resources LLC vende v a Internet una librer a llamada FlashFile para el manejo de tarjetas SD a trav s de cualquiera de los microprocesadores de la gama ATMega la elecci n el modelo 32L se explicar en el apartado 2 1 de este documento Etapa 1 De la idea a los componentes 2 Etapas de desarrollo En este apartado se va a explicar el proceso de desarrollo que se ha seguido para la consecuci n del SAD partiendo de la simple necesidad de almacenamiento de datos y acabando con la materializaci n de la idea en una placa perfectamente operativa pasando por la soluci n adoptada para cada uno de los problemas que han ido surgiendo a lo largo del camino Se ha realizado una divisi n en etapas con la intenci n de facilitar la toma de una idea general sobre el desarrollo del SAD Estas etapas no son totalmente cronol gicas pero la estructura que se les ha dado facilita la comprensi n de las mismas Las etapas de desarrollo que tienen que ver con la programaci n de la IMU y su funcionamiento se han explicado en Fase I Unidad de Medida 39 Memoria Sistema de Almacenamiento de Datos SAD Inercial IMU de esta memoria por considerar que ese era el conte
99. xto apropiado para un adecuado entendimiento de dichas etapas 2 1 Etapa 1 De la idea hasta los componentes Antes de empezar es conveniente indicar que los helic pteros a escala con motor de explosi n son sistemas con gran vibraci n por tanto durante todo el disefio se tendr muy en cuenta est hecho para en la medida de lo posible independizar el sistema de estos problemas Para ello se utilizar n medidas tales como condensadores de desacoplo o puntos de soldadura fuertes y realizados con extremo cuidado En la Ilustraci n 15 se esquematiza el flujo de informaci n entre la Unidad Inercial y la memoria tipo SD mediante el ATMega Los datos debidamente empaquetados parten por v a serie desde la IMU hacia el microprocesador el cual por medio de la v a SPI los guarda en la memoria SD Memo SD Ilustraci n 15 Esquema b sico de comunicaci n IMU SAD De los posibles micros dentro de la familia ATMega se escogi el ATMega 32L El 32 indica la capacidad en kilobytes de almacenamiento 40 Memoria Sistema de Almacenamiento de Datos SAD en memoria no vol til tipo flash es decir aquella que sirve para el guardado de programas La letra L significa Low Power Consumption Bajo consumo de energ a Las razones de dicha elecci n son dos la primera que se consider adecuada la relaci n capacidad precio para albergar la librer a de manejo de la SD y la segunda que debido a la escasa capa

Download Pdf Manuals

image

Related Search

Related Contents

3M Graphic Film Controltac Piezo Inkjet Ink Series 4400    Macrom M-HPB30.B User manual  KOHLER K-149-3-BN Installation Guide  User Manual - Pro Lighting  iiyama ProLite PB1704S-B1  SIX HUNDRED V2  372-135 1 - NECライティング  Samsung 14-tommer 7-serien CHRONOS Pro NP700Z3CH User Manual (Windows 8)  data sheet dtr 94160ta hd  

Copyright © All rights reserved.
Failed to retrieve file