Dron con piloto automático

Un dron con piloto automático Arduino Uno con múltiples sensores y una cámara inalámbrica controlada por dos microcontroladores.

Componentes y suministros

Módulo Bluetooth de baja energía (BLE) (genérico)
× 1
Ph a000066 iso (1) ztbmubhmho
Arduino UNO
× 1
controlador de vuelo (CC3D)
× 1
20120702130508859
Sensor de temperatura y humedad DHT11 (4 pines)
× 1
Marcos de drones, ESC, batería de 11,1 V, motor de CC sin escobillas
× 1

Aplicaciones y servicios en línea

Drone inventor de la aplicación MIT
El uso del sitio web anterior le permitirá crear su propia aplicación de Android a la que puede acceder de forma gratuita.
idea web
IDE de Arduino

Acerca de este proyecto

Normalmente vemos drones controlados mediante un mando a distancia RF, o para un piloto automático mediante un módulo GPS para controlarlo automáticamente dándole la dirección correcta. Pero en mi proyecto abordé las cosas de otra manera utilizando un Arduino Uno.

El objetivo principal de este proyecto es recopilar datos e información de video 2D de un área conocida en particular. Para obtener la información, necesitamos asignar los valores de largo y ancho que el dron puede viajar usando la programación de Arduino.

Como sugiere el nombre, el piloto automático significa que el dron será administrado por sí mismo, mientras que el control de la acción del dron estará a cargo de un controlador de vuelo con sensores incorporados para equilibrar el dron. Un Arduino Uno es el cerebro del sistema, dando la señal correcta al controlador de vuelo. Para mantener la estabilidad y el funcionamiento sostenido, utilicé un microcontrolador OpenPilot CC3D (o cualquier controlador de vuelo), junto con una cámara para capturar datos en vivo con sensores de monitoreo del clima. Finalmente, el sistema incluye un módulo Bluetooth para apagar/apagar el dron y ver datos en vivo usando un dispositivo móvil Android.

ARDUINO UNO

Como sabemos, el Arduino Uno es un controlador Atmega Micro. aquí generé señales PWM para controlar el dron.

Controlador de vuelo CC3D:

Como vimos en la figura anterior, el controlador de vuelo tiene incorporado un giroscopio y un controlador de aceleración y funciones de autonivelación.

Pero esta empresa de microcontroladores proporciona su propio software para programarlo y es fácil de usar.

estos microcontroladores necesitan una señal PWM de entrada para controlar motores BLDC individuales. estas señales serán generadas por arduino uno.

TIPOS DE DISEÑOS DE DRONES

como ves arriba, hay dos tipos de diseños de drones disponibles para drones de formato cuádruple, dependiendo de la dirección en la que coloques el controlador de vuelo, puedes elegir el formato cuádruple

la indicación de dirección se imprimirá de acuerdo a los controladores de vuelo elegidos, dependiendo del formato elegido, la dirección de la hélice también es la más importante, CW (sentido horario) y CCW (sentido antihorario).

CONEXIÓN ESC

AGUJAS DEL RELOJ

En el sentido de las agujas del reloj, necesitamos conectar los cables como se muestra arriba

En Contra del sentido del reloj

Para el sentido contrario a las agujas del reloj necesitamos intercambiar dos cables para que la fase de un voltaje se aplique al motor para que cambie la dirección del motor

CONEXIÓN MOTOR-ESC-CONTROLADOR DE VUELO

CONEXIÓN MANDO ESC

ESC también tiene 3 hilos con 2 cables de alimentación,

estos 3 cables tienen el pin VCC, TIERRA y SEÑAL DE ENTRADA que toma datos del CONTROLADOR DE VUELO para hacer girar los motores BLDC.

los otros 2 cables son cables de alimentación diseñados para una corriente más alta, así que use cables más gruesos, y estos cables son comunes con la batería.

ESQUEMA ELÉCTRICO FINAL CON ARDUINO UNO

aquí utilicé un protocolo UART pero ningún dato se convierte de paralelo a serie. Las señales PWM directas se aplican desde arduino a CC3d para retrasar.

APLICACIÓN MOVIL

El complemento anterior muestra la aplicación de Android que se crea utilizando un sitio web de código abierto que se menciona a continuación. usando esta aplicación podemos encender y apagar el dron. y tener otra característica que nos permita obtener los datos del sensor en la ventana serie, es decir, un teléfono móvil.

botones

inicio: este botón inicia el microcontrolador (controlador de vuelo CC3D)

mov: esto hace que el dron vuele y haga su operación la cual esta programada dentro del arduino Uno

detener: este es un botón de parada de emergencia para apagar el dron (debido al piloto automático del dron, no hay control remoto presente, por lo que se proporciona un botón adicional)

sensor de arranque: cuando se presiona, muestra los datos del sensor en una pantalla blanca que se muestra a continuación

podemos ver en esta figura que los valores de temperatura y humedad se mostrarán cuando se presione el botón del sensor de inicio.

codificado

Interfaz de sensor DHT11arduino
usando este programa podemos mostrar la humedad y la temperatura en un monitor serial
#include<Servo.h>
#include <dht.h>
dht DHT;
#define DHT11_PIN 10
String voice;
void setup() 
{
Serial.begin(9600); 
}
void loop() 
{
int chk =DHT.read11(DHT11_PIN);
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity =");
Serial.println(DHT.humidity);
delay(1000);
}
interfaz de módulo bluetooth arduino
este programa mostrará una operación simple de encender y apagar los leds usando Arduino Uno y Bluetooth
/* simple program to control a LED on pin 13 of arduino using a bluetooth module
*/
char data = 0;            //Variable for storing received data
void setup()
{
    Serial.begin(9600);   //Sets the baud for serial data transmission                               
    pinMode(13, OUTPUT);  //Sets digital pin 13 as output pin
}
void loop()
{
   if(Serial.available() > 0)      // Send data only when you receive data:
   {
      data = Serial.read();        //Read the incoming data & store into data
      Serial.print(data);          //Print Value inside data in Serial monitor
      Serial.print("\n");        
      if(data == '1')           
         digitalWrite(13, HIGH);   //If value is 1 then LED turns ON
      else if(data == '0')         
         digitalWrite(13, LOW);    //If value is 0 then LED turns OFF
   }
}
Enlace del código principal
El código completo contiene información completa (enlace actualizado el 21-07-2022)

diagramas

interfaz de módulo bluetooth
aquí usamos un módulo Bluetooth (HC-05) para comunicación bidireccional, para encender el dron y recibir datos del sensor.
Se utilizan dos resistencias como divisor de voltaje para reducir los 5 voltios a 3,3 voltios para que Bluetooth pueda recibir datos del Arduino Uno.
El circuito es tan simple y pequeño que solo hay que hacer unas pocas conexiones.
Pines de Arduino Pines de Bluetooth
RX (pin 0) ———-> TX
TX (pin 1) ———-> RX
5V ———->VCC
Tierra ———-> Tierra
Sin título ffh3jam7nl
interfaz de sensor
El DHT11 mide la humedad relativa. La humedad relativa es la cantidad de vapor de agua en el aire en relación con el punto de saturación del vapor de agua en el aire. En el punto de saturación, el vapor de agua comienza a condensarse y acumularse en las superficies formando rocío. El DHT11 utiliza un solo cable de señal para transmitir datos al diagrama de interfaz Arduino que se muestra en la fig. Usando la biblioteca DHTLib. Tiene todas las funciones necesarias para obtener lecturas de humedad y temperatura del sensor que se muestra a continuación.
Hum vlbbmksfzb
Interfaz Arduino Uno con controlador de vuelo
El controlador de vuelo (Cc3d) proporcionará 5 pines de control de entrada que dan las 4 acciones de movimiento al dron: aceleración, balanceo, guiñada y cabeceo. Estos pines necesitan una señal PWM para funcionar, por lo que generaremos la señal PWM usando Arduino Uno. Al planificar correctamente y dibujar un punto en particular, podemos programar el Arduino llamando a la función con retraso.
Imagen 20180625 215150 0ev4qn0cao
aplicación Android
Una aplicación para controlar el dron a través de Bluetooth (actualizado el 21-07-2022)
piloto automático__gnwMW7qtrc.apk

Fuente Arduino.cc