>DRONE CON ARDUINO| < 1
DISEÑO DE UN DRONE CON ARDUINO:
AUTOMATIZACION DE VUELO.
Myers E George
gmyers @utap.edu.co
entrada y salida, 8 Pines de entradas análogas, Regulador de
Abstract— The small drones known as drones were created tensión integrado, Conector mini-USB para programación y
for military use. However, thanks to its characteristics and comunicación serie integrada en la placa.
the innumerable possibilities and advantages that they
offer, the use of these aircraft has spread to the civil area,
and the growth of its implementation is just beginning. His
incursion in the sector of machines and tools is already a
reality, and its application, as well as the wide range of uses
that can be granted is unlimited. These unmanned aerial
vehicles, emerged in the United States as fighter aircraft
called "Unmanned Combat Air Vehicle" (UCAB). Their
first versions were quite basic and because they only
followed the internal navigation system, like the insect, the
military chose to refer to the UCAB as "drones" i.
INTRODUCCION
Hoy en día hemos utilizado la automatización en muchos
campos y uno en el cual ha sido pionero ha sido el aeronáutico,
diseño de aeronaves totalmente automáticas con una respuesta
al vuelo y de tomas de decisiones sin error alguno, donde se
podrían obviar el factor humano, pero por regulaciones
internacionales de aviación no se pueden. En otras aplicaciones,
inicialmente en el campo militar para vigilancia y control donde
el factor humano es limitado, tenemos hoy en día aeronaves o
drones que pueden operar 24 horas sin tocar tierra y ni siquiera
sin repostar combustible, pues toda su automatización lo hace
una herramienta de trabajo 100 porciento efectiva. ii
En este diseño utilizamos una tarjeta con un procesador libre,
usando una plataforma para su software en lenguaje C. Esta Tarjeta para control de Motor L298Niii
tarjeta llamada Arduino nos da muchas características a favor módulo basado en un chip de modelo L298N que permite
para este diseño. Obviamente su cálculo para este drone controlar la velocidad y la dirección de dos motores de corriente
cuadricoptero, se rige también por las leyes de aerodinámica, continua o un motor paso a paso bipolar de hasta 2 amperios,
mecánica y electrónica. debido a los 2 los dos H-bridge que utiliza el modulo. Un
puente-H o H-bridge es un componente formado por 4
Componentes usados en el drone. transistores que nos permite invertir el sentido de la corriente, y
Tarjeta Arduino Nano de esta forma podemos invertir el sentido de giro del motor.
Circuito electrónico pequeña con un microcontrolador
ATMega328 el cual se programa a través de un entorno de
desarrollo basada en lenguaje C o processing. El
microcontrolador de la placa se programa mediante un equipo
de cómputo, usando una comunicación serial mediante un
convertidor de niveles RS-232 a TTL Su hardware está
compuesto por 14 pines digitales de
>DRONE CON ARDUINO| < 2
Dispositivo NFR2401vi
permite establecer comunicaciones RF (Radio Frecuencia),
entre dos o más puntos a diferentes velocidades, (Hasta 2
Mb/seg) integrando en un único chip toda la electrónica y sus
bloques funcionales, con corrección de errores y protocolo de
Regulador de voltaje LM7805 a 5v reenvió cuando es necesario, sin intervención del control
externo, lo que permite aislar el trabajo sucio y complicado
relacionado con la transmisión física.
Lógica de automatización de Vuelo.
Regulador de tensión para arduino iv
MPU6050 para estabilidad del dronev
IMU de 6DOF (se lee “6 Degrees Of Freedom“), lo cual quiere
decir que es una Medida inercial de 6 grados de libertad. Esto
significa que lleva un acelerómetro de 3 ejes y un giroscopio de
3 ejes, capaz de mesurar la fuerza (aceleración) y la velocidad.
Las siglas IMU corresponden a la Unidad de Medición de
Inercia es un dispositivo electrónico que mide e informa acerca
de la velocidad, orientación y fuerzas gravitacionales de un
aparato.
>DRONE CON ARDUINO| < 3
Como ya se mencionó este código permite validar el
correcto funcionamiento de las palancas del joystick, luego este
funcionamiento del control será automatizado. Con la
incorporación del segmento de código para el movimiento
específico de la aeronave, será posible enviar la especificación
del movimiento como los realizan los controles manuales, pero
sin intervención humana. Un aspecto relevante en este
segmento de código se puede notar, en el escalamiento que se
aplica a las señales análogas, para convertirse a los valores
estándar que utilizan los radiocontroles.
// Definición de punteros de las variables del control
#define ail 0
#define ele 1
#define thr 2
#define rud 3
#define mod1 4
#define mod2 5
// Pines de entrada
#define ADC_AIL A2
#define ADC_ELE A1
#define ADC_THR A6
#define ADC_RUD A7
#define MOD_SW 17
#define MOD_SW2 19
int channels[6];
void setup() {
void loop() {
// Lectura de señales análogas que tienen un rango de 0-1024
y se convierten al rango 1000-
2000 como los radiocontroles standard
channels[ail] = 1000 +
4*map(analogRead(ADC_AIL),0,
1024,0,255); channels[ele] =
1000 +
4*map(analogRead(ADC_ELE),0,
1024,0,255); channels[thr] =
Código para darle funcionalidad al radio control 1000 +
fabricado 4*map(analogRead(ADC_THR),0
>DRONE CON ARDUINO| < 4
,1024,0,255); channels[rud] = Código para la comunicación entre el control y el
1000 + receptor del drone
4*map(analogRead(ADC_RUD),0 El siguiente código se encargara de permitir las
,1024,0,255); channels[mod1] = configuraciones la comunicación por parte el transmisor del
!digitalRead(MOD_SW); radio control. Este segmento de código es necesario en el caso
channels[mod2] = de requerir la comunicación a través del módulo NFR24, hasta
!digitalRead(MOD_SW2); la fecha de elaboración del presente informe se tienen dos
alternativas de comunicación lo cual puede darse a través del
// Impresión de las señales mapeadas dispositivo en mención o también a través de la tarjeta integrada
Serial.print("AIL: "); Serial.print(channels[ail]); Transmisor RC-MD. Dependiendo de la implementación en el
Serial.print(" | ELE: "); Serial.print(channels[ele]); prototipo final, éste segmento puede darse como opcional.
Serial.print(" | THR: "); Serial.print(channels[thr]); // 2. Se define la banda de transmisión, para este
Serial.print(" | RUD: "); Serial.print(channels[rud]); caso se escoge una por defecto const uint64_t
Serial.print(" | MOD1: "); Serial.print(channels[mod1]); pipes[2] = { 0xF0F0F0F0E1LL,
Serial.print(" | MOD2: "); Serial.print(channels[mod2]); 0xF0F0F0F0D2LL };
. Se inicializa el modulo y se
configura su comportamiento de
Lógica del recorrido automático para un vuelo operación radio.begin();
rectangular radio.setRetries(15,15);
El siguiente bloque de código permite enviar los valores radio.openWritingPipe(pipes[0]);
adecuados a la escala de los joysticks para que pueda realizar radio.openReadingPipe(1,pipes[1]);
los cambios en los comportamientos de elevador y alerón, }
necesarios para que finalmente se vean reflejados en el
movimiento drone. Los cambios en mención para los valores de void loop(void){
elevador y alerón se definen durante un tiempo determinado, Serial.println("--------------------------------------------------------
para que el drone alcance a realizar un recorrido para una -");
distancia especifica. Se hace la salvedad que en el movimiento ;
no está contemplado la elevación de la aeronave, solo el }
recorrido perimetral
// 1 Vuelo al frente x tiempo
channels[ail] = 1500; channels[ele] =
1600; // este incremento hace que el
dron vaya hacia adelante channels[thr]
= 1500; channels[rud] = 1500;
delay(xTiempo);
// 2. vuelo izquerda x tiempo
channels[ail] = 1400; // este decremento
hace que el dron vaya hacia izquierda
channels[ele] = 1500; channels[thr] =
1500; channels[rud] = 1500;
delay(xTiempo);
// 3. vuelo atras x tiempo
channels[ail] = 1500;
channels[ele] = 1400; // este
decremento hace que el dron vaya
hacia atrás channels[thr] = 1500;
channels[rud] = 1500;
delay(xTiempo);
// 4. vuelo derecha x tiempo
channels[ail] = 1600; // este
incremento hace que el dron vaya
hacia derecha channels[ele] = 1500;
channels[thr] = 1500; channels[rud]
= 1500; delay(xTiempo);
>DRONE CON ARDUINO| < 5
Se puede observar la calibración del acelerómetro MPU6050.
Codigo base.vii
>DRONE CON ARDUINO| < 6
Myers E. George, Actualmente me Ingeniería mecánica en Kingston University London,
desempeño como docente investigador del acreditado por la Royal Aeronáutica para Ingeniería
programa de Instrumentación Electrónica Aeroespacial, Especialidad en Ingeniería Aeroespacial, Centro
dela Fundación Tecnológica Autónoma de Estudios espaciales – Toulouse –Francia, Aerodinámica y
del Pacifico, Miembro del Grupo de Estructuras – Centro de Estudios Espaciales- Toulouse-Francia,
Investigación de informática y electrónica Pedagogía Universitaria UNAR-Colombia, Diseño y
de la misma institución. Nació en Sevilla – mantenimiento protección Catódica-PEMEX, ISO9000,ISO
Colombia , nacionalidad Colom- 9001, ISO 14000 – INCONTEC, MBA en Administración y
Americana, en 1975, graduado en la manejo de recursos marítimos- Instituto de estudios
Escuela Militar Annapolis –Maryland USA, como Oficial Internacionales Marítimos, Especialidad En Ingeniería
Naval, Piloto Naval F/A 18 Hornet , Ingeniero Electrónico, de Biomédica – AUNAR UDENAR , Diplomado Docencia
la Politécnica de España en Barcelona España, Especialidad en Universitario-UTAP Miembro de AOPA-Eu..
Hidroneumática y Termodinámica – UPC, MBA en ciencias de
i iv
http://www.alldatasheet.com/view.jsp?Searchword=L7805cv
v
http://www.alldatasheet.com/view.jsp?Searchword=Mpu-
http://www.demaquinasyherramientas.com/novedades/dron 6050%20datasheet&gclid=EAIaIQobChMIpYicxt7T2QIVAVmGCh1oqg
es-introduccion 0aEAAYASAAEgJh5_D_BwE
ii vi
http://www.xdrones.es/drones-rusos/ http://www.alldatasheet.com/view.jsp?Searchword=Nrf2401
iii vii
https://forum.arduino.cc/index.php?topic=381589.0
http://www.alldatasheet.com/view.jsp?Searchword=L298n%20datashe
et&gclid=EAIaIQobChMI5LaI3t7T2QIViCSGCh2ilgkZEAAYASAAEgKT
E_D_BwE