Sie sind auf Seite 1von 19

UNIVERSIDAD NACIONAL

JORGE BASADRE
GROHMANN
ESCUELA DE FISICA APLICADA
TEMA:

APLICACIONES DE CONTROL DIGITAL CON ARDUINO


SISTEMAS ROBOTICOS CON ARDUINO
VICION COMPUTACIONAL CON ARDUINO
SISTEMAS MECATRONICOS ESPACIALES CON ARDUINO
PRESENTADO POR: GUSTAVO LEYVA ESPEZUA

17/12/2014
ELECTRONICA
peru

INTRODUCCION
Arduino es una plataforma de hardware libre, basada en una placa con un micro controlador
y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos
multidisciplinares.
El hardware consiste en una placa con un micro controlador Atmel AVR y puertos de
entrada/salida.4 El micro controlador ms usado son el Atmega168, Atmega328,
Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de
mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que
implementa el lenguaje de programacin Processing/Wiring y el cargador de arranque que
es ejecutado en la placa.
1. CARACTERSTICAS GENERALES ARDUINO DUE
Arduino DUE es la primer placa electrnica basada en un micro controlador de 32 bits, con
la cual mejora las capacidades de las versiones antecesoras tales como el modelo UNO y el
modelo Leonardo, las cuales trabajan a 8 bits. Gracias al micro controlador de la compaa
Atmel (ATSM3X8E), se pueden disponer de entradas y salidas analgicas con resolucin
de 12 bits; la tasa de muestreo con la que trabaja Arduino DUE es de hasta 1000 ksps
(kilomuestras por segundo). En comparacin con Arduino UNO que trabaja a una tasa de
muestreo de 15 ksps.
Arduino DUE enumera los pines del 0 53, los cuales pueden ser utilizados como entradas
o salidas digitales. Todas las entradas/salidas trabajan a 3.3V. Cada pin puede suministrar
(soportar) una corriente de 3mA 15 mA dependiendo del PIN, o recibir de 6 mA 9 mA,
dependiendo del PIN. Estos pines tambin poseen una resistencia de pull-down desactivada
por defecto de 100 K. Adems, algunos de estos pines tienen funciones especficas.
2. ESPECIFICACIONES:
Micro controlador ATSM3X8E.
Velocidad del reloj 84 MHz.
Voltaje de operacin 3.3 Volts.
Voltaje de entrada (jack DC) 7 12 Volts.
Nucleo de 32 bits.
54 Entradas/Salidas digitales.
12 Entradas analgicas.
12 Salidas tipo PWM.
Corriente maxima en E/S 130mA.
2 Salidas analgicas (DAC).
4 Puertos UART.
512 KB de Memoria flash para codigo.
2 Puertos micro-USB.
Arduino DUE tiene integrados dos botones erase y reset. Con el botn de erase es
posible borrar la memoria Flash del microcontrolador, basta con mantener presionado este
botn durante algunos segundos para eliminar el programa cargado en el microcontrolador

y el botn de reset permite reiniciar un programa que se ejecuta en la plataforma de


Arduino. Tambin posee dos puertos micro-USB (Programming y Native), de los
cuales el puerto Programming generalmente se utiliza para programacin y
comunicacin, y el puerto Native actuar como Host USB, permitiendo conectar
perifricos externos USB, tales como mouse, teclado o Shields, que agregan nuevas
funciones a Arduino.
MATERIAL DE APOYO:
A continuacin se listan las direcciones electrnicas de donde se pueden descargar de
manera gratuita los diversos programas y manuales necesarios para la programacin de
Arduino DUE, as como referencias del lenguaje de programacin y caractersticas del
micro controlador utilizado en la kit Arduino DUE.
Pgina Oficial de Arduino
http://www.arduino.cc/
Descarga de Driver y Software
www.arduino.cc/downloads
Caractersticas principales Arduino DUE
http://arduino.cc/en/Main/arduinoBoardDue
Diagrama esquemtico Arduino Due (pcb)
http://arduino.cc/en/Main/arduinoBoardDue
Pgina Oficial de Programacin Processing
http://processing.org/
PRCTICA # 1: SALIDAS DIGITALES.
Objetivo: Configurar pines de Arduino DUE como salidas digitales.
Material

Actividades
Realizar las conexiones mostradas en figura 2.1.
Desarrollar un programa, para activar 3 salidas digitales, las cuales se indicaran que estn
activas energizando los Leds.

Descripcin del programa:


El programa consiste en activar tres salidas digitales de Arduino DUE, para esto, se definen
3 pines como salidas digitales (pines 4, 16 y 26). Para el desarrollo de esta prctica, se
definen los pines mencionados anteriormente, aunque podemos utilizar cualquiera de los
pines con etiqueta 0 53.
Programa
/*PROGRAMA PARA ACTIVAR PINES 6, 16 Y 26 COMO SALIDAS DIGITALES*/
int led1 = 4;
int led2 = 16; // Se definen nombre de las constantes.
int led3 = 26;
// Configuracin de los pines.
void setup() {
pinMode(led1, OUTPUT); // Se declaran los pines como salida.
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() { // Lazo que se ejecutar continuamente.
digitalWrite(led1, HIGH); // Escribe "1" lgico a cada uno de los led's.
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
}

PRCTICA # 2: EL TEMPORIZADOR
Objetivo: Implementar la funcin delay como temporizador con retardo a la
conexin/desconexin.
Material.

Actividades
Utilizando el diagrama de conexiones de la prctica #1 (Figura 2.1), realizar una
secuencia en la cual los led's se activen/desactiven consecutivamente cada 500 ms.
Descripcin del programa Teniendo como base el sketch anterior, donde se declaran
algunos pines como salida digital, se le agregar la funcin delay, la cual nos permite
agregar tiempos muertos.
PRCTICA #7: MODULACIN DE ANCHO DE PULSO (PWM)
OBJETIVO: Variar la velocidad de un motor de CD de 5 Volts a travs de una salida
PWM de Arduino DUE.
Material
1 potencimetro de 1k (tipo: through hole o pcb).
1 transistor NPN 2N3904
1 diodo de conmutacin rpida 1N4001
1 motor de CD de 5Volts.
Actividades
Realizar las conexiones mostradas en la figura 2.11.
Implementar un programa en el cual a partir del nivel de entrada analgica (0 a
3.3V) se pueda variar la velocidad de un motor de CD de 5 Volts.

Descripcin del programa:

El programa lee una entrada analgica en el pin A0, la cual est variando su nivel de voltaje
a travs de un potencimetro en un rango de 0 a 3.3 Volts. Posteriormente se enva a un pin
del tipo PWM (pin 3) de Arduino DUE, para esta ser aplicada a la base de un transistor que
nos permitir utilizar la seal para la variacin de velocidad de un motor de CD de 5 volts.
Programa:
int In = A0; // Entrada A0
int valor = 0; // Valor comienza en 0.
int s = 3; // Pin de salida.
void setup() {
pinMode(s, OUTPUT); // variable s como salida
}
void loop() {
valor = analogRead(In); // Lee A0 (resolucin de 10 bits.
analogWrite(s,valor/4); // Escribe en s resolucin de 8 bits.
}

2.- sistemas robticos con arduino:


Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador
y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos
multidisciplinares.2 3
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de
entrada/salida.4 Los microcontroladores ms usados son el Atmega168, Atmega328,
Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de
mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que
implementa el lenguaje de programacin Processing/Wiring y el cargador de arranque que
es ejecutado en la placa.

Desde octubre de 2012, Arduino se usa tambin con micro controladoras CortexM3 de
ARM de 32 bits,5 que coexistirn con las ms limitadas, pero tambin econmicas AVR de
8 bits. ARM y AVR no son plataformas compatibles a nivel binario, pero se pueden
programar con el mismo IDE de Arduino y hacerse programas que compilen sin cambios en
las dos plataformas. Eso s, las micro controladoras CortexM3 usan 3,3V, a diferencia de la
mayora de las placas con AVR que generalmente usan 5V. Sin embargo ya anteriormente
se lanzaron placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen
compatibles de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje.

No existe una definicin nica y concreta sobre lo que es un robot. El trmino se aplica a
una gran variedad de sistemas, desde los manipuladores industriales ms simples, a robots
inteligentes capaces de adaptarse a distintos entornos. Existen robots fijos, mviles,
UAVs, robots teleoperados, autnomos, poliarticulados, zoomrficos, antropomrficos, etc.
Una definicin bastante general, no obstante, podra ser la siguiente: un robot es una
entidad que obtiene informacin del entorno a travs de sensores, la procesa mediante un
sistema de computacin, y ejerce una accin sobre ese entorno por medio de actuadores. Un
robot es, entonces, y en principio, un ejemplo muy claro de lo que venimos hablando, un
sistema de computacin dedicado, fuera de una computadora. Todos los sistemas que vimos
en el apartado anterior tienen, de alguna manera, entradas, procesador y salidas, pero en el
caso del robot, las entradas y salidas provienen del mundo fsico directamente, a travs de
sensores que miden distancia, luz, sonido, etc., motores que hacen mover brazos o provocan
desplazamiento, etc., con los cuales el robot interacta con su entorno. A su vez, como
vimos oportunamente, estos elementos y tcnicas se utilizan tambin en el diseo de cosas
que no son necesariamente robots.
Volviendo a nuestro curso, es evidente entonces que elegimos la robtica por ser el ejemplo
ms completo de sistema computacional fsico -o como quieran llamarlo-, y adems,
porque nos encantan los robots. Cabe notar, de todas maneras, que la robtica abarca ms
elementos que los que nosotros abordamos en el curso: nuestro programa no habla de
mecnica ni de inteligencia artificial, por ejemplo, ya que se trata de un curso introductorio.
Ejemplo de Aplicacin
Crear un programa que controle el parpadeo de un led, con las funcin es anteriormente
explicadas, y que se pueda variar el tiempo de estado alto y el tiempo de estado bajo del
mismo.
Utilizar la instruccin delay (ms), que hace que el programa se pare y espere el tiempo
seleccionado en milisegundos.
Solucin:
Podemos asignar la funcin que encienda y apague a cualquier pin digital, exceptuando el 0
y 1, como comentamos anteriormente, por lo tanto si asignamos el pin 13 como el
responsable de esta funcin, el circuito a montar es muy sencillo:

Practica 2: Coche Digital


6.1 Objetivos

6.2 Material empleado

6.3 Componentes del Coche Digital


En este apartado vamos a describir cada uno de los elementos que constituye nuestro coche.
Empezamos describiendo los dos motores elctricos de 1,6W con reductora como los de la
siguiente figura:

Estos sern los encargados de proporcionar la potencia necesaria a las ruedas para poder
realizar el desplazamiento del coche. Estos motores al demandar una potencia que el
Arduino es incapaz de dar debemos de conectar entre ambos una etapa de potencia
constituida por un Controlador dual de puente completo (L298N) y dos puentes de diodos.
La etapa de potencia quedara como mostramos en la siguiente figura:

Como crear una librera propia para Arduino.


Para comenzar esta prctica necesitamos crear una librera propia sobre las funciones que
utilizaremos para los movimientos del coche. Para ello a continuacin iremos explicando
paso a paso cmo realizar esta librera.
Para crear una librera se necesita al menos dos archivos: un archivo de cabecera (w / con
extensin. H) y el cdigo fuente (w / extensin. cpp). El archivo de cabecera contiene
definiciones para la librera: bsicamente un listado de todo lo que hay dentro, mientras que
el archivo del cdigo fuente tiene el cdigo real. Vamos a llamar a nuestra librera "Coche
Digital", por lo que nuestro archivo de cabecera ser CocheDigital.h. Echemos un vistazo a
lo que contiene. Puede parecer un poco extrao al principio, pero tendr ms sentido una
vez que se vea el cdigo fuente que lo acompaa.
El archivo de cabecera consiste bsicamente en una clase con una lnea para cada funcin
de la librera, junto con las variables que se van a usar:

3.- VICION COMPUTACIONAL CON ARDUINO


1. INTRODUCCIN
La visin artificial ha tenido un papel importante en el desarrollo de nuevas tecnologas. La
creacin de robots autnomos con algoritmos de aprendizaje y visin son en gran medida
estudiados y desarrollados en grandes universidades del mundo, ya que permiten la
creacin de robots inteligentes capaces de solucionar diversos problemas que se presentan
actualmente en la industria y en la vida cotidiana, emulando las funciones biolgicas de
animales y humanos.
En este artculo se describe los aspectos que se tuvieron en cuenta para el desarrollo del
proyecto: Robot mvil guiado por visin. En la seccin 2 se presenta el estado del arte, en
la seccin 3 se explica el proceso de construccin del prototipo seguidor de lnea, a
continuacin se explica en detalle la construccin del vehculo de parqueo automtico. En
la seccin 5 se explica el proceso de reconocimiento de imgenes con Kinect, y su
implementacin en el robot mvil. Finalmente, se explican los ajustes que se estn
realizando a los problemas planteados y se realizan las conclusiones.
ESTADO DEL ARTE
La robtica en los ltimos aos ha tomado gran importancia a nivel educativo e industrial,
no solo porque combina diferentes reas de la ingeniera, sino por que debido al gran
avance en los procesadores se ha permitido desarrollar y procesar diferentes algoritmos
antes imposibles de computar, a una gran velocidad.
Se dan desarrollado simulaciones que permiten observar el diseo de un controlador difuso
para el parqueo en reversa de un vehculo terrestre no articulado. Adems se muestra el
desarrollo de una interfaz configurable construida en Matlab, la cual permite el control bien
sea manual o automtico del vehculo. (Restrepo et. al, 2010)
Algunos proyectos elaborados por algunas universidades llevan esta simulacin a un
prototipo. El proyecto llevado a cabo por la universidad de Mnchen, presenta una
aproximacin a la adquisicin y transferencia de las habilidades de un conductor
experimentado para un controlador de estacionamiento automtico. El controlador procesa
la informacin de entrada procedente de una cmara generando los comandos de direccin
correspondientes. Para la arquitectura del control hibrido se consider dos arquitecturas de
control: redes neuronales y lgica difusa. (Chen, 1996)
Otro proyecto similar se llev a cabo en la universidad de Florida, la cual consiste en
demostrar experimentalmente el funcionamiento de un vehculo que utiliza lgica difusa
para el parqueo en espacios reducidos. Los parmetros necesarios para el controlador son
aprendidos mediante sistemas genticos, los cuales adaptan a este para que realice la tarea
de la forma ms ptima. (Gupta, 1989)
Chih-Yung Chen y Hsuan-Ming Feng desarrollaron un integrando el uso de transformadas
Wavelet, mapas de organizacin, lgica difusa y redes neuronales para implementar un
sistema inteligente mediante FPGA y microprocesadores que fuera capaz de mover un
robot mvil para que este lograra parquearse de forma automtica en una celda. (Aby et. al,
2011)

Se desarroll y dise un algoritmo en redes neuronales en tiempo discreto para la


aplicacin en robtica mvil en la Universidad de San Juan Argentina, buscando
implementar controladores para reducir las perturbaciones ocasionadas por las variaciones
del modelo debido a la cmara abordo. (Rossommando et. al, 2011).
SEGUIDOR DE LNEA
Para el prototipo del seguidor de lnea se emplea la cmara CMU Cam 4, creada por el
proyecto del mismo nombre, y que permite desarrollar aplicaciones de visin de forma
rpida y sencilla con la ayuda de un micro controlador de la familia Arduino.
Dado que la cmara cuenta con funciones ya implementadas para extraer ciertas
caractersticas provenientes de la imagen, es una buena herramienta para tomar una primera
aproximacin al diseo de controladores con visin artificial.
Para este proyecto, se emplea la CMU Cam para desarrollar el prototipo de seguidor de
lnea. El algoritmo se desarrolla en la IDE de Arduino con las funciones propias de la CMU
Cam, incluida en la librera desarrollada por sus autores.
El controlador es de tipo proporcional, pues toma la diferencia que hay entre el centro de la
imagen y el centro de la lnea de color que debe seguir (cuyos valores en el espacio de color
RGB se especifican en el parmetro correspondiente), y da una orden de control a los
motores proporcional a dicho error. De esta forma, si el centro de la lnea se desplaza a la
izquierda de la imagen se acciona el motor derecho, y si se desplaza hacia la derecha se
acciona el izquierdo. En caso de estar en el medio los motores se accionan con la misma
velocidad y direccin.
La plataforma empleada para este prototipo es la misma que se uso para el robot de
parqueo, por lo tanto se explica en la siguiente seccin.
3. PARQUEO AUTOMTICO
En esta seccin se describen cada una de las etapas del proyecto, los problemas que se
presentaron en estas y las soluciones empleadas.
4.1. Diseo de la estructura:
La estructura utilizada es la plataforma bsica para robtica todo terreno, la cual est
diseada para aplicaciones bsicas de robtica mvil (ver Figura 1).
Debido a que la estructura no tiene el espacio suficiente para tener abordo los elementos
elctricos y electrnicos, se rediseo el robot de tal forma que este quedara con dos niveles.
De esta manera, en la parte superior del robot se ubic la tarjeta de desarrollo
BeagleboardxM, la cmara y el servomotor que la controla. En la parte inferior est ubicado
todo lo relacionado con el control de motores y la batera.

Hardware:
En el robot mvil se utiliza varios tipos de hardware, cada uno con una tarea especfica
dentro del funcionamiento del robot.
Unidad de procesamiento. Debido a que el robot es totalmente autnomo y adems deber
procesar una gran cantidad de informacin suministrada por la cmara, es indispensable el
uso de un buen procesador. Se decidi usar la tarjeta de desarrollo Beagleboard xM
desarrollada por Texas Instruments (ver Figura 2). Esta tarjeta contiene un procesador
Cortex A8 1GHz, lo que le permite trabajar similar a una laptop. El sistema operativo
eleccionado para el desarrollo del robot es Ubuntu, este sistema operativo le permite a la
tarjeta tener una velocidad de procesamiento mucho mayor debido a su buen manejo de los
recursos del sistema. Los perifricos que tiene la tarjeta son los necesarios para el control
de la cmara y el Arduino Uno.

Visin:
La aplicacin de visin que gua al robot mvil hasta el parqueadero, necesita en primera
instancia procesar las imgenes que captura por medio de la cmara.
OpenCV captura cada frame de video proveniente de la cmara secuencialmente para luego
convertirlo en escala de grises con el fin de lograr un procesamiento correcto de las
imgenes. Se transforma las imgenes que estn es escala de grises a imgenes binarias y
luego se suavizan por medio de un filtrado no lineal con el fin de remover el ruido y solo
capturar la informacin relevante que se necesita para el control de robot mvil.
Una vez se procesan las imgenes, se obtiene los contornos y luego se filtran aquellos
contornos que no proporcionan ninguna informacin sobre el nmero que se desea
reconocer. Con este filtrado solo queda los contornos relevantes y se les hace un anlisis y
se les extrae informacin sobre la posicin x y y del centroide y el boundingbox el cual
dibuja un rectngulo el cual cubre todo el objeto sin considerar rotaciones (ver Figura 8).
Algoritmos de aprendizaje:
Los algoritmos inteligentes implementados para el reconocimiento de nmeros y el control
del vehculo para lograr el objetivo de parquearse se describen a continuacin.
Mquinas de soporte vectorial. Esta metodologa de aprendizaje consiste en optimizar el
separador que permite clasificar un conjunto de datos de entrada, mediante la reduccin del
producto vectorial entre el separador y el vector de pesos.
Este algoritmo de aprendizaje se utiliz para el reconocimiento de dgitos. Inicialmente, se
tom como base un grupo reducido de datos, pero posteriormente se uso un algoritmo que
descargaba estos datos en lnea, y mejoraba as el desempeo del clasificador. Este ltimo
aprendizaje tardo alrededor de 1200 s en realizarse, y una vez terminado genera un archivo
.DAT que puede ser ledo gracias a las funciones propias de la librera dedicada a SVM de
Python.
La caracterstica usada como entrada para el algoritmo fue el contorno del digito obtenido
mediante un proceso de segmentacin de la imagen. Una forma en que se puede mejorar a
futuro el reconocimiento de estos dgitos es usando un vector con algunas caractersticas
adicionales que permitan disminuir el nmero de falsos positivos obtenidos.
Redes neuronales. Este algoritmo se usa para el control del vehculo. Tomando como
entrada el rea del rectngulo que encierra el digito y el centroide del mismo, y como salida
(funcin objetivo) la accin a realizar por el vehculo (ir hacia adelante, hacia atrs, derecha
o izquierda), se construyeron los datos de entrenamiento para la red.
La red neuronal, de tipo FeedForward, se hizo de 3 capas, la primera con dos neuronas, la
oculta con 4 y la tercer con 3. La funcin de activacin para la capa oculta es la funcin
sigmoidea y la de la capa de salida la funcin lineal. Tanto la capa oculta como la capa de
salida tenan Bias.
Dado que en una sola imagen el algoritmo puede tomar mltiples rectngulos (debido al
ruido en la imagen, a factores como la iluminacin, entre otros), se adiciono una rutina en
la cual el control solo toma como dato de entrada el rectngulo y el centroide del digito que
se le pide reconocer. En caso de que no vea el digito ingresado, elige alguno de los
rectngulos restantes de forma aleatoria y se dirige a el. Esto no debe introducir mucho
error, pues si bien esta tomando una accin incorrecta, el clasificador de los dgitos corrige

rpidamente el error, y permite al controlador cambiar su ruta para dirigirse al digito


correcto una vez lo ha reconocido correctamente.
Para el caso en que no se ve ningn digito en la imagen, y no se logra determinar un
rectngulo adecuado, se opta por avanzar hacia adelante hasta que el carro tenga dentro de
su campo de visin algn digito.
RECONOCIMIENTO DE FIGURAS:
5.1. Descripcin del problema:
La visin artificial describe la deduccin automtica de la estructura y propiedades de un
mundo dinmico representado por una serie de imgenes consecutivas.
Las aplicaciones ms utilizadas de la visin artificial, son precisamente aquellas que
simulen el ojo humano, cuya informacin que llega de entrada por medio de imgenes, se
debe procesar para lograr capturar un punto o rea de inters que brinde informacin
importante del medio y con ello ejecutar una tarea especfica. Estas aplicaciones pueden ser
deteccin de fallas, medicin o calibracin, reconocimiento e identificacin de objetos o
smbolos que ayuden para aplicaciones de sealizacin y localizacin para realizar cierto
proceso o identificar anomalas en productos.
Para la deteccin de smbolos o patrones en visin artificial es esencial realizar
segmentacin y el reconocimiento de regiones, lograr capturar la informacin relevante de
la imagen y clasificarla dentro de unos grupos o clases de una poblacin especfica.
Como se muestra en la Figura 9, el sistema debe incluir un sensor que recoja fielmente las
imgenes para ser clasificados, para luego pasar a un algoritmo que permita extraerle las
caractersticas necesarias para ingresarlas al clasificador quien finalmente clasifica la
imagen dentro de unas clases previamente establecidas y toma una decisin con esta
informacin.

Para la implementacin de sistemas de visin, los problemas principales que se le presentan


al desarrollador son la segmentacin de la imagen, como lograr que se capture
adecuadamente la informacin que se requiere, eliminando ruido, caractersticas no
deseadas de la imagen y enfocarse en el rea de inters, eliminando distracciones que
confundan al clasificador. Todo lo anterior se debe implementar sin que la informacin
importante captada por la cmara se pierda o se deteriore.
4.- SISTEMAS MECATRONICOS ESPACIALES CON ARDUINO:
El objetivo del presente proyecto es documentar todo el proceso realizado para el montaje y
programacin de un quadrotor, para el cual se ha tomado como referencia un proyecto
creado por la comunidad DIY DRONES basado en la plataforma Arduino. Este proceso
comenz con la compra del material necesario para el montaje, el cual se describe en el
apartado 2. Una vez obtenido el material,

Se pas a realizar experimentos para comprobar el funcionamiento de todas las partes.


Tambin se comprob el funcionamiento una vez realizado el montaje completo y con la
programacin especificada en el proyecto de DIY DRONES. Una vez comprobado esto, se
pas a programar el quadrotor con un cdigo especfico realizado en el laboratorio, aunque
basado en el original.
Descripcin del funcionamiento:
Como se ha comentado al comienzo del captulo, las plataformas tipo quadrotor disponen
de cuatro motores coplanarios en los que las hlices tienen un ngulo de ataque fijo. Con
esta disposicin es necesario que dos motores giren en sentido horario y los dos opuestos lo
hagan en sentido anti horario.
Esto es debido a los pares de rotacin que generan los motores, de forma que el par
generado por los motores que giran en un sentido pueda ser contrarrestado por los motores
que giran en el sentido contrario. El sentido de giro de las hlices se puede observar en el
esquema de la figura 1.9.

Los quadrotor, al no variar la posicin de los motores y las hlices, realizan los
movimientos de rotacin y traslacin aumentando o disminuyendo la velocidad de algn
motor. Para realizar esta operacin se describen una serie de ngulos de referencia o
angulos de navegacin. Los ngulos de navegacin, llamados en matemticas angulas de
Tait-Bryan, son tres coordenadas angulares que definen un triedro rotado desde otro que se
considera el sistema de referencia. Estos ngulos son:
Cabeceo (Pitch)
Es el ngulo que se obtiene cuando se produce una rotacin en torno all eje formado por
los motores 2 y 4 (eje Y) de la figura 1.9, por lo que para modificar este ngulo sera
necesario actuar sobre los motores 1 y 3. Como consecuencia de la variacin de este ngulo

se obtiene un movimiento a travs de la proyeccin horizontal del eje formado por los
motores 1 y 3.
Es el ngulo que se obtiene cuando se produce una rotacin en torno al eje formado por los
motores 1 y 3 (eje X), por lo que para modificar este ngulo ser necesario actuar sobre los
motores 2 y 4. Como consecuencia de la variacin de este ngulo se obtiene un
movimiento a travs de la proyeccin horizontal del eje formado por los motores 2 y 4.
Es el ngulo que se obtiene cuando el quadrotor realiza una rotacin alrededor de un eje
vertical perpendicular al plano formado por los motores (eje Z). Para modificar este ngulo
se puede actuar sobre cualquier motor, puesto que un desequilibrio en los pares de rotacin
producidos por los motores supondr un movimiento de giro en torno al eje Z.
Motores:

Ardupilot:
La placa utilizada para realizar el control del quadrotor es una modificacin de la marca
Arduino denominada Ardupilot Mega. Esta placa utiliza un micro controlador
ATmega2560 que funciona a una velocidad de 16MHz, dispone de 16 entradas analgicas,
40 entradas/salidas digitales y una memoria flash de 256Kb. En esta placa tambin se
encuentra el conector para el GPS.
La placa Ardupilot es capaz de establecer comunicaciones mediante el bus I2C comentado
anteriormente.
Concretamente esta comunicacin se utiliza para la conexin con los variadores y el
magnetmetro.
Para alimentar el Ardupilot Mega es necesaria una fuente de 5 voltios, que en nuestro caso
obtenemos del regulador de tensin existente en uno de los variadores. Tambin es posible
utilizar una fuente de alimentacin externa de 7 a 11 voltios, como una batera Lipo 2s de
7.4V, si eliminamos la soldadura del jumper SJ1.

Conclusiones y mejoras:
En esta memoria se ha documentado todo el proceso de construccion de un quadrotor, el
cual era el objetivo principal de este Proyecto Fin de Carrera.
En este proceso de construccion se han seleccionado y comprado elementos mecanicos,
electricos y electronicos acorde al tamano del diseno que se quera obtener, se han
fabricado otros elementos, como la placa de distribucion de potencia y senal y se han
disenado y ajustado controladores PD, PIy PID.
Despues de todo este trabajo, se han realizado pruebas de vuelo obteniendose resultados
muy positivos en el aspecto de estabilizacion y control de altura. Sin embargo, los
controles de posicion por GPS y velocidad lineal deben mejorarse. En el caso del control
de velocidad lineal ya se comento la causa del funcionamiento poco preciso al describir el
control en el apartado 3.3.5. En el caso del control de posicion por GPS es necesario un
ajuste mas fino de los parametros del controlador. Ademas de estos sistemas para el
control de posicion, se esta estudiando la posibilidad de utilizar una camara de video para
complementar los sistemas de posicionamiento. La implementacion y ajuste de estos
sistemas queda como trabajo futuro.
Tras la construccion del quadrotor y de las pruebas realizadas, se ha podido comprobar que
una de las principales caractersticas de este tipo de vehculos aereos es la
maniobrabilidad y estabilidad de vuelo. Es debido a estas caractersticas que en la
actualidad se estan realizando gran cantidad de proyectos con estos vehculos,
consiguiendose grandes resultados a la hora de realizar formaciones e interacciones entre
varios quadrotor o utilizando estos para montar estructuras sencillas.
Durante el desarrollo de este Proyecto tambin se ha podido comprobar la causa del auge
en la investigacion de estos vehculos, ya que para su desarrollo es necesario investigar en
diversos aspectos de la ingeniera. Estos aspectos abarcan la ingeniera mecnica,
ingeniera elctrica, ingeniera electronica, teora de control de vuelo y navegacion y
sobre todo la ingeniera automatica, destacando los campos de diseno y ajuste de
controladores, sistemas de control por vision o sistemas en tiempo real.
En el momento en el que se termino de escribir este Proyecto Fin de Carrera, ya se estaban
realizando algunos trabajos de mejora. Entre ellos, se esta continuando con el
posicionamiento por ultrasonidos del cual se hablo en el apartado 4. Tambien se encuentra
en estudio un sistema que permita realizar la grabacion de imagenes o video mediante una
camara fijada a una estructura balancn capaz de contrarrestar los movimientos del
quadrotor, de forma que la imagen permanezca siempre horizontal con el ajuste visual
deseado.