Tabla de contenido:

Unidad de control ArDrone 2.0 Quadcopter en el módulo MPU6050 y ESP8266: 7 pasos
Unidad de control ArDrone 2.0 Quadcopter en el módulo MPU6050 y ESP8266: 7 pasos

Video: Unidad de control ArDrone 2.0 Quadcopter en el módulo MPU6050 y ESP8266: 7 pasos

Video: Unidad de control ArDrone 2.0 Quadcopter en el módulo MPU6050 y ESP8266: 7 pasos
Video: Sensor MPU6050 con Arduino y Labview 2024, Noviembre
Anonim
Image
Image
Conexión del ESP8266 al punto de acceso Ar Drone 2.0
Conexión del ESP8266 al punto de acceso Ar Drone 2.0

El tamaño, el precio y la disponibilidad de Wi-Fi le permiten hacer una unidad de control económica para el quadrocopter ArDrone 2.0 en el módulo ESP8266 (precios en AliExpress, Gearbest). Para el control, usaremos el Módulo Gy-521 en el chip MPU6050 (giroscopio, acelerómetro).

El Parrot AR. Drone es un quadrocopter controlado por radio, es decir, un helicóptero con cuatro rotores principales colocados en haces diagonales remotos. El AR. Drone en sí se ejecuta en el sistema operativo Linux, y casi cualquier teléfono inteligente o tableta con pantalla táctil Android o iOS puede actuar como control remoto para el quadcopter. La distancia de control estable sobre Wi-Fi es de 25 a 100 metros y depende de la habitación y las condiciones climáticas, si los vuelos se realizan en la calle.

Paso 1: Conexión del ESP8266 al punto de acceso Ar Drone 2.0

Cuando está habilitado, AR. Drone crea un punto de acceso SSIS "ardrone_XX_XX". Conectando sin contraseña.

Intentemos conectarnos al punto de acceso Ar. Dron usando comandos AT. Conecte la tarjeta ESP8266 al puerto com de la computadora a través de la fuente de alimentación del adaptador USB UART 3.3 V.

Abra el IDE de Arduino, el monitor del puerto serie y envíe comandos AT a la placa ESP (el quadcopter debe estar habilitado)

Paso 2: Comunicación con AR. Drone se realiza mediante comandos AT

Los comandos se envían a AR. Drone como paquetes UDP o TCP;

Un solo paquete UDP debe contener al menos un comando completo o más; Si el paquete contiene más de un comando, el carácter 0x0A se usa para separar los comandos.

Las cadenas se codifican como caracteres ASCII de 8 bits;

La longitud máxima del comando es 1024 caracteres;

Hay un retraso de 30 MS entre comandos.

El comando consta de

AT * [nombre del comando] = [número de secuencia del comando como una cadena] [, argumento 1, argumento 2…]

Lista de los principales comandos AT para controlar AR. Zumbido:

AT * REF: se utiliza para despegue, aterrizaje, reinicio y parada de emergencia;

AT * PCMD: este comando se usa para controlar AR. Movimiento de drones;

AT * FTRIM - en el plano horizontal;

AT * CONFIG-configurando AR. Parámetros de drones;

AT * LED establece animaciones LED en AR. Zumbido;

AT * Animación de vuelo de instalación de ANIM en AR. Zumbido.

AT * COMWDG-comando de reinicio del perro guardián-lo enviamos constantemente al quadcopter.

Los siguientes puertos se utilizan para la comunicación:

Puerto 5556-UDP-enviando comandos a AR. Zumbido;

Puerto 5554-UDP-recibiendo paquetes de datos de AR. Zumbido;

Puerto 5555: paquetes de video de flujo de respuesta desde AR. Zumbido;

Paquetes del puerto 5559-TCP para datos críticos que no se pueden perder, generalmente para configuración.

¡El cliente se desconecta del puerto UDP después de un retraso de 2 segundos después de enviar el último comando! - por lo tanto, debe enviar comandos constantemente, si es necesario-AT * COMWDG.

Considere obtener datos de navegación de ARDrone (puerto 5554-UDP). El paquete de datos de navegación en modo de demostración tiene una longitud de 500 bytes. Si algo sale mal, el dron puede enviar un paquete de 32 y 24 bytes. Si el paquete tiene 24 bytes de longitud, esto significa que el puerto 5554 está en modo BOOTSTRAP y debe volver a conectarse al puerto para cambiarlo al modo Demo. ARDrone puede transmitir datos de navegación al cliente de dos formas:

abreviado (o demo), 500 bytes de tamaño. completo.

Para obtener datos de demostración, primero envíe cuatro bytes 0x01, 0x00, 0x00, 0x00 al puerto 5554 y luego envíe un comando al puerto 5556

AT * CONFIG = "+ (seq ++) +", / "general: navdata_demo \", / "TRUE \" donde seq es el número secuencial del comando.

Estructura del paquete de datos de navegación. Hay 4 valores con nombre al principio del paquete:

Encabezado de paquete de 32 bits: indicadores de estado del helicóptero de 32 bits;

el número de secuencia del último comando enviado al helicóptero por el cliente 32 bits;

bandera de visión 32 bits. A continuación, la opción de navdata Encabezado: 20-23.

La opción navdata tiene los siguientes campos:

BATERÍA = 24; carga de la batería como porcentaje;

PASO = 28; ángulo de inclinación a lo largo del eje longitudinal;

ROLLO = 32; ángulo de inclinación con respecto al eje transversal;

YAW = 36; ángulo de rotación con respecto al eje vertical;

ALTITUD = 40; altura;

VX = 44; velocidad del eje x;

VY = 48; velocidad del eje y;

VZ = 52; velocidad en el eje z.

Paso 3: Conexión de la pantalla Nokia 5110 a la placa ESP8266

Conexión de la pantalla Nokia 5110 a la placa ESP8266
Conexión de la pantalla Nokia 5110 a la placa ESP8266

Conecte la pantalla del Nokia 5110 al módulo ESP8266 y envíe algunos datos de navegación a él y al monitor del puerto serie

Paso 4: Obtener datos de navegación y mostrarlos en la pantalla del Nokia5110

Obtener datos de navegación y mostrarlos en la pantalla del Nokia5110
Obtener datos de navegación y mostrarlos en la pantalla del Nokia5110

Descargue (sketch ardrone_esp8266_01. Ino) y observe la salida de los datos de navegación al puerto serie y la pantalla de visualización.

Paso 5: Envío de comandos de despegue y aterrizaje

Ahora agregaremos a nuestro proyecto el despegue y aterrizaje del quadcopter con comandos del control remoto. Para despegar, debes enviar un comando.

AT * REF = [Número de secuencia], 290718208

Para aterrizar

AT * REF = [Número de secuencia], 290717696

Antes del despegue, debe enviar un comando para la calibración horizontal, de lo contrario el Ar Drone no podrá estabilizarse durante el vuelo.

AT * F TRIM = [Número de secuencia]

Cargue el boceto ardrone_esp8266_02.ino () a la placa ESP8266, encienda el quadcopter Ar Drone 2.0 y verifique el funcionamiento del botón. Cuando haga clic en despegue, la próxima vez que haga clic en aterrizar, etc.

Paso 6: Conexión del MPU6050 para controlar el Ardrone 2.0

Conexión de MPU6050 para controlar el Ardrone 2.0
Conexión de MPU6050 para controlar el Ardrone 2.0
Conexión de MPU6050 para controlar el Ardrone 2.0
Conexión de MPU6050 para controlar el Ardrone 2.0

Los sensores para determinar la posición en el espacio se utilizan para controlar cuadricópteros. El chip MPU6050 contiene un acelerómetro y un giroscopio a bordo, así como un sensor de temperatura. el MPU6050 es el elemento principal del módulo Gy-531 (Fig. 15.44). Además de este chip, la placa del módulo contiene el enlace MPU6050 necesario, incluidas las resistencias pull-up de la interfaz I2C, así como un estabilizador de voltaje de 3.3 voltios con una pequeña caída de voltaje (cuando se alimenta a 3.3 voltios, la salida del estabilizador será exactamente de 3 voltios) con condensadores de filtro.

Conexión al microcontrolador mediante el protocolo I2C.

Paso 7: control del cuadricóptero con MPU6050

Controlar el cuadricóptero con MPU6050
Controlar el cuadricóptero con MPU6050

El uso del acelerómetro y el giroscopio le permite determinar la desviación en los ejes xey, y la desviación "se convierte" en comandos para mover el cuadricóptero a lo largo de los ejes correspondientes. Traducción de las lecturas recibidas del sensor al ángulo de deflexión.

el comando para enviar al Ar Drone para el control de vuelo

AT * REF = [Número de secuencia], [Campo de bits de bandera], [Roll], [Pitch], [Gaz], [Yaw]

Los valores de Roll y Pitch en el rango de -1 a 1 se toman de la tabla const int float , el índice corresponde al ángulo de desviación calculado a partir de los datos del sensor mu6050.

Cargue el boceto ardrone_esp8266_03.ino en la placa ESP8266, encienda el quadrocopter ar Drone 2.0 y verifique el funcionamiento del control remoto.

Recomendado: