Drones desde cero.

UAV_4_4_adds

En unos cuantos días es la platica en el Arduino Day en The Inventor’s House ( http://theinventorhouse.org/home ), veamos un poco de historia de The Inventor’s House:

 

The Inventor`s House fundada en el 2013. Su objetivo es crear el mejor lugar hackerspace y co-working en el que gente de todas las edades y niveles de habilidad con intereses comunes, en computadoras, tecnología, ciencia, electrónica, mecánica, diseño gráfico, programación web, programación móvil se reúnen para aprender, socializar y colaborar.

Nuestra presentación esta agendada para el 29 de Marzo de 13:00 PM a 14:00 PM, te dejo el evento de facebook, espero nos puedas acompañar.

https://www.facebook.com/events/1453727001524866/

Aquí un vídeo de una de las primeras pruebas que hicimos de nuestro drone, mi equipo y yo estábamos muy ansiosos por oír las hélices cortar el aire.

 ¿De que se trata esta página?

Durante la charla habrá muchos conceptos que se van a mencionar de forma general o muy sencilla, el motivo principal de esta página es proveer todas las fuentes de información posible que se encuentran en Internet respecto a nuestra charla.

Les dejo la presentación del Arduino Day (Como no tenía mi máquina no pude mostrarla):

DronesDesdeCero

Cuatrirotor con Raspberry Pi, MagPi 19

Esta fue una de las más grandes inspiraciones y punto de inicio (pero no el mejor punto de inicio), tenía bastantes dudas de si realmente la Raspberry podría manejar todo el sistema de control, lo único que puedo decir es que el desarrollo del software para el manejo del hardware mejora día con día, definitivamente un recurso que no te puedes perder si piensas usar una Raspberry.

 

Sensores de Inercia

Un punto clave para el dron son los sensores inerciales, estos sensores permiten calcular los ángulos de ubicación de un objeto en el aire, pero no hay que irnos con la finta de que son sensores libres de problemas, al contrario, cada sensor tiene sus problemas y los problemas de uno pueden ser (o intentar ser) compensados por otros sensores. Para nuestro dron usamos dos IC:

MPU6050 (Acelerometro + Giroscopio)

HMC5883L (Magnetómetro o Brújula digital)

 

Puedes ver unos códigos para leer estos sensores  en la Raspberry Pi en los siguientes enlaces (instala wiringPi con I2C antes de continuar):

https://github.com/tejonbiker/Earhart/tree/master/RaspberryPi/src/HMC5883L

https://github.com/tejonbiker/Earhart/tree/master/RaspberryPi/src/mpu6050_test

 

Ángulos de Orientación

Son básicamente tres: yaw, pitch y roll (traducido es: guiñada,  cabeceo y alabeo),  estos son los ángulos de giro respecto a los ejes coordenados.

 

 

Cálculos de ángulos de orientación. 

Este proceso tiene sus variantes, en los siguientes enlaces puedes encontrar más detalles:

Tilt Sensing Using a Three-Axis Accelerometer, Freescale Semiconductor

THE QUADCOPTER : HOW TO COMPUTE THE PITCH, ROLL AND YAW

El filtro complementario parece ser un excelente compromiso entre desempeño y computo.

El magnetómetro es un sensor muy especial, hacer cálculos de ángulos a partir de su información puede ser particularmente difícil.

Triple Axis Magnetometer HMC5883L + Arduino

Para tener una medición más exacta del magnetómetro se puede aplicar una compensación de inclinación, el siguiente PDF es muy ameno explicando este proceso.

AN3192, Using LSM303DLH for a tilt compe
nsated electronic compass

En la red encontré un algoritmo abierto para IMUs (Inertial Motion Unit), la demostración la hacen con hardware propio de la página (que también puedes comprar), tiene resultados muy interesantes.

Open source IMU and AHRS algorithms

 

Control de Posición

Se tienen motores colocados sobre un mismo plano ¿Como se controlan los ángulos de orientación? ¿Como mezclamos las señales de control para los motores necesarios?, estas no son preguntas fáciles de responder, los principios básicos de un cuatrirotor se puede ver en

Build A Quadcopter From Scratch – Hardware Overview

El siguiente enlace se muestra un control muy sencillo, habrá que probarlo para ver si se adapta bien a 6 motores.

THE QUADCOPTER : CONTROL THE ORIENTATION

He tenido la oportunidad de leer algunos artículos científicos acerca del modelado matemático y del control de un hexacóptero, desafortunadamente todavía no encuentro algún articulo de acceso libre.

FPV (First Person Video o video de retroalimentación en tiempo real)

Uno de los motivos por lo cuales escogimos hacer todo por WiFi es la capacidad de manejar toda la información por el mismo canal de comunicación, ahorrando hardware y dando una conectividad más flexible. El dron tendrá una webcam usb que estará enviando video a 30 fps a una resolución de 320×240, el software del lado del dron es el MJPEG-Streamer, un software muy fácil de usar, este software básicamente extrae fotogramas de la cámara en JPEG y las envía por medio de una petición http que nunca acaba.

http://www.robertcudmore.org/blog/?p=273

Del lado de la computadora voy a reciclar una interfaz en Java que tenía para otro robot que tenía el mismo sistema de envío de vídeo, el vídeo se muestra donde se ve la imagen en alto contraste.

ScramGUI2

 

Ardupilot Mega

Ardupilot es un proyecto de código abierto basado en Arduino y su enfoque principal es el control de drones, este proyecto esta patrocinado por 3DRobotics, este proyecto (más en específico esta página) me ha ayudado en el diseño del controlador basado en Raspberry.

apm_2.6.inputs

Propulsión

Un multirotor (cuatrirotor, hexarotor o octarotor) es en esencia la misma combinación de Hélices, Motores y controladores de motores, solo multiplicado por el número de rotores. En definitiva esta es el área con más incertidumbre, un motor con hélice tiene un parámetro llamado empuje (thrust y esta dada en gramos) que es en escencia la fuerza generada por el giro de la hélice.

El empuje es dependiente de la geometría de la hélice (longitud e inclinación) y también de las RPM .

Los motores usados son BLM (Brushless Motor, motor sin escobillas), estos motores tienen un parámetro llamado kV, esto puede ser interpretado como RPM/V (RPM desarrolladas por cada unidad de voltio), para saber las RPM del motor solo basta multiplicar el kV por el voltaje, por ejemplo, un motor de 1000 kV a 11.1 V dará 11,100 RPM. Estas RPM son a las que girarán las hélices, lo que significa que el parámetro kV también forma parte de los cálculos del empuje.

Los BLM con una hélice y girando a ciertas RPM consumirán corriente, los motores sin carga consumen alrededor de 1 A (esto depende de la alimentación), cuando se agrega una hélice el consumo de corriente subirá significativamente, pasará de 0.5 A a varios amperes (tal vez por arriba de 10).

Una vez que se sabe que corriente se va a consumir por motor es necesario adquirir el controlador de velocidad para el voltaje y corriente (hay que hacer énfasis en la corriente) adecuados.

¿Que significa todo esto? lo que significa que el empuje termina siendo función de muchos parámetros, algunos ni si quiera se especifican a la hora de comprar (como por ejemplo el consumo de corriente con una hélice en especifico), si no se tiene información de consumo de corriente y empuje con una hélice lo único que queda es a prueba y error.

Los motores para multirotor se recomiendan en el rango de 1000 kV,  las hélices van desde 7 pulgadas hasta 12 pulgadas (inclusive hay más grandes, pero a mi parecer 12 pulgadas es algo ya bastante grandes), las hélices tienen la siguiente nomenclatura: 9050, donde 90=9 pulgadas y 50=5 grados de inclinación de la ala.

Encontré algunos paquetes interesantes en internet que pueden ayudar a reducir las iteraciones de prueba y error, el primero es de Ebay, y por el precio que tiene creo que vale la pena probarlo (aún no lo he probado), desafortunadamnte no tiene valor de empuje:

Encontré otro paquete interesante en hobbyking.com y este si tiene valor de empuje con una hélice en especifico (en la sección de prop data), un paquete que a decir verdad quiero probar en algún momento, des afortunadamente le falta el adaptador de hélice, no tengo a la mano el adaptador de hélice que es de su medida.

Reprogramando ESCs

Cuando buscaba información de ESC (sobre todo por las temporizaciones) me encontré que mucha gente tiende a reprogramar los ESC, al parecer es para dar más estabilidad a configuraciones multirotor, en el siguiente enlace podrán encontrar más detalles.

Flashing my ESCs with SimonK Code

Si en algún momento estas interesado en diseñar tu propio ESC (estoy muy tentado a hacerlo) Microchip tiene una nota de aplicación que te puede ayudar.

Brushless DC Motor Control Made Easy, Microchip AN857

Videos de Interés

Recuerda que mencione 3DRobotics

 

Phoebe, el robot de la portada de MagPi 19

 

Picopter, cuatrirotor con Raspberry

 

Raspberry PI – Quadrocopter – Crash (Nunca se les olvide tomar precauciones)

 

Raffaello D’Andrea: The astounding athletic power of quadcopters (de las cosas más avanzadas que he visto en drones)

 

Códigos Interesantes

Picopter, Cuatrirotor con Raspberry

RPIO, PWM via DMA en Raspberry.

WiringPi, librería que emula el lenguaje de Arudino en Raspberry. 

por último y no menos importante, nuestro repositorio:

https://github.com/tejonbiker/Earhart

 

Espero les haya gustado esta publicación, leer esto no significa ser un experto en drones, primero hay que quemar y romper algunas cosas, sin embargo creo que llena varios huecos de información cuando uno quiere iniciar con la construcción desde cero de un dron.

 

Cualquier duda, comentario o corrección no duden en escribir.

Have fun.

59 comentarios to “Drones desde cero.”

  1. eneas Says:

    Hola saludos me interesa mucho construir un dron me podrian ayudar para conseguir todo los componetes. o donde comprarlos.

  2. Ing. David Angeles Says:

    Buenos dias, estoy interesado en la construir un Drone, soy profesor de la carrera de ingeniería en sistemas y tengo a mi cargo el área de robótica. Me podrían orientar en donde poder adquirir materiales para poder construirlo o información relacionada a Drones. Saludos y buen día.

    • tejonbiker Says:

      Buen día Ing. David, hay varios videos en youtube, tal vez lo más difícil de hacer (o aprender) es saber que motores/hélices/baterías/ESC comprar si se requiere de una configuración en especial.

      Para esto no hay una guida definitiva.

      ¿De que Universidad nos visitas?

      • Ing. David Angeles Says:

        Buen día, pertenezco al Instituto Tecnológico de Altamira. Ya ahorita tengo identificado los motores, cámara y los ESC que se van a utilizar en nuestro proyecto, ahorita nos encontramos en el punto de buscar a proveedores para adquirir las piezas que necesitamos.

      • tejonbiker Says:

        Excelente, ponte en contacto con Valkirias UAV ( pedidos@valkirias.mx ) para que verifiques la disponibilidad de su stock y también veas cual de todo su stock se ajusta a lo que tu buscas.

      • Ing. David Angeles Says:

        Gracias por el dato de Valkirias UAV, me pondré en contacto con el para conocer el inventario. Pronto publicaremos en el portal de trabajo el avance del proyecto. Saludos

      • tejonbiker Says:

        Sería excelente si después nos cuentas como te fue con tu proyecto.

  3. matias Says:

    Hola buenos días! .
    Mi nombre es matias y estoy cursando el ultimo año de ingeniera electromecanica. .Me gustaría hacer un drone como proyecto final. Me podrias ayudar con cualquier tipo de información.
    Desde ya muchas gracias.
    Soy de Argentina

  4. wilmer Says:

    hola
    mi nombre es wilmer estamos haciendo de proyecto un dron y quisiera que me faciliten la programación para el dron pero que sea en arduino .
    estaré muy agradecido.

  5. Alex Segarra (@AESL82) Says:

    Buen día! me encuentro actualmente en el desarrollo de dos prototipos y actualmente me encuentro en búsqueda de las baterias más adecuadas en rendimiento, existe alguna guía al respecto que conozcan? es posible entablar con ustedes contacto? Saludos!

  6. exudus999 Says:

    Saludos estoy interesado en construir drones. podrías recomendarme algún programa para realizar piezas

  7. John Jaime Peña Says:

    Buen día, estoy en un proyecto del colegio para construir un Drone, necesitaría una ayuda en el área de programación y la tarjeta que se necesitaría para tal proceso

  8. JESÚS CUÉLLAR Says:

    HOLA: MI NOMBRE ES JESÚS CUÉLLAR, SOY UN PRODUCTOR AUDIOVISUAL DE BOLIVIA…NO HACE MUCHO ADQUIRÍ UN HEXACÓPTERO F550; Y TENGO PROBLEMAS PARA DESPEGARLO SE INCLINA HACIA UN COSTADO…TALVEZ SEA CUESTIÓN DE CONFIGURACIÓN…ME PUEDEN AYUDAR POR FAVOR…SE LOS AGRADECERÍA. MI RADIO ES UN FUTABA T8J.

    NECESITO HACER UNAS IMÁGENES AÉREAS.

    SALUDOS

  9. jhonatandavid Says:

    hola estimado, quisiera saber si podrias dejar algun PDF?, osea de algun pdf habras iniciado para la construccion de tu drone.. espero tu respuesta.

    • tejonbiker Says:

      El artículo de MagPi donde aparece el Quad es lo único que he encontrado en PDF de como armar un Quad (aunque debo de decir que no contiene toda la info, pero es algo).

  10. Juan ito Says:

    gracias por tomarte el tiempo de recopilar esta información, estoy interesado en aprender como se construye un dron, ¿pero que conocimientos técnicos en electrónica o programación debo tener?
    un abrazo desde el distrito federal

    • tejonbiker Says:

      Si tu intención solo es construirlo y que vuele, puedes usar un piloto automatico como lo es el Naza de DJI (hay versiones económicas), si lo que quieres es entender lo que pasa dentro de él te recomendaria leer y aprender sobre programación en C, porgramación de Micros, Radiofrecuencia, Construcción de PCBs, Señales y Sistemas, teoría de control entre otras.

  11. TDR Drone Says:

    Buenos días soy un alumno del IES d’Aran que junto a dos compañeros (estamos en 1º de bachillerato; conocimientos de rebotica básicos tirando alto…) estamos trabajando en el desarrollo y construcción de un drone. Quería preguntarte si podrías echarnos una mano en este proyecto.
    Gracias por adelantado.
    Correo de contacto: hockeyramon@gmail.com

  12. Ing. José Francisco Says:

    Hola que tal, mira yo compre un cuadricoptero pero al parecer se desconfiguro y ahora tengo ese problema, me gustaría saber si me puedes orientar en hacer las pruebas necesarias para saber el error, dime donde te escribo para darle los detalles de que fue lo que sucedió haber si me puedes ayudar. Gracias..

    • tejonbiker Says:

      Hola buen día, apenas estoy aprendiendo el proceso de calibración de modelos comerciales, ¿No puedes poner tus problemas por este medio? probablemente alguien más experimentado que yo pueda aportar a la solución 🙂

  13. Ing. Rodolfo Says:

    Buenas tardes.

    Lo primero de todo saludos desde España, más concretamente, desde la universidad Carlos III.

    Soy estudiante de ing. telemática. Querría orientar mi trabajo fin de grado a los drones y veo que en este blog tenéis un conocimiento muy amplio.

    He comprado una Raspberry Pi 2 y querría saber:

    – Que SO instalar, y si todo el control del dron se llevaría a cabo a través de dicho software, brújula, acelerómetro, video en streaming, etc.

    – Y si a través de dicho tutorial que nos dejas, podría realizar la construcción del mismo desde ya.

    Habrá que echarle horas, días y meses, pero así disfrutamos algunos 🙂

    Un saludo
    y muchas gracias compañeros!

  14. Robert Says:

    Buenas saludos!! Estoy finalizando mi carrera de ing. Aquí en Venezuela!! Quería saber si usted me puede ayudar a elaborar un dron pero que sea Armado paso a paso por mi! Quiero basarme en un dron para grabación!! Que dure por lo menos un tiempo de vuelo de 20 minutos o mas!! Favor responder saludos!!

    • tejonbiker Says:

      Hola, bueno, son muchos pasos y depende bastante desde que punto lo quieras atacar, cuando digo desde cero, me refiero a hacer el corte laser de los brazos por ejemplo, aunque también puede comenzar comprando todo y armarlo.

  15. AlfredoGD Says:

    Saludos, ¿podrian ayudarme con el modelo matematico del cuadricoptero?

    no se que deberia tener en cuenta, las matrices, las ecuaciones, no se si para cada aplicacion existe un modelo matematico diferente….

    Lo que quiero hacer es un Control de estabilidad, que el cuadricoptero se mantenga en posicion horizontal frente a perturbaciones. para ello pienso montar una estructura que mantenga el dron fijo en el suelo, pero permitiendole inclinarse en todos los angulos. no va a cambiar de posicion ni de altitud, solo me interesa el angulo de inclinacion.

    tambien me interesa lo siguiente por si alguien me puede ayudar:

    ¿alguien a leido una IMU (MPU6050) usando simulink de matlab?
    ¿alguien ha implementado control robusto QFT?

  16. Davin Martinez Says:

    muy buena informacion

  17. Leonardo Says:

    Hola! Yo estoy en la construcción de un Drone a fines de la elaboración de una tesis de la carrera de Ingeniería en Automatización y Control Industrial. El punto de objeto de la tesis, ademas de construir el drone, es realizar el software de control de estabilidad en altura, pitch y roll. Para esto estoy buscando alguna plataforma arduino pero necesito que no tenga ningún bootloader, algún controlador virgen, sin bootloader para aprovechar y manipular los recursos del micro a mi antojo, y que sea suficiente para la aplicación, es decir, que tengo suficientes entradas y salidad y puertos de comunicación. Alguien sabe de alguna placa de desarrollo con estas condiciones? Puede ser arduino o cualquier otro fabricante de licencias gratuitas.

    gracias a todos
    saludos
    leonardo

    • tejonbiker Says:

      Hola leonardo, por tu comentario infiero que intentas hacer el software del controlador con AVR Studio o algo similar, la programación de los arduino se hace desde el puerto serial de la computadora (he ahí una de las características de arduino), sin embargo si te interesa una “placa virgen” realmente no tienes porque comprarla virgen, puedes comprar por ejemplo un multiwii y sobreescribir todo su código (incluyendo el bootloader de arduino), para que solo se quede con tu código.

      Ve esta imagen, puedes encontrar el puerto de programación como ISP o FTDI:

      • Leonardo Says:

        Hola tejonbiker, gracias por tu pronta respuesta. Si, mi idea es programar con AVR Studio, con lo que me decís, yo podría quitarle el bootloader desde el AVR Studio borrando ¿que memoria? Una vez eso hecho, ¿yo tendría el micro como si lo hubiera adquirido en un tienda de electrónica y listo para ser programado? No comprendo la comparación sobre el multiwii y arduino que hace en el comentario.
        Mas allá de que no haga falta borrar el bootloader, el micro debe responder a mi programa en lenguaje C y debo tener acceso a todos los recursos del micro, no puedo permitir que un bootloader este dando vuelta consumiendo tiempos de clock. Debo desarrollar el controlador por lo cual es muy de bajo nivel mi programación.

        Gracias
        Saludos
        Leo

      • tejonbiker Says:

        Hola leo, los micro controladores tienen tres memorias, la ROM (o programa), RAM, donde se guardan las variable y los registros de control y la EEPROM, que es memoria persistente, el bootloader se guarda en la ROM, cuando se recibe un código para ser ejecutado en el Arduino este lo coloca por delante del bootloader, para que este siga existiendo.

        Cuando grabas un programa propio quitas la parte del bootloader, lo que significa que el método normal de programación no puede ser usado más (a menos que así tu lo programes en tu código).

  18. Abraham Says:

    Hola, saludos, soy estudiante del tec zapopan, y estudio para ingeniero industrial y en sistemas, y tengo un proyecto para construir un drone en autocad o solidworks desde ceros, no se si me podrian ayudar a consegir los planos, o donde puedoconseguirlos

  19. Jeyson Borrero Says:

    Buenos Dias, estoy realizando un dron y vamos en la parte del control, el objetivo para este semestre es lograr que el dron se eleve y mantenga cierta altura estable y descienda suavemente cuándo se le indique, me podrian ayudar con que sensores se necesitan para realizar esto? y como sería la idea del algoritmo? la idea es programar en pic. Gracias

    • tejonbiker Says:

      Hola, desafortunadamente no he podido encontrar un concentrado de como es la programación y algoritmos de un dron, en IEEExplore puedes encontrar varios artículos científicos, con muchos modelos matemáticos, muchos de los artículos solo llegan a simulación.

      En cuanto a la programación en un PIC no he escuchado que alguien lo haga (o al menos no público).

  20. maomar Says:

    como hago la programacion del dron, me gustaria crear y comprar piezas con alguna guia

    • tejonbiker Says:

      Hola, depende a que nivel quieras hacer la “programación”, si es a nivel de algoritmos de control, me temo que no he encontrado una fuente que concentre lo necesario, si te refieres a como “programar” el controlador con el código ya hecho (es decir grabar la tarjeta con el firmware correspondiente) eso dependerá de la tarjeta que escojas (Pixhawk, APM, CC3D, entre otras).

      ¿A que nivel te interesa programarlo?

      En Cuanto a guías de como construir, puede leer el articulo MagPi al que hago referencia, ahí viene una lista de materiales.

  21. maomar Says:

    Abra programas ya hechos de frames o chasis de drones ya creados en solidwork ??

  22. maomar Says:

    que empresa es la que te distribuye motores y piezas de el dron..

  23. pedro Says:

    Buenas, estoy realizando un proyecto en el tengo que elaborar programar un drone. Me estoy informando de muchas cosas para poder hacer un drone verdaderamente funcional. Mi correo es vidrone.ing@gmail.com si podríamos hablar sería de mucha ayuda. Gracias

  24. maomar Says:

    Sabras de alguna pagina donde yo pueda programar mi arduino para mi dron.

  25. Benjamin Solís O'Ryan Says:

    hola, me puedes asesorar dado que gracias a tus consejos, he juntado estos articulos para la construccion de un drone, me puedes decir si me falta algo mas o si estoy equivocado en algo:
    – F450 Quadcopter Frame x1
    – APM 2.6 Flight Control w/case x1
    – 6M GPS x1
    – 2212 920KV Brushelss Motor (2x CW, 2x CCW) x4
    – 30A SimonK ESC x4
    – 9443 Propeller CW/CCW x 2pairs (without the lock)
    – ESC Connect Board Set x1
    – 3.5mm gold bullet plug x 12 (12 pcs female)
    – Heat shink tube x2 (50cm yellow + 50cm black)
    – 3in1 Gadget Lipo Battery Monitor descubrimiento zumbador & la pérdida de señal de alarma para 2-6s
    – Turnigy nano-tecnología LiPo Batería Li-Polymer 3s 4000mah 25 Centavos
    – Radiolink AT10 2.4 g 10ch Transmisor C / r10d receptor & prm-01 Voltaje a40c
    la radio es mas de lo que necesita el drone pero pense en comprarme una buena para poder mejorar el drone en el futuro

    • tejonbiker Says:

      Puedes probar con esas configuraciones, cuando pidas las cosas trata de pedir hélices de 10 pulgadas, para experimentar cual de los dos diámetros se adaptan mejor a tus necesidades, no se te olvide balancear las hélices antes de usarlas.

  26. maomar Says:

    Los drones se profran programar con arduino uno ???

  27. Man Zamudio Says:

    hola, amigo mi nombre es armando Zamudio, quiero construir un drone desde 0 y me interesaría que me pudieras ayudar dándome información, de las tiendas donde puedo conseguir piezas.
    especialmente si las tiendas se encuentran en México DF o el estado de florida USA para mi seria mas fácil

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: