Post on 27-Jun-2022
TRABAJO DE FINAL DE GRADO
Grado en Ingeniería Electrónica Industrial y Automática
DISEÑO Y MONTAJE DE UN SISTEMA DE ADQUISICIÓN DE
DATOS PARA UN CUADRICÓPTERO
Memoria técnica
Autor/a: Sergi Beltrán Orejudo. Director/a: Manuel Andrés Manzanares Brotons. Convocatoria: Enero, 2021.
Resumen
Este proyecto de fin de grado consiste en el desarrollo del software de control de vuelo de un
cuadricóptero, así como el estudio y elección de los componentes comerciales que lo forman. La
aplicación del dron será la de adquirir y registrar datos meteorológicos durante su vuelo.
Los distintos capítulos del documento abarcan desde el estudio de los principios de funcionamiento
del sistema, la elección de los componentes del dispositivo a partir de modelos comerciales, los
resultados de simulación de vuelo del sistema y el diseño de las distintas etapas del software de control.
Gran parte del proyecto consiste en el diseño propio del software para el control de estabilización de
vuelo del cuadricóptero. Para ello, se programará un microcontrolador Arduino. Inicialmente se
pretende realizar la programación en el entorno Simulink del programa Matlab utilizando una librería
que ejecute el programa en el microcontrolador. Tras comprobar que utilizando esta librería no se
logra cumplir con las condiciones mínimas de diseño establecidas, se procederá a optimizar el
programa trabajando directamente en el entorno Arduino IDE.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
i
Resum
Aquest projecte de fi de grau consisteix en el desenvolupament del programa de control del vol d'un
quadricòpter, així com l'estudi i elecció dels components comercials que el formen. L'aplicació del dron
serà la d'adquirir i enregistrar dades meteorològiques durant el seu vol.
Els diferents capítols del document abasten des de l'estudi dels principis de funcionament de sistema,
l'elecció dels components del dispositiu a partir de models comercials, els resultats de simulació de vol
del sistema i el disseny de les diferents etapes del programa de control automàtic.
Gran part del projecte consisteix en el disseny propi del programari per al control d'estabilització de
vol del quadricòpter. Per a això, es programarà un microcontrolador Arduino. Inicialment es pretén
realitzar la programació en l'entorn Simulink del programa Matlab utilitzant una llibreria que executi el
programa al microcontrolador. Després de comprovar que utilitzant aquesta llibreria no s'aconsegueix
complir amb les condicions mínimes de disseny establertes, es procedirà a optimitzar el programa
treballant directament en l’entorn Arduino IDE.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
ii
Abstract
This final degree project consists of the development of the flight control software of a quadcopter, as
well as the study and choice of the commercial components that comprise it. The drone application
will be to acquire and record meteorological data during its flight.
The different chapters of the document range from the study of the operating principles of the system,
the choice of the device components from commercial models, the results of the flight simulation of
the system and the design of the different stages of the control software.
A large part of the project consists of the design of the software for the control of the flight stabilization
of the quadcopter. To do this, an Arduino microcontroller will be programmed. Initially, it is intended
to carry out programming in the Simulink environment of the Matlab program by using a library that
executes the program into de microcontroller. After verifying that by using this library the program
does not meet the minimum design conditions established, the programming will be optimized
proceeding through the Arduino IDE environment.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
iii
Agradecimientos
Quisiera agradecer a todas las personas que me han apoyado en la realización de este proyecto, en
especial a mis padres por darme el apoyo incondicional y ánimos en los momentos más difíciles y por
financiarme los estudios que me han permitido llegar hasta aquí.
Por otro lado, quisiera agradecer la atenta ayuda del director del trabajo, Manuel Andrés Manzanares
Brotons, quien siempre ha proporcionado una respuesta inmediata y detallada ante mis preguntas y
me ha dotado de total libertad a la hora de encarar y diseñar las bases del proyecto.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
iv
Glosario
• ESC: Controlador Electrónico de Velocidad (Electronic Speed Controller).
• Motor BLDC: Motor de corriente continua sin escobillas (Brushless Direct Current).
• CW: Giro del motor en sentido horario (Clock Wise).
• CCW: Giro del motor en sentido antihorario (Counter Clock Wise).
• IMU: Unidad de Medición Inercial (Inertial Measurement Unit).
• φ : Movimiento rotacional de alabeo ( Ángulo Roll).
• Θ : Movimiento rotacional de cabeceo (Ángulo Pitch).
• Ψ : Movimiento rotacional de guiñada (Ángulo Yaw).
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
v
Índice
Objeto del proyecto ..................................................................................................................... 9
Alcance del proyecto ................................................................................................................... 9
Motivación personal .................................................................................................................. 10
1. INTRODUCCIÓN ________________________________________________ 11
1.1. Historia de los VANT .............................................................................................. 12
1.2. Tipos de drones ...................................................................................................... 14
1.2.1. Según el tipo de ala .............................................................................................. 14
1.2.2. Según el tamaño ................................................................................................... 15
1.2.3. Según su alcance de vuelo .................................................................................... 15
1.3. Aplicaciones en la actualidad ................................................................................. 16
1.4. Normativa vigente ................................................................................................. 16
1.4.1. Licencia profesional para volar drones ................................................................ 17
1.4.2. Normativa del uso de drones recreativos entre 250 g y 2 Kg .............................. 17
1.4.3. Normativa del uso de drones recreativos de menos de 250 g ............................ 18
1.4.4. Normativa de vuelos nocturnos ........................................................................... 18
2. PRINCIPIO DE FUNCIONAMIENTO __________________________________ 19
3. ELECCIÓN DE DISEÑO DEL PROYECTO _______________________________ 22
3.1. Requisitos mínimos de funcionamiento ................................................................ 23
4. HARDWARE DEL DRON __________________________________________ 24
4.1. Marco ..................................................................................................................... 24
4.2. Motor DC sin escobillas .......................................................................................... 25
4.3. Controlador electrónico de velocidad (ESC) .......................................................... 30
4.4. Hélices .................................................................................................................... 34
4.5. Batería .................................................................................................................... 36
4.6. Placa de distribución de potencia .......................................................................... 39
4.7. Microcontrolador. .................................................................................................. 40
4.8. Control remoto ...................................................................................................... 41
4.9. Unidad de medición inercial (IMU) ........................................................................ 43
4.10. Adquisición de datos atmosféricos ........................................................................ 46
5. CÁLCULOS DE PRESTACIONES DE VUELO ____________________________ 49
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
vi
5.1. Peso del Cuadricóptero .......................................................................................... 49
5.2. Energía y características mecánicas ...................................................................... 49
5.3. Tiempo de vuelo .................................................................................................... 51
5.4. Prestaciones de vuelo mediante la web eCalc ...................................................... 52
6. SOFTWARE DE CONTROL _________________________________________ 54
6.1. Control PID ............................................................................................................. 54
6.1.1. Parte proporcional ................................................................................................ 55
6.1.2. Parte integral ........................................................................................................ 55
6.1.3. Parte derivativa .................................................................................................... 56
6.1.4. Control Anti wind-up ............................................................................................ 57
6.2. Control PID aplicado al cuadricóptero ................................................................... 58
6.2.1. Ajuste del trim (equilibrio) ................................................................................... 59
7. PROTOTIPO DE PRUEBAS - BALANCÍN _______________________________ 61
8. PROGRAMA DEL BALANCÍN EN SIMULINK ___________________________ 63
8.1. Matlab y Simulink ................................................................................................... 63
8.1.1. Requisitos de instalación previos ......................................................................... 63
8.2. Configuración de hardware Arduino en Simulink ................................................. 63
8.3. Programación de la IMU ........................................................................................ 65
8.3.1. Posición angular a partir del acelerómetro .......................................................... 68
8.3.2. Posición angular a partir del giroscopio ............................................................... 70
8.3.3. Filtro complementario .......................................................................................... 71
8.4. Inconveniente del programa Simulink cargado en Arduino ................................ 73
8.5. Control de los motores .......................................................................................... 77
8.6. Control PID ............................................................................................................. 79
8.7. Sintonización del control PID ................................................................................. 80
8.8. Resultados del programa en Simulink ................................................................... 81
9. PROGRAMA DEL BALANCÍN EN ARDUINO IDE ________________________ 84
9.1. Tiempo de ciclo del programa ............................................................................... 84
9.2. Lectura de datos por puerto serie ......................................................................... 86
9.3. Unidad de medición inercial .................................................................................. 86
9.4. Comunicación por radio ......................................................................................... 93
9.4.1. Mando a control ................................................................................................... 93
9.4.2. Recepción de datos .............................................................................................. 97
9.5. Control PID ........................................................................................................... 100
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
vii
9.6. Lógica de control de motores .............................................................................. 102
9.7. Resultados del programa en Arduino .................................................................. 103
10. PROGRAMACIÓN DEL CUADRICÓPTERO EN ARDUINO IDE _____________ 109
10.1. Adquisición de los datos meteorológicos ............................................................ 112
10.2. Registro de los datos meteorológicos ................................................................. 116
10.3. Ajuste de los parámetros de control del cuadricóptero ..................................... 117
10.3.1. Método de sintonización del ángulo Yaw .......................................................... 117
10.4. Mejoras al control de vuelo ................................................................................. 120
10.4.1. Control feedforward + PID ................................................................................. 120
10.4.2. Atenuación del control PID en función del acelerador ...................................... 121
10.4.3. Compensación del efecto suelo ......................................................................... 121
11. RESULTADOS DE VUELO DEL CUADRICÓPTERO ______________________ 123
12. ANÁLISIS AMBIENTAL __________________________________________ 126
CONCLUSIONES ____________________________________________________ 127
POSIBLES MEJORAS _________________________________________________ 129
BIBLIOGRAFÍA _____________________________________________________ 130
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
9
Objeto del proyecto
El objeto de este proyecto de fin de grado es la realización de un cuadricóptero, cuya aplicación será la
de adquirir y registrar distintos datos meteorológicos durante su vuelo. El trabajo está centrado
principalmente en la realización del software de control y en el tratamiento y ajuste de las variables
necesarias para el control automático de estabilización de vuelo.
El objetivo del proyecto es por tanto realizar las distintas fases del diseño y montaje de un
cuadricóptero de altas prestaciones, incluyendo el desarrollo del sistema de control y estabilidad de
vuelo, de forma que el resultado final presente unas prestaciones lo más parecidas posibles a las que
presenta un modelo de dron comercial.
Alcance del proyecto
A partir de la explicación del principio de funcionamiento del vuelo de un cuadricóptero, se realiza la
selección de los componentes necesarios para construir el dron. Se realizará el estudio para la elección
de los modelos comerciales de cada dispositivo con el objetivo de obtener el mayor rendimiento
posible, justificando su elección con los cálculos de simulación de vuelo.
Gran parte del proyecto se centra en el diseño del software para el control de estabilización de vuelo
del cuadricóptero y su sistema de adquisición y registro de datos meteorológicos. Para ello, se
programará un microcontrolador Arduino. Durante el desarrollo del proyecto, se explicarán las
distintas propuestas de diseño del software realizadas con el objetivo de cumplir con los requisitos
mínimos de funcionamiento establecidos.
Para el ajuste de los parámetros de control, se realiza como banco de pruebas el diseño de un programa
de control de la inclinación de un solo eje (balancín), a partir del control de la velocidad de giro de dos
motores con hélices. Los resultados obtenidos serán trasladados al diseño final para el control
automático del cuadricóptero, así como el conjunto de métodos utilizados para mejorar su estabilidad
de vuelo.
Por último, también se realizará la programación de la comunicación por radio entre el dron y un
mando a control modificado, que será programado mediante otra placa Arduino.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
10
Motivación personal
La motivación principal para desarrollar este proyecto es la de utilizar el conjunto de conocimientos
teóricos adquiridos a lo largo de mi formación universitaria y aplicarlos a un prototipo real. Durante el
grado realicé un trabajo teórico sobre el funcionamiento de un cuadricóptero, por lo que para mí
supuso una gran oportunidad poder trasladar las bases adquiridas en ese trabajo al diseño y
funcionamiento de un cuadricóptero real.
El mayor incentivo de este trabajo consiste en aplicar parte de los conocimientos adquiridos sobre
control automático y electrónica mediante la programación de un microcontrolador, así como la
satisfacción obtenida al ver avanzar el proyecto y finalmente hacer volar el cuadricóptero diseñado con
código propio.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
11
1. INTRODUCCIÓN
En octubre del año 2014, se publicó la 23ª edición del diccionario de la lengua española1. En esta misma
edición se registró la palabra dron, una adaptación a nuestro idioma del sustantivo inglés drone bajo la
siguiente definición: “Aeronave no tripulada”.
La traducción literal de la palabra significa zángano, abeja macho de una colmena. Etimológicamente2,
se utilizó la palabra dron debido a la asociación entre el ruido que producen las hélices de los drones
al rotar con el zumbido que produce el pequeño insecto al volar. Debido a su origen etimológico, la
RAE se centra en definir al dron como aeronave no tripulada, excluyendo a vehículos terrestres y
acuáticos no tripulados de la misma. Se trata de una definición incompleta ya que siguen siendo drones
independientemente del medio por el que se desplacen. A pesar de ello, a lo largo de este trabajo al
hablar de un dron, siempre será referido como aeronave no tripulada.
Figura 1.1: Dron modelo DJI Phantom3.
Para evitar esta confusión, comúnmente a los drones aéreos se les suele denominar VANT (Vehículo
Aéreo No Tripulado), del inglés UAV(Unmanned Aerial Vehicle). Para concretar más la definición, existe
un término que define a los drones de manera más completa y exacta. Se trata de la sigla inglesa RPAS
(Remotedly Piloted Aircraft System), cuya traducción al español es aeronave pilotada remotamente.
De esta manera se define el conjunto de los elementos que intervienen en el funcionamiento de un
dron: una aeronave no tripulada, un piloto y un sistema de control remoto.
Un dron es un tipo de vehículo reutilizable, con capacidad de mantener un vuelo controlado y firme de
manera autónoma al ser propulsado por motores de combustión, de reacción o de manera más
común, por motores eléctricos alimentados por una batería.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
12
1.1. Historia de los VANT
La aparición de los drones a nivel histórico fue iniciada por motivos bélicos4. Fue durante 1916, en
plena primera guerra mundial, cuando el capitán técnico del cuerpo aéreo del Reino Unido, Archibald
M. Low, quien posteriormente sería apodado como el inventor de los sistemas guiados por radio, inició
las investigaciones para desarrollar aeronaves guiadas de manera remota y cargadas con explosivos.
No fue hasta un año después, con la entrada de Estados Unidos al bando de los aliados, que se
diseñaron los primeros modelos de aviones “automáticos” llamados Hewitt Sperry, en honor al
ingeniero estadounidense Elmer Sperry, quien fue el inventor del giroscopio ese mismo año y creador
del control PID en 1911.
Figura 1.2: Hewitt Sperry, primera aeronave “automática” (Fuente: eldrone.es4 ).
Esta aeronave se lanzaba mediante un gran sistema de catapulta de aviones y se dirigía mediante
controles previamente preestablecidos hasta llegar a su objetivo. Una vez en la posición correcta, el
motor se apagaba haciendo que la aeronave cayera en picado a tierra detonando de esta manera la
carga explosiva.
Posteriormente en 1918, Estados Unidos a partir de la aeronave ya desarrollada en Europa y con la
incorporación de la tecnología giroscópica, desarrolló su propia aeronave apodada como Kettering
Bug. Este modelo de avión llegó a volar hasta 80 Km, nuevamente describiendo una trayectoria
establecida previamente con 82 Kg de carga explosiva y cayendo con acierto en la posición del objetivo.
El siguiente gran avance histórico se realizó en 19245, cuando los británicos utilizaron las técnicas de
radiocontrol del anteriormente mencionado Archibald M. Low para guiar por primera vez mediante
control por radiofrecuencia un avión no tripulado, el cual voló durante 12 minutos despegando desde
el navío de guerra H. M. S. Stronghold.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
13
Posteriormente, durante el desarrollo de la segunda guerra mundial, Estados Unidos desarrolló el
primer torpedo controlado por control remoto, llamado Interstate BQ-4/TDR(TDN).
Figura 1.3: Interstate BQ-4 TDR6.
Este vehículo incorporaba una cámara de televisión de la época. A partir de las imágenes obtenidas,
un piloto dirigía la nave remotamente guiándola hasta su objetivo. En 1944, varios modelos de este
torpedo llegaron a impactar sobre barcos japoneses en el Pacífico.
El desarrollo de los drones militares fue avanzando en los años 60 durante la guerra fría y
posteriormente en la guerra de Vietnam, principalmente en forma de drones espía cuyo objetivo ya
no era para un uso como arma de fuego, sino como adquisición de datos de reconocimiento gráfico
del territorio enemigo.
A pesar de que históricamente los drones se han utilizado principalmente para causas bélicas, en la
actualidad los drones se siguen desarrollando para aplicaciones diversas, siendo a partir del año 2009
cuando se empezaron a comercializar a gran escala los primeros modelos de cuadricópteros para uso
privado de tipo recreativo y profesional.
Figura 1.4: Dron moderno, modelo DJI Phantom. (Fuente: ElDrone.es)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
14
1.2. Tipos de drones
A día de hoy, los drones siguen en constante desarrollo. Gracias a su extenso uso motivado por su éxito
comercial y profesional, existen muchos tipos de drones clasificados según su uso, tamaño,
configuración de ala, entre otros. A continuación, se detallan los tipos de drones más comunes en la
actualidad.
1.2.1. Según el tipo de ala
1) Drones de ala fija
Se trata de un dron cuyo aspecto es similar al de un avión tradicional tanto en la forma como en el tipo
de trayectoria que describen. Posee un perfil alar capaz de generar la fuerza sustentadora necesaria
cuando se desplaza a través del aire para mantener el vuelo. Debido a su eficiencia aerodinámica,
presenta una mayor autonomía respecto a los drones de alas rotatorias, aunque, por otro lado, no es
capaz de realizar vuelos estacionarios ni de despagar o aterrizar verticalmente.
Figura 1.5: Dron de ala fija, Delair UX11.(Fuente: Delair Aero7).
2) Drones de ala rotatoria
Se trata del tipo de dron cuyo uso está más extendido, también conocidos como multirotores. Se
pueden desplazar en el plano vertical y horizontal y pueden realizar vuelo estacionario, a diferencia de
los de ala fija. Su principal desventaja es que su autonomía es más reducida. Dentro de los
multirotores, existen gran variedad de clasificaciones según el número de hélices que dispongan,
donde los principales modelos de drones multirotor son los tricópteros, cuadricópteros , hexacópteros
y octacópteros.
A continuación, se muestra una imagen de los tipos de multirotores disponibles ¡ según su número de
motores.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
15
Figura 1.6: Tipos de drones multirotores. (Fuente: Controller Craft8).
1.2.2. Según el tamaño
El tamaño de los modelos de drones comerciales típicos son los siguientes, ordenados de derecha a
izquierda según se muestran en la siguiente figura9.
• Nanodrones.
• Minidrones.
• Drones medianos.
• Drones grandes.
Figura 1.7: Tamaño de los multirotores recreativos.(Fuente: Half Chrome).
1.2.3. Según su alcance de vuelo
• Alcance muy cercano: Rango < 5 Km.
• Alcance cercano : Rango < 50 Km.
• Medio alcance : Rango < 150 Km.
• Largo alcance : Rango < 650 Km.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
16
1.3. Aplicaciones en la actualidad
Desafortunadamente, a nivel histórico la aparición de estos dispositivos fue motivada por el avance en
la tecnología militar, así como las mejoras en su desarrollo a lo largo de las décadas. Por suerte a día
de hoy no es el único uso que se le da a los drones ya que existen un sin fin de aplicaciones que hacen
que los drones de uso militar sean una aplicación más entre las muchas disponibles.
A continuación, se presentan el conjunto de aplicaciones principales para las cuales se utilizan drones10.
1) Drones como recurso de grabación
• De forma recreativa.
• Uso en eventos culturales.
• Búsqueda de personas y vigilancia.
• Control forestal de incendios.
• Agricultura: gestión de cultivos.
2) Drones con carga
• Transporte de mercancía.
• Agricultura: fumigación en aérea de cultivos.
• Manipulación de materiales nocivos.
3) Otras aplicaciones
• Satélite.
1.4. Normativa vigente
Debido a la ascendente popularidad de los drones tanto a nivel profesional como recreativo, ha sido
necesario establecer una legislación con el objetivo de proteger la integridad del usuario que pilota la
aeronave, así como para evitar que terceras personas, bienes materiales o zonas naturales puedan
sufrir daños. Por otro lado, debido a la incorporación de cámaras de video en algunos cuadricópteros,
se establecen pautas para salvaguardar la Ley de Protección de Datos y la intimidad de terceros.
En la actualidad, la normativa más reciente sobre el uso de drones entró en vigor el 29 de diciembre
del año 2017 al ser publicado el Boletín Oficial del Estado para regular el uso civil de los drones en
nuestro territorio11.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
17
El organismo encargado de regular el uso de los drones en España es la Agencia Estatal de Seguridad
Aérea (AESA). Así pues, el marco regulador del uso de las aeronaves pilotadas por control remoto está
regido por el Real Decreto 1036/2017, modificando así la antigua ley reguladora publicada bajo el Real
Decreto 552/2014, del 27 de junio12.
La antigua normativa de 2014 se centraba en el uso de drones a nivel profesional sin tener en cuenta
aquellos drones utilizados a nivel recreativo. Se trató de una normativa muy estricta cuyos requisitos
no se correspondían con el avance en las capacidades técnicas de los drones y su incremento de
popularidad. Por ejemplo, a nivel profesional no estaba permitido realizar vuelos en ciudad ni zonas
rurales, vuelos nocturnos o vuelos en espacio aéreo controlado.
La ley vigente de 2017 incluye una regulación para el vuelo de drones de uso recreativo, y amplía las
posibilidades para los vuelos profesionales. A partir de 2021 está previsto que entre en vigor la nueva
normativa del uso de RPAS cuyo propósito será el de homogeneizar en el conjunto del marco europeo
la normativa y el uso de licencia de estos dispositivos.
A continuación, se describen las características principales de la normativa vigente del uso de drones.
1.4.1. Licencia profesional para volar drones
Para volar drones a nivel profesional es obligatorio tener la licencia de piloto profesional de dron y
estar dado de alta como operador de drones en AESA. Se requiere de un certificado médico estándar
para drones de hasta 25 Kg, y un certificado médico avanzado para volar drones de más de 25 Kg.
A nivel recreativo, no es obligatorio disponer de licencia de piloto , pero hay que considerar que el peso
máximo de un dron recreativo es de 2 Kg y, por lo tanto, no se tiene permiso para pilotar drones de
mayor peso. Por otro lado, tampoco es obligatorio el uso de un seguro de responsabilidad civil, pero el
piloto será siempre el responsable de los posibles daños que pueda causar su dron.
1.4.2. Normativa del uso de drones recreativos entre 250 g y 2 Kg
Para poder volar drones a nivel recreativo, es necesario cumplir las siguientes pautas legales.
• Mantener el dron dentro del alcance visual del piloto.
• No sobrepasar el límite de 120 m de altura.
• Volar fuera del espacio aéreo controlado de un aeropuerto.
• Volar a una distancia alejada 8 Km de un aeropuerto o aeródromo.
• Prohibición de volar en parques nacionales y espacios naturales protegidos.
• Prohibición de volar por encima de personas.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
18
• Proteger el derecho a la intimidad de terceros para no vulnerar la Ley de Protección de
datos.
• Incluir una placa identificativa ignífuga.
1.4.3. Normativa del uso de drones recreativos de menos de 250 g
Debido al bajo peso de estos dispositivos, se trata de una normativa mucho más permisiva, pero, aun
así, no están exentos de regulación. Su principal característica es la posibilidad de volar por encima de
personas mientras no se superen los 20 m de altura de vuelo.
1.4.4. Normativa de vuelos nocturnos
• Bajo permiso de una autorización de AESA a nivel profesional.
• Obligación de incorporar elementos de visibilidad luminosos y reflectantes.
• Peso inferior de 10 Kg.
Se puede comprobar las zonas del territorio donde está prohibido el uso de drones recreativos
accediendo al mapa de la página web drones.enaire.es.
Figura 1.8: Mapa para la normativa vigente de vuelo de drones recreativos. (Fuente: drones.enaire.es )
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
19
2. Principio de funcionamiento
El movimiento de un cuadricóptero está referido a un sistema de 6 grados de libertad en el espacio
tridimensional. Es por tanto un cuerpo rígido capaz de realizar movimientos de translación y rotación
en los tres ejes13.
Movimiento de traslación
• Balanceo o Sway: Izquierda/Derecha en el eje X.
• Oleada o Surge: Adelante/atrás en el eje Y.
• Levantamiento o Heave: Arriba/Abajo en el eje Z.
Rotación angular
• Alabeo o Roll, ángulo (φ): Inclinación del eje X.
• Cabeceo o Pitch, ángulo (θ): Inclinación del eje Y.
• Guiñada o Yaw, ángulo (Ψ): Inclinación del eje Z. Figura 2.1: 6 Grados de libertad.
El funcionamiento del vuelo del cuadricóptero consiste en, a partir del control de la velocidad de giro
de cuatro motores unidos a hélices, generar la fuerza de empuje vertical necesaria para mantener el
dron suspendido en el aire.
Los principios físicos que justifican el funcionamiento del vuelo del dron son los siguientes:
• Teorema de Bernoulli: ”La presión interna de un fluido decrece a medida que la velocidad del fluido
incrementa”. - Daniel Bernoulli, 1738.
• 3ª Ley de Newton: “Para cada acción hay una reacción igual y opuesta”. - Isaac Newton,1687.
La hélice al rotar genera un flujo de aire en proporción a su ángulo de ataque y a su velocidad relativa
respecto a la masa de aire que la rodea. Debido a este ángulo de ataque y la curvatura de la hélice, el
flujo de aire que circula por la parte superior del perfil alar adquiere una mayor velocidad que el que
discurre por la parte inferior. Por el teorema de Bernoulli, esta diferencia de velocidad del fluido implica
una presión menor en la superficie superior del ala respecto de la inferior, produciendo una fuerza
aerodinámica vertical ascendente.
Los cuatro motores se encuentran a una cierta distancia del centro de gravedad del cuadricóptero en
ejes simétricos en configuración de X. Debido a que los motores producen una rotación en las hélices
para generar la fuerza de empuje necesaria, se genera un momento angular de reacción en el sentido
opuesto al de la rotación de las hélices. Este momento angular generará la rotación del cuerpo en caso
de que la configuración del sentido de giro de las hélices no genere un sumatorio de momentos nulo.
Z
X Y
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
20
Para ello, se realiza la siguiente configuración, donde las hélices de un mismo eje giran en sentido
horario CW(clock wise) y las del otro eje en sentido antihorario CCW(counter clock wise).
#1 #2
#4 #3
F1 F2
F4F3
Fg
T1 T2
T4T3
CW
CWCCW
CCW
Figura 2.2: Diagrama de fuerzas y momentos de un cuadricóptero.
Mediante la anterior configuración, haciendo que el sentido de giro de los motores sea el mismo en
los ejes X e Y, se obtiene un momento angular resultante nulo al anularse los pares de fuerza
producidos para los dos ejes.
La siguiente explicación se realiza suponiendo un modelo de cuadricóptero ideal, cuyo centro de
gravedad está situado en su centro geométrico y no recibe perturbaciones externas. Para elevar el
dron, se debe generar una fuerza vertical de magnitud igual o mayor a la de la fuerza de la gravedad y
de sentido opuesto, para así realizar un movimiento traslacional vertical. Por lo tanto, en el caso del
cuadricóptero, cada motor debe generar como mínimo un cuarto del peso total del dron para elevarse.
Los cuatro motores están gobernados por señales de control independientes que modifican su
velocidad de giro siguiendo una lógica de control determinada. Cada señal es el resultado de la suma
de las siguientes acciones de control14.
𝑆𝑒ñ𝑎𝑙 𝐶𝑜𝑛𝑡𝑟𝑜𝑙 𝑀𝑜𝑡𝑜𝑟 = 𝑉𝑎𝑙𝑜𝑟 𝐴𝑐𝑒𝑙𝑒𝑟𝑎𝑐𝑖ó𝑛 + 𝐶𝑜𝑛𝑡𝑟𝑜𝑙 𝜑 + 𝐶𝑜𝑛𝑡𝑟𝑜𝑙 𝜃 + 𝐶𝑜𝑛𝑡𝑟𝑜𝑙 𝛹 (Eq. 2.1)
En caso de querer inclinar el ángulo de orientación del cuadricóptero, es necesario hacer que la
velocidad de un par de motores sea mayor que la del par opuesto. A continuación, se muestra la figura
del método de control para realizar los distintos movimientos de rotación en función de la velocidad
de cada par de motores.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
21
Abajo Arriba Adelante Atrás
Izquierda DerechaRotación sentido
horarioRotación sentido
antihorario
Acelerador Pitch
Roll Yaw
Mayor rpm Menor rpm
Figura 2.3: Movimientos de rotación y traslación del cuadricóptero.
Al producirse una inclinación en el dron, las fuerzas generadas dejan de ser puramente verticales para
distribuirse entre fuerza vertical y horizontal. Esta fuerza horizontal es la que produce los movimientos
de traslación en el eje X al producirse una inclinación del ángulo roll, y una traslación en el eje Y al
producirse una inclinación del ángulo pitch.
Figura 2.4: Diagrama de fuerzas de un cuadricóptero inclinando. (Fuente: Aerodynamics in Racing Multirotors15)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
22
3. Elección de diseño del proyecto
El controlador de vuelo es una placa de circuitos integrados normalmente formada por un
microcontrolador, una unidad de medición inercial, receptor de radiofrecuencia y placa de distribución
de potencia. Es el encargado de realizar los cálculos de control necesarios y enviar el conjunto de
señales necesarias para controlar la velocidad de giro de cada motor. Incorpora el conjunto de
sensores para detectar el cambio de orientación y posición del dron.
Figura 3.1: Modelo de controlador de vuelo Flywoo GOKU GN411 EVO. (Fuente: GetFPV 16)
Cada controlador de vuelo incorpora su propio software de control de cuadricóptero en función de la
aplicación del mismo. Normalmente, el usuario puede modificar los parámetros del controlador de
vuelo a partir de una interfaz gráfica programable para personalizar el tipo de vuelo del dron en función
de sus características y aplicaciones.
El objeto de este trabajo es el de prescindir del uso de un modelo de controlador de vuelo comercial
ya programado, con el objetivo de estudiar y seleccionar de manera propia la selección de los
componentes que forman el cuadricóptero y realizar el software de control de vuelo automático y de
adquisición de datos meteorológicos.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
23
3.1. Requisitos mínimos de funcionamiento
A continuación, se especifican el conjunto de características que deberá cumplir el cuadricóptero
diseñado para que su control y estabilidad de vuelo sean óptimas.
1. Peso menor a 2 Kg: Para ser considerado un dron para uso no profesional, el peso total del
cuadricóptero deberá ser menor a 2 Kg, ya que de lo contrario legalmente sería considerado un
dron limitado al uso con licencia de piloto de dron.
2. Autonomía de vuelo estacionario superior a 10 minutos: Se trata de un tiempo de autonomía
mínimo comparable al de muchos modelos comerciales de cuadricópteros.
3. Relación Empuje/Peso superior a 2,5: Se trata de la relación entre la fuerza de empuje máxima
que pueden ejercen el conjunto de motores y el peso del dispositivo. Se considera que un
cuadricóptero puede volar de manera ágil cuando su relación Empuje/Peso es superior a 2,5.
4. Frecuencia de actualización mínima del programa de 200 Hz: La frecuencia de actualización del
programa determina la cantidad de cálculos por segundo realizados para controlar el vuelo del
cuadricóptero. Se requiere lograr obtener una frecuencia de actualización del programa lo mayor
posible para lograr un control de vuelo estable.
5. Control del dron mediante comunicación por radiofrecuencia: Se trata de un tipo de
comunicación cuyo rango de funcionamiento es muy superior al de los drones controlados por
Bluetooth.
6. Adquisición y registro de datos meteorológicos durante el vuelo: La aplicación del cuadricóptero,
aparte de lograr un vuelo funcional y estable, será la de adquirir datos de tipo meteorológico
mediante sensores. Estos datos deben de ser registrados para que posteriormente el usuario los
pueda visualizar.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
24
4. Hardware del dron
En este capítulo se desarrollará la explicación del conjunto de componentes que hacen posible el
funcionamiento del dron. Se realizará una explicación genérica del funcionamiento de cada uno de
estos componentes y se detallarán los modelos comerciales seleccionados.
4.1. Marco
El marco del dron, también conocido como frame en inglés, forma el esqueleto del multirotor. Se trata
de la estructura que le da forma al dron y le aporta rigidez. En ella se instalan y aseguran el resto de los
componentes mecánicos y eléctricos.
El tipo de marco seleccionado condiciona la elección del resto de los componentes eléctricos en
función de sus características. La elección del marco se determina en función del tipo de cuadricóptero
que se quiera realizar y su la aplicación.
Las principales características de los marcos son:
• Tipo de material.
• Tamaño .
• Distancia entre ejes.
• Peso.
Cada modelo de marco determina el tipo motor eléctrico, hélices y batería para los que se ha diseñado.
Por este motivo, el marco es el primer elemento a seleccionar a la hora de realizar el diseño del dron.
Kit de marco para cuadricóptero, modelo X525 V3
El modelo comercial de marco para cuadricópteros seleccionado es el kit X525 V317.
Figura 4.1: Marco X525-V3.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
25
Se trata de una estructura cuyos brazos son plegables. Las principales características de este marco son
las siguientes:
• Materiales: Base de fibra de vidrio. Brazos de aluminio.
• Tamaño: 525 x 100 mm.
• Distancia entre ejes: 600 mm.
• Peso: 460 g .
Requisitos de compatibilidad con el resto de componentes:
• Motor DC brushless 28-(XX), de 930 a 1400 KV.
• Modelo de hélices entre 9045 y 1045.
• ESC de 20-30 A.
La elección de un marco grande aporta una mayor facilidad para incorporar en el dron el
microcontrolador y el conjunto de sensores para la aplicación de toma de datos atmosféricos del
prototipo. Por otro lado, debido a su gran tamaño, el elevado peso del cuadricóptero será un factor
clave de cara a la elección de los componentes, ya que será necesario incorporar motores potentes
junto a grandes hélices que sean capaces de generar el empuje vertical necesario.
4.2. Motor DC sin escobillas
Una vez seleccionado el marco del cuadricóptero, el siguiente componente a analizar es el motor
eléctrico, encargado de transformar la energía eléctrica almacenada en la batería del dron en energía
mecánica.
Los motores eléctricos de corriente continua sin escobillas, conocidos en inglés como BLDC (Brushless
Direct Current Motor), son un tipo de motor eléctrico que no emplean escobillas para realizar el cambio
de polaridad en el rotor. Mediante esta configuración, se elimina el desgaste mecánico provocado por
el rozamiento de las escobillas con las delgas del rotor y la pérdida de rendimiento en caso de que el
contacto entre los terminales no sea el adecuado. La función de las escobillas es reemplazada por un
componente externo al propio motor llamado ESC (Controlador de Velocidad Electrónico) del inglés,
Electronic Speed Controller, motivo por el cual también son conocidos como motores conmutados
electrónicamente. Tal y como indica su nombre, estos motores son alimentados por corriente
continua, pero reciben corriente alterna al incorporar el ESC, cuya función es la de un inversor CC-CA .
Los motores BLDC pueden ser monofásicos, bifásicos y trifásicos, siendo este último tipo el que se
utilizará para desarrollar el proyecto. Se tratan de motores síncronos, ya que el rotor es capaz de girar
a la misma frecuencia que el campo magnético del estator.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
26
El motor está compuesto por N pares de bobinas en el estator, y P pares de imanes permanentes en el
rotor, normalmente hechos de Samario-Cobalto.
Figura 4.2: Partes de un motor de corriente continua sin escobillas. ( Fuente: TechFuns18)
El motor BLDC se conecta a tres cables con configuración trifásica en estrella, formando las fases A, B
y C. Las fases se conectan a la salida del circuito electrónico formado por el ESC. En la siguiente figura
se observa un diagrama de motor brushless formado por un rotor con dos pares de polos y un estator
formado por tres pares de bobinas.
Figura 4.3: Fases de un motor BLDC. (Fuente: HowToMechatronics19)
Existen dos tipos de configuraciones para estos motores, en función de la posición del rotor y estator.
Figura 4.4: Configuraciones del motor BLDC.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
27
En los motores brushless utilizador en los drones, el rotor se encuentra en la carcasa ya que esta
configuración permite disipar mejor el calor.
Su principio de funcionamiento se basa en el control secuencial de la corriente que circula por las tres
fases del motor en función de la posición del rotor respecto del estator. En su posición inicial, al hacer
circular corriente de manera específica por las tres fases del estator se induce un campo magnético,
generando la atracción del rotor por los imanes de la siguiente posición y la repulsión de los imanes de
la posición anterior. De esta manera, se genera la rotación del motor en un sentido. Al llegar a esta
nueva posición, se modifica la circulación de la corriente para hacer que el nuevo campo magnético
generado favorezca la continuidad del movimiento del rotor. Este proceso se repite de manera cíclica
hasta recorrer la revolución completa. Como ejemplo, se puede observar la secuencia del flujo de
corriente que circula por el motor BLDC durante una revolución en el siguiente gráfico.
Figura 4.5: Flujo de circulación de corriente en un motor BLDC. (Fuente: MDPI20)
Se observa como a lo largo de los seis pasos de conmutación, siempre hay una fase por la cual no circula
corriente, mientras que por el resto de fases circula una corriente igual y opuesta debido a la
configuración en estrella. Al invertir el sentido de la circulación de corriente de una fase respecto a
otra, también se invierte la polaridad del campo magnético, obteniendo un campo magnético de
atracción y otro de repulsión.
Ventajas del uso de motores BLDC:
• Mayor relación Velocidad - Par motor.
• Mayor relación Tamaño - Potencia.
• Mayor respuesta dinámica.
• Mayor eficiencia.
• Mayor vida útil.
• Menor ruido.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
28
• Mayor rango de velocidad.
Inconvenientes del uso de motores BLDC:
• Más caros.
• Requieren de un ESC para funcionar.
Nomenclatura de los motores BLDC
Cada motor tiene asignado un nombre asociado a sus características y capacidades. Se trata de una
nomenclatura estándar para definir el comportamiento de cada tipo de motor. Esta nomenclatura
sigue el siguiente patrón:
(Nombre del modelo) XX-YYA – ZZZZ KV
Ejemplo: NTM Prop Drive Serie 35-30A 1400kV
Las dos primeras cifras corresponden a la anchura del estator en mm y las dos siguientes a su altura. Al
aumentar la anchura del estator, aumenta el tamaño de las bobinas del estator. Aumentando la altura,
se aumenta el tamaño de los imanes permanente. De esta manera, mediante la selección de estos
valores podemos seleccionar el tamaño general del motor y, por otro lado, contra mayor anchura del
motor, mayor par generará a bajas revoluciones. Cuanto más alto sea, mayor potencia se genera a
velocidades altas.
Los siguientes cuatro valores de la nomenclatura están asociados al coeficiente KV. Este coeficiente
está sujeto a un valor referido a la constante de revoluciones del motor. Se trata de la cantidad de
revoluciones por minuto que el motor es capaz de ofrecer por voltio aplicado.
𝜔𝑜 = 𝐾𝑉 · 𝑉 [𝑟𝑝𝑚] (Eq. 4.1)
El valor KV crece proporcionalmente en función del número de espiras del bobinado, el cual es a su vez
inversamente proporcional al grosor del cobre por el que están formadas. Contra mayor grosor, mayor
corriente circulará por la bobina (mayor velocidad respecto al par). Por otro lado, en los motores con
KV bajos, el cobre es más fino por lo que la corriente que circula es menor. Estos motores son utilizados
en los casos en los que se necesite mayor par y una velocidad de giro menos elevada.
El valor de KV se establece por el fabricante bajo las condiciones de carga nula. Al acoplar la hélice, este
valor disminuye considerablemente debido a la fricción del aire.
El rango típico de KV en los motores comerciales se encuentra desde 90 a 14000 KV.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
29
Otra nomenclatura típica para caracterizar a los motores es la siguiente:
AANBBP
Donde AA corresponde al número de polos del bobinado (N) del estator y BB corresponde a la cantidad
de imanes permanentes (P) del rotor.
Contra mayor cantidad de polos, el motor girará de manera más suave a costa de una potencia
mecánica generada menor. Por otro lado, al disminuir la cantidad de polos, se produce una rotación
más brusca, pero a mayor potencia.
NTM Prop Drive Serie 28-26A 1200KV / 286 W
Se trata del modelo comercial de motor BLDC seleccionado para el cuadricóptero. Se trata de un motor
cuyas características satisfacen los requisitos de compatibilidad con el marco seleccionado
previamente.
Figura 4.6: Motor Prop-Drive 28-26 1200 KV.
Características del motor21:
• Modelo: 1200 KV NTM Prop Drive Serie 28-26 A.
• Tamaño: 28 x 26 mm .
• KV: 1200 rpm/V.
• Corriente máxima: 19 A.
• Potencia máxima: 215 W a 11,1 V (batería 3S), 286 W a 14,8 V (batería 4S).
• Eje del motor: 3 mm.
• Peso: 57,6 g.
• ESC compatible: corriente máxima mayor a 20 A.
• Tipo de batería: LiPo 3S o 4S.
• N (polos): 9.
• P (imanes permanentes): 12.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
30
4.3. Controlador electrónico de velocidad (ESC)
El controlador electrónico de velocidad es el dispositivo encargado de regular la velocidad del motor
eléctrico. Es un tipo de convertidor estático de potencia llamado ondulador o inversor trifásico, ya que
transforma la corriente continua de la batería en corriente alterna. Siguiendo con la explicación del
funcionamiento de los motores DC sin escobillas, se trata del dispositivo encargado de modificar
secuencialmente la circulación de la corriente por el bobinado del estator para producir el campo
magnético que genera la rotación del rotor.
El ESC se conecta directamente a la batería del dron y a una señal PWM de entrada procedente del
controlador de vuelo. La salida del ESC está formada por los tres cables de la conexión trifásica. Las
conexiones de un ESC son las que se observan en la siguiente figura:
Figura 4.7: Partes de un ESC. (Fuente: FpvMax22 )
Una de las tareas que realiza el ESC es la detección de la posición de los imanes del rotor respecto al
estator. Los motores BLDC más caros incorporan sensores de efecto Hall en cada una de sus fases. La
señal procedente de estos sensores se envía al ESC, el cual realiza los cálculos necesarios para
determinar su posición. Con este método se obtiene una detección precisa de la posición, a costa de
tener que realizar conexiones adicionales en el motor.
Por otro lado, la detección de la posición de la mayoría de motores BLDC se determina mediante la
lectura de la fuerza contraelectromotriz de la fase por la cual no circula corriente en cada una de las
secuencias del flujo de corriente.
A continuación, se muestra una figura de la lectura de los dos métodos de detección de la posición del
rotor del motor BLDC.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
31
Figura 4.8: Lectura de sensores de efecto Hall y de la fuerza contraelectromotriz en un motor BLDC. (Fuente: MDPI)
El principio de funcionamiento del ESC es parecido a la configuración de un inversor trifásico PWM23.
La modulación por ancho de pulsos consiste en modificar el ciclo de trabajo de una señal periódica, en
este caso cuadrada, con tal de modificar el valor de tensión eficaz en su salida sin que se produzca una
pérdida de energía. Para el control de la velocidad de los motores BLDC mediante los ESC, se utiliza una
frecuencia de señal PWM normalmente comprendida entre 50 y 400 Hz.
El ESC procesa la información recibida de la señal PWM haciendo que, independientemente de la
frecuencia de la señal PWM, para un flanco activo de 1 ms, el motor se encuentre completamente
parado y para uno de 2 ms opere a máxima potencia, tal y como se muestra en la siguiente figura.
Figura 4.9: Señal PWM de 50Hz enviada a un ESC para el control de los motores. (Fuente: HowToMechatronics16).
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
32
La función del ESC es la de conmutar la red de seis transistores MOSFET en configuración de inversor
trifásico en función de la lectura de la posición de los imanes del rotor. La señal PWM se aplica a los
transistores 1, 3 y 5 que forman la parte superior del puente de transistores en la siguiente figura.
Figura 4.10: Red de transistores en un ESC controlados por señal PWM. (Fuente: BLDC Control Principles18)
Muchos ESC incorporan un sistema llamado BEC (Battery Eliminating Circuit). Su función es la de
obtener a su salida un voltaje reducido a partir de la batería del dron (normalmente de 11,1 V
nominales) a una tensión regulada de 5 V con el objetivo de alimentar la placa controladora, sensores
externos, receptor de radio, etc. Dependiendo de la calidad del ESC, el BEC que incorpora puede estar
formado por un regulador lineal de voltaje o por regulador de voltaje conmutado cuya elección es
preferible debido a la menor pérdida de potencia disipada.
Por otra parte, la mayoría de ESC son programables. Incorporan un controlador mediante el cual el
usuario puede establecer el conjunto de características que afectan al comportamiento de los motores.
Las principales características programables son las siguientes.
• Control de frenado de hélices en parado.
• Selección del tipo de batería conectada.
• Selección del umbral de voltaje mínimo de la batería por celda.
• Número de polos del motor.
• Control de la respuesta de la aceleración.
• Restauración al modo de fábrica.
Los ESC incorporan un pequeño buzzer que produce tonos auditivos para describir el modo de
programación en el cual se encuentran y permitir al usuario su identificación y posterior modificación.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
33
ZTW Beatles 30A ESC 2-4S Lipo 5V 2A BEC
Se trata del modelo comercial de controlador de velocidad electrónico seleccionado. Soporta una
corriente máxima de 30 A, valor superior a la corriente máxima que puede circular por el motor elegido.
Figura 4.11: Controlador de velocidad electrónico ZTW Beatles 30A . (Fuente: Hoja de datos del ESC24)
Sus principales características son:
• Corriente continua máxima: 30 A.
• Corriente de pico máxima durante 10 s: 40 A.
• Batería compatible: Lio entre 2 y 4S, NiCd entre 5 y 12 celdas.
• Peso: 24 g.
• BEC: 5 V / 2 A.
• Tamaño: 25 x 43 x 8 mm.
Características programables principales:
• Freno motor: ON/OFF.
• Tipo de batería compatible: NiCd, NiMH, LiPo.
• Umbral de corte de baja tensión: 8,4 V, 9 V y 9,6 V.
• Configuración de sincronización (mejora de eficiencia y suavidad de giro):
Auto(7-30 °), Low (7-22° para motor de 2 polos) y High (22- 30 ° para motor de 6 polos o más).
• Aceleración: Soft (1,5 s de delay de 0 a 100% de potencia), Normal (1 s de 0 a 100%) y Hard
(aceleración directa).
• Rotación del motor: sentido horario o sentido antihorario.
• Frecuencia de conmutación de la red de transistores: 8 KHz o 16 KHz.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
34
4.4. Hélices
La hélice es un dispositivo mecánico formado por un conjunto de palas o álabes en disposición
concéntrica al eje del motor donde van ancladas. Se trata del elemento que permite hacer volar al dron
al generar una fuerza de sustentación mayor a la del propio peso del dron.
El empuje o sustentación es una fuerza aerodinámica generada por un cuerpo que se desplaza por un
fluido, en dirección perpendicular a la del movimiento de la corriente incidente. Debido a la forma
inclinada de la hélice, al rotar en el sentido adecuado se genera una zona de alta presión debajo del
área de rotación y una zona de baja presión por encima del área, resultando en una fuerza de empuje
vertical ascendente.
La cantidad de empuje generado por una hélice se determina a partir de la ecuación de empuje25.
𝐹𝑒𝑚𝑝𝑢𝑗𝑒 = 1
2𝜌𝑣2𝐴𝐶𝐿 [𝑁]
(Eq. 4.2)
Cuyos parámetros son:
• 𝜌 [ 𝑘𝑔
𝑚3 ]: densidad del aire.
• 𝑣2 [ 𝑚𝑖𝑙𝑙𝑎𝑠
ℎ𝑜𝑟𝑎 ]: velocidad verdadera (velocidad relativa de la aeronave respecto a la masa de
aire en la que vuela).
• A [ 𝑚2 ]: área del rotor.
• 𝐶𝐿 : Coeficiente de sustentación.
El coeficiente de sustentación26 relaciona la sustentación generada por la hélice con la densidad del
fluido a su alrededor, su velocidad y el área de referencia asociada. Varía en función del ángulo de
ataque α de la hélice (ángulo entre la hélice y la dirección de la velocidad del aire incidente). El objetivo
es obtener un coeficiente de sustentación lo más alto posible aumentando el ángulo de ataque sin
pasar el límite por encima del cual el cuerpo puede llegar a pérdida aerodinámica.
Figura 4.12: Coeficiente de sustentación en función del ángulo de ataque. (Fuente: 22).
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
35
La nomenclatura de los modelos comerciales de hélices viene dada por la siguiente denominación.
AABBxC
Las primeras dos cifras corresponden a la longitud de punta a punta de la pala en pulgadas, seguido de
el paso de la pala, también en pulgadas. El paso determina el ángulo de la pala respecto a su plano de
giro. Corresponde a la distancia en pulgadas que avanzaría la hélice al realizar una revolución completa
en caso de que se pudiera desplazar libremente gracias al empuje que genera.
Las palas de paso corto generan un empuje menor, por lo que se utilizan en aplicaciones para vuelos
lentos donde se requiere de mayor estabilidad. Por otro lado, un paso largo genera una mayor
velocidad de vuelo a costa de un consumo del batería mucho más elevado. La última cifra (C) describe
la cantidad de palas que forman la hélice.
KEESIN Bull Nose 1045 CW CCW ABS
Se trata del modelo comercial de hélices seleccionadas para acoplar al motor BLDC.
Figura 4.13: Modelo de hélices KEESIN Bull Nose 1045.
Sus principales características son las siguientes:
• Material: plástico ABS.
• Longitud: 10 pulgadas.
• Paso: 4,5 pulgadas.
• Peso: 12 g.
• 2 pares de hélices 1045 CW-CCW color naranja.
• 2 pares de hélices 1045 CW-CCW color negro.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
36
La hoja de datos del motor seleccionado dispone de gráficos y tablas del rendimiento del motor en
función del tipo de batería (3S o 4S) y del tamaño de las hélices acopladas. A partir de estos datos se
obtiene la siguiente información17:
Figura 4.14: Curva de empuje en función de la corriente para batería 3S.
La segunda tabla de datos proporcionada por el fabricante es la siguiente:
Figura 4.15: Características del motor seleccionado con una hélice 1045 para una batería 3S. (Fuente: Hobbyking)
4.5. Batería
Para proporcionar la energía necesaria para satisfacer la alta demanda de consumo de los motores de
los drones, se utilizan principalmente dos tipos de baterías. Normalmente, se suelen utilizar las baterías
de Polímero de Litio(LiPo) pero también es común encontrar baterías de Níquel-Hidruro metálico
(NiMH). A continuación, se muestra una tabla comparativa de sus principales características:
0
200
400
600
800
1000
1200
0 5 10 15 20
Emp
uje
(g)
Corriente (A)
Empuje en función de la corriente
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
37
Características LiPo NiMH
Voltaje de célula nominal [V] 3,7 1,2
Energía Específica [W·h/Kg] 130 - 200 60 - 120
Densidad Energética [W·h/L] 300 140 - 300
Eficiencia carga/descarga 99,8 % 66%
Durabilidad (ciclos) > 1000 500 - 2000
Tabla 4.1: Comparativa entre baterías Li-Po27 y Ni-Mh28.
Las baterías LiPo son actualmente más utilizadas que las NiMH a pesar de ser más caras debido a las
grandes diferencias entre las prestaciones que presentan, tal y como se observa en la anterior tabla.
Son baterías recargables formadas por varias celdas en serie. Funcionan según el principio de las
baterías de ion de litio. Mediante la configuración por celdas, se permite aumentar la corriente de
descarga de la batería, así como la tensión que suministran.
Nomenclatura de las baterías LiPo29
En los nombres de los modelos comerciales encontramos las características principales de la batería.
Junto a la marca y el modelo de la batería encontramos:
XXXX mAh AA-BBC DS
Las primeras cuatro cifras (XXXX) corresponden a la capacidad de la batería. Se trata de la cantidad de
corriente que la batería puede suministrar en una hora.
Las siguientes cuatro cifras corresponden a la tasa de descarga de la batería. Se mide en unidades ‘C’.
Los dos primeros valores (AA) son la corriente máxima que puede suministrar la batería de forma
segura de manera continua. El valor de la constante C corresponde a la cantidad de veces que se puede
multiplicar la capacidad de la batería para saber la descarga máxima. Las dos siguientes cifras (BB)
corresponden al pico de corriente máxima que puede suministrar la batería en un intervalo pequeño
de tiempo, normalmente referido a 10 s.
La tasa de carga corresponde a la corriente máxima a la que se puede cargar la batería. Se trata de un
valor que en caso de no incluirse en el nombre del modelo es porque es de 1C.
La última cifra (D) acompañada de una S (Serie) o P( Paralelo), indica la cantidad de celdas por las que
está formada la batería. Cada celda es de 3,7 V nominales por lo que una batería 3S proporciona una
tensión nominal de 11,1 V.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
38
HRB 3S 3300 mAh 60 C LiPo
Se trata de un modelo de batería compatible con el motor y el ESC elegido, al ser de tipo 3S.
Figura 4.16: Batería LiPo HRB 3S 3300 mAh 60 C. (Fuente: Tiendamia30 )
Características principales del modelo de batería seleccionado:
• Voltaje nominal: 3S - 11,1 V. (10,8 ~ 12,6) V.
• Voltaje por celda: 3,6 ~ 4,2 V.
• Capacidad: 3300 mAh.
• Tasa de descarga: 60C.
• Corriente de ráfaga: 120C.
• Tamaño: 13,5 x 4,2 x 2,1 cm.
• Peso: 264 g.
• Conector: XT60.
Para cargar una batería de gran capacidad, es necesario utilizar un cargador programable específico.
Este tipo de cargadores detectan el tipo de batería conectada, así como la cantidad de celdas por las
que están formadas para iniciar un programa de carga/descarga acorde a sus características. Realizan
la carga de la batería mediante la técnica de carga a tensión y corriente constante equilibrando la
tensión final de cada una de las distintas celdas de la batería, alargando así su vida útil.
TURNIGY ACCUCELL-6 31
Se trata del modelo de cargador de baterías LiPo utilizado en el proyecto.
Figura 4.17: Modelo de cargador de batería Li-Po seleccionado.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
39
Las características principales del cargador son las siguientes.
• Nº de celdas para baterías Ni-MH/NiCd: 1 ~ 15.
• Nº de celdas para baterías Li-ion/Poly: 1 ~ 6.
• Rango de corriente de carga seleccionable: 0,1 ~ 6 A.
• Potencia de carga máxima: 50 W.
• Potencia de descarga máxima: 5 W.
Medidor de voltaje con buzzer para baterías Lipo 1 - 8S
Para monitorizar el estado de carga de la batería se utilizará este medidor de voltaje, el cual incorpora
un buzzer que emite tonos auditivos de alerta para informar al piloto cuando el estado de la batería es
muy bajo.
Figura 4.14: Display indicador del estado de la batería.32
4.6. Placa de distribución de potencia
Se trata de un componente que incluye los terminales necesarios para alimentar los cuatro ESC y
motores del cuadricóptero a partir de la batería.
Placa de distribución de potencia Manía Rey Quadcopter
• 4 salidas de alimentación (20 A máx).
• Entrada XT60.
• Salida auxiliar JST para alimentar sensores externos.
Figura 4.15: Placa de distribución de potencia seleccionada. (Fuente: HobbyKing)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
40
4.7. Microcontrolador.
Arduino es un microcontrolador de código abierto basado en el desarrollo de hardware y software
libre. Existen multitud de placas Arduino con distintas especificaciones en función de la aplicación del
dispositivo. La mayoría de Arduino utilizan un microcontrolador AVR Atmel de 8 bits.
El software de Arduino consiste en un Entorno de Desarrollo (IDE) y un cargador de arranque
incorporado en el propio microcontrolador. Las placas Arduino se programan mediante un ordenador
por comunicación serie. El lenguaje de programación que emplea es C++.
El modelo de Arduino pensado para ser instalado en el cuadricóptero es Arduino UNO.
Figura 4.20: Arduino UNO y diagrama de pines. (Fuente: Arduino.cc33)
A continuación, se muestran las especificaciones principales de Arduino UNO:
• Microcontrolador: ATmega328.
• Voltaje Operativo: 5V.
• Voltaje de Entrada: entre 7 y 12 V.
• Pines de Entradas/Salidas Digitales: 14 (De las cuales 6 son salidas PWM).
• Pines de Entradas Análogas: 6.
• Memoria Flash: 32 KB (ATmega328) de los cuales 0,5 KB se usan para el Bootloader.
• SRAM: 2 KB (ATmega328).
• EEPROM: 1 KB (ATmega328).
• Velocidad del Reloj: 16 MHz.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
41
4.8. Control remoto
El mando a control es el dispositivo mediante el cual el piloto del cuadricóptero modifica de manera
remota las consignas de control del dron. Para desarrollar este proyecto se utilizará la base de un
modelo comercial de mando a control. Los componentes electrónicos que incluye este mando serán
modificados para incorporarle un microcontrolador basado en Arduino que gobierne el conjunto de
componentes periféricos del mando y que permita programar de manera propia el funcionamiento de
la comunicación por radio. El modelo de mando a control seleccionado, cuya electrónica será
modificada es el siguiente.
SPEKTRUM DX6i
A partir de la carcasa del mando mostrado y sus componentes mecánicos, al mando se le incorporará
un Arduino Uno donde se conectarán el conjunto de elementos del mando, junto al siguiente módulo
de radio.
NRF24L01 con antena
Se trata de un transceptor de radio, es decir, un dispositivo que incorpora un transmisor y un receptor
de radio inalámbrico. Es un dispositivo programable mediante Arduino que trabaja dentro del espectro
de las bandas de radio ISM a 2,4 GHz.
Es un dispositivo de comunicación bidireccional del tipo semidúplex, ya que puede enviar o recibir
datos, pero no puede realizar ambas tareas al mismo tiempo. La comunicación se realiza instalando un
transceptor en el mando a control y otro en el cuadricóptero. La transmisión de datos se realiza
mediante el bus SPI de Arduino.
Figura 4.21: Modelo de mando a control base seleccionado. (Fuente: StockRC)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
42
El bus SPI (Serial Peripheral Interface) es un protocolo de comunicación síncrono de 4 hilos. Tiene una
arquitectura del tipo master-slave (maestro-esclavo), donde el dispositivo maestro puede iniciar la
comunicación con uno o varios dispositivos esclavos para enviar o recibir datos entre ellos. Las cuatro
señales de comunicación son las siguientes.
• SCLK: Señal de reloj del bus.
• MISO (Master Input Slave Output): Señal de recepción de datos desde otro dispositivo.
• MOSI (Master Output Slave Input): Señal de transmisión de datos hacia otro dispositivo.
• CS (Chip Select): Señal de habilitación del dispositivo integrado con el que realizar la
comunicación.
Figura 4.22: Diagrama de comunicación SPI entre dispositivos. (Fuente: Comunicación SPI34)
El funcionamiento para el envío de datos desde el dispositivo maestro es el siguiente35:
1. Se habilita el chip al que hay que enviar la información mediante la señal CS en caso de haber
varios dispositivos slave.
2. Se carga en el buffer de salida el bit a enviar.
3. El reloj empieza a generar la señal cuadrada donde normalmente por cada flanco de bajada se
envía un bit por la señal MOSI.
4. El receptor normalmente en cada flanco de subida captura el bit de la línea MISO y lo incorpora
en el buffer.
Este proceso se repite 8 veces hasta transmitir un byte completo . Si se ha terminado de transmitir se
vuelve a poner la línea CS en reposo. La comunicación SPI entre el master-slave es del tipo dúplex
completo, por lo que, por cada dato enviado por el master, éste recibe un dato del slave seleccionado.
El tamaño de la trama de bits es seleccionable, por lo que es necesario acordar la longitud de los datos
enviados entre los dos dispositivos de forma previa.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
43
Figura 4.23: Ejemplo de transmisión de datos en una comunicación SPI. (Fuente: Arduino.cc /SPI)
Características principales del transceptor de radio NRF24L01:
• Frecuencia del transceptor: 2,4 GHz.
• Protocolo de comunicación: SPI.
• Baudaje: entre 250 kbps y 2 Mbps.
• Rango de Canales : 125.
• Número máximo de canales: 6.
• Alcance máximo: 30 m sin antena. 1 km con antena externa.
• Alimentación: 1,9 V a 3,6 V.
• Consumo: Transmisión: 11.3mA, recepción: 13.5mA a 2Mbps, 900 nA en modo power
down y 26 uA en modo standby.
• Pin IRQ de interrupción para la recepción de datos.
4.9. Unidad de medición inercial (IMU)
Una unidad de medición inercial, también conocida por sus siglas en ingles IMU (Inertial measurement
Unit), se trata de un dispositivo electrónico que mide las fuerzas gravitacionales, orientación y
aceleración a las cuales está sometido un cuerpo. Es un componente utilizado por aviones, vehículos
aéreos no tripulados, satélites, etc.
Principalmente, una IMU está formada por un conjunto de sensores cuya información se procesa de
forma conjunta. Los sensores principales y mayormente utilizados son el acelerómetro y el giroscopio.
Dependiendo de la aplicación del dispositivo, las lecturas de estos sensores también se utilizan en
conjunto con un magnetómetro. Una IMU se puede utilizar de forma complementaria a sistemas de
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
44
navegación más complejos como la tecnología GPS, ya que su principal ventaja respecto a estos
sistemas es que siguen funcionando cuando la señal GPS es débil o cuando se encuentra bajo presencia
de interferencias electromagnéticas. A continuación, se realiza la explicación de las principales
características de estos sensores.
Un acelerómetro es un instrumento que mide aceleraciones asociadas a un cuerpo respecto a su
estado de reposo. Esta aceleración no está fijada a un sistema de coordenadas, sino que, en función
de su tipo de configuración, obtienen lecturas de aceleración distintas para cada uno de los tres ejes X,
Y y Z del espacio tridimensional. Por ejemplo, un acelerómetro en reposo respecto a la superficie de la
Tierra obtiene el valor de aceleración de la gravedad de la Tierra, mientras que, por otro lado, un
acelerómetro de tipo caída libre obtiene una lectura de aceleración nula.
Un giroscopio es un instrumento utilizado para medir la orientación y la velocidad angular a la que se
encuentra un objeto. El giroscopio está formado por tres anillos giratorios que rotan alrededor de un
eje acoplado a un disco, el cual se mantiene fijo. Los tres anillos tienen libertad de rotación de manera
independiente entre sí en función de la orientación a la que se encuentre el cuerpo.
En base a la rotación de estos anillos, se mide el ratio angular o velocidad angular, es decir, el cambio
de la posición angular a lo largo del tiempo. A partir de una condición inicial conocida, se puede integrar
la velocidad angular para conocer la posición angular a la cual se encuentra el dispositivo respecto a
sus tres ejes principales.
Unidad de Medición Inercial MPU6050
MPU6050 es una unidad de medición inercial integrada de seis grados de libertad. Está formada por
un acelerómetro y un giroscopio que ofrecen lecturas para cada uno de los tres ejes mediante un
procesador digital de movimiento (DMP).
Figura 4.24: Unidad de medición Inercial MPU6050.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
45
Especificaciones principales de la unidad de medición inercial MPU6050.
• Tensión de alimentación: entre 2,3 y 3,4 V.
• Consumo máximo: 3,9 mA.
• Rango del acelerómetro: ±2 g, ± 4 g, ± 8 g, ± 16 g.
• Rango del giroscopio: ± 250 °/s, ± 500 °/s, ± 1000 °/s, ± 2000 °/s.
• Tolerancia de calibración del acelerómetro y giroscopio: ± 3%.
• Temperatura de operación : - 40 ºC a + 85 ºC.
• Protocolo de comunicación: I2C.
El sistema de comunicación I2C36 es un protocolo de comunicación serie síncrono. Se trata de un
sistema con arquitectura master-slave, donde cada dispositivo tiene una dirección previamente
establecida. Es un sistema de comunicación parecido al protocolo SPI, con la ventaja de que solo
requiere de dos señales, reloj (CLK) y datos (SDA) para establecer la comunicación. La reducción del
número de hilos es a costa de un protocolo de funcionamiento más complejo.
Existen dos modos de comunicación I2C para realizar la escritura o lectura de datos.
1) Maestro-Transmisor, Esclavo-Receptor. Usado para configurar un registro del esclavo I2C.
2) Maestro-Receptor, Esclavo-Transmisor. Usado para leer la información del sensor.
El dispositivo maestro se encarga de iniciar y parar la comunicación, así como de configurar la velocidad
de la señal de reloj normalmente entre el rango de 100 Kb/s y 1Mb/s. Su protocolo de comunicación
utiliza una trama formada por el estado de los siguientes registros.
1. Inicio la comunicación (S).
2. Selección de la dirección del esclavo 7 bits (ADDR).
3. Selección de modo lectura o escritura (R/W).
4. Envío de dirección de memoria (8 bits).
5. Transmisión de datos (8 bits).
6. Confirmación del estado de recepción de datos (ACK/NACK) .
7. Finalización de la comunicación ( P).
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
46
Figura 4.25: Trama de datos en comunicación I2C . (Fuente: I2C | Arduino37)
El dispositivo esclavo, formado normalmente por un sensor, realiza la configuración de sus parámetros
mediante la lectura de los datos enviados por el maestro y posteriormente realiza el envío de los datos
adquiridos en paquetes de 8 bits.
4.10. Adquisición de datos atmosféricos
De forma paralela al sistema de control de vuelo del cuadricóptero, en el proyecto se incluye un sistema
de adquisición de datos atmosféricos. Se incorporará un sensor en el cuadricóptero y mediante la
programación del microcontrolador Arduino, se realizarán los cálculos necesarios para obtener las
lecturas del sensor. También se incorporará un módulo de tarjeta de memoria microSD donde registrar
las variables medidas para su posterior visualización en un ordenador.
Sensor MS5611-01BA03
MS5611 es un sensor de temperatura y presión barométrica de alta resolución. A partir de los datos
de presión y temperatura se puede realizar una estimación de la altitud de vuelo del cuadricóptero con
una resolución de 10 cm al configurar el sensor en el modo de máxima resolución. Los datos obtenidos
son de gran exactitud ya que incorpora unos registros con los valores de coeficientes de calibración de
fábrica utilizados para el cálculo de la obtención de la presión y temperatura.
Figura 4.26: Sensor de presión barométrica y temperatura MS5611.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
47
La obtención de datos se realiza mediante un conversor analógico digital (ADC) de resolución
modificable mediante la modificación del parámetro OverSampling Ratio (OSR), que determinará la
resolución, corriente consumida y el tiempo de retardo necesario para realizar la lectura.
Las principales especificaciones técnicas son las siguientes, según la hoja de datos del producto38.
• Tensión de alimentación: entre 1,8 y 3,6 V.
• Resolución del ADC: 24 bits con OSR (256/ 512/ 1024/ 2048/ 4096).
• Tiempo de respuesta: según OSR ( 0,5 / 1,1/ 2,1/ 4,1/ 8,22) ms.
• Presión
o Rango: entre 10 y 1200 mbar.
o Resolución(en función de OSR): < 0,012 mbar.
o Exactitud a 25 ºC, 750 mbar: ± 1.5 mbar.
• Temperatura
o Rango: entre - 40 y +85 ºC.
o Resolución (en función de OSR): < 0,01 ºC.
o Exactitud: ± 0,8 ºC.
Para almacenar el conjunto de datos adquiridos mediante el sensor MS5611, se utilizará un módulo de
lectura y escritura de tarjetas de memoria Micro SD.
Figura 4.27: Módulo lector de tarjeta micro SD para Arduino.
Este módulo utiliza una interfaz de comunicación SPI, al igual que el transceptor de radio explicado
anteriormente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
48
A continuación, se muestra una tabla resumen de todos los modelos comerciales de los componentes
utilizados para construir el cuadricóptero.
Componente Modelo Comercial
Marco X525 V3
Motor BLDC NTM Prop Drive 28-26 A 1200 KV
Hélices KEESIN Bull Nose 1045 CW CCW
ESC ZTW Beatles 30 A 2-4S LiPo
Batería HRB 3S 3300 mAh 60C
Cargador de batería LiPo Turnigy Accucell 6
Placa de distribución de potencia Manía Rey Quadcopter
Microcontrolador Arduino UNO
Transceptor de radio NRF24L01A
Codificador Rotativo KY-040
Display 7 segmentos 4 dígitos TM16637
Mando a control Spektrum Dx6i
Unidad de medición inercial MPU6050
Sensor de datos atmosféricos MS5611
Tarjeta Micro SD Kingston Canvas 16 GB clase 10
Tabla 4.2:Tabla resumen de los componentes seleccionados.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
49
5. Cálculos de prestaciones de vuelo
En este capítulo, se desarrollarán los cálculos de la simulación de vuelo en función de los componentes
seleccionados para construir el cuadricóptero.
5.1. Peso del Cuadricóptero
A partir de los datos de cada uno de los componentes seleccionados del cuadricóptero, se calcula el
peso total del dron.
Componente Cantidad Peso unitario (g)
Marco 1 450
Motores 4 59
Hélices 4 12
ESC 4 24
Batería 1 264
Placa distribución potencia 1 32
Arduino MEGA 2560 1 37
MPU6050 1 5
NRF24L01 1 10
Módulo tarjeta micro SD 1 5
Cables 10 1.5
Protoboard 1 43
Medidor Voltaje Batería 1 10
Peso Total 1252 g Tabla 5.1: Peso total del cuadricóptero.
5.2. Energía y características mecánicas
A continuación, se muestran los cálculos de los resultados de vuelo.
Características de la batería utilizada:
• Tensión nominal: 11,1 V.
• Capacidad total: 3300 mAh.
• Energía total almacenada:
𝐸 = 𝑉 · 𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 = 36,6 𝑊 · ℎ (Eq. 5.1)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
50
• Capacidad útil: Capacidad real suponiendo que la batería nunca se carga y descarga por
completo. Suponiendo el uso del 85 % de la capacidad total.
𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 ú𝑡𝑖𝑙 = 85% · 𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 = 2805 𝑚𝐴ℎ (Eq. 5.2)
Características del motor:
• KV = 1200.
• Ri = 0,14 Ω: Resistencia interna del motor.
• Io = 0,7 A: Corriente sin carga.
Se obtienen los valores de rendimiento y par motor a partir de las siguientes ecuaciones.
Par (T)39:
𝑇 = 𝐾𝑇 · (𝐼 − 𝐼𝑜) =30
𝜋 · 𝐾𝑉· (𝐼 − 𝐼𝑜) [ 𝑁 · 𝑚]
(Eq. 5.3)
Rendimiento (η):
η = 𝑃𝑜
𝑃𝑖=
(𝑉 − 𝐼 · 𝑅𝑖) · (𝐼 − 𝐼𝑜)
𝑉 · 𝐼· 100 [%]
(Eq. 5.4)
Motor al máximo
Con la batería 3S totalmente cargada, la potencia eléctrica máxima que recibe el motor es la siguiente.
𝑃𝑜𝑡𝑒𝑛𝑐𝑖𝑎𝑒𝑙é𝑐𝑡𝑟𝑖𝑐𝑎 = 𝑉𝑚𝑎𝑥 · 𝐼𝑚𝑎𝑥 = 12,6 𝑉 · 20 𝐴 = 240 𝑊 (Eq. 5.5)
Se obtienen los valores de par (20 A) = 15,35 N·cm y η ( 20 A) = 72,15 %.
A partir del valor de rendimiento obtenido, se tiene que la potencia mecánica máxima que puede
generar el motor es de 173,16 W.
Relación empuje-peso del cuadricóptero.
𝐸𝑚𝑝𝑢𝑗𝑒
𝑃𝑒𝑠𝑜=
𝐸𝑚𝑝𝑢𝑗𝑒𝑚𝑎𝑥 · 𝑁º 𝑚𝑜𝑡𝑜𝑟𝑒𝑠
𝑃𝑒𝑠𝑜 =
967 · 4
1252= 3,08
(Eq. 5.6)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
51
Motor a potencia de elevación
𝐸𝑚𝑝𝑢𝑗𝑒𝑒𝑙𝑒𝑣𝑎𝑐𝑖ó𝑛 =𝑃𝑒𝑠𝑜 𝑡𝑜𝑡𝑎𝑙
𝑁º 𝑑𝑒 𝑚𝑜𝑡𝑜𝑟𝑒𝑠=
1252 𝑔
4= 313 𝑔
(Eq. 5.7)
A partir del gráfico de la figura 4.14, realizando una interpolación lineal de los datos del gráfico, se
obtiene los siguientes resultados.
• Corriente necesaria para generar un empuje de 313 g: 3,3 A.
• RPM(3,3 A): 4978 rpm.
A partir del valor de corriente obtenido, se calcula:
• T (3,3 A) = 2,06 N·cm
• η ( 3,3 A) = 75,5 %
Motor a eficiencia óptima
La corriente que circula por el motor cuando este opera a máxima eficiencia se obtiene a partir de la
siguiente ecuación.
𝐼𝜂 𝑚𝑎𝑥 = √𝑉 · 𝐼𝑜
𝑅𝑖= 7,45 𝐴
(Eq. 5.8)
Para I = 7,45 A:
• T = 5,37 N·cm
• η = 82 %
𝑅𝑃𝑀max 𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑐𝑖𝑎 = 𝐾𝑉 · (𝑉 − 𝐼𝜂 𝑚𝑎𝑥 · 𝑅𝑖) = 12068 𝑟𝑝𝑚 (Eq. 5.9)
5.3. Tiempo de vuelo
Finalmente, se puede calcular la estimación del tiempo de vuelo que puede realizar el cuadricóptero
𝑡 (min) =𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑ú𝑡𝑖𝑙
𝐼 · 𝑁º 𝑚𝑜𝑡𝑜𝑟𝑒𝑠· 60
(Eq. 5.10)
• Tiempo de vuelo mínimo ( I = 20 A) : tmín= 2,1 min.
• Tiempo de vuelo estacionario ( I = 3,3 A): test= 12,75 min.
• Tiempo de vuelo medio: tmed= 7, 42 min.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
52
El tiempo de vuelo medio obtenido es aproximadamente de 7,5 minutos. Se trata de un tiempo de
vuelo no muy elevado, que se puede aumentar fácilmente incorporando una batería de mayor
capacidad. La elección de una batería de 3300 mAh se ha realizado sabiendo que el tiempo de vuelo
del cuadricóptero sería reducido, pero para la aplicación del proyecto es suficiente.
5.4. Prestaciones de vuelo mediante la web eCalc
Para contrastar los cálculos de simulación realizados, se utilizará la herramienta de cálculo que
proporciona la web eCalc40. Se trata de una herramienta que realiza cálculos avanzados de simulación
de las prestaciones vuelo de un cuadricóptero en función de los componentes elegidos.
Se han introducido las características de los componentes adquiridos de la siguiente manera:
Figura 5.1: Lista de componentes del cuadricóptero para realizar la simulación.
Los cálculos generados son los siguientes:
Figura 5.2: Resultados de simulación obtenidos mediante la web eCalc.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
53
Realizando la comparativa entre los resultados obtenidos mediante el cálculo propio y la web eCalc, se
observa que los resultados son prácticamente idénticos.
Los requisitos mínimos establecidos en el capítulo 3.1 han sido teóricamente logrados ya que el tiempo
de vuelo en estado estacionario resultante es de 11,8 minutos respecto el mínimo establecido de 10
minutos y la relación empuje peso obtenida es de 3 respecto al valor establecido de 2,5.
Adicionalmente, la web presenta dos figuras en la que se detallan la simulación del tiempo de vuelo
del cuadricóptero en función de la velocidad del viento en caso de que se pilotara en exteriores, y otra
figura de las características de potencia del motor.
Figura 5.3: Alcance del dron en función de la velocidad del aire.
Figura 5.4: Características del motor.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
54
6. Software de control
En este capítulo se desarrollará la teoría sobre el funcionamiento del control automático del
cuadricóptero. Se aplicará un control PID, cuyas bases fueron creadas en 1911 por el inventor Elmer
Sperry, cuya participación en la invención del control automático aplicado a aeronaves se comenta en
el capítulo 1.1.
6.1. Control PID
Un controlador PID es un sistema de control por realimentación típicamente aplicado a sistemas en
lazo cerrado. Para regular un proceso físico mediante un controlador PID se requieren tres factores:
• Un sensor cuya lectura determine el estado de la salida del sistema. Ejemplos: termómetro,
giroscopio, caudalímetro, etc.
• Un controlador que genere la señal que controle el actuador.
• Un actuador que modifique la salida sistema. Ejemplos: resistencia eléctrica, motor,
servomotor, etc.
El control PID mide el error entre el estado actual de la planta y una consigna de referencia para realizar
los cálculos necesarios con tal de obtener una respuesta transitoria estable que haga que la salida
alcance el estado deseado.
Se trata de un algoritmo cuyo resultado se basa en la suma de tres parámetros, los cuales conforman
la sigla PID. Estos parámetros son el término proporcional, el integral y el derivativo.
Dependiendo de la aplicación de control, se puede prescindir de alguna de las tres acciones de control
para formar controles distintos, siendo los más comunes los sistemas con control PI, PD o PID.
Figura 6.1: Diagrama de un controlador PID. (Fuente: Picuino41)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
55
Cada parte del controlador está gobernada por ganancias de diseño independientes que permiten al
usuario modificar el tipo de respuesta transitoria del sistema.
6.1.1. Parte proporcional
La parte proporcional es el producto entre la señal de error y la ganancia proporcional Kp. Su objetivo
es el de minimizar el error del sistema.
𝑃 = 𝐾𝑝 · 𝑒(𝑡) (Eq. 6.1)
𝑒(𝑡) = 𝑆𝑃 − 𝑃𝑉(𝑡) (Eq. 6.2)
Donde SP: Set Point (consigna) y PV(t): variable de proceso.
Características del ajuste de Kp:
• Para un valor de Kp correcto:
o Aumenta la velocidad de la respuesta transitoria del sistema.
o Disminuye el error en estado estacionario.
• Para un valor de Kp demasiado elevado:
o Aumenta la inestabilidad del sistema.
6.1.2. Parte integral
Su propósito es el de eliminar el error en régimen permanente. Cuando el error entre la consigna y la
salida es pequeño, la parte proporcional puede no ser capaz de contrarrestar las desviaciones
permanentes producidas por perturbaciones externas a la planta. La parte integral realiza la
integración del error proporcionalmente a la ganancia integral Ki, sumando la acumulación de la señal
de error hasta anularlo para mantener la variable controlada en el punto de consigna.
Figura 6.2: Ejemplo de respuesta transitoria ante entrada escalón de un sistema.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
56
𝐼 = 𝐾𝑖 · ∫ 𝑒(𝑡)𝑑(𝑡) (Eq. 6.3)
Características del ajuste de Ki:
• Para un valor de Ki correcto:
o Disminuye el error en régimen permanente.
o Aumenta ligeramente la velocidad del sistema.
• Para un valor de Ki demasiado elevado:
o Aumenta la inestabilidad de la respuesta del sistema.
6.1.3. Parte derivativa
La parte derivativa corresponde al control de la derivada de la señal de error e(t). Su función es la de
minimizar el error controlando la velocidad de respuesta amortiguándola. Por lo tanto, la acción
derivativa es el producto en la ganancia derivativa y la velocidad del error.
𝐷 = 𝐾𝑑 ·𝑑𝑒(𝑡)
𝑑𝑡
(Eq. 6.4)
Características del ajuste de Kd:
• Para un valor de Kd correcto:
o Aumenta la estabilidad del sistema.
o Disminuye la velocidad de la respuesta transitoria.
• Para un valor de Kd demasiado elevado:
o Genera oscilaciones en estado estacionario.
o Produce inestabilidad en el sistema.
La salida y(t) del controlador PID, está formada por la suma de los tres términos de control,
combinando las ventajas de las tres acciones individuales en caso de seleccionar las ganancias
adecuadas.
𝑦(𝑡) = 𝑀𝑉(𝑡) = 𝐾𝑝 · 𝑒(𝑡) + 𝐾𝑖 · ∫ 𝑒(𝑡)𝑑(𝑡) + 𝐾𝑑 ·𝑑𝑒(𝑡)
𝑑𝑡
(Eq. 6.5)
Donde MV(t): Variable manipulada.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
57
6.1.4. Control Anti wind-up
El control PID realizado se implementará en un sistema cuyos actuadores tienen limitaciones físicas.
Los límites físicos de actuación generan las siguientes limitaciones.
• Rango máximo y mínimo de actuación. Ejemplo: Límites de apertura de una válvula.
• Rango máximo de velocidad de actuación. Ejemplo: Límites de velocidad de un motor.
En ocasiones, es posible que debido a estas limitaciones el sistema no sea capaz de asumir el valor de
la consigna o que el tiempo requerido para llegar al valor sea mayor al esperado. Para ello es necesario
incorporar al controlador un compensador anti wind-up (anti sobrecargas).
Control de limitación en amplitud o saturación
Consiste en establecer los límites físicos del actuador en forma de limitadores de saturación para evitar
que la señal de control trabaje fuera de los límites del sistema.
Figura 6.3: Controlador compensado para saturación. (Fuente: Control Anti-Windup42)
Control de limitación de la parte integral
El método anti wind-up de la parte integral consiste en evitar el crecimiento indefinido de la acción
integral (sobrecarga de la parte integral) en caso de que el sistema opere fuera de los límites de
operación de los actuadores. Cuando el sistema vuelva a entrar en la zona de operación dentro de los
límites, será necesario esperar a que el valor acumulado de la parte integral se descargue, generando
una respuesta lenta. Para ello, se introducen limitadores de saturación del funcionamiento de la parte
integral.
Control de limitación de velocidad de respuesta o slew-rate
Para evitar las limitaciones ante un incremento elevado de la consigna, es necesario aplicar un
limitador de slew-rate en la señal de entrada, para permitir que la salida pueda seguir las
modificaciones rápidas de la consigna de referencia.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
58
Figura 6.4: Controlador compensado para slew-rate.
6.2. Control PID aplicado al cuadricóptero
El funcionamiento del control del dron es el siguiente. Para controlar la estabilización del vuelo del
cuadricóptero, se utilizarán cuatro PIDs independientes43. La consigna de estos PID se modifica
mediante los joysticks del mando a control en el caso de los ángulos pitch, roll y yaw y mediante el
codificador rotatorio para la altitud. La IMU proporcionará las lecturas del ángulo de los tres ejes para
el cálculo del error de cada eje, y el sensor de presión barométrica la lectura de la estimación de la
altitud.
Los PID de control son los siguientes:
• PID ángulo pitch.
• PID ángulo roll.
• PID ángulo yaw.
• PID altitud relativa.
A partir de los cálculos obtenidos por cada bloque de control PID, se envían las señales de control de
los motores del cuadricóptero en función de su disposición estableciendo una lógica de control de
vuelo. Con la configuración de los motores siguiendo la numeración de la figura, la lógica de control de
vuelo se basa en las siguientes ecuaciones.
M1 M2
M3M4
X
Yz
Figura 6.5: Numeración de los motores del cuadricóptero en configuración X.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
59
𝑀𝑜𝑡𝑜𝑟 1 = 𝐴𝑐𝑒𝑙𝑒𝑟𝑎𝑑𝑜𝑟 + 𝑃𝐼𝐷 𝑎𝑙𝑡𝑖𝑡𝑢𝑑 + 𝑃𝐼𝐷 𝑝𝑖𝑡𝑐ℎ − 𝑃𝐼𝐷 𝑟𝑜𝑙𝑙 − 𝑃𝐼𝐷 𝑦𝑎𝑤 (Eq. 6.6)
𝑀𝑜𝑡𝑜𝑟 2 = 𝐴𝑐𝑒𝑙𝑒𝑟𝑎𝑑𝑜𝑟 + 𝑃𝐼𝐷 𝑎𝑙𝑡𝑖𝑡𝑢𝑑 + 𝑃𝐼𝐷 𝑝𝑖𝑡𝑐ℎ + 𝑃𝐼𝐷 𝑟𝑜𝑙𝑙 + 𝑃𝐼𝐷 𝑦𝑎𝑤 (Eq. 6.7)
𝑀𝑜𝑡𝑜𝑟 3 = 𝐴𝑐𝑒𝑙𝑒𝑟𝑎𝑑𝑜𝑟 + 𝑃𝐼𝐷 𝑎𝑙𝑡𝑖𝑡𝑢𝑑 − 𝑃𝐼𝐷 𝑝𝑖𝑡𝑐ℎ + 𝑃𝐼𝐷 𝑟𝑜𝑙𝑙 − 𝑃𝐼𝐷 𝑦𝑎𝑤 (Eq. 6.8)
𝑀𝑜𝑡𝑜𝑟 4 = 𝐴𝑐𝑒𝑙𝑒𝑟𝑎𝑑𝑜𝑟 + 𝑃𝐼𝐷 𝑎𝑙𝑡𝑖𝑡𝑢𝑑 − 𝑃𝐼𝐷 𝑝𝑖𝑡𝑐ℎ − 𝑃𝐼𝐷 𝑟𝑜𝑙𝑙 + 𝑃𝐼𝐷 𝑦𝑎𝑤
(Eq. 6.9)
Finalmente, el diagrama de flujo que resume el funcionamiento del control de la estabilización de vuelo
de un cuadricóptero es el siguiente.
Acelerador
ConsignaPitch
Consigna Roll
Consigna Yaw
Consigna Altitud
Receptor Radiofrecuencia
PIDPitch
PID Roll
PIDYaw
PIDAltitud
Lógica de control de motores
Motor 1
Motor 2
Motor 3
Motor 4
Cuadricóptero
ESC
ESC
ESC
ESC
Unidad de medición inercial
Sensor Altitud
+-
+-
+-
+-error pitch
error roll
error yaw
error altitud
Sensado y estimación
Estados del sistema
PWM
Figura 6.6: Diagrama de control PID para el control de vuelo de un cuadricóptero.
6.2.1. Ajuste del trim (equilibrio)
El ajuste del trim es un parámetro que tiene como objetivo compensar el desequilibrio del
cuadricóptero producido por condiciones no ideales tales como el desplazamiento del centro de
gravedad respecto a su centro geométrico o al efecto del viento. Cuando el dron se inclina para corregir
estas perturbaciones no ideales, genera una fuerza horizontal, produciendo un desplazamiento de su
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
60
posición. Para ayudar a que el cuadricóptero se mantenga volando de forma estática en la misma
posición, el piloto puede modificar desde el mando a control el ajuste conocido como trim.
El trim consiste en añadir un offset a las consignas de inclinación de los ángulos pitch y roll. Por ejemplo,
si al volar se observa que el dron tiende a desplazarse hacia la izquierda, se modificará el valor de offset
de la consigna del ángulo roll en sentido contrario al de su desplazamiento hasta observar que, sin
modificar el valor de la consigna por los joysticks, el cuadricóptero logra mantener su posición.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
61
7. Prototipo de pruebas - Balancín
El control PID requiere de la selección adecuada de sus parámetros de control. Para ello, es necesario
realizar la sintonización de las ganancias de control hasta encontrar la respuesta transitoria estable
deseada. Debido a la peligrosidad que puede suponer realizar las pruebas y modificaciones iniciales de
los parámetros con un dron de elevado peso y tamaño, las fases iniciales de prueba del programa
realizado serán aplicadas al control de la inclinación de un solo eje, a modo de balancín.
El balancín está formado por un eje horizontal que rota libremente respecto a un eje perpendicular
situado en su centro de gravedad. El control de la inclinación del balancín representa el mismo sistema
de funcionamiento que el del eje pitch o roll de un cuadricóptero. El control de ambos ángulos es
teóricamente idéntico debido a la simetría de la estructura del dron.
Con tal de simular el eje X o Y del dron, en cada extremo del eje se sitúa un motor BLDC cuyas
velocidades de giro se controlan con las señales enviadas desde el microcontrolador a los ESC. De forma
solidaria al eje de rotación, se acopla una IMU para medir el ángulo de inclinación del mismo. Mediante
el control independiente de la velocidad de los motores con hélices en sus extremos, se controla el
ángulo de inclinación del balancín. Las dimensiones del eje se corresponden a la distancia entre
motores del marco del cuadricóptero seleccionado (600 mm).
M2 M1
23 c
m
60 cmθ = 50°
Figura 7.1: Diagrama de diseño del balancín.
Las ventajas de realizar las fases iniciales del diseño del prototipo utilizando el balancín como banco de
pruebas sin comprometer la integridad de los componentes es la facilidad de realizar las siguientes
etapas del diseño.
• Configuración y calibración de la IMU.
• Control de la velocidad de los motores mediante el envío de señales a los ESC.
• Configuración de la comunicación por radio.
• Configuración y sintonización del control PID de un solo eje.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
62
La implementación física del modelo de balancín diseñado es el siguiente.
Receptor Radiofrecuencia
Microcontrolador
Sintonización control PID
Placa de distribución de
potencia
Controlador de velocidad
electrónicoMotor BLDC
Hélice
Batería Li-Po
Unidad de medición inercial
Figura 7.2: Estructura para la implementación del control de la inclinación de un eje.
El esquema eléctrico del sistema se encuentra en el plano Nº 1 del documento de planos.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
63
8. Programa del balancín en Simulink
La programación del control que gobierne la inclinación del balancín, así como el programa final
implementado está inicialmente pensado para ser realizado mediante el programa Simulink, siempre
que se logre cumplir con los requisitos de software establecidos al inicio del proyecto.
8.1. Matlab y Simulink
Simulink es un entorno de programación visual basado en Matlab, que es un software de desarrollo
matemático. Se trata de una herramienta de simulación de modelos y sistemas utilizado
principalmente en aplicaciones de control automático y en procesos de señales digitales.
La programación del entorno Simulink se realiza mediante el uso de herramientas de diagramas de
bloques cuyo funcionamiento esta preestablecido. Cada bloque está formado por distintos parámetros
modificables por el usuario para adaptar el programa a las características de su sistema y diseño.
8.1.1. Requisitos de instalación previos
Una vez adquirida la licencia de Matlab, es necesario seleccionar la instalación de Simulink. Para poder
cargar el programa diseñado en el ordenador en una placada de hardware externa, es necesario añadir
al programa la librería de funcionamiento del microcontrolador Arduino seleccionado. Dentro de
Simulink se requiere instalar los siguientes Add-On:
• Simulink Support Package for Arduino Hardware.
• Control System Toolbox .
8.2. Configuración de hardware Arduino en Simulink
En este capítulo se explicará el funcionamiento paso a paso del software realizado para el programa
del control de la inclinación del balancín. Para cargar el programa en la placa Arduino, es necesario
realizar unos ajustes de configuración previos. Para ello, en la parte superior izquierda hay que ir a la
pestaña Modeling y seleccionar la opción Model settings.
Figura 8.1: Configuración del hardware externo en Simulink. Pestaña model settings.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
64
En los ajustes del modelo, la primera opción modificable es la pestaña solver. Dentro de esta opción se
encuentra la configuración del tiempo de ciclo del bucle del programa. Al seleccionar la opción auto, el
tiempo de ciclo será el mínimo que la placa pueda procesar en función del programa realizado,
intentando hacer que el programa funcione a la mayor frecuencia de actualización posible.
Figura 8.2: Configuración del hardware externo en Simulink. Solver.
Dentro de esta misma ventana, es necesario ir a la pestaña Hardware implementation. En las opciones
desplegables, en Hardware board hay que seleccionar el modelo de placa Arduino necesario, en este
caso, Arduino UNO.
En este menú se pueden modificar muchos parámetros de la placa Arduino, como por ejemplo la
detección automática de la placa al conectarla al ordenador, la velocidad del puerto serie,
comunicación I2C, SPI, etc. Estos parámetros se modificarán en caso de ser necesario.
Figura 8.3: Configuración del hardware externo en Simulink. Selección del modelo Arduino UNO.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
65
Al aplicar los cambios, en la interfaz superior de Simulink, aparecerá una nueva pestaña llamada
Hardware.
Figura 8.4:Configuración del hardware externo en Simulink. Pestaña Hardware.
En esta pestaña se observa el modelo de placa Arduino seleccionada junto a las opciones de
configuración de la placa y el programa a cargar. La opción Deploy carga el programa en el
microcontrolador para que funcione de manera independiente al ordenador, de la misma manera que
lo haría el entorno de programación Arduino IDE.
Existe la posibilidad de cargar el programa en la placa de tal manera que se pueda monitorizar en
tiempo real el estado de las variables desde el ordenador. Se trata de la opción Run on hardware, para
la cual podemos establecer el tiempo máximo de duración del programa, en nuestro será el valor Inf,
haciendo que solo se detenga al detener manualmente el programa o al desconectar la placa del
ordenador.
8.3. Programación de la IMU
La primera parte a programar dentro del entorno Simulink es la Unidad de Medición Inercial. Para ello
es necesario abrir desde la página de inicio un nuevo modelo en blanco en Simulink.
Figura 8.5: Creación de un modelo en blanco en Simulink.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
66
En la parte superior izquierda, es necesario guardar el modelo a realizar, en este caso, bajo el nombre
modelo_balancin.
Figura 8.6: Guardado del modelo realizado.
El siguiente paso es cargar el modelo de nuestra IMU, MPU6050. Para ello, es necesario ir al buscador
de librerías en la parte superior izquierda. Este proceso se realiza para buscar todos los bloques que
se utilizaran en las siguientes partes del programa.
Figura 8.7: Buscador de bloques para el programa.
El bloque del modelo del MPU6050 se encuentra en la carpeta Simulink Support Package for Arduino
Hardware \Sensors \MPU6050 IMU Sensor. Al arrastrar el bloque sobre el modelo en blanco podemos
empezar a trabajar con él. Al hacer clic, podemos modificar sus parámetros.
Figura 8.8: Bloque y ajuste de parámetros del modelo MPU6050.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
67
Este bloque genera cuatro salidas. Las primeras dos salidas son los valores de aceleración(m/s2) y
velocidad angular(°/s) en forma de vector 3x1 para cada uno de los ejes X,Y y Z. También es capaz de
generar una salida del valor medido de temperatura(ºC), así como el valor del estado de la lectura del
sensor mediante la comunicación I2C de Arduino. La salida de lectura de la temperatura se desactivará
ya que ello se realizará utilizando otro sensor en las fases finales del programa. El estado de la lectura
I2C se activará inicialmente para en caso de que la conexión no funcione correctamente, conocer el
motivo.
El bloque permite configurar la dirección I2C del sensor MPU6050, la cual es 0x68. El tiempo de
muestreo de lectura del bloque se establece a -1, dependiendo así del tiempo de muestreo establecido
en las configuraciones del hardware para obtener el máximo rendimiento.
Las configuraciones adicionales que permite modificar el sensor son las siguientes:
• Rango del acelerómetro (2 G|4 G|8 G|16 G): Establece la sensibilidad mínima de lectura del
acelerómetro.
• Rango del giroscopio (250 °/s|500 °/s |1000 °/s |2000 °/s): establece la velocidad angular
máxima que el giroscopio puede leer por segundo.
• Ancho de banda del acelerómetro y giroscopio: establece el ancho de banda de las lecturas
del acelerómetro y giroscopio, asociado a un filtro digital pasa bajos y a el tiempo de retardo
entre cada lectura.
Una vez establecidos los parámetros de configuración del bloque, el objetivo es obtener la lectura de
los ángulos pitch, roll y yaw. Para ello, se utilizarán las lecturas del acelerómetro y giroscopio para
generar un filtro complementario que permita compensar los efectos negativos de cada sensor.
Inicialmente, mediante el bloque Scope, el cual actúa como un osciloscopio digital, se observará el
conjunto de salidas del bloque para ver que la lectura de datos sea la correcta, y mediante el bloque
Display, se observará la lectura de la salida Status de la comunicación I2C. La salida Status proporciona
un valor entero, que describe el éxito de la operación de lectura del sensor según la siguiente figura.
Figura 8.9: Código del estado de la comunicación I2C entre el sensor y la placa.
El modelo de bloques para la realización de la lectura de los sensores es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
68
Figura 8.10: Lectura de los datos de la IMU sin procesar.
Al cargar el programa en la placa, el valor de Status es 0, lo que indica que la operación de lectura se
ha realizado con éxito. Las lecturas al rotar la IMU manualmente son las siguientes.
Figura 8.11: Lectura directa de los datos del acelerador y giroscopio.
8.3.1. Posición angular a partir del acelerómetro
La lectura del acelerómetro corresponde a la aceleración vertical de la gravedad aplicada en cada eje,
cuyo valor depende del ángulo de inclinación del sensor respecto al eje vertical Z. Es por ello que, al
tratarse de una fuerza puramente vertical, a partir del acelerómetro podemos obtener el valor de los
ángulos roll (θ) y pitch (φ) correspondientes a los ejes X e Y, pero no del ángulo yaw del eje vertical Z.
En un espacio tridimensional, las ecuaciones que corresponden a la lectura de los ángulos pitch y roll
son las siguientes:
θ = 𝑡𝑎𝑛−1 (𝑎𝑦
√𝑎𝑥2 + 𝑎𝑧
2 )
(Eq. 8.1)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
69
φ = 𝑡𝑎𝑛−1 (𝑎𝑦
√𝑎𝑥2 + 𝑎𝑧
2 )
(Eq. 8.2)
La ecuación utilizada es la función arcotangente de dos parámetros, comúnmente representada bajo
la notación atan2(y,x). Esta ecuación se puede realizar en Simulink a partir del bloque Trigonometric
Function dentro de la carpeta Math Operations. Dentro de los parámetros del bloque, es necesario
establecer el tipo de función en atan2 . Según la hoja de datos del MPU6050, para obtener los datos
del acelerómetro en unidades de aceleración de m/𝑠2, es necesario aplicar el factor de sensibilidad,
dividiendo la lectura de cada eje entre 16384. Al aplicar la función de arcotangente de dos parámetros,
el resultado del ángulo será en radianes, por lo que es necesario convertir este resultado a grados.
El modelo de Simulink diseñado para realizar estos cálculos es el siguiente.
Figura 8.12: Obtención de los ángulos pitch y roll a partir del acelerómetro.
Para realizar el modelo, se ha empleado un demultiplexor de 3 salidas, debido a que la salida del bloque
MPU6050 está formada por un vector 3x1.
Debido a la naturaleza del funcionamiento del acelerómetro, se trata de un sensor muy sensible al
ruido. Por este motivo, es necesario filtrar la señal leída por el acelerómetro. En un cuadricóptero las
principales causas de ruido son las siguientes.
• La vibración producida por la rotación de los motores y hélices, transmitida desde el brazo
hasta la base del cuadricóptero.
• El desequilibrio entre la hélice y el motor debido a un reparto de pesos no ideal.
• El aire turbulento generado por las hélices.
• Los armónicos generados por el conjunto de causas anteriores.
Contra mayor sea la velocidad de giro de los motores, mayores serán las vibraciones inducidas y mayor
ruido se producirá en la señal. Debido a que el ruido se manifiesta a frecuencias altas, es necesario
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
70
aplicar un filtro pasa bajos, cuya frecuencia de corte se establece en 10 Hz. Para ello se utilizará el
bloque Varying Low Pass Filter.
Figura 8.13: Lectura del acelerómetro con filtro pasa bajos externo.
8.3.2. Posición angular a partir del giroscopio
El giroscopio entrega la lectura de la velocidad angular medida en los tres ejes. A partir de una
condición inicial conocida, se integra la velocidad angular para obtener la posición angular para cada
eje. Según la hoja de datos del MPU6050, para obtener los datos del giroscopio en unidades de °/s, es
necesario dividir la lectura de cada eje entre 131. Para realizar la integración de cada valor, se utilizará
el bloque de integrador en tiempo discreto con condición inicial nula, bajo un tiempo de muestreo -1.
El modelo de Simulink diseñado para realizar estos cálculos es el siguiente.
Figura 8.14: Obtención de los ángulos pitch, roll y yaw a partir del giroscopio.
Los datos de velocidad angular que proporciona el giroscopio requieren de una calibración inicial ya
que, para cada eje, las señales de velocidad angular tienen un offset. Si integramos la velocidad angular
sin eliminar este offset, cuando el giroscopio esté en reposo, se obtendrán valores de posición angular
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
71
no constantes y que tienden a derivar a lo largo del tiempo. Es por ello que antes de realizar la
integración para obtener la posición angular en cada eje, es necesario eliminar este offset.
El método de eliminación de este offset es el siguiente. A partir del estado de una variable booleana
externa, se realiza la media de N lecturas para cada eje. El valor medio obtenido se sustrae a la lectura
del giroscopio para eliminar el offset de velocidad angular.
Aplicando este método, el modelo de giroscopio con calibración inicial es el siguiente.
Figura 8.15: Obtención de los ángulos pitch, roll y yaw a partir del giroscopio con calibración inicial.
8.3.3. Filtro complementario
Ahora se tiene las lecturas de los ángulos de pitch y roll a partir del acelerómetro y el osciloscopio, y la
lectura del ángulo yaw únicamente por parte del giroscopio.
El acelerómetro es un sensor fuertemente susceptible al ruido, pero capaz de obtener una lectura del
ángulo estacionario muy precisa. Por otra parte, el giroscopio es un sensor que no presenta ruido en
su salida y capaz de medir variaciones rápidas de rotación, pero a pesar de compensar el valor de offset
de cada eje, nunca será posible eliminar por completo el efecto de la deriva de la posición angular.
Los dos modelos de medición angular anteriores se pueden combinar para formar un sistema de
medición único que utilice las características de los dos sensores para compensar los inconvenientes
de cada uno de ellos. Este sistema de combinación lineal de los dos sensores es llamado filtro
complementario.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
72
El giroscopio solo necesita pequeñas correcciones por parte del acelerómetro para compensar la
acumulación de la deriva de la posición angular. Por ello, el mayor peso en cuanto a la medición del
ángulo será obtenido por el giroscopio. El reparto de pesos es ajustable para obtener una respuesta lo
más estable posible y que presente el mínimo ruido. Este reparto de ganancias se establece al 97% a
favor del giroscopio y un 3% del acelerómetro.
El modelo que representa el filtro complementario aplicado es el siguiente.
Figura 8.16: Filtro complementario para la lectura de los ángulos.
El modelo final que engloba todo el proceso de medición de la posición angular a partir de la Unidad
de Medición Inercial MPU6050 es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
73
Figura 8.17: Modelo de programación de la unidad de medición inercial.
Para mejorar la interfaz visual y evitar los problemas de tamaño de cara al programa final, el modelo
que forma la unidad de medición inercial será visualizado en forma de subsistema, cuyas variables de
salida serán los ángulos pitch, roll y yaw del filtro complementario.
Figura 8.18: Subsistema formado por el programa de la unidad de medición inercial.
8.4. Inconveniente del programa Simulink cargado en Arduino
El siguiente paso sería cargar el programa en la placa para monitorizar que la lectura de los ángulos
obtenidos por la aplicación del filtro complementario es la correcta, pero al intentar cargar el programa
y clicar en el bloque Scope para visualizar las señales, no se visualiza ninguna señal en el gráfico.
Este problema no es debido a un mal ajuste en el modelo, sino que se debe a un problema de memoria.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
74
Simulink solo permite la visualización de señales en tiempo real mediante un hardware externo
siempre y cuando el dispositivo tenga suficiente memoria como para poder dedicar un espacio del
programa al envío de datos por el puerto serie. En nuestro caso, mediante Arduino UNO el modelo de
la unidad de medición inercial con el conjunto de bloques utilizados, ocupa más del 80% de la memoria
disponible para el programa y datos, tal y como se puede observar en la siguiente imagen.
Figura 8.19: Memoria utilizada en Simulink con Arduino UNO para programar la IMU.
A partir de esta observación, será necesario tener en consideración que el algoritmo de generación de
código que transforma el lenguaje de código de bloques de Simulink en el archivo .INO que se envía a
la placa requiere de una gran cantidad de código para generarse. Este hecho tendrá efectos negativos
para el proyecto ya que contra mayor cantidad de código sea necesario cargar a la placa, mayor será
el tiempo de ciclo del programa. A partir de los resultados obtenidos para el prototipo del balancín,
será necesario considerar otras opciones de diseño del programa del cuadricóptero en caso de que
éste no cumpla con los requisitos de funcionamiento mínimos para funcionar correctamente.
Debido a que la programación de la IMU solo supone una pequeña parte de lo que será el programa
final, es necesario adquirir un nuevo modelo de placa superior para proceder con el proyecto. Este
nuevo modelo de Arduino es la placa Arduino MEGA 2560.
Figura 8.20: Arduino MEGA 2560. (Fuente: Arduino.cc)
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
75
Figura 8.21: Diagrama de pines de Arduino MEGA 2560. (Fuente: Arduino.cc44)
Características principales de Arduino MEGA 2560.
• Microcontrolador: ATmega2560.
• Voltaje Operativo: 5 V.
• Voltaje de Entrada : entre 7 y 12 V.
• Pines de Entradas/Salidas Digital: 54 (De las cuales 15 son salidas PWM).
• Pines de Entradas Análogas: 16.
• Memoria Flash: 256 KB (ATmega2560) de los cuales 8 KB se usan para el Bootloader.
• SRAM: 8 KB (ATmega2560).
• EEPROM: 4 KB (ATmega2560).
• Velocidad del Reloj: 16 MHz.
Las principales ventajas del uso de la placa Arduino MEGA 2560 respecto a UNO es por un lado la mayor
cantidad de pines digitales y analógicos que incorpora y, por otro lado, que dispone de una capacidad
de memoria flash de 256 KB, lo que supone una gran mejora respecto a 32 KB de Arduino UNO. Ambas
placas funcionan a una velocidad de reloj de 16 MHz, por lo que el tiempo de computación del
procesador es muy similar.
El esquema eléctrico para el funcionamiento del balancín al incorporar el modelo Arduino MEGA 2560
se encuentra en el plano Nº 2 del documento de planos.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
76
Para cambiar de modelo de placa en Simulink, es necesario seguir los pasos de la figura 8.3 y seleccionar
el modelo Arduino MEGA 2560.
Volviendo al programa de Simulink, al cargar el modelo en la nueva placa, los diagnósticos de la
memoria empleada por el programa se han reducido drásticamente.
Figura 8.22: Memoria utilizada en Simulink con Arduino MEGA 2560 para programar la IMU.
Debido a que estamos trabajando sobre un único eje, las señales de los ángulos roll y yaw son enviadas
al bloque Terminator. Este bloque sirve para finalizar las señales que no se van a utilizar y evitar así
posibles warnings del programa.
Para comprobar que el valor obtenido de ángulo pitch es exacto, se utilizará un medidor de ángulo
externo para aplicar un factor de corrección a la señal medida en caso de que no se corresponda con
el valor real. Con el balancín inclinado al máximo obtenemos una lectura por parte de la IMU de 60°,
mientras que con el medidor externo la lectura es de 50°, coincidiendo con el valor teórico de
inclinación máxima de la figura 7.1. Por lo tanto, es necesario aplicar un factor de corrección a la señal
de 0,85 para que coincida con el valor real.
Figura 8.23: Obtención del ángulo pitch calibrado.
Moviendo el ángulo de inclinación del balancín manualmente, la lectura del Scope de la señal del
ángulo pitch a lo largo del tiempo es la siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
77
-60
-40
-20
0
20
40
60
Figura 8.24: Monitorización del ángulo pitch (°) ante cambios de inclinación del balancín.
8.5. Control de los motores
Después de comprobar el correcto funcionamiento del modelo de la IMU ya calibrada, el siguiente
paso corresponde al control de los motores BLDC. Para ello, se utilizará el bloque Standard Servo Write.
Este bloque tiene como función controlar la posición del eje de un servomotor, entre 0° y 180°.
La señal del controlador electrónico de Velocidad de un motor BLDC es la misma que la señal estándar
de control de servomotores. Ambas señales son PWM y funcionan a una frecuencia fija de 50 Hz. Este
bloque admite valores enteros de entrada entre el rango de 0° a 180°, valores que corresponden a la
posición del eje del servomotor.
En la siguiente figura, se puede observar de forma paralela la aplicación de la señal PWM tanto para
un servomotor como para controlar un ESC.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
78
Figura 8.25: Estándar de señal PWM para control de un servomotor y un ESC. (Fuente:HowToMechatronic18)
De esta manera, al enviarle una señal cuyo valor sea 0, el motor estará completamente parado,
mientras que, para un valor de 180, el motor se encontrará a máxima potencia.
Al estar trabajando con el balancín, los motores trabajaran a menos potencia ya que no es necesario
generar el empuje suficiente como si fuéramos a elevar el dron en el aire. Para ello utilizaremos un
bloque de saturación, para limitar el umbral inferior y superior de la señal PWM que puede llegar a
cada uno de los motores.
Cada modelo de ESC tiene un valor mínimo de ciclo de trabajo de PWM a partir del cual el motor
empieza a girar. Para encontrar este valor, es necesario aumentar progresivamente el umbral inferior
del bloque de saturación del motor hasta que el ESC produzca un tono auditivo que indique que el ciclo
de trabajo mínimo de la señal es el adecuado para ese ESC y ese motor. Para el modelo de ESC
seleccionado, el límite inferior es de 16 y el superior de 145. El valor máximo de aceleración se limitará
a aproximadamente al 45 % de la potencia máxima del motor, siendo este valor 70.
Poniendo un valor de saturación máxima evitamos que los motores se puedan poner a muy alta
potencia en caso de enviar un valor de señal PWM erróneo. Si se conecta el motor acoplado a una
hélice al máximo, la situación podría desembocar en una rotura mecánica de la hélice, de algún
componente o del propio balancín, ya que adquiriría un momento angular muy elevado.
El modelo en Simulink para el control de los ESC es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
79
Figura 8.26: Modelo de control de los motores mediante el envío de señal PWM a los ESC.
La constante que simula el acelerador está gobernada por un deslizador, mediante el cual se modifica
el valor en tiempo real entre el rango de 0 a 70.
8.6. Control PID
Hasta ahora se ha realizado el modelo de dos de los tres requisitos para realizar un control PID, pues
disponemos de un sensor que proporciona la lectura del estado del sistema y un actuador que modifica
su estado. Es necesario ahora realizar el controlador que gobierne la señal del actuador en función de
una consigna establecida. Para ello, se utilizará el bloque PID Controller.
El modelo de control que modifica el ángulo de inclinación del balancín es el siguiente.
Figura 8.27: Control PID del balancín mediante Simulink.
El modelo anterior ocupa más de un 27% de los datos de la SRAM y el 11% de la memoria total del
programa de la placa Arduino, tal y como se observa en la siguiente figura.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
80
Figura 8.28: Memoria de programa y datos en Arduino MEGA 2560 para el control del balancín.
Se trata de una cantidad utilizada de memoria de programa y datos muy elevada, teniendo en cuenta
que el control del balancín es solo una pequeña parte del programa final. Un código tan pesado tendrá
repercusiones negativas en el rendimiento del programa debido a la cantidad de tiempo invertido para
procesar todas las líneas de código cargadas.
8.7. Sintonización del control PID
La sintonización del control PID consiste en la determinación del ajuste de las ganancias de control Kp,
Ki y Kd. Existen multitud de métodos de calibración de controladores PID, siendo uno de los más
conocidos el método Ziegler Nichols para un sistema en lazo cerrado. Este método no se llevará a cabo
ya que para ello es necesario encontrar el valor de ganancia proporcional crítica, a la cual se producen
oscilaciones periódicas mantenidas. Para ello sería necesario observar oscilaciones de inclinación del
eje entre ± 50 ° a alta velocidad, comprometiendo la integridad de la estructura y sus componentes.
Debido a esto, el método utilizado para la calibración de estos parámetros es puramente experimental.
Se observará la respuesta transitoria de la planta ante una entrada escalón de 0 a ± 25°. El método de
calibración de las ganancias de control es el siguiente.
1. Se sitúan todas las ganancias a 0.
2. Se ajusta la velocidad de los motores a un valor del 45 % del acelerador, coincidiendo
aproximadamente con la potencia de elevación del cuadricóptero.
3. Se aumenta progresivamente el valor de Kp hasta lograr que la posición del eje coincida con el
valor de la consigna.
4. Se aumenta progresivamente el valor de Kd para amortiguar la respuesta. Se elige el valor
máximo sin que se produzcan oscilaciones en estado estacionario.
5. Se aumenta progresivamente el valor de Ki para eliminar el error en estado estacionario lo
antes posible sin que se produzcan oscilaciones.
Al tratarse de un método experimental, es necesario realizar multitud de repeticiones de prueba y
error hasta dar con la respuesta transitoria adecuada. Para encontrar los parámetros de control
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
81
adecuados, resulta de gran utilidad observar las distintas partes de los valores de señal PID que actúan
en la respuesta transitoria para ver su comportamiento y poder modificar cada una de las acciones de
control individualmente.
8.8. Resultados del programa en Simulink
Tras realizar distintas pruebas para encontrar el de ganancia de control adecuado para cada término,
un ejemplo de valor de parámetros que generan una respuesta transitoria estable son los siguientes.
Control Balancín - Simulink
Ganancias de control
Proporcional Kp 0,045
Integral Ki 0,015
Derivativo Kd 0,025
Tabla 8.1: Parámetros seleccionados para el control PID en Simulink.
A continuación, se muestra la respuesta transitoria del control del ángulo del balancín ante una
consigna de entrada escalón de 0 a ± 25 ° en función de la velocidad de giro los motores. La duración
del conjunto de la prueba es de 270 segundos.
Figura 8.29: Respuesta transitoria del balancín ante entradas escalón en Simulink.
A partir del gráfico, se observa como para valores mayores de velocidad de giro de los motores hay
presente un mayor ruido en la señal de ángulo leída. Contra mayor velocidad de giro, más fuerza de
empuje ejercen los motores por lo que el momento angular respecto al eje de giro será mayor. Este
hecho se observa ya que a medida que se aumenta la posición del acelerador, crece el valor de
sobrepico.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
82
Se trata de una respuesta subamortiguada, donde el valor de sobrepico máximo para cada cambio de
consigna es muy elevado. Este hecho no resulta ningún problema para la aplicación del cuadricóptero,
ya que se puede reducir el ángulo de inclinación máximo del sistema disminuyendo el rango de la
consigna. Por otro lado, un cuadricóptero nunca se va a exponer a una consigna del tipo escalón,
siempre será un valor de referencia progresivo asociado al joystick del mando a control, por lo que el
sobrepico máximo nunca será tan grande. Para realizar la comprobación , bajo los mismos parámetros
de control, se aplica al sistema una entrada sinusoidal de ± 25°. Se obtiene la siguiente respuesta
transitoria.
Figura 8.30: Respuesta ante entrada sinusoidal ± 25 º del programa Simulink.
Ante una entrada más progresiva, se observa una respuesta transitoria más sobreamortiguada. Para la
figura 8.29, se observa que en general, el error estacionario de la respuesta es elevado por lo que sería
necesario aumentar el valor de la parte integral para lograr eliminar este error más rapidamente.
A partir de los gráficos anteriores, se obtiene la siguiente tabla de datos en función de la velocidad de
giro de los motores.
Tabla 8.2: Características de la respuesta transitoria del sistema en función de la entrada y la velocidad de giro de los motores
mediante el programa Simulink.
A partir de la tabla anterior, se observa el gran problema del programa realizado en Simulink:
Tipo de entrada Posición del acelerador % Aceleración Tiempo de Pico Sobrepico máximo (%) Oscilaciones en estado estacionario
35 27% 2,26 s 18% Pequeñas
45 35% 2,04 s 40% Grandes
60 47% 1,78 s 68% Muy grandes
Entrada escalón
Entrada sinusoidal1,86 s
Tiempo de Retardo medio50 39%
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
83
A partir de los conocimientos adquiridos sobre Simulink y utilizando la librería de Hardware Arduino,
el tiempo de respuesta del sistema controlador-planta obtenido es muy lento.
A pesar de que el balancín es capaz de asumir el valor de consigna requerido, el tiempo de pico de la
respuesta transitoria desde el inicio del cambio de consigna es aproximadamente de 2 segundos. Este
valor aplicado a la respuesta necesaria para pilotar un cuadricóptero es insuficiente ya que el
dispositivo no podría volar en condiciones estables.
La principal causa del tiempo de respuesta lento es la cantidad de código generado para hacer la
traducción del código de bloques de Simulink al archivo .INO enviado a la placa Arduino.
Contra mayor sea el tamaño de código enviado, mayor será el tiempo de ciclo del bucle del programa,
por lo que el rendimiento del sistema disminuye.
Por otro lado, al utilizar multitud de librerías en el código, solo disponemos de la posibilidad de
modificar ciertos parámetros del programa, sin poder acceder al código del bloque de la librería en si,
por lo que no se dispone de capacidad alguna para intentar mejorar el tiempo de reacción del
programa.
Debido a que con el programa Simulink no se cumplen los requisitos de funcionamiento mínimo para
el control del cuadricóptero, se procede a analizar otra alternativa para la realización del proyecto.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
84
9. Programa del balancín en Arduino IDE
Debido a que con el programa Simulink no se ha logrado obtener los requisitos mínimos aceptables
para el funcionamiento del prototipo del cuadricóptero, se procede a dejar el entorno de Matlab para
programar mediante el programa Arduino IDE. De esta manera, se reutilizará el funcionamiento del
programa realizado anteriormente con Simulink y se programará directamente en el entorno propio
de Arduino.
En esta fase del proyecto, se introduce la programación de la comunicación por radiofrecuencia entre
el mando a control y el balancín, utilizando la placa Arduino MEGA 2560.
El esquema eléctrico del balancín para el entorno Arduino IDE, incluyendo el módulo receptor de datos
de radiofrecuencia se encuentra en el plano Nº 3 del documento de planos.
Todo programa Arduino cuenta inicialmente con dos funciones: Setup() y Loop(). La función Setup es
siempre la primera en ejecutarse dentro del programa. En ella se establecen las líneas de código que
deben ejecutarse una única vez al inicio del programa, como por ejemplo la parte de inicialización de
variables y parámetros.
9.1. Tiempo de ciclo del programa
La función Loop(), se ejecuta en bucle indefinidamente una vez la función setup haya finalizado. Un
aspecto fundamental al tratarse de una función cuya ejecución se realiza de manera cíclica es el tiempo
de ciclo del programa. El tiempo de ciclo es el tiempo que tarda el dispositivo en ejecutar el conjunto
de acciones dentro del bucle. Determina la frecuencia de actualización del programa. El tiempo de ciclo
puede variar en función de la cantidad de código que tenga que ejecutar en cada bucle y, por tanto, se
trata de un valor típicamente variable para un mismo programa.
Se trata de un valor fundamental para el desarrollo del código ya que se utilizará, por ejemplo, en los
cálculos de la posición angular y en el término derivativo del control PID.
El diagrama de flujo del código correspondiente al cálculo del tiempo de ciclo es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
85
CONTADOR
MILISEGUNDOS
CÁLCULO DEL TIEMPO DE CICLO
DE LA FUNCIÓN BUCLE()
VALOR DE
TIEMPO ACTUAL
TIEMPO TRANSCURRIDO = (VALOR ACTUAL – VALOR ANTERIOR ) / 1000
VALOR DE
TIEMPO
ANTERIOR
TIEMPO DE CICLO
Setup ( )
Loop ( )
Figura 9.1: Diagrama de flujo Arduino: Tiempo de ciclo.
Reducir el tiempo de ciclo de la función Loop() será un factor clave a la hora de realizar el programa y
adaptarlo al hardware seleccionado. Para ello, será necesario aplicar el conjunto de métodos de
optimización de código siguientes:
• Eliminar código innecesario.
• Usar los tipos de datos más pequeños posibles para cada variable.
• Utilizar funciones en vez de repetir código.
• Eliminar la monitorización de datos por el puerto serie en caso de ser necesario.
De forma paralela a las optimizaciones que puede implementar el usuario, se puede modificar el nivel
de optimización que aplica el compilador GNC del programa Arduino desarrollado. Los distintos niveles
de optimización son los siguientes.
• -O0: Sin optimizar.
• -Os: Optimización de tamaño. (Utilizada por defecto).
• -O2: Optimización equilibrada entre reducción de tamaño y rendimiento.
• -O3: Optimización de rendimiento.
Se modificará el nivel de optimización al modo -O3 para lograr el menor tiempo de ciclo posible. Para
realizar esta modificación, es necesario modificar el archivo de texto platform.txt dentro de la carpeta
C:\Program Files (x86)\Arduino\hardware\arduino\avr.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
86
Dentro del archivo, es necesario modificar las líneas de código donde pone -Os a -O3.
Figura 9.2: Modificación del nivel de optimización del compilador del archivo platform.txt
9.2. Lectura de datos por puerto serie
De cara a visualizar en tiempo real el valor de las distintas variables del programa, a modo de
depurador, es necesario establecer la configuración para la monitorización de estas variables a través
del ordenador mediante el puerto serie.
El diagrama de flujo correspondiente es el siguiente.
INICIALIZACIÓN
PUERTO SERIE
LECTURA DATOS
POR PUERTO SERIE
SELECCIÓN DE LAS
VARIABLES
ENVÍO POR PUERTO SERIE
Setup ( )
Loop ( )
• 250 Kb/s
• FORMATO COLUMNAS
• DELIMITADOR :
Figura 9.3: diagrama de flujo Arduino: Monitorización de datos.
La tasa de baudios establecida se corresponde a la velocidad mínima a partir de la cual el tiempo de
ciclo del bucle no necesita de tiempo adicional para poder enviar el conjunto de datos seleccionados.
9.3. Unidad de medición inercial
El proceso de cálculo de los ángulos pitch, roll y yaw a partir de la Unidad de Medición Inercial es el
mismo que el descrito en el capítulo 8.3 para el programa hecho en Simulink. En este caso, es necesario
programar la solicitud de lectura de los registros que proporcionan la información del acelerómetro y
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
87
giroscopio para cada uno de los tres ejes. La configuración de los parámetros modificables del
MPU6050 se realiza mediante el envío de bits por comunicación I2C a los registros correspondientes
según la hoja de datos45 que proporciona el fabricante y el mapa de registros46.
El diagrama de flujo de del funcionamiento de la adquisición de datos de la IMU es el siguiente.
INICIALIZACIÓN
COMUNICACIÓN I2C
REGISTRO SLAVE
0X68
INICIO
LECTURAACELERÓMETRO GIROSCOPIO
UNIDAD DE MEDICIÓN INERCIAL
MPU6050
ACELERACIÓN X
0X3B | 0X3C
ACELERACIÓN Y
0X3D | 0X3E
ACELERACIÓN Y
0X3F | 0X40
GIROSCOPIO X
0X3B | 0X3C
GIROSCOPIO Y
0X3D | 0X3E
GIROSCOPIO Z
0X3F | 0X40
REGISTROS DE 8 BITS
FILTRO PASA
BAJOS
EXTERNO
ÁNGULO PITCH
ACELERÓMETRO
ÁNGULO ROLL
ACELERÓMETRO
ÁNGULO PITCH
GIROSCOPIO
ÁNGULO ROLL
GIROSCOPIO
CONVERSIÓN
A
POSICIÓN
ANGULAR
ÁNGULO YAW
GIROSCOPIO
FILTRO COMPLEMENTARIO
ÁNGULO PITCH ÁNGULO ROLL ÁNGULO YAW
Setup ( )
Loop ( )
• Librería Wire - Comunicación I2C
• Frecuencia CLK I2C: 400 KHz
• Dirección I2C: 0x68
• Reset de la configuración
• Rango acelerómetro: ± 2 g
• Rango giroscopio: ±250 º/s
• DLPF BW = 92 Hz | Delay 3.9 ms
ANULACIÓN
INICIAL
OFFSET
CALIBRACIÓN EXTERNA
Figura 9.4: Diagrama de flujo Arduino: Unidad de medición inercial.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
88
A continuación, se muestra una gráfica comparativa entre los ángulos obtenidos por el acelerómetro,
el giroscopio calibrado y el filtro complementario aplicado. Para realizar el siguiente gráfico, se ha
realizado la lectura de las tres variables mediante el monitor serie y posteriormente se han exportado
los datos a Matlab para realizar el gráfico.
Figura 9.5: Comparativa del ángulo pitch (°) obtenido entre el acelerómetro, giroscopio y filtro complementario.
La unidad de medición inercial MPU6050 permite aplicar a sus señales de salida un filtro pasa bajos
programable para la reducción del ruido. En la inicialización del sensor, en función del valor enviado al
registro 0x1A se modifican las características del filtro según la siguiente tabla obtenida de la hoja de
datos. Su configuración predeterminada es 0, correspondiente a la mínima reducción de ruido.
Tabla 8.3: Modos de configuración del filtro pasa bajos del MPU6050.
A partir de la configuración inicial, se observarán las señales del acelerómetro y giroscopio para
determinar la frecuencia de corte del filtro pasa bajos. Para ello, con el eje completamente anclado de
manera que no se pueda producir inclinación del ángulo pitch mediante el empuje de las hélices, para
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
89
un ángulo de 0°, se establece la velocidad de los motores al 45 % para observar ruido en la señal de
salida del giroscopio y acelerómetro.
Primeramente, se procede a analizar el comportamiento del giroscopio. Es sabido que teóricamente el
giroscopio no es un sensor sensible al ruido. Para demostrarlo, se realiza la lectura del ángulo pitch del
eje Y mediante el giroscopio con los motores al 45% de velocidad.
Figura 9.6: Ángulo pitch (°) del giroscopio con el eje anclado y motores al 45% de velocidad.
En la figura se observa el efecto de la deriva en la posición angular del giroscopio. A pesar de
implementar un algoritmo para eliminar el offset de la velocidad angular, nunca se podrá eliminar
completamente, motivo por el cual es necesario incorporar también el acelerómetro. En cuanto al
ruido, se observan vibraciones pequeñas en el ángulo pitch, pero son principalmente debidas a que el
eje no está perfectamente anclado y siempre se producirán pequeñas vibraciones que modifican el
valor del ángulo. Como prueba a este hecho, mediante Matlab se aplica la transformada rápida de
Fourier (FFT) de la señal, para observar el aspecto de la señal en el dominio frecuencial. El resultado
es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
90
Figura 9.7: FFT de la señal del giroscopio
Observando la FFT de la señal del giroscopio se demuestra que el sensor no es sensible al ruido, ya que
la única información observada en el dominio frecuencial pertenece a la lectura propia del sensor.
Mediante este resultado se justifica que el ruido presente a la salida del filtro complementario
pertenece puramente al acelerómetro. Por ello, se realiza el mismo procedimiento con la señal del
acelerómetro bajo las mismas condiciones, con el eje anclado y la velocidad de los motores al 45%.
Figura 9.8: Señal del acelerómetro para ángulo pitch (°) con el eje fijado y motores al 45%.
Se observa que, con el eje fijado, la lectura correcta ideal debería ser de 0°, pero debido al ruido la
señal oscila entre los ± 8°. Para determinar la frecuencia de corte del filtro pasa bajos, se aplica la FFT
en la señal.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
91
1
2
3
Figura 9.9: FFT de la lectura del acelerómetro.
En la gráfica de la FFT para la señal de salida del acelerómetro, se observa que para todo el espectro
de frecuencias hay presente mucho ruido. En el gráfico se destacan tres picos de frecuencia a analizar.
El primer valor (figura 9.9, valor 1) corresponde al ruido introducido por las vibraciones del motor y la
hélice, y el hecho de que la hélice no se encuentra perfectamente equilibrada en su reparto de pesos,
generando todavía más vibraciones. Esta frecuencia (rango de 80 Hz) corresponde a la del giro de los
motores para una aceleración del 45%. Este valor se comprueba observando que la velocidad de giro
de los motores al 45% corresponde a la velocidad de elevación del cuadricóptero, y según los cálculos
de simulación realizados en la figura 5.2, este valor es de 4842 rpm (80,7 Hz).
El siguiente pico (figura 9.9, valor 2) se produce a una frecuencia de 140 Hz y es debido al flujo de aire
turbulento que generan las hélices al rotar.
De manera general, se observa que la frecuencia mínima a partir de la cual se introduce ruido en la
señal es a partir de los 18 Hz (figura 9.9, valor 3), por lo que se deberá seleccionar como frecuencia de
corte un valor de frecuencia menor. Este valor, según la tabla 8.3 corresponde al modo de
configuración 5, que establece la frecuencia de corte en 10 Hz.
El problema de este modo de configuración es que está asociado a un retardo entre el valor de
aceleración real y lectura por parte del sensor de 13,8 ms. Se trata de un retardo muy elevado, ya que
el microcontrolador estará trabajando con un valor de lectura desfasado entre 3 y 4 ciclos dentro del
bucle del programa.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
92
Para solucionar este inconveniente, se utilizará un modo de reducción de ruido menos efectivo para
reducir el tiempo de retardo de lectura. El modo seleccionado es el 2, cuyo BW es de 94 Hz, y está
asociado a un retardo de 3 ms. Para reducir el aumento de ruido añadido por este modo de
configuración menos agresivo, mediante código, se introducirá un filtro pasabajos digital para reducir
el ruido de la lectura sin añadir tiempo de retardo adicional.
El método utilizado para filtrar la señal es el de la Media Móvil Exponencial47 ( EMA, Exponential Moving
Average) aplicada en el dominio discreto del tiempo. Se trata de un método simple para realizar un
filtro pasa bajos de primer orden mediante código.
Para su cálculo se utiliza el parámetro 𝛼, conocido como factor de suavizado. Para filtrar la señal, se
requiere que 𝛼 < 0,1. Las ecuaciones para obtener este parámetro son las siguientes.
𝜏 = 𝑅𝐶 (Eq. 9.1)
𝑓𝑐 = 1
2𝜋𝑅𝐶 [𝐻𝑧]
(Eq. 9.2)
𝛼 = 𝑑𝑡
𝑑𝑡 + 𝑅𝐶 (Eq. 9.3)
Donde dt corresponde al intervalo de tiempo entre muestras, coincidiendo con el tiempo de ciclo del
programa. El diagrama de flujo para implementar el algoritmo de cálculo del filtro es el siguiente.
MEDIA MÓVIL
EXPONENCIAL
FILTRO PASA BAJOS
VALOR ACTUAL
Valor actual = α · Valor actual + (1 - α) · Valor anterior
VALOR ANTERIOR
SEÑAL FILTRADA
Setup ( )
Loop ( )
• dt = tiempo
de ciclo
• RC = 0,015 s
• Fc = 10 Hz
Figura 9.10: Diagrama de flujo: Filtro pasa bajos de la señal derivativa.
Para este filtro, se selecciona como frecuencia de corte el valor de 10 Hz.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
93
A continuación, se muestra una gráfica comparativa entre aplicar este filtro digital a la lectura del
acelerómetro, cuyas condiciones corresponden a una velocidad de los motores del 45 % y con el eje
anclado a 0°.
Figura 9.11: Comparativa lectura acelerómetro con y sin filtro pasa bajos digital externo.
Se observa una gran reducción del ruido inducido en la lectura del acelerómetro, con la ventaja de que
el tiempo de retardo de la lectura de la unidad de medición inercial es mucho menor.
9.4. Comunicación por radio
La siguiente parte del programa corresponde a la comunicación por radiofrecuencia entre el mando a
control y el dron.
9.4.1. Mando a control
Tal y como se explicó previamente, la electrónica que incorpora el modelo comercial de mando a
control seleccionado será modificada para incorporarle una placa Arduino con la que programar la
parte emisora de datos mediante un módulo de radiofrecuencia NRF24. Adicionalmente, se
incorporará un codificador rotatorio con el cual se modificará manualmente la consigna de altura para
el control de altitud del cuadricóptero y un joystick XY para modificar el ajuste trim de la consigna de
los ejes pitch y roll. Mediante la incorporación de un módulo display TM1637 se visualizarán los valores
de referencia de altitud seleccionados y los ajustes del trim establecidos.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
94
Codificador rotatorio KY-040
El codificador rotativo incremental es un dispositivo que permite determinar el cambio relativo del
ángulo de su eje al registrar el valor de las señales que proporciona.
Este tipo de codificador rotativo es conocido como codificador de cuadratura, ya que a partir de
distintos interruptores ópticos se generan dos señales cuadradas mediante las cuales se puede
determinar el sentido de giro del eje.
Se utilizará para seleccionar la consigna de altura en metros para el control PID de altitud. El eje del
codificador puede actuar como pulsador. Al presionarlo, será cuando el emisor envíe el valor de
referencia de altura al dron.
Figura 9.12: Modelo KY-040 de codificador rotatorio.
Su principio de funcionamiento es simple. El dispositivo dispone de dos salidas que forman dos canales
cuyas señales son cuadradas y están desplazadas 90°.
Figura 9.13: Canales de datos del codificador rotatorio.
La detección del sentido de giro del eje sigue la siguiente lógica. Cuando se detecta un cambio en el
flanco del canal A, se registra el valor del canal B en ese instante.
• Si el valor de B es el mismo de A, la rotación ha sido en sentido antihorario.
• Se el valor de B es diferente al de A, la rotación ha sido en sentido horario.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
95
Mediante un contador, se aumentará o disminuirá el valor de la consigna de altitud en función del
sentido de rotación del eje.
Joystick XY para el ajuste del trim
Para ajustar los valores de trim para la consigna de inclinación de los ejes X e Y de forma remota, se
instalará en el mando un Joystick XY adicional con el que se aumentará y disminuirán los valores de
offset para la consigna de inclinación de cada eje. La modificación del offset, se realizará paso a paso
moviendo el joystick hacía el extremo correspondiente, tal y como se muestra en la siguiente figura.
+Trim Y
-Trim X +Trim X
-Trim Y
Figura 9.14: Joystick para el ajuste remoto del trim.
El rango de offset del trim para la consigna de los ejes X e Y es de 0 a ± 9°.
TM1637
Para que el piloto pueda saber el valor de consigna de altitud que se está mandando al dron y los
valores de trim seleccionados para cada eje, se incorpora en el mando un display de siete segmentos
y cuatro dígitos que estará programado para mostrar al piloto la información necesaria.
Figura 9.15: Display de 7 segmentos y 4 dígitos TM1637
La placa controladora del mando a control será el modelo Arduino UNO que se descartó previamente
en las etapas iniciales del proyecto con Simulink por problemas de memoria.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
96
El esquema eléctrico del mando a control se encuentra en el plano Nº 4 del documento de planos.
Una vez realizado el conexionado interno del mando, el resultado con todos los componentes externos
añadidos es el siguiente.
Codificador Rotatorio
Selector Altitud
Joystick Ajuste TRIM
SwitchEnable Registro
datos meteorológicos
Emisor radiofrecuencia
NRF24
TRIM eje X
TRIM eje Y
Yaw Roll
Acelerador Pitch
Figura 9.16: Mando a control modificado.
El diagrama de flujo del funcionamiento del programa del mando emisor es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
97
INICIALIZACIÓN CANAL
DE COMUNICACIÓN
2,4 GHz
EMISOR RADIOFRECUENCIA
NRF24
[ 0 ]
ACELERADOR
[ 1 ]
YAW
[ 2 ]
PITCH
[ 6 ]
TRIM PITCH
[ 4 ]
CONSIGNA
ALTITUD
[ 7 ]
TRIM ROLL
DATOS COMO VECTOR[8]
Setup ( )
Loop ( )
• Librería NRF24.h
• Canal de comunicación: 115
• Nivel de amplificación de señal
máximo
• Velocidad de transmisión de datos:
250 Kb/s
• Inicialización envío de datos
[ 3 ]
ROLL
EJE
ACELERADOR
EJE
YAW
EJE
PITCHEJE TRIM X
CODIFICADOR
ROTATIVOEJE TRIM Y
COMPONENTES DEL MANDO A CONTROL
EJE
ROLL
ENVÍO DE DATOS
CALIBRACIÓN DE LOS EJES
CONVERSIÓN A CONSIGNAS DE CONTROL
LÓGICA DE
DETECCIÓN
DE GIRO
VISUALIZACIÓN DEL
ESTADO EN DISPLAY
LED
INICIO
LECTURA
SEÑALES
ANALÓGICAS
SEÑALES
DIGITALES
INTERRUPTOR
[ 5 ]
ENABLE
REGISTRO
DATOS
MÉTODO
INCREMENTAL
Figura 9.17: Diagrama de flujo: Funcionamiento del mando.
9.4.2. Recepción de datos
La siguiente parte del programa corresponde a la recepción de datos de la comunicación por
radiofrecuencia entre el mando y el dron. Una vez establecido el formato de transmisión de datos por
parte del emisor mediante el mando a control, el diagrama que representa el método de recepción de
datos es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
98
INICIALIZACIÓN
CANAL DE
COMUNICACIÓN
2,4 GHz
INICIO
LECTURA
SEÑALES
ORIGEN
ANALÓGICO
SEÑALES
VALORES
DISCRETOS
RECEPTOR RADIOFRECUENCIA
NRF24
DATOS COMO VECTOR[8]
LÍMITES DE ACTUACIÓN
Setup ( )
Loop ( )
• Librería NRF24.h
• Canal de comunicación: 115
• Nivel de amplificación de señal
máximo
• Velocidad de transmisión de datos:
250 Kb/s
• Inicio lectura de datos
POSICIÓN
ACELERADOR
1000 - 1700
CONSIGNA
YAW
0 ± 360 º
CONSIGNA
PITCH
± 20 º
OFFSET TRIM
PITCH
0 ± 9°
ACTIVACIÓN
REGISTRO DATOS
METEOROLÓGICOS
CONSIGNA
ROLL
± 20 º
CONSIGNAS DE CONTROL DE VUELO
MODIFICACIÓN DE LA
LINEALIDAD DE LOS EJES
CONVERSIÓN
A 360 º
ZONA
MUERTA Y
SATURACIÓN
[ 0 ]
ACELERADOR
[ 1 ]
YAW
[ 2 ]
PITCH
[ 6 ]
TRIM PITCH
[ 4 ]
CONSIGNA
ALTITUD
[ 7 ]
TRIM ROLL
[ 3 ]
ROLL
[ 5 ]
ENABLE
REGISTRO
DATOS
MODIFICACIÓN
INCREMENTAL DEL
OFFSET TRIM
OFFSET TRIM
ROLL
0 ± 9°
ALTITUD
–
METROS
Figura 9.18: Diagrama de flujo del receptor de radiofrecuencia.
Los cuatro ejes principales del mando tienen una respuesta completamente lineal. De cara al control
de los ángulos pitch y roll, con tal de evitar una respuesta brusca en las acciones de control, se modifica
la linealidad de la respuesta de los ejes aplicando una función que modifica el valor de la señal, tal y
como se observa en la siguiente gráfica:
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
99
Figura 9.19: Modificación de la linealidad del control del ángulo pitch y roll (°).
La respuesta exponencial genera una pequeña zona muerta para movimientos del eje pequeños
mejorando la estabilidad del valor de la consigna a 0°, y mediante la curvatura de la señal se obtiene
una respuesta más suave en el control de la consigna de referencia que evitará que se produzcan
grandes sobrepicos en la respuesta transitoria.
Por otra parte, también se ha modificado la linealidad del eje del acelerador. De esta manera, se logra
llegar antes a la posición de elevación del cuadricóptero, de manera que una vez el dron está en el aire,
la respuesta ante los cambios de posición del eje del acelerador sea más suave.
Figura 9.20: Modificación de la linealidad del eje del acelerador.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
100
9.5. Control PID
La última parte del programa corresponde al control por PID del ángulo de inclinación del balancín. El
diagrama de flujo correspondiente a esta parte es el siguiente:
AJUSTE
PARÁMETROS DE
CONTROL
CONTROL PID
ÁNGULO PITCH
PROPORCIONAL INTEGRAL DERIVATIVA
Setup ( )
Loop ( )
• Inicialización:
Kp
Ki
kd
P = Kp · ERROR
ERROR=CONSIGNA PITCH - ÁNGULO PITCH
I = I + Ki · ERROR
TIEMPO DE CICLO
RECEPTOR RADIOFRECUENCIAUNIDAD DE MEDICIÓN
INERCIAL
( ERROR – ERROR ANTERIOR )
TIEMPO DE CICLO
ERROR CICLO ANTERIOR
LÍMITES
SATURACIÓN
PID
PID = P + I + DFILTRO PASA
BAJOS
D = Kd
CONTROL
PID
SEÑAL PWM
• Ajuste Kp,Ki,Kd
mediante
potenciómetros
CONDICIÓN
Figura 9.21: Diagrama de flujo: Control PID del ángulo pitch.
Las ecuaciones de control PID son adaptadas al tipo de funcionamiento de la salida del sistema al
formato de tiempo discreto del bucle, basado en el tiempo de ciclo del programa.
Se observa en el diagrama de flujo que la parte integral está asociada a una condición de
funcionamiento. La parte integral tiene como objetivo eliminar el error en estado estacionario de la
respuesta transitoria, por lo que la acción integral no es necesario modificarla al inicio del estado
transitorio. Por este motivo, para nuestra aplicación se programa que la parte integral solo se
modifique cuando el error entre el ángulo del balancín respecto a su consigna sea pequeño, en este
caso, menor a ± 4°.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
101
A la salida de la señal PID se introduce el control anti wind-up, añadiendo límites de saturación a las
señales para estar dentro de los límites del actuador, y, por otro lado, se añade el control anti wind-up
de la parte integral del controlador.
A pesar de haber reducido considerablemente el ruido en la lectura del ángulo pitch, en la parte
derivativa, al derivar el error se obtiene una salida que amplifica el ruido de la señal del ángulo pitch.
Por este motivo es necesario aplicarle un filtro pasabajos adicional a la parte derivativa antes de realizar
la suma de las acciones de control. Para ello, se aplica el mismo método de filtro digital pasa bajos
realizado para la lectura del acelerómetro.
La gráfica comparativa entre aplicar o no el filtro pasa bajos externo en la parte derivativa es la
siguiente.
Figura 9.22: Comparativa de la parte derivativa del control PID al aplicar el filtro pasa bajos.
Con el filtro aplicado, se observa una gran reducción del ruido de la señal de salida del término
derivativo, por lo que la respuesta será más estable.
De cara a ajustar los parámetros de control Kp, Ki y Kd, se utilizan tres potenciómetros para modificar
el valor de las ganancias mientras se ejecuta el programa. El valor de estas ganancias será monitorizado
mediante lo comunicación serie entre el ordenador y el microcontrolador.
El ajuste del control PID sigue la misma metodología explicada en el capítulo 8.7 para el programa en
Simulink.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
102
9.6. Lógica de control de motores
La última parte del código para el control del balancín es la correspondiente al control de los dos
motores.
A continuación, se muestra el diagrama de flujo del correspondiente a esta parte del programa.
CONTROL PID
ESC 2 ESC 1
MOTOR 2 MOTOR 1
SEÑAL PWM
+
+
+
CONTROL DE MOTORES
BALANCÍN
Loop ( )
SEÑAL DE
ACTIVACIÓN Y
CALIBRACIÓN
• Señal PWM
• Ciclo de trabajo: 1 ms /
20 ms
RECEPTOR RADIOFRECUENCIA
ACELERADOR
Setup ( )
DELAY 7 SEGUNDOSESC 2 ESC 1
INICIALIZACIÓN DE
LOS MOTORES
CONDICIÓN DE SEGURIDAD
M2 M1
-
Figura 9.23: Diagrama de flujo: Control de los motores.
Inicialmente se envía una señal PWM con un ciclo de trabajo de 1 ms/20 ms, correspondiente al valor
mínimo de detección de señal por parte de los ESC. Este valor corresponde a la señal enviada para la
posición mínima del acelerador del mando a control. Al final de la función Setup() se introduce un
pequeño delay para dar tiempo al piloto a conectar la batería y, por otro lado, porque los ESC requieren
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
103
de la lectura repetida de esta misma señal durante un cierto tiempo para estar listos para usarse.
Durante este tiempo, los ESC emiten cuatro tonos auditivos indicando que están calibrados.
Por motivos de seguridad, se incluye en el programa una consigna de activación del control de los
motores. Para ello, el piloto debe establecer el acelerador en la posición mínima y al mismo tiempo
posicionar el eje roll completamente a la izquierda. Al detectar esta combinación, se activa la consigna
de motor y se puede proceder al control de los motores.
Con esta parte queda finalizado el programa de control de inclinación del ángulo del balancín. Todo el
programa ocupa el 8 % del espacio en la placa, valor muy inferior al obtenido mediante Simulink, más
teniendo en cuenta que el programa Arduino incorpora la parte de recepción de los datos de
radiofrecuencia y configuraciones adicionales del funcionamiento del programa que en Simulink no se
realizaron.
Figura 9.24: Memoria de programa y datos utilizada mediante el programa Arduino para el control de inclinación del
balancín.
9.7. Resultados del programa en Arduino
Una vez realizado el programa, se procede al análisis de la respuesta del control PID del balancín.
Con la velocidad de los motores al 45 %, se procede a calibrar los parámetros de control del PID. Tras
varios intentos, el valor de los parámetros que generan una mejor respuesta transitoria son los
siguientes.
Control Balancín - Arduino IDE
Ganancias de control Pitch
Proporcional Kp 1,83
Integral Ki 0,02
Derivativo Kd 0,3
Offset trim eje Y 0° Tabla 9.1: Ganancias de control PID del ángulo pitch en Arduino IDE.
Para una entrada escalón de 0 a 20°, un ejemplo de respuesta transitoria obtenida es la siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
104
Figura 9.25: Respuesta transitoria control PID a entrada escalón.
Observando el gráfico, se trata de una respuesta transitoria estable y subamortiguada. Los valores de
control característicos de la respuesta son los siguientes.
• Tiempo de pico = 0,312 s.
• Tiempo de estabilización (5%) = 0,568 s.
• Tiempo de estabilización (2%) = 1,076 s.
• Sobrepico máximo = 14,3 %.
Realizando una comparativa entre la respuesta obtenida mediante el programa Simulink y el programa
Arduino, se observa claramente como, para la misma planta y misma entrada escalón, los tiempos de
la respuesta transitoria de Simulink son mucho más elevados que los obtenidos mediante la
programación en entorno Arduino.
Aplicando como consigna una señal cuadrada de 0 a ±20 ° se muestra la respuesta transitoria del
control de la inclinación junto al conjunto de las partes del control del PID.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
105
Figura 9.26: Respuesta transitoria de la planta ante entrada escalón y visualización de las partes de control PID.
Se observa que, para cada cambio de consigna, se obtiene una respuesta ligeramente distinta pero
siempre estable. Esto es debido a que las condiciones prácticas de la planta no son ideales debido
principalmente a que al producirse un cambio en la inclinación del eje, los rodamientos internos del
eje a veces se quedan ligeramente anclados, dificultando su rotación.
A continuación, se muestra la respuesta del sistema ante los valores de consignas de entrada mediante
el mando a control.
Figura 9.27: Respuesta del sistema a la consigna de inclinación desde el mando a control.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
106
La respuesta del sistema ante las consignas enviadas por el mando a control es rápida y estable a pesar
de que se observan ligeras oscilaciones y algunos valores de sobrepico elevados. El programa es capaz
de controlar el ángulo de inclinación del eje con un retardo máximo entre la consigna y la reacción de
la planta de 0,16 s.
Para todas las capturas de respuesta transitoria mostradas anteriormente, ha sido necesario realizar el
envío de datos de las variables seleccionadas por el puerto serie. Al enviar datos por el puerto serie, el
tiempo de ciclo del programa aumenta en función de la cantidad de variables visualizadas.
Se realiza la comparativa de la frecuencia de actualización del bucle del programa en función de la
cantidad de variables enviadas por el puerto serie.
• Para 6 variables monitorizadas (Figura 9.16), Fmedia = 176,57 Hz.
• Para 1 variable monitorizada ( tiempo de ciclo), Fmedia = 254,94 Hz.
Por lo tanto, una vez se haya desarrollado el programa final, será necesario eliminar o comentar la
parte relativa a la monitorización de datos para mejorar el rendimiento del programa y con ello, la
estabilidad de vuelo.
La frecuencia media de actualización del programa del balancín finalizado es de 255 Hz. Para mejorar
la estabilidad de la respuesta del sistema se procede a modificar la frecuencia a la que trabajan los
ESC. Tal y como se ha explicado en el capítulo 8.5, la frecuencia estándar del control de los
servomotores es de 50 Hz, mismo valor que utiliza por defecto la librería Servo.h utilizada para generar
las señales PWM. Por este motivo, los ESC solo están recibiendo el 20% del total de valores de control
PID generados.
Para mejorar la estabilidad de control del sistema, se procede a aumentar la frecuencia de actualización
de la librería Servo.h de 50 Hz a 200 Hz. Para ello, es necesario abrir archivo Servo.h ubicado en la
carpeta C:\Program Files (x86)\Arduino\libraries\Servo\src.
Dentro del archivo de texto, es necesario encontrar el parámetro REFRESH_INTERVAL.
Figura 9.28: Parámetros de la librería Servo.h.
Modificando el valor de 20.000 a 5.000 microsegundos, modificamos la frecuencia de actualización de
la señal PWM enviada de 50 a 200 Hz. Mediante un multímetro digital, se ha medido la frecuencia de
la señal PWM enviada al ESC para comprobar que el cambio de frecuencia ha sido aplicado.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
107
Figura 9.29: Comprobación del aumento de frecuencia de la señal PWM de 50 a 200 Hz.
Realizando este cambio se observa una respuesta más estable y precisa. Debido al incremento de
frecuencia, los motores giran a mayor suavidad debido a que realizan los cambios de giro en
incrementos de tiempo más pequeños, por lo que las vibraciones y el ruido generado disminuyen.
A continuación, se muestra una gráfica comparativa entre los ángulos de inclinación del eje pitch,
ambos con la posición del acelerador al 45% y una consigna de inclinación de 0 ° para señales PWM de
50 y 200 Hz.
Figura 9.30: Comparativa entre la respuesta para señales PWM a 50 Hz y 200 Hz.
Se observa que el error máximo del ángulo pitch para la señal de 200 Hz es menor a ± 1°, mientras que
para la señal de 50 Hz se observan oscilaciones mayores y errores de hasta 3°, justificando así la
necesidad de modificar la frecuencia serie de la librería.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
108
La comparativa entre los resultados obtenidos en el diseño del prototipo mediante Simulink y Arduino
es la siguiente.
Entorno de programación
Tiempo de Pico (s) Sobrepico máximo
Simulink 1,78 68%
Arduino 0,312 14,3% Tabla 9.2: Comparativa de la respuesta transitoria de la planta mediante Simulink y Arduino IDE.
Se observa claramente como el hecho de haber cambiado el entorno de programación del programa
ha mejorado de forma significativa la respuesta del sistema.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
109
10. Programación del cuadricóptero en Arduino IDE
Una vez finalizada la etapa del prototipo mediante el uso del balancín, se procede a realizar el montaje
del cuadricóptero completo, su programa de control y la parte de adquisición y registro de datos de
sensores atmosféricos.
El esquema eléctrico del montaje final del cuadricóptero se encuentra en el plano Nº 5 del documento
de planos. El montaje del cuadricóptero utilizando todos los dispositivos descritos en el capítulo
relativo al hardware es el siguiente.
Figura 10.1: Montaje del cuadricóptero realizado.
Batería LiPo
Arduino MEGA 2560
Unidad de medición Inercial
Receptor radiofrecuencia
Sensor Adquisición de datos meteorológicos
ESC
Placa de distribución de potencia
Módulo tarjeta
microSD
Figura 10.2: Partes del cuadricóptero.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
110
Debido a que la placa Arduino MEGA 2560 viene con los pines ya soldados de fábrica a unos conectores
hembra para cables de protoboard, no ha sido posible realizar un diseño del conexionado del sistema
más elegante, como por ejemplo un diseño con el cableado soldado en una placa de topos. Aun así, se
ha reforzado la fijación de los cables para evitar que se puedan desconectar en pleno vuelo.
A partir del programa realizado para el control de la inclinación balancín, se adaptará el código para el
control de vuelo del cuadricóptero.
Partiendo de la base del programa del balancín, los siguientes diagramas de flujo se siguen utilizando
de la misma manera que para el programa del cuadricóptero.
• Tiempo de ciclo del programa.
• Lectura de datos por el puerto serie.
• Unidad de medición inercial.
• Comunicación por radio entre emisor y receptor.
El primer cambio corresponde al control de vuelo de cuadricóptero. En este caso, pasamos de un único
control PID del ángulo pitch, a cuatro controladores PID independientes para el control del ángulo de
los tres ejes pitch, roll y yaw y por último el control de altitud. Posteriormente será necesario
implementar el sistema de adquisición y registro de datos meteorológicos.
El diagrama de flujo del conjunto del controlador de vuelo formado por los cuatro sistemas de control
PID es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
111
INICIALIZACIÓN
PARÁMETROS DE
CONTROL YAW
CONTROL PID
ÁNGULO YAW
RECEPTOR
RADIOFRECUENCIA
UNIDAD DE MEDICIÓN
INERCIAL
CONTROL
PID
YAW
INICIALIZACIÓN
PARÁMETROS DE
CONTROL
ALTITUD
CONTROL PID
ALTITUD
CONTROL
PID
ALTITUD
INICIALIZACIÓN
PARÁMETROS DE
CONTROL ROLL
CONTROL PID
ÁNGULO ROLL
CONTROL
PID
ROLL
INICIALIZACIÓN
PARÁMETROS DE
CONTROL PITCH
CONTROL PID
ÁNGULO PITCH
CONTROL
PID
PITCH
SENSOR ALTITUD
Consigna Pitch
Consigna Roll
Consigna Yaw
Consigna Altitud
Error Pitch Error Roll Error Yaw Error Altitud
Ángulo Pitch Ángulo Yaw
Ángulo Roll
LÍMITES
SATURACIÓN
PID
SEÑAL PWM
PITCH
LÍMITES
SATURACIÓN
PID
SEÑAL PWM
ROLL
LÍMITES
SATURACIÓN
PID
SEÑAL PWM
YAW
LÍMITES
SATURACIÓN
PID
SEÑAL PWM
ALTITUD
TIEMPO DE CICLO
Altura
Loop ( )
Setup ( )
+-
+-
+-
+-
Figura 10.3: Diagrama de flujo: Control PID cuadricóptero
Para cada bloque PID se utiliza el mismo proceso de cálculo que el realizado anteriormente en el
capítulo 9.5 para el control del balancín, aplicando en cada bloque un valor de ganancia en los
parámetros de control independiente.
Una vez realizado el control de vuelo del dispositivo, el siguiente paso corresponde a la parte de control
de motores del cuadricóptero. El diagrama de flujo para cuatro motores es el siguiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
112
ESC 1 MOTOR 1
ESC 2 MOTOR 2
ESC 3 MOTOR 3
ESC 4 MOTOR 4
+ - - +
+ + + +
- + - +
- - + +
SEÑAL PWM
PITCH
SEÑAL PWM
ROLL
SEÑAL PWM
YAW
SEÑAL PWM
ALTITUD
SEÑAL PWM
ACELERADOR
Lógica de control de motores del cuadricóptero
M1 M2
M3M4
CONTROL DE MOTORES
CUADRICÓPTERO
Loop ( )
SEÑAL DE
ACTIVACIÓN Y
CALIBRACIÓN
• Señal PWM
• Ciclo de trabajo: 1 ms / 20 ms
Setup ( )
DELAY 7 SEGUNDOS
ESC 1 ESC 2
INICIALIZACIÓN DE
LOS MOTORES
CONDICIÓN DE SEGURIDAD
ESC 4 ESC 3
X
Yz
Figura 10.4: Diagrama de flujo: control de motores del cuadricóptero.
El funcionamiento de la lógica de motores es el mismo que el descrito en el capítulo 2, donde se
especifican los principios de funcionamiento del control de vuelo de un cuadricóptero.
Con este diagrama queda finalizado el código correspondiente al controlador de vuelo del
cuadricóptero.
10.1. Adquisición de los datos meteorológicos
La última parte del programa corresponde a la adquisición y registro de datos meteorológicos. Los
datos captados corresponden a la lectura de los valores de temperatura y presión atmosférica
mediante el sensor MS5611-01BA03. A continuación, se muestra el diagrama de flujo para la
adquisición de datos.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
113
INICIALIZACIÓN
COMUNICACIÓN I2C
REGISTRO SLAVE
0X77
SOLICITUD LECTURA PRESIÓN
SENSOR DE PRESIÓN BAROMÉTRICA Y TEMPERATURA
Setup ( )
Loop ( )
• Librería Wire - Comunicación I2C
• Frecuencia CLK I2C: 400 KHz
• Dirección esclavo: 0x77
• Reset de la configuración: registro 0x1E
LECTURA DATOS
CALIBRACIÓN DEL
PROM
C1 | SENST1
SENSIBILIDAD DE LA
PRESIÓN
C2 | OFFT1
OFFSET DE PRESIÓN
C3 | TCS
COEFICIENTE DE
TEMPERATURA
EN FUNCIÓN(C1)
C4 | TCO
COEFICIENTE DE
TEMPERATURA EN
FUNCIÓN(C2)
C5 |TREF
TEMPERATURA DE
REFERENCIA
C6 |TEMPSENS
COEFICIENTE DE
TEMPERATURA
Lectura de valores de calibración de fábrica16 BITS
Lectura datos
presión y
temperaturaD1 : LECTURA VALOR PRESIÓN DIGITAL
SOLICITUD LECTURA TEMPERATURA
24 bits
CÁCLULO
TEMPERATURA
CÁLCULO
PRESIÓN
LECTURA VALORES DE TEMPERATURA, PRESIÓN Y ALTITUD
ESTIMACIÓN DE
ALTITUD
LECTURA DE ALTITUD INICIAL
C = 1
C = 4
C = 6
D2 : LECTURA TEMPERATURA DIGITAL
CONTADOR C = 0 • Contador para optimizar el tiempo de ciclo
C++
Figura 10.5: Diagrama de flujo: Adquisición de datos atmosféricos.
A partir del anterior diagrama, las ecuaciones para la obtención de los valores de temperatura, presión
y estimación de altitud son las siguientes, extraídas de la hoja de datos del sensor48. Se utiliza la
notación mostrada en la anterior figura.
• dT: diferencia entre la lectura y la temperatura de referencia.
𝑑𝑇 = 𝐷2 − 𝑇𝑟𝑒𝑓 (Eq. 10.1)
• TEMP: Valor de temperatura (entre -45 y +85 ºC, resolución 0,01 ºC).
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
114
𝑇𝐸𝑀𝑃 = 20 º𝐶 + 𝑑𝑇 · 𝑇𝐸𝑀𝑃𝑆𝐸𝑁𝑆 (Eq. 10.2)
• OFF: offset de la lectura de la temperatura actual.
𝑂𝐹𝐹 = 𝑂𝐹𝐹𝑇1 + 𝑇𝐶𝑂 · 𝑑𝑇 (Eq. 10.3)
• SENS: Sensibilidad de la temperatura actual.
𝑆𝐸𝑁𝑆 = 𝑆𝐸𝑁𝑆𝑇1 + 𝑇𝐶𝑆 · 𝑑𝑇 (Eq. 10.4)
• P: Presión barométrica compensada respecto la lectura de temperatura. (entre 10 y 1200 mbar,
resolución de 0,01 mbar).
𝑃 = 𝐷1 · 𝑆𝐸𝑁𝑆 − 𝑂𝐹𝐹 (Eq. 10.5)
• Altitud: Valor obtenido aplicando la ecuación Hipsométrica, que relaciona la altura con la presión
respecto el nivel del mar y la temperatura. Esta ecuación solo es aplicable para altitudes menores
a 11 Km, debido a la diferencia de linealidad del ratio de la temperatura a partir de esta altitud.
𝐴𝑙𝑡𝑖𝑡𝑢𝑑 =
((𝑃𝑟𝑒𝑠𝑖ó𝑛 𝑛𝑖𝑣𝑒𝑙 𝑑𝑒𝑙 𝑚𝑎𝑟
𝑃𝑟𝑒𝑠𝑖ó𝑛 𝑚𝑒𝑑𝑖𝑑𝑎)
15,257
− 1) · (𝑇𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑎 𝑚𝑒𝑑𝑖𝑑𝑎 + 273,15)
0,0065
(Eq. 10.6)
El valor de presión al nivel del mar se establece en 1021,1 hPa. Este valor es obtenido a partir de los
datos en tiempo real que proporciona la Agencie Estatal de Meteorología (AMET) para la presión
atmosférica en el Aeropuerto de Barcelona, situado a 4 m sobre el nivel del mar. Se trata de un valor
de presión atmosférica absoluta muy variable, pero ello no supone ningún inconveniente ya que, para
el control de altitud, solo es necesario el valor de altitud relativa del cuadricóptero desde su punto de
inicio.
El sensor MS5611 realiza las lecturas de temperatura y presión a partir de un conversor analógico
digital(ADC). Para cada variable, mediante la programación del sensor, se puede seleccionar la
resolución del conversor ADC con tal de obtener la resolución necesaria para la aplicación en cuestión.
Cada escala de resolución está asociada a un tiempo de conversión necesario para obtener el valor de
la lectura. Las opciones de configuración son las siguientes, cuyos valores son extraídos de la hoja de
datos del sensor.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
115
Registro D1 (Presión) OSR Tiempo de conversión máximo (ms) Resolución Presión (mbar)
0x40 256 0,54 0,012
0x42 512 1,06 0,018
0x44 1024 2,08 0,028
0x46 2048 4,13 0,042
0x48 4096 9,04 0,065
Tabla 10.1:Resolución y tiempos de conversión de la lectura de la presión.
Registro D2 (Temperatura) OSR
Tiempo de conversión máximo (ms)
Resolución Temperatura ( ºC )
0x50 256 0,54 0,002
0x52 512 1,06 0,003
0x54 1024 2,08 0,005
0x56 2048 4,13 0,008
0x58 4096 9,04 0,012
Tabla 10.2: Resolución y tiempos de conversión de la lectura de la temperatura.
Si la única aplicación del sensor fuera la adquisición de datos, se seleccionaría la resolución máxima
posible sin importar que la frecuencia de adquisición de datos fuera menor. Debido a que se requiere
la variable de presión para realizar la estimación en tiempo real del valor de altitud, se requiere que
para la lectura de este valor la resolución sea la máxima posible. Esta elección requiere de un tiempo
de conversión máximo de más de 9 ms. Si seleccionáramos también esta misma resolución para la
lectura de temperatura y realizáramos la lectura de las dos variables dentro del mismo bucle, sería
necesario incluir un retardo total para dar tiempo a que la lectura del ADC sea estable de más de 18
ms. Este retardo disminuiría el tiempo de ciclo del programa a de 250 Hz a 55 Hz, comprometiendo la
estabilidad del vuelo.
Por este motivo, en vez de realizar la adquisición de datos dentro de un mismo bucle, se realiza este
proceso en distintas etapas aprovechando como delay el propio tiempo de ciclo del programa (4 ms
considerando una frecuencia de actualización de 250 Hz). Para ello se utiliza un contador, tal y como
se muestra en el diagrama de flujo de la figura 10.4. Mediante este contador, se realiza la adquisición
de datos de temperatura y presión cada 6 bucles de programa, por lo que, para un ciclo de trabajo de
250 Hz, la frecuencia de adquisición de datos atmosféricos será de aproximadamente 42 Hz.
Para la lectura del valor de presión (D1) se utiliza la resolución máxima posible (OSR 4096, 12 bits)
mientras que, para el valor de temperatura, debido a que la diferencia entre resoluciones no es tan
relevante se utiliza una resolución del ADC más baja (OSR 2048, 11 bits).
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
116
Se procede a mostrar un ejemplo de la lectura de altitud relativa del cuadricóptero a partir de los
métodos de cálculo explicados. Manualmente se ha monitorizado la variable de altitud al levantar el
dron manualmente una altura superior a dos metros. El resultado se muestra en la siguiente figura.
Figura 10.6: Monitorización del valor de altitud relativa (metros).
Mediante el método de cálculo utilizado se obtiene una lectura del valor de altitud relativa del
cuadricóptero bastante precisa. A partir los parámetros de configuración aplicados, se observa que la
resolución de la altitud es suficiente como para utilizar esta variable en el control PID de altitud del
cuadricóptero.
10.2. Registro de los datos meteorológicos
La última parte del programa del cuadricóptero consiste en el registro de los datos meteorológicos
adquiridos en una tarjeta de memoria microSD, mediante el módulo de lectura y escritura
seleccionado.
INICIALIZACIÓN
MÓDULO SD
REGISTRO DE DATOS ATMOSFÉRICOS EN MÓDULO SD
• Creación del archivo de texto.
ESCRITURA DE DATOS EN
EL ARCHIVO DE TEXTO
Setup ( )
Loop ( )
ADQUISICIÓN DE DATOS METEOROLÓGICOS
TEMPERATURAPRESIÓN
ATMOSFÉRICA
Enable Registro = 1
RECEPTOR DE DATOS
RADIOFRECUENCIA
Figura 10.7: Diagrama de flujo: Registro de los datos atmosféricos en módulo micro SD.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
117
A continuación, se muestra un ejemplo de los datos meteorológicos adquiridos en forma de archivo de
texto creado en la tarjeta de memoria microSD.
Figura 10.8: Registro de datos meteorológicos en archivo de texto.
Se podrían añadir más variables al registro como por ejemplo la altitud relativa o alguna variable de
interés del control del cuadricóptero, pero un aumento en la cantidad de variables registradas
requerirá de un mayor tiempo de ciclo necesario para guardar toda la información.
10.3. Ajuste de los parámetros de control del cuadricóptero
Para el PID de control del ángulo pitch, inicialmente se utilizan los mismos parámetros de control que
los utilizados para el balancín. Debido a la simetría de los ejes X e Y del cuadricóptero, estos parámetros
serán los mismos que los utilizados en el control del ángulo roll.
10.3.1. Método de sintonización del ángulo Yaw
Una vez seleccionados los parámetros de control de los ángulos pitch y roll, es necesario sintonizar el
ángulo yaw para el eje Z.
Para generar el movimiento yaw el funcionamiento es diferente al de los ejes X e Y. La inclinación de
los ángulos pitch y roll se produce por la diferencia de empuje entre motores opuestos. En cambio, la
rotación en el eje Z se produce por la inercia generada por la diferencia de velocidad de giro de los
motores. Una aceleración constante de yaw requiere de un ratio constante de incremento o
decremento de la velocidad de los motores.
Esto supone que para el control PID del ángulo yaw, el término integral tiene el efecto del proporcional,
y el término proporcional tiene el efecto del término derivativo en comparación al funcionamiento del
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
118
PID de los ángulos pitch y roll. La parte derivativa del control PID yaw asume valores de ganancia muy
pequeños o nulos.
El funcionamiento del ángulo yaw es diferente al del resto de los ejes y su método de sintonización de
los parámetros de control también. Para ello se situará el cuadricóptero en suspensión, sujeto
mediante unas cuerdas a una barra horizontal, tal y como se observa en la siguiente imagen.
Figura 10.9: Método de ajuste inicial para el control del ángulo Yaw.
El objetivo de este método es el de hacer que el cuadricóptero siga la consigna de rotación del eje Z
establecida, cuyo rango se encontrará entre 0 y ± 360°.
Para sintonizar los parámetros de control del eje Z, se ajustarán las variables de PID de los ángulos pitch
y roll a 0 debido a que, mediante la sujeción de las cuerdas, el dron se encontrará en posición horizontal
para los dos ejes. De esta manera se deduce mejor que la respuesta del sistema es únicamente
producida por el control del ángulo Yaw.
Con la velocidad de los motores por debajo del 45%, de forma que el cuadricóptero no pueda alzarse,
se procede a sintonizar las variables de control para obtener la mejor respuesta transitoria posible.
Después de varios intentos las ganancias aplicadas son las siguientes.
Control Balancín - Arduino IDE
Ganancias de control Yaw
Proporcional Kp 2
Integral Ki 0,02
Derivativo Kd 0,7
Trim eje Z 0 Tabla 10.3: Parámetros de control iniciales del ángulo Yaw del cuadricóptero.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
119
Se ha monitorizado la respuesta de control del eje Z con el cuadricóptero sujeto a la barra horizontal
para obtener la siguiente respuesta.
Figura 10.10: Respuesta del control del eje Z del cuadricóptero.
Es necesario comentar que, debido a la poca distancia entre el suelo y el cuadricóptero, el efecto suelo
produce el rebote del flujo de aire generado por las hélices de vuelta hacia el dron, desestabilizando el
cuadricóptero, por lo que la respuesta a una altura superior será mejor que la mostrada.
Para el control de altitud, el valor de los parámetros se elige teniendo en cuenta que una vez el
cuadricóptero está en el aire, pequeñas variaciones en el giro de los motores elevan o disminuyen
rápidamente la altitud del dron. El control de altitud será sintonizado una vez se haya conseguido hacer
volar el cuadricóptero de forma estable. Por ello, inicialmente las ganancias de control de altitud serán
anuladas.
Tabla comparativa de los parámetros de control de cada PID.
Control PID Kp Ki Kd
PITCH 1,83 0,045 0,55
ROLL 1,83 0,045 0,55
YAW 2,3 0,023 1,1
ALTITUD 0 0 0 Tabla 1.4: Ganancias de control del conjunto de controladores PID del cuadricóptero.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
120
10.4. Mejoras al control de vuelo
Para intentar mejorar la estabilidad de vuelo del cuadricóptero, se proponen las siguientes mejoras,
las cuales han sido incluidas en el control de vuelo del cuadricóptero.
10.4.1. Control feedforward + PID
El método de control feedforward responde directamente a la consigna del sistema
proporcionalmente a su ganancia de control.
𝑦𝐹𝑒𝑒𝑑𝑓𝑜𝑟𝑤𝑎𝑟𝑑(𝑡) = 𝐾𝐹𝐹 · 𝑆𝑃(𝑡) (Eq. 10.7)
El control feedforward se aplicará de forma paralela al control PID de cada variable, tal y como se
muestra en la siguiente figura.
Figura 10.11: Diagrama de control Feedforward + PID. (Fuente: Feedforward in drones49 )
A diferencia del control PID, este método no utiliza el error entre la consigna y variable manipulada,
únicamente responde a la consigna independientemente de la respuesta del sistema. Se trata pues de
un sistema de control en lazo abierto. Aplicando una ganancia de control proporcional a la consigna se
disminuye el tiempo de respuesta del sistema, pues no es necesario esperar a que el control PID
responda. Un menor retardo en la respuesta supone un error menor para el control PID, por lo que se
logra reducir la sobrecarga de la parte integral (windup).
Mediante el uso del control feedforward en el control de vuelo, se logra mejorar la respuesta ante los
cambios de consigna de la inclinación del sistema, por lo que mediante esta técnica de control se podrá
reducir el valor de ganancia de la parte proporcional PID. Reduciendo la parte proporcional, el sistema
será más estable ya que se generarán menos oscilaciones y el sobrepico máximo de la respuesta
transitoria se reducirá.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
121
Debido a las ventajas que presenta la unión de los dos tipos de controles, el control feedforward se
incorporará al diseño de control de vuelo realizado, con un ajuste de ganancia Kff inicial unitario.
10.4.2. Atenuación del control PID en función del acelerador
Se trata de un ajuste que modifica el valor de la ganancia Kp del control PID en función de la posición
del acelerador con el objetivo de estabilizar el sistema. Se trata de un método conocido como TPA
(Throttle PID Attenuation50).
A medida que aumenta la posición del acelerador, los motores ejercen mayor fuerza por lo que son
capaces de modificar la inclinación del sistema más fácilmente. Este ajuste disminuye linealmente el
valor de Kp a partir de una cierta posición del acelerador, conocida como breakpoint. De esta manera
se evita que, para valores elevados de aceleración, la parte proporcional inestabilice el sistema.
Para el rango de acelerador diseñado (1000 a 1700), se establece como breakpoint el valor 1500. Para
la máxima posición del motor, el valor de Kp habrá disminuido linealmente hasta el 50% de su valor
inicial, tal y como se muestra en el siguiente gráfico.
0
10
20
30
40
50
60
70
80
90
100
110
1000 1030 1061 1091 1122 1153 1181 1212 1242 1273 1303 1334 1365 1395 1426 1456 1487 1518 1547 1578 1608 1639 1669 1700
GA
NA
NC
IA P
RO
PO
RC
ION
AL
POSICIÓN DEL ACELERADOR
ATENUACIÓN DE LA PARTE PROPORCIONAL DEL CONTROL PID
Breakpoint 1500
Aceleración de elevación
1450
m = -0,25(%)
Figura 10.12: Atenuación del control PID en función de la posición del acelerador.
10.4.3. Compensación del efecto suelo
El despegue y aterrizaje suponen un aumento en la dificultad para el control PID de los ángulos pitch y
roll, de cara a mantener el cuadricóptero estable a 0°. Esto es debido al efecto suelo. Para alturas de
vuelo bajas, el flujo de aire generado por las hélices rebota contra suelo impactando de nuevo contra
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
122
el cuadricóptero. Este hecho hace que, durante las etapas iniciales del despegue, la estabilidad del
cuadricóptero se vea comprometida.
Para compensar este efecto, para una posición del acelerador menor a 1500, valor ligeramente
superior a la posición de despegue (1450), se aplicará un aumento en la ganancia de la parte integral
de los PID pitch y roll, de manera que el cuadricóptero tenga más facilidad para eliminar el error
estático durante el despegue.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
123
11. Resultados de vuelo del cuadricóptero
Una vez finalizado el software de control del cuadricóptero, es momento de probar el cuadricóptero.
A modo de resumen, los parámetros de control establecidos inicialmente son los siguientes.
Control
Cuadricóptero - Arduino IDE
Ganancias de control
Pitch
Proporcional Kp 1,83
Integral Ki 0,02
Derivativo Kd 0,3
FeedForward kff 1
Trim Consigna eje Y 0
Roll
Proporcional Kp 1,83
Integral Ki 0,02
Derivativo Kd 1,1
FeedForward kff 1
Trim Consigna eje X 0
Yaw
Proporcional Kp 1,6
Integral Ki 0,023
Derivativo Kd 0,7
FeedForward kff 1
Trim eje Z 0
Atenuación del control PID en función del acelerador
Compensación del efecto suelo
Modificación de la linealidad de los joysticks pitch y roll Tabla 2.1: Parámetros de control del cuadricóptero.
La prueba de vuelo fue realizada en una explanada al aire libre en un día con fuertes rachas de viento
(11 Km/h de media), por lo que las condiciones ambientales no fueron favorables. Aun así, se logró
hacer despegar y controlar el cuadricóptero en el aire de forma estable, tal y como se ve en la siguiente
imagen.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
124
Figura 11.1: Cuadricóptero diseñado volando.
Controlar el vuelo del dron fue complicado debido a la poca experiencia pilotando cuadricópteros y
sobre todo por el fuerte viento, aun así, la respuesta del dron ante las acciones del mando a control
fue rápida y estable.
Modificando el ajuste del trim desde el mando a control en sentido opuesto a la dirección del viento
se logró hacer volar el dron en el aire de manera estacionaria con mucha más facilidad.
Mediante un ordenador portátil se modificaron algunas ganancias de control para intentar mejorar la
respuesta. Principalmente se observó que la estabilidad de los ejes pitch y roll era correcta, pero el
cuadricóptero tuvo dificultades en asumir grados de inclinación elevados cercanos a 20°. Por este
motivo se aumentó el valor de la ganancia Kff de los dos ejes de 1 a 1,5.
Por otra parte, respecto al eje Z el cuadricóptero tenía dificultades en mantener correctamente la
consigna del ángulo yaw establecida. Debido a esto, se aumentó la parte integral del control PID yaw
de 0,023 a 0,033 y se redujo la parte derivativa.
Al cargar el programa con las nuevas ganancias en el microcontrolador Arduino MEGA 2560, se logró
mejorar la respuesta de vuelo del cuadricóptero.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
125
Debido a las limitaciones de tiempo de vuelo de la batería, tampoco se pudieron realizar muchos
intentos de sintonización de los parámetros de control de vuelo. Aun así, se considera que la estabilidad
de vuelo obtenida cumple con los requisitos establecidos y que el resultado final no se aleja mucho del
que podemos obtener utilizando un modelo de dron comercial.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
126
12. Análisis ambiental
Todos los componentes que forman el dispositivo se encuentran dentro de las especificaciones de
restricción de sustancias peligrosas en dispositivos eléctricos y electrónicos establecidas por la directiva
RoHS de la Comunidad Europea.
El único tipo de contaminación que genera el dispositivo es contaminación acústica. Los cuadricópteros
de tamaño medio producen mucho ruido debido a la redirección del aire por el giro de las hélices. La
Organización Mundial de la Salud considera como límite máximo de contaminación acústica deseable
los 70 dB (A). Para drones comerciales de tamaño similar al realizado, el umbral de ruido producido a
una altura de 10 m sobre el nivel de suelo puede llegar a los 80 dB (A), reduciéndose de manera
exponencial a medida que la altitud de vuelo incrementa.
La duración de la vida útil de una batería LiPo es un factor delicado. Es necesario llevar a cabo
procedimientos de carga y descarga adecuados y revisar su estado tras cada uso. En caso de accidente
con el cuadricóptero, sería necesario cambiar la batería debido a posibles fallos internos que se puedan
haber producido y que puedan desembocar en el mal funcionamiento o incluso deflagración de la
misma, provocando así un impacto muy negativo en el medio ambiente.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
127
Conclusiones
A partir del estudio de los principios de funcionamiento de un dron multirotor, se ha realizado el diseño
del hardware y software de un cuadricóptero, así como la comunicación por radio y programación de
un mando a control remoto. Los cálculos teóricos realizados a partir de las especificaciones de cada
dispositivo utilizado se han correspondido con los resultados reales de vuelo del dron.
Cuadricóptero realizado en el campo de pruebas.
Mediante las distintas etapas del proyecto, se han logrado optimizar y ajustar los parámetros de
control de vuelo, obteniendo como resultado un dron capaz de volar de forma ágil y estable, además
de tener la aplicación de adquisición y registro de datos meteorológicos. Se ha logrado optimizar el
software de control de manera que el programa realizado cumpla con los requisitos mínimos de
funcionamiento establecidos al inicio del proyecto, favoreciendo el rendimiento del programa.
Debido a que el objeto del trabajo era ambicioso, durante la realización del proyecto han surgido un
sinfín de dificultades, las cuales han sido resueltas a partir de paciencia, dedicación y la aplicación del
conjunto de conocimientos adquiridos a lo largo de la carrera. Inicialmente, se intentó realizar el
software del cuadricóptero en el entorno Simulink. No se logró obtener el resultado deseado con
Simulink a pesar de la cantidad de horas que se dedicaron a este entorno de programación. Aun así,
se valora de forma positiva el intento, pues se considera que los conocimientos adicionales adquiridos
sobre Simulink durante el proyecto serán muy útiles para el futuro.
Respecto al sistema de adquisición de datos, finalmente solo se ha realizado el registro de dos variables
meteorológicas, presión barométrica y temperatura. Esto es debido a que el enfoque principal del
proyecto ha sido puesto en el diseño del control de vuelo del cuadricóptero. La complejidad del trabajo
y las dificultades que han ido surgiendo han limitado el tiempo de desarrollo de la parte de adquisición
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
128
de datos. A pesar de ello, debido a que añadir más sensores supone el mismo procedimiento de
adquisición y registro de datos respecto a lo que ya se ha realizado, se considera que adquirir un mayor
número de variables atmosféricas no supone una mayor aportación al trabajo.
La situación excepcional producida por la pandemia en la que nos encontramos ha supuesto un
pequeño obstáculo de cara a realizar el trabajo con normalidad. Esto es debido, por ejemplo, a las
limitaciones que supone desarrollar todo el trabajo desde casa, pues no ha sido posible acceder al
centro universitario con normalidad. Por otra parte, las limitaciones en la movilidad han impedido la
posibilidad de realizar más pruebas para mejorar el funcionamiento del cuadricóptero realizado, así
como la adquisición de nuevos dispositivos para mejorar las características del dron diseñado.
La realización de este proyecto ha supuesto una experiencia muy gratificante, ya que aplicar
conocimientos de distintas áreas de la ingeniería en un sistema físico real ha permitido comprobar la
elevada dificultad que supone en ocasionas trasladar la teoría a la práctica.
Por último, este trabajo de fin de grado me ha hecho darme cuenta de la cantidad de conocimiento
sobre electrónica y automática que todavía me queda por descubrir, animándome a ampliar mis
estudios, por lo que valoro de forma muy positiva la realización de este proyecto.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
129
Posibles mejoras
A pesar de que el diseño del cuadricóptero realizado cumpla con los requisitos de vuelo establecidos,
existen multitud de posibles mejoras que se pueden aplicar sobre el presente proyecto con tal de
mejorarlo.
En primer lugar, disponiendo de una mayor cantidad de tiempo y un presupuesto económico mayor,
se añadiría a la parte de adquisición de datos meteorológicos la lectura de la humedad del aire. Por
otra parte, se añadirían sensores de la familia MQ para detectar por ejemplo el estado de la calidad del
aire, detección de humo, CO2, CH4, etc. También sería una gran mejora instalar un segundo sistema de
comunicación por radio, mediante el cual se envíen los datos meteorológicos al mando a control de
manera que se puedan visualizar los valores en tiempo real desde el display del mando.
Para el control de vuelo, sería interesante realizar un control de posición del dron. En el proyecto se ha
realizado el control de inclinación y altitud del cuadricóptero, pero no de su posición X e Y. El control
de posición más simple requiere de la incorporación de un sistema GPS en el dispositivo y de cálculos
de control PID adicionales. De forma paralela, la estimación de la posición también se puede realizar
procesando las lecturas de inclinación de la unidad de medición inercial.
Un aspecto mejorable en la construcción del cuadricoóptero es el cableado de los componentes. El
microcontrolador seleccionado está diseñado como placa de pruebas, cuyos pines vienen soldados por
defecto a terminales hembra para conectar cables de prototipado. Este hecho genera que el conjunto
de sensores y actuadores estén conectados mediante protoboards y cables sin soldar. No se ha
encontrado ninguna alternativa mejor a la realizada, ya que idealmente el conexionado del conjunto
del esquema eléctrico debería estar hecho con todos los elementos soldados y conectados mediante
una placa de topos o una placa de circuito impreso. Aun así, el conexionado realizado se ha reforzado
para garantizar que el cableado se mantenga lo más fijado posible.
Otra mejora para el proyecto consiste en trasladar el programa realizado a un microcontrolador
STM32. Las placas Arduino se utilizan en las etapas iniciales de los proyectos, ya que su programación
es relativamente sencilla. Los microcontroladores STM32 ofrecen prestaciones mucho mayores a las
de Arduino a costa de un diseño de software mucho más complejo y avanzado. Realizando el proyecto
con este controlador se lograría mejorar considerablemente el desempeño del cuadricóptero.
Finalmente, una gran mejora para el proyecto sería realizar el diseño mediante un software CAD
(Diseño Asistido por Computadora) de un marco adaptado a las características del cuadricóptero, con
el objetivo de mejorar el diseño, la conexión de los distintos dispositivos electrónicos y reducir el peso
del dron.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
130
Bibliografía
[1] "Drones." Consultado en diciembre de 2020. https://www.enaire.es/servicios/drones.
[2] "DRON." Consultado en diciembre de 2020. http://etimologias.dechile.net/?dron.
[3] "Phantom 1 - DJI." Consultado en diciembre de 2020. https://www.dji.com/es/phantom.
[4] "Historia de los drones - El Drone." Consultado en diciembre de 2020.
http://eldrone.es/historia-de-los-drones.
[5] "EL ORIGEN Y LA HISTORIA DE LOS DRONES - Hemav." Consultado en diciembre de
2020. https://hemav.com/el-origen-y-la-historia-de-los-drones.
[6] "Interstate TDR - Wikipedia, la enciclopedia libre." Consultado en diciembre de 2020.
https://es.wikipedia.org/wiki/Interstate_TDR.
[7] "Professional Mapping Drone : Delair UX11 UAV." Consultado en diciembre de 2020.
https://delair.aero/delair-commercial-drones/professional-m
[8] "Beginner Drone Guide: Types, Quality, & Applications | Controller Craft." Consultado
en agosto de 2020. http://www.controllercraft.com/articles/beginner-drone-guide.apping-
drone-delair-ux11.
[9] "Drones by Size - Half Chrome Drones." Consultado en diciembre de 2020.
https://www.halfchrome.com/drones-by-size.
[10] "15 aplicaciones de los drones en nuestra sociedad " Consultado en diciembre de 2020.
https://www.pimealdia.org/es/15-aplicacions-dels-drons-a-la-nostra-societat.
[11] "Real Decreto 1036/2017." Consultado en agosto de 2020.
https://www.boe.es/boe/dias/2017/12/29/pdfs/BOE-A-2017-15721.pdf.
[12] "Normativa de Drones en España 2021" Consultado en agosto de 2020.
https://www.oneair.es/normativa-drones-espana-aesa.
[13] "Six degrees of freedom - Wikipedia." Consultado en diciembre de 2020.
https://en.wikipedia.org/wiki/Six_degrees_of_freedom.
[14] "Drone Simulation and Control, Part 1: Setting Up the Control Problem." Consultado en
agosto de 2020. https://es.mathworks.com/videos/drone-simulation-and-control-part-1-setting-
up-the-control-problem-1539323440930.html.
[15] "Aerodynamics in racing multirotors!." Consultado en diciembre de 2020.
http://shrediquette.blogspot.com/2015/08/aerodynamics-in-racing-multirotors.html.
[16] "AIO Flight Controllers - GetFPV." Consultado en diciembre de 2020.
https://www.getfpv.com/electronics/flight-controllers/aio-all-in-one-fc.html.
[17] "Marco HobbyKing X525 V3 Quadcopter." Consultado en diciembre de 2020.
https://hobbyking.com/es_es/hobbyking-x525-v3-glass-fiber-quadcopter-frame-600mm.html.
[18] "Speed control of a BLDC motor using arduino - TECHFUNS." Consultado en septiembre
de 2020. http://techfuns.blogspot.com/2016/01/speed-control-of-bldc-motor-using.html.
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
131
[19] "How Brushless Motor and ESC Work - HowToMechatronics." Consultado en septiembre
de 2020. https://howtomechatronics.com/how-it-works/how-brushless-motor-and-esc-work.
[20] "Sensors MDPI." Consultado en diciembre de 2020. https://www.mdpi.com/1424-
8220/10/7/6901/htm.
[21] "NTM Prop Drive Serie 28-26A 1200KV / 286w." Consultado en diciembre de 2020.
https://hobbyking.com/es_es/ntm-prop-drive-series-28-26a-1200kv-286w.html.
[22] "Variador electrónico (ESC): Qué es y cómo funciona - FpvMax." Consultado en
septiembre de 2020. https://www.fpvmax.com/uncategorized/variador-electronico-esc-
funciona.
[23] "Brushless DC Motors-Part II: Control Principles - EDN." Consultado en septiembre de
2020. https://www.edn.com/brushless-dc-motors-part-ii-control-principles.
[24] "Ztw Beatles 30A BEC Manuals | ManualsLib." Consultado en diciembre de 2020.
https://www.manualslib.com/products/Ztw-Beatles-30a-Bec-9005993.html.
[25] "How to Calculate Lift for Rotor Blades." Consultado en diciembre de 2020.
https://sciencing.com/calculate-lift-rotor-blades-7680704.html.
[26] "Coeficient de sustentació - Viquipèdia, l'enciclopèdia lliure." Consultado en diciembre
de 2020. https://ca.wikipedia.org/wiki/Coeficient_de_sustentaci%C3%B3.
[27] "Batería de níquel-metal hidruro - Wikipedia, la enciclopedia libre." Consultado en
diciembre de 2020. https://es.wikipedia.org/wiki/Bater%C3%ADa_de_n%C3%ADquel-
metal_hidruro.
[28] "Batería de polímero de litio - Wikipedia, la enciclopedia libre." Consultado en diciembre
de 2020. https://es.wikipedia.org/wiki/Bater%C3%ADa_de_pol%C3%ADmero_de_litio.
[29] "Baterías LiPo: conceptos básicos y consejos de uso." Consultado en diciembre de
2020. http://fulchis.es/baterias-lipo.
[30] "HRB 3S 11.1V 3300mAh 60C Lipo Battery - tiendamia.com." Consultado en diciembre de
2020. https://tiendamia.com/producto?amz=B06XNMLYGR.
[31] "Modeltronic." Consultado en diciembre de 2020. http://www.modeltronic.es.
[32] "Medidor de voltaje con buzzer para baterías Lipo 1-8S — Talos .." Consultado en
diciembre de 2020. https://www.taloselectronics.com/products/medidor-de-voltaje-con-buzzer-
para-baterias-lipo-1-8s.
[33] "Arduino Official Store - Arduino Uno Rev3." Consultado en diciembre de 2020.
https://store.arduino.cc/usa/arduino-uno-rev3.
[34] "Serial Peripheral Interface - Wikipedia, la enciclopedia libre." Consultado en diciembre
de 2020. https://es.wikipedia.org/wiki/Serial_Peripheral_Interface.
[35] "El bus SPI en Arduino." Consultado en diciembre de 2020.
https://www.luisllamas.es/arduino-spi.
[36] "I2C – Puerto, Introducción, trama y protocolo." Consultado en noviembre de 2020.
https://hetpro-store.com/TUTORIALES/i2c
Diseño y montaje de un sistema de adquisición de datos para un cuadricóptero Memoria técnica
132
[37] "I2C – Aprendiendo Arduino." Consultado en diciembre de 2020.
https://aprendiendoarduino.wordpress.com/2017/07/09/i2c/
[38] " Barometric Pressure Sensor, with stainless steel cap." Consultado en diciembre de
2020.
https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Da
ta+Sheet%7FMS5611-01BA03%7FB3%7Fpdf%7FEnglish%7FENG_DS_MS5611-
01BA03_B3.pdf%7FCAT-BLPS0036.
[39] "Brushless Motor Calculation." Consultado en diciembre de 2020.
https://forum.openrov.com/t/brushless-motor-calculation/613
[40] "Calculador de Multicópteros eCalc." Consultado en noviembre de 2020.
https://www.ecalc.ch/xcoptercalc.php
[41] "Controlador PID." Consultado en diciembre de 2020.
https://www.picuino.com/es/arduprog/control-pid.html
[43] "Drone simulation and control." Consultado en septiembre de 2020.
https://es.mathworks.com/videos/drone-simulation-and-control-part-2-how-do-you-get-a-
drone-to-hover--1539323448303.html
[44] "Arduino UNO Rev3." Consultado en diciembre de 2020.
https://store.arduino.cc/usa/arduino-uno-rev3.
[45] " MPU-6000 and MPU-6050 Product Specification Revision." Consultado en septiembre
de 2020. https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf.
[46] " MPU-6000 and MPU-6050 Register Map and Descriptions Revision." Consultado en
septiembre de 2020. https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-
Datasheet1.pdf.
[47] "Low Pass Filter - helpful." Consultado en diciembre de 2020. https://helpful.knobs-
dials.com/index.php/Low-pass_filter.
[48] "MS5611-01BA03” Consultado en diciembre de 2020.
https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Da
ta+Sheet%7FMS5611-01BA03%7FB3%7Fpdf%7FEnglish%7FENG_DS_MS5611-
01BA03_B3.pdf%7FCAT-BLPS0036
[49] "What does feedforward do and how does it work" Consultado en diciembre de 2020.
https://drones.stackexchange.com/questions/495/what-does-feed-forward-do-and-how-does-
it-work/522.
[50] "Betaflight PID tuning guide." Consultado en diciembre de 2020.
https://github.com/betaflight/betaflight/wiki/PID-Tuning-Guide.