134
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.

Diseño y montaje de un sistema de adquisicón de datos para

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 2: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 3: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 4: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 5: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 6: Diseño y montaje de un sistema de adquisicón de datos para

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).

Page 7: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 8: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 9: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 10: Diseño y montaje de un sistema de adquisicón de datos para
Page 11: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 12: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 13: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 14: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 15: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 16: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 17: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 18: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 19: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 20: Diseño y montaje de un sistema de adquisicón de datos para

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 )

Page 21: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 22: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 23: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 24: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 25: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 26: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 27: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 28: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 29: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 30: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 31: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 32: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 33: Diseño y montaje de un sistema de adquisicón de datos para

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).

Page 34: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 35: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 36: Diseño y montaje de un sistema de adquisicón de datos para

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).

Page 37: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 38: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 39: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 40: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 41: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 42: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 43: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 44: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 45: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 46: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 47: Diseño y montaje de un sistema de adquisicón de datos para

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).

Page 48: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 49: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 50: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 51: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 52: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 53: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 54: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 55: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 56: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 57: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 58: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 59: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 60: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 61: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 62: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 63: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 64: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 65: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 66: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 67: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 68: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 69: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 70: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 71: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 72: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 73: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 74: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 75: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 76: Diseño y montaje de un sistema de adquisicón de datos para

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)

Page 77: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 78: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 79: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 80: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 81: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 82: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 83: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 84: Diseño y montaje de un sistema de adquisicón de datos para

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%

Page 85: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 86: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 87: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 88: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 89: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 90: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 91: Diseño y montaje de un sistema de adquisicón de datos 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.

Page 92: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 93: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 94: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 95: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 96: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 97: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 98: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 99: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 100: Diseño y montaje de un sistema de adquisicón de datos para

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:

Page 101: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 102: Diseño y montaje de un sistema de adquisicón de datos para

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°.

Page 103: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 104: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 105: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 106: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 107: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 108: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 109: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 110: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 111: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 112: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 113: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 114: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 115: Diseño y montaje de un sistema de adquisicón de datos para

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).

Page 116: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 117: Diseño y montaje de un sistema de adquisicón de datos para

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).

Page 118: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 119: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 120: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 121: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 122: Diseño y montaje de un sistema de adquisicón de datos para

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á.

Page 123: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 124: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 125: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 126: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 127: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 128: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 129: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 130: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 131: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 132: Diseño y montaje de un sistema de adquisicón de datos para

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.

Page 133: Diseño y montaje de un sistema de adquisicón de datos para

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

Page 134: Diseño y montaje de un sistema de adquisicón de datos para

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.