Arduino Drone | Material necesario y montaje de los componentes hardware
Índice:
- Conceptos generales sobre drones.
- → Material necesario y montaje de los componentes hardware
- Mando RC y receptor. Programación en Arduino
- MPU6050 y su programación en Arduino
- Batería LiPo
- Control de estabilidad y PID
- Motores, ESC y su programación en Arduino
- Calibración de hélices y motores
- Software completo y esquema detallado
- Probando el Software completo antes de volar
- Como leer variables de Arduino en Matlab
Material necesario para construir un drone
El material mínimo que vamos a necesitar para construir el drone es el siguiente. No os preocupéis si no entendéis la función de alguno de los componentes, los analizaremos a fondo en diferentes entradas más adelante uno por uno. Os dejo también los enlaces de compra de los mismos productos que he utilizado yo.
Lista componentes
Componente | Cantidad | Donde conseguirlo |
Arduino Nano | 1 | Comprar en Amazon |
Frame 450mm | 1 | Comprar en Amazon |
Motores A2212 1000kV + ESC 30A | 4 | Comprar en Amazon |
MPU6050 | 1 | Comprar en Amazon |
Mando radio control | 1 | Comprar en Amazon |
Batería 3S 11.1V | 1 | Comprar en Amazon |
Cargador baterías | 1 | Comprar en Amazon |
Placa de distribución | 1 | Comprar en Amazon |
Kit LEDs | 4 | Comprar en Amazon |
Placa soldadura | 2 | Comprar en Amazon |
Conectores atornillados | 5-10 | Comprar en Amazon |
Conectores tipo bala | 12 | Comprar en Amazon |
Display LCD I2C | 1 | Comprar en Amazon |
Resistencias | 2 | Comprar en Amazon |
Estañador | 1 | Comprar en Amazon |
Interruptor 20A | 1 | Comprar en Amazon |
Material principal en detalle
- 1x Arduino Nano. El el cerebro de nuestro drone y donde se ejecutará el software de control de vuelo.
Comprar Arduino Nano en Amazon
- 1x Frame 450. Es la estructura donde montaremos todos los componentes hardware de nuestro drone. Vamos a utilizar un frame de 450mm:
- 4x motores 1000kV y 4x ESC 20Amp. Uno de los componentes mas importantes de nuestro drone, los motores y los 4 ESC encargados de hacerlos girar. Utilizaremos motores de 1000kV y ESC de al menos 20 amperios. Aseguraos que el pack que compréis incluye también las hélices. El tamaño de hélice recomendado para estos motores es de 10×4.5R:
- 1x MPU6050. El sensor mas importante de nuestro drone, sin el cual sería imposible hacerlo volar de forma controlada. Recomiendo comprar mas de uno para tener repuestos, es muy barato de adquirir.
- Placa de montaje (para soldar componentes). Lo utilizaremos para soldar los diferentes componentes del drone. Esta placa irá después situada encima del frame.
Comprar placa de montaje en Amazon
- 1x Mando y receptor RC. Lo utilizaremos para controlar el drone y hacer que se desplace a nuestro antojo. Hay infinidad de modelos disponibles, os dejo el que yo utilizo, cuyas características son suficientes para esta aplicación. Aseguraos que el modelo que compréis incluye también el receptor.
- 1x Batería 3S 22000mAh. Fuente de energía del drone. Utilizaremos una batería 3S de 2200mAh.
Comprar batería LiPo en Amazon
- 1x Cargador de baterías 3S. Lo utilizaremos para recargar la batería.
- 1x Placa de distribución de potencia. Utilizaremos esta placa para soldar los cuatros ESC a la batería de forma robusta. Esta conexión puede hacerse simplemente utilizando cable, pero es mas cómodo y seguro hacerlo utilizando una placa como esta.
Comprar placa de distribución de potencia en Amazon
- 1x LCD 16×2. Lo utilizaremos para visualizar algunas variables y alarmas que puedan surgir durante el vuelo. Aseguraos que incluye un adaptador i2C para facilitar el conexionado.
- 1x Pack de leds. Recomiendo comprar un pack de leds de diferentes colores. Los utilizaremos para visualizar parámetros durante el vuelo. Yo he utilizado leds de color azul, naranja y rojo.
Comprar pack de LEDs en Amazon
- Conectores de bala (para los motores). Es imprescindible conectar los ESC y los motores de forma robusta. Para ello utilizaremos conectores tipo bala.
Comprar conectores tipo bala en Amazon
- Conector tornillo 2 pines (para las señales de control). Para conectar las salidas de la placa Arduino con los diferentes periféricos (MPU6050, ESC, leds…) utilizaremos conectores atornillados.
Comprar conectores a tornillos en Amazon
- Crimpadora y terminales. Los utilizaremos para asegurar los cables de señal y facilitar su conexionado al introducirlos en los terminales a tornillo:
- Interruptor de 20Amp. Lo utilizaremos para apagar y encender el drone (conectar/desconectar la batería) de forma segura y controlada.
Kit de resistencias. No utilizaremos muchas, pero siempre viene bien tener un kit de este tipo, ya que son muy baratos.
Comprar kit de resistencias en Amazon
Otros componentes
- Estañador (y estaño). Imprescindible para soldar los diferentes componentes de forma robusta. Son muy baratos de adquirir.
- Polímetro. Recomiendo tener un polímetro básico en casa para media tensión e impedancias. Aseguraos de que incorpora amperímetro y medidor de impedancias.
- Soporte anti-vibración (opcional). Montando el sensor MPU6050 sobre un soporte anti-vibración, evitaremos que las vibraciones producidas por los motores pasen al control, desestabilizando el drone. Su utilización es opcional, yo no lo he utilizado ya que he calibrado los motores de forma precisa.
- Osciloscopio (solo si se dispone de uno, son muy caros). Existe una variante mas económica de Hantek, que es la que yo utilizo. Es muy útil para resolver problemas.
- Cable, bridas, cinta aislante…
Como veis he añadido 4 leds y un pequeño LCD 16×2 para visualizar cierto parámetros durante la inicialización del drone, pero estos componentes son opcionales. Además de esto, siempre podremos completar el montaje con nuevos sensores como barómetro/altímetro para controlar de forma precisa la altitud de vuelo, módulo GPS para conocer la posición exacta del drone…
Montaje de los componentes
El montaje del drone es algo abierto a la imaginación de cada uno, no hay una única forma de hacerlo, aunque sí que hay una serie de aspectos a tener en cuenta. El esquema eléctrico que es necesario montar en es siguiente:
Os dejo una serie de consejos y pautas generales de montaje para facilitar la tarea. Si tenéis cualquier duda no dudéis en preguntármelo en los comentarios, intentaré resolver vuestras dudas lo antes posible:
- Intentad que el peso esté equilibrado y lo más centrado posible, colocad la batería lo más baja y centrada posible. Agarradla bien utilizando alguna brida. Yo la he situado en la parte baja del frame. He utilizado una ‘placa de distribución de potencia’ para conectar los cuatro ESC a la tensión de batería:
- Montad los componentes electrónicos (MPU6050, Leds, conectores…) en una placa donde podáis soldar los componentes de forma fácil y robusta. Atornillad la placa al frame firmemente. Una vez colocados los componentes, podéis recortar la placa como queráis y darle la forma que mas os guste. Si os fijáis en las fotos que os he dejado mas adelante, veréis que he recortado la placa para darle forma mas ‘agresiva’ al conjunto del drone:
- El sensor siempre tiene que estar orientado con uno de los ejes de movimiento. Bastará con orientar la ‘fecha Y’ del sensor con lo que consideremos la ‘parte delantera’ de nuestro drone, de esta forma, alinearemos este eje con nuestro eje Pitch. Ahora, cuando movamos hacia arriba el stick del eje Pitch, el drone se moverá hacia ‘delante’, es decir, hacia en la dirección que indica de ‘flecha Y’. Mas información en la entrada dedicada al sensor MPU6050:
Recordad que vamos a construir un drone tipo ‘x‘, por lo que no deberemos orientar el sensor con ninguna de los brazos del frame:
- Conviene montar el chip MPU6050 en el soporte anti-vibración que he indicado en la lista (aunque yo no lo he hecho).
- Es importante numerar los motores de la siguiente forma. El motor delantero derecho será nuestro motor número 1 (podéis poner una pequeña etiqueta en cada motor):
- Asegurad los cuatro ESC a las patas de frame de forma robusta, por ejemplo utilizando cinta aislante.
- Utilizad conectores adecuados para hacer la conexión entre ESC y motores, no lo hagáis de cualquier forma. Una mala conexión entre estos dos componentes puede destruir los componentes y dejarlos inservibles (he roto varios ESC y motores por malas conexiones). Utilizad ‘conectores de bala’. Tenéis más información en la entrada dedicada a los ESC y motores.
- He utilizado conectores de tornillos de dos pines para transmitir las señales PWM de control desde la placa Arduino a los ESC. Tenéis más información en la entrada dedicada a los ESC y motores.
- Para cablear adecuadamente el receptor del mando RC es necesario que conozcáis qué palanca del mando actúa sobre cada canal. Tenéis más información en la entrada dedicada al mando RC y receptor.
- Conviene utilizar al menos un interruptor principal para poder cortar la alimentación de la batería de forma sencilla. Utilizad un conector que pueda soportar 20Amp como mínimo.
- El interruptor secundario es opcional, sirve para alimentar de forma independiente la parte de potencia de la parte de control.
- Conviene instalar varios leds (y a ser posible un LCD, aunque es opcional) para poder visualizar alguna alarma o variable de forma sencilla y visual.
- Cuidado al montar el divisor resistivo y hacer las conexiones con la batería. Tenéis que aseguraros de que el polo positivo y el negativo de la batería nunca van a tocarse entre sí. Tenéis mas información en la entrada dedicada a la batería.
- Utilizad algún sistema de amortiguamiento para cuando el drone aterrice de forma accidentada, ya he utilizado corchos de botella puestas en cada una de las 4 patas.
- De momento no vamos a instalar las hélices, lo haremos mas adelante cuando hayamos puesto en marcha el software y seamos capaces de controlar los motores de forma segura.
Os dejo algunas imágenes de mi drone para inspiraros. Como veis he utilizado una configuración de varios niveles utilizando placa perforada donde he ido situando los diferentes componentes
Continuar con la siguiente entrada:
- Conceptos generales sobre drones
- Material necesario y montaje de los componentes hardware
- → Mando RC y receptor. Programación en Arduino
- MPU6050 y su programación en Arduino
- Batería LiPo
- Control de estabilidad y PID
- Motores, ESC y su programación en Arduino
- Calibración de hélices y motores
- Software completo y esquema detallado
- Probando el Software completo antes de volar
- Como leer variables de Arduino en Matlab
¡NUEVO curso de diseño PCB ! Controlador de vuelo para drones 100% Arduino
NUEVO curso de diseño de tarjetas electrónicas (PCB) para principiantes, donde aprendemos a diseñar PCB complejos que cubran las necesidades de vuestros proyectos DIY. Para llegar a este objetivo, vamos a diseñar desde cero un PCB controlador de vuelo para drones basado 100% en Arduino, donde como punto final enviaremos el PCB a fabricar para recibirlo en casa completamente montado y listo para ser programado.
Buenas,
Quiero montar un dron que pueda recordar un recorrido ya hecho o poder programarle una serie de movimientos para que lo haga luego de forma autónoma.
¿Lo más fácil es comprar un modulo GPS que te vaya dando coordenadas y guardarlas para luego vuelva a pasar por allí? Si es así ¿con el Arduino nano tengo suficiente?
Por otra parte, respecto al control de altura ¿recomiendas el barometro o el HC-SR04?
Buenas!!! Para el recorrido tendrás que usar GPS si o si… es lo mas sencillo y fiable. Con el Nano suficiente.
Para el control de altura yo prefiero utilizar el barómetro MS5611, pero no es fácil obtener lecturas precisas… hay que filtrar la señal y tomar medidas de seguridad vía software para que no salga despedido si las lecturas son incorrectas. El HC-SR04 en teoría puede medir rangos de hasta 4m, pero en la realidad no se cumple. A partir de 1m las lecturas no sirven… incluso menos. Si quieres usar un sonar tendrás que ir a uno de mas calidad, como el IR Sharp GP2Y0A710K0F.
Un saludo
Hola, algunas imagenes no se visualizan correctamente….
gracias!
Gracias por avisar!! Yo puedo visualizar todas correctamente. Que raro
Buenas, mi idea es montar un dron, para que haga una tarea muy concreta, es decir que vuele independientemente, darle al botón y que haga el movimiento que yo le haya programado.
para tal fin ¿este dron serviría? de ser que si, ¿solo debería cambiar el receptor por una placa de control?
Hola!
Tengo dudas, tenemos los cuatro motores pero no giran igual dos giran en un sentido y los otros al contrario. mi duda viene en el esquema, ya que entonces, habra que cruzar dos cables de los botones?
Y que programa usaste para realizar el esquema? gracias!
Buenas Carlos,
Todo lo necesario sobre los motores viene explicado aquí.
https://arduproject.es/motores-esc-y-su-programacion-en-arduino/
Cada motor tiene que girar en un sentido concreto como se explica en el artículo que te digo. Para variar el sentido de giro, basta con intercambiar dos de los cables de alimentación como dices.
El esquema está hecho con Visio.
Un saludo y suerte con eso 😉
hola que tal puedes hacer un video explicando como armar este drone por favor soy nuevo en esto y este drone es el proyecto de grado que tengo por favor
Buenas Jesus, lo siento pero eso supondría mucho tiempo y trabajo… creo que no aporta demasiado. Los pasos están explicados en el blog. Un saludo!!
Buenas, cambia en algo si utilizo ESC de 30A en lugar de 20A ??
Buenas Lucio, sin problemas. 😉
Por favor, puedes concretar un modelo de barómetro/altímetro y de gps que den prestaciones de muy buena calidad, para poder adquirirlos.
Los soportes antivibración no los encuentro y la MPU6050, creo que ha cambiado. ¿Vale la que le sustituye: hiletgo GY-521 MPU-6050 ?
Gracias
Buenas Enrique.
GY-521 MPU-6050 sin problema, es como el que tengo yo.
El barómetro sin duda el MS5611… muy preciso. Para Agosto (finales, que me voy de vacaciones :)) subiré una nueva versión del software con el control de altitud basado en MS5611 incluido.
GPS, yo no he utilizado nunca para drone… pero los Neo-6M deben ir bastante bien… con 2-3m de precisión.
Un saludo
¿se podría hacer con arduino uno r3?
Buenas Jose,
Claro, sin problemas. El conexionado es el mismo. La Nano es la versión simplificada de la Uno.
Un saludo
Hola, yo también tengo el problema con las imágenes, algunas nos la puedo visualizar correctamente.
Buenas Jorge,
Puedes verlas ahora??
Un saludo y gracias por avisar!
siiii, muchisimas gracias!
Hola, Felicitaciones antes que nada y gracias por poner este material en la red. Estoy construyendo un dron con una tarjeta ATMEGA2560, le tengo un GPS . Esta tarjeta viene con APM, Que le debo variar para que me funcione con esta tarrjeta.
Buenas,
Lo siento, no estoy familiarizado con APM.
Suerte!!
Hola, tengo una duda acerca del mando y receptor, yo vivo en Colombia y me es difícil con comprar el modelo que dice en el blog, pero encontré no se me sirva
Mira es este: Transmisor Flysky FS-i6X 10CH 2.4GHz AFHDS RC con receptor FS-iA6B
Buenas Juan!!
Claro, sin problemas. El mando que planteas es de categoría bastante superior al mío (que solo tiene 4 canales). Con el tuyo podrás añadir nueva funciones…
Yo compré ese por ser el mas barato que vi.
Suerte! 🙂
Hola de Nuevo
Que Pena molestar tanto, con respecto al mando serviría este que vi y es un poco mas económico
Radio Control Remoto Mc6c 6ch Drone Avion Arduino Helicopter
perdón por la molestia.
Tranquilo! Cualquier mando RC y un receptor compatible son adecuados para este proyecto.
Hola. Gracias por la información para hacer un drone. Deseo hacerlo con mis alumnos y es muuuuy importante que el drone tenga aditamentos de seguridad para evitar accidentes por la hélices. Que me recomiendas. Te escribo desde México. Saludos!!!
Buenas Leonardo,
Bastante gente me escribe diciendo que quieren hacer el proyecto en clase con los alumnos. Mi respuesta siempre es la misma: este proyecto NO está recomendado para eso. Especialmente cuando los alumnos son niños.
Como bien indicas, las hélices puede producir heridas bastante graves si no te anda con cuidado. En principio no se me ocurre que protecciones se pueden usar. Las hélices no se pueden cubrir par volar ni para calibrar.
Yo recurriría a un proyecto mas simple, como un coche teledirigido o algo por el estilo.
Un saludo!!
Amigos sufro pues solo puedo fantasear con la idea de crear o tener un dron y amo la robotica pero ak en cuba me resulta dificil crear les agradeceria si me ayudaran a crear mi primer dron pues eso creo que esta bien dificil para mi
Buenas Samuel,
Es una pena lo que dices, ojala la situación cambie pronto.
Ánimo!
Estoy intentando montar un drone y me preguntaba dos cosas respecto a los motores. Iba a usar unos A2212 KV2200 y no se exactamente que bateria deberia utilizar, ademas me preguntaba cuanto peso podrian devantar cuatro de estos motores para drones. Simplemente para saber cual es el peso maximo que deberia tener mi drone. Respecto a lo de la bateria me refiero a cuantos mAh deberia tener esta para que el drone volase unos 20min. como mínimo.
El drone lo haré con arduino siguiendo las pautas de este proyecto por supuesto, pero tengo que utilizar estos motores y me preguntba que batería me convendría.
Muchas gracias.
Hola.. Se puede usar arduino mega?
Claro Javier, Nano, Uno y Mega compatibles sin problema.
Un saludo
Hola , puedo utilizar motores de mas potencia?
Claro, sin problemas!
hola, estoy interesado en ponerle mas potencia tambien, pero los motores que usa el proyecto tal cual está, ya son de 900 gramos de empuje…
¿que motores le pondrias?
¿como puedo saber cuanto peso levanta cada moor?
Buenas, estuve mirando tu proyecto y la verdad que está muy bien, pero en mi caso yo quiero hacer un drone Arduino muy parecido al tuyo pero que lo pueda controlar por Android con una aplicación hecha por App inventor o Java. Mi pregunta es si este material que tienes me puede valer y si le tendría que añadir algún receptor Bluetooth?
Espero tu respuesta
Buenas David!
Tendrás que añadir un receptor bluetooth si.
Bunas amigo tengo una consulta que tipo de baterias escojer para volar mas tiempo
Utiliza una batería de mas Ah… pero aumentarás el peso, y con eso reducirás autonomía. Es la pescadilla que se muerde la cola. Actualmente la autonomía de los drones ronda los 10-20mins como máximo.
Un saludo
buenas
si quiero llevas peso que bateria me recomendaria?
Lo drones no puede llevar mucho peso. Cuanto mas peso lleves, menos dudará la batería… es la principal limitación de estos vehículos hoy en día. Hay que buscar un compromiso entre peso y duración de la batería.
Un saludo
Hola!
¿Cómo se le podría conectar una cámara? y qué tipo de cámara sugieres para este drone.
Gracias!
Cámara FPV.
Un saludo
Muy bueno el articulo, te consulto, tenes algo asi pero para controlarlo con LoRa?
Buenas Mario,
Desconozco lo que es LoRa 🙁
buenas, me encantó poder lograr este artículo siempre he querido construir mi propio drone, así que podré lograrlo con la ayuda de su artículo. mi consulta es, si puedo utilizar otro arduino diferente al UNO, yo tengo uno en mi casa el MEGA 2560, me gustaría saber si es funcional para el drone o es necesario comprarme el UNO
Buenas Claudia,
Si problemas, se puede implementar tanto en UNO como en MEGA.
Un saludo 😉
Hola. He intentado montar el dron que muestras en tu blog, y me han surgido varios problemas y pediría que si por favor puedes, me ayudes.
El primero es que cuando descargo el código completo, al compilarlo me da error con las librerías LiquidCrystal_I2C.h y EnableInterrupt.h. Lo que he hecho es meter las dos librerias que vienen con el código en un zip y en el IDE de arduino, Programa->incluir libreria->añadir libreria .zip. Ahí le he puesto esos dos zips. El error desaparece, pero tras el montaje del dron, no funciona (después lo explico). La otra forma, para ver si funcionaba, es buscarlas en Programa->incluir libreria->administrar bibliotecas… Ahí busqué esas dos librerías y las instalé, pero el resultado es el mismo.
El problema que tengo es que una vez montado todo exactamente como viene en el blog, el dron pita cuando se conecta la batería, pero no hace mucho más. La pantalla se enciende pero no muestra nada, simplemente se ilumina.
El mando que tengo es exactamente el que viene en la descripción, y he probado los motores directamente con el mando y si que funcionan, por lo que los motores y los ESC tampoco son un problema. He utilizado un arduino nano y un MPU6050. Me gustaría añadir que cuando he intentado subir el código al arduino, me salta un error todo el rato de que no se puede comunicar con el sketch (o algo así). La manera de solucionarlo ha sido cambiando el procesador a ATmega328P (Old Bootloader). Una vez hecho esto, se subía el código sin problemas. Esto me pasa con todos los código que intente subir al arduino. ¿Puedes deducir de alguna forma que problema puedo tener? Agradezco cualquier ayuda porque me estoy volviendo loco.
También me gustaría preguntar que indican los leds. Por lo que he visto en el vídeo, el azul parpadea cuando el dron se calibra, pero el resto no sé que hacen, y me gustaría preguntar por ellos.
De nuevo, gracias por cualquier posible ayuda.
Acabo de conocer el blog y me surge esta pregunta: a fin de reducir el peso al máximo, ¿se ha intentado diseñar una PCB con todos los componentes integrados?
¡Claro! de hecho, estoy trabajando en esto mismo. Tienes más información sobre esto en la página principal 😉
Hola que tal. Es necesario colocar la placa de distribución de energía o conectando los motores con el esc al Arduino nano ya es suficiente? Ya que el Arduino puede trabajar con 12V
Efectivamente puedes utilizar también la entrada de 12V de Arduino.
Una pregunta puedo cargar todo el programa completo cuando termine de armarlo o tengo que calibrar todos los componentes por separado
Buenas, tendrás que comprobar por separado mando, motores y MPU6050. Sobre todo con el mando y los motores, hay muchos modelos en el mercado y no todos funcionan igual. Un saludo!
Hola buenas,
Muchas gracias por el blog, me esta sirviendo de mucha ayuda
Una pregunta, utilizar un interruptor de 16A o 20A, cuando los motores puede consumir cada uno aprox 12A-15A a carga máxima, no hace que la corriente de la bateria en algunos momentos sea de 60A aprox?
Usar un interruptor de 16A no seria incorrecto?
Muchas gracias por adelantado!
Un saludo,