Tabla de contenido:

La guía que desearía tener sobre la construcción de un dron Arduino: 9 pasos
La guía que desearía tener sobre la construcción de un dron Arduino: 9 pasos

Video: La guía que desearía tener sobre la construcción de un dron Arduino: 9 pasos

Video: La guía que desearía tener sobre la construcción de un dron Arduino: 9 pasos
Video: Pr#006 Dron con Arduino - Parte 1 - El controlador de vuelo 2024, Noviembre
Anonim
La guía que desearía tener sobre la construcción de un dron Arduino
La guía que desearía tener sobre la construcción de un dron Arduino

Este documento es una especie de documentación de barra inclinada de "Cómo guiar" que pasa por el proceso que me llevó comprender los conceptos para lograr mi objetivo de construir un quadcopter simple que pudiera controlar desde mi teléfono móvil.

Para hacer este proyecto, quería tener una idea de lo que es realmente un dron, en mi caso un quadcopter, así que comencé a investigar un poco. Vi muchos videos de YouTube, leí un montón de artículos y páginas de Insructible y esto es lo que obtuve.

Básicamente, puedes dividir un dron en dos partes. Lo llamé "Físico" y "Controlador". El físico es esencialmente todo lo que tiene que ver con la mecánica que hace volar al dron. Estas son cosas como el motor, el marco, la batería, las hélices y cualquier otra cosa que físicamente le da al dron la capacidad de volar.

El controlador es esencialmente el controlador de vuelo. Lo que controla lo físico para que el dron pueda volar como una unidad completa sin caerse. Esencialmente, el microcontrolador, el software que contiene y los sensores que lo ayudan a triangular sus rodamientos. Entonces, para tener un dron, necesitaba un controlador y un montón de partes físicas para que el controlador "controlara".

Suministros

Presupuesto para proyecto: $ 250

Marco de tiempo: 2 semanas

Cosas para comprar:

  • Marco físico $ 20
  • Cuchillas $ 0 (viene con marco)
  • Paquete de batería $ 25
  • ESC (controladores de velocidad electrónicos) $ 0 (viene con motores)
  • Motores $ 70

Controlador de vuelo

  • Arduino nano $ 20
  • Cable USB Arduino $ 2
  • Módulo Bluetooth (HC-05) $ 8
  • LED de 3 mm y resistencias y cables de 330 ohmios $ 13
  • GY-87 (acelerómetro, giroscopio) $ 5
  • Tablero prototipo $ 10
  • Encabezados masculinos y femeninos $ 5

Otro

  • Kit de soldadura $ 10
  • Multímetro $ 20

Quería disfrutar de la construcción de este proyecto como ingeniero, así que compré algunas otras cosas que no tenía por qué.

Total: $ 208

Paso 1: Mi experiencia inicial

Después de comprar todos mis componentes, lo puse todo junto y luego traté de lanzar el dron, usando Multiwii (el software de acceso que usa mucha de la comunidad de drones de bricolaje), sin embargo, rápidamente me di cuenta de que no entendía completamente lo que estaba haciendo porque había muchos errores y no tenía idea de cómo solucionarlos.

Después de eso, decidí desarmar el dron y comprender cada componente pieza por pieza y reconstruirlo de una manera que entendiera completamente todo lo que estaba sucediendo.

En las siguientes secciones, pasaré por el proceso de armar el rompecabezas. Antes de eso, obtengamos una descripción general rápida.

Físico

Para el físico, deberíamos tener: el cuadro, las hélices, la batería y los escs. Estos serían bastante fáciles de reconstruir. Para comprender estas partes y cuáles debe obtener, puede visitar este enlace. Explica lo que necesita saber sobre la compra de cada una de las piezas que he enumerado. Mire también este video de Youtube. Te ayudará si te quedas atascado juntando las piezas.

Paso 2: consejos para reconstruir y depurar las partes físicas

Consejos para reconstruir y depurar las partes físicas
Consejos para reconstruir y depurar las partes físicas

Hélices y motores

  • Para verificar si sus hélices están en la orientación correcta (volteadas o no), cuando las haga girar en la dirección indicada por los motores (la mayoría de los motores tienen flechas que muestran cómo deben girar), debe sentir una brisa debajo de las hélices y no arriba..
  • Los tornillos de las hélices opuestas deben ser del mismo color.
  • El color de las hélices adyacentes debe ser el mismo.
  • También asegúrese de haber dispuesto los motores de manera que giren como en la imagen de arriba.
  • Si está tratando de cambiar la dirección de un motor, simplemente cambie los cables en los extremos opuestos. Esto invertirá la dirección del motor.

Batería y energía

  • Si por alguna razón las cosas están surgiendo y no puedes entender por qué, lo más probable es que hayas intercambiado lo positivo y lo negativo.
  • Si no está seguro de cuándo cargar las baterías, puede usar un voltímetro para verificar el voltaje. Si es más bajo de lo que dicen las especificaciones de la batería, entonces debe cargarse. Consulte este enlace sobre cómo cargar sus baterías.
  • La mayoría de las baterías LIPO no vienen con cargadores de batería. Los compras por separado.

Paso 3: el controlador Arduino

El controlador Arduino
El controlador Arduino

Esta es sin duda la parte más difícil de todo este proyecto. Es muy fácil hacer explotar componentes y la depuración puede ser extremadamente frustrante si no sabe lo que está haciendo. También en este proyecto controlé mi dron usando bluetooth y una aplicación que te mostraré cómo construir. Esto hizo que el proyecto fuera particularmente más difícil porque el 99% de los tutoriales usan controladores de radio (esto no es un hecho, jajaja), pero no te preocupes, he pasado por la frustración por ti.

Consejos antes de embarcarse en este viaje

  • Use una placa de pruebas antes de finalizar su dispositivo en una PCB. Esto le permite realizar cambios fácilmente.
  • Si ha probado un componente extensamente y no está funcionando, probablemente no esté funcionando.
  • ¡Mire los voltajes que puede manejar un dispositivo antes de enchufarlo!

    • Arduino puede manejar de 6 a 20 V, pero intente limitarlo a 12 V para que no lo explote. Puede leer más sobre sus especificaciones aquí.
    • El HC-05 puede manejar hasta 5 V, pero algunos pines funcionan a 3,3 V, así que ten cuidado con eso. Hablaremos de eso más tarde.
    • La IMU (GY-521, MPU-6050) también funciona a 5V.
  • Usaremos RemoteXY para crear nuestra aplicación. Si desea construirlo en un dispositivo iOS, debe usar un módulo bluetooth diferente (el HM-10). Puede obtener más información sobre esto en el sitio web de RemoteXY.

Ojalá hayas leído los consejos. Ahora probemos cada componente que formará parte del controlador por separado.

Paso 4: el MPU-6050

El MPU-6050
El MPU-6050

Este dispositivo tiene un giroscopio y un acelerómetro, por lo que esencialmente le dice la aceleración en una dirección (X, Y, Z) y la aceleración angular a lo largo de esas direcciones.

Para probar esto, podemos usar el tutorial sobre esto, podemos usar este tutorial en el sitio web de Arduino. Si funciona, debería obtener un flujo de valores de acelerómetro y giroscopio que cambian a medida que inclina, gira y acelera la configuración. Además, intente modificar y manipular el código para que sepa lo que está sucediendo.

Paso 5: el módulo Bluetooth HC-05

El módulo Bluetooth HC-05
El módulo Bluetooth HC-05
El módulo Bluetooth HC-05
El módulo Bluetooth HC-05
El módulo Bluetooth HC-05
El módulo Bluetooth HC-05

No tiene que hacer esta parte, pero es importante poder ir al modo AT (modo de configuración) ya que probablemente tendrá que cambiar una de las configuraciones del módulo. Esta fue una de las partes más frustrantes de este proyecto. Investigué mucho para averiguar cómo poner mi módulo en modo AT, porque mi dispositivo no respondía a mis comandos. Me tomó 2 días concluir que mi módulo estaba roto. Pedí otro y funcionó. Consulte este tutorial sobre cómo ingresar al modo AT.

El HC-05 viene en diferentes tipos, hay algunos con botones y otros sin ellos y todo tipo de variables de diseño. Sin embargo, una constante es que todos tienen un "Pin 34". Mira este tutorial.

Cosas que debes saber

  • Para entrar en modo AT, simplemente mantenga 5V en el pin 34 del módulo bluetooth antes de conectarlo a la alimentación.
  • Conecte un divisor de potencial al pin RX del módulo, ya que funciona con 3.3V. Aún puede usarlo a 5 V, pero podría freír ese pin si algo sale mal.
  • Si usa el Pin 34 (en lugar del botón o de alguna otra forma que haya encontrado en línea), el módulo establecerá la velocidad en baudios del bluetooth en 38400. Es por eso que en el enlace del tutorial anterior hay una línea en el código que dice:

BTSerial.begin (38400); // HC-05 velocidad predeterminada en el comando AT más

Si el módulo aún no responde con "OK", intente cambiar los pines tx y rx. Debería ser:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Si eso aún no funciona, elija cambiar los pines en el código a otros pines de Arduino. Prueba, si no funciona, cambia los pines tx y rx, luego prueba de nuevo

SoftwareSerial BTSerial (10, 11); // RX | TX

Cambie la línea de arriba. Puede probar RX = 2, TX = 3 o cualquier otra combinación válida. Puede ver los números de pin de Arduino en la imagen de arriba.

Paso 6: Conexión de las piezas

Conexión de las piezas
Conexión de las piezas

Ahora que estamos seguros de que todo funciona, es hora de empezar a armarlos. Puede conectar las piezas como se muestra en el circuito. Lo conseguí de Electronoobs. Realmente me ayudó con este proyecto. Mira su versión del proyecto aquí. Si estás siguiendo este tutorial, no tienes que preocuparte por las conexiones del receptor: input_Yaw, input_Pitch, etc. Todo eso se manejará con bluetooth. Además, conecta el bluetooth como lo hicimos en el apartado anterior. Mis pines tx y rx me estaban dando algunos problemas, así que usé los de Arduino:

RX como 2 y TX como 3, en lugar de los pines normales. A continuación, escribiremos una aplicación sencilla que continuaremos mejorando hasta que tengamos el producto final.

Paso 7: la belleza de RemoteXY

La belleza de RemoteXY
La belleza de RemoteXY

Durante mucho tiempo estuve pensando en una manera fácil de crear una aplicación remota utilizable que me permitiera controlar el dron. La mayoría de la gente usa MIT App Inventor, pero la interfaz de usuario no es tan bonita como me gustaría y tampoco soy un fanático de la programación pictórica. Podría haberlo diseñado usando Android Studio, pero eso sería demasiado trabajo. Me emocioné mucho cuando encontré un tutorial usando RemoteXY. Aquí está el enlace al sitio web. Es extremadamente fácil de usar y la documentación es muy buena. Crearemos una interfaz de usuario simple para nuestro dron. Puedes personalizar el tuyo a tu gusto. Solo asegúrate de saber lo que estás haciendo. Siga las instrucciones aquí.

Una vez que haya hecho eso, editaremos el código para que podamos cambiar el acelerador de nuestro helicóptero. Agregue las líneas que tienen / **** Cosas que debe hacer y por qué *** / a su código.

Si no se está compilando, asegúrese de haber descargado la biblioteca. También abre un boceto de ejemplo y compara lo que tiene y el tuyo no.

////////////////////////////////////////////////// Incluye RemoteXY Biblioteca // /////////////////////////////////////////////

// RemoteXY selecciona el modo de conexión e incluye la biblioteca

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#incluir #incluir #incluir

// Configuración de la conexión RemoteXY

#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600

// Hélices

Servo L_F_prop; Servo L_B_prop; Servo R_F_prop; Servo R_B_prop;

// RemoteXY configurar

#pragma pack (push, 1) uint8_t RemoteXY_CONF = {255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0}; // esta estructura define todas las variables de su estructura de interfaz de control {

// variable de entrada

int8_t Joystick_x; // -100..100 posición del joystick de coordenadas x int8_t Joystick_y; // -100..100 posición de la palanca de mando de la coordenada y int8_t ThrottleSlider; // 0..100 posición del control deslizante

// otra variable

uint8_t connect_flag; // = 1 si el cable está conectado, si no = 0

} RemoteXY;

# paquete de pragma (pop)

/////////////////////////////////////////////

// FIN RemoteXY include // ///////////////////////////////////////////// /

/ ********** Agregue esta línea para mantener el valor del acelerador ************** /

int input_THROTTLE;

configuración vacía () {

RemoteXY_Init ();

/ ********** Conecte los motores a los pines Cambie los valores para que se ajusten a los suyos ************** /

L_F_prop.attach (4); // motor delantero izquierdo

L_B_prop.attach (5); // motor trasero izquierdo R_F_prop.attach (7); // motor delantero derecho R_B_prop.attach (6); // motor trasero derecho

/ ************* Evitar que esc ingrese al modo de programación ******************** /

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); retraso (1000);

}

bucle vacío () {

RemoteXY_Handler ();

/ ****** Asigna el valor de aceleración que obtienes de la aplicación a 1000 y 2000, que son los valores en los que operan la mayoría de los ESC. ********* /

input_THROTTLE = map (RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds (input_THROTTLE);

L_B_prop.writeMicroseconds (input_THROTTLE); R_F_prop.writeMicroseconds (input_THROTTLE); R_B_prop.writeMicroseconds (input_THROTTLE); }

Paso 8: prueba

Si ha hecho todo bien, debería poder probar su helicóptero deslizando el acelerador hacia arriba y hacia abajo. Asegúrate de hacer esto afuera. Tampoco deje las hélices encendidas porque eso hará que el helicóptero salte. Todavía no hemos escrito el código para equilibrarlo, por lo que sería una MALA IDEA PROBAR ESTO CON LAS HÉLICES ENCENDIDAS. Solo hice esto porque lmao.

La demostración es solo para mostrar que deberíamos poder controlar el acelerador desde la aplicación. Notará que los motores tartamudean. Esto se debe a que los ESC no se han calibrado. Para hacer esto, eche un vistazo a las instrucciones en esta página de Github. Lea las instrucciones, abra el archivo ESC-Calibration.ino y siga esas instrucciones. Si desea comprender lo que está sucediendo, consulte este tutorial de Electronoobs.

Mientras ejecuta el programa, asegúrese de atar el dron con cuerdas, ya que irá a toda velocidad. También asegúrese de que las hélices no estén encendidas. Solo dejé el mío puesto porque estoy medio loco. ¡¡¡NO DEJE SUS HÉLICES ENCENDIDAS !!! Esta demostración se muestra en el segundo video.

Paso 9: estoy trabajando en el código. Terminará el Instructable en unos pocos días

Solo quería agregar que si estás usando este tutorial y me estás esperando, todavía estoy trabajando en ello. Es solo que han surgido otras cosas en mi vida en las que también estoy trabajando, pero no te preocupes, lo publicaré pronto. Digamos que lo más tarde para el 10 de agosto de 2019.

Actualización del 10 de agosto: No quería dejarte colgado. Lamentablemente, no he tenido tiempo de trabajar en el proyecto la semana pasada. He estado muy ocupado con otras cosas. No quiero engañarte. Con suerte completaré el instructable en un futuro próximo. Si tiene alguna pregunta o necesita ayuda, puede agregar un comentario a continuación y me comunicaré con usted.

Recomendado: