This is an old revision of the document!


ESP32 Drone with web-based remote

Introduction

The goal of this project is to have a stable, flying drone controlled via any web browser interface in the same local network as the drone. I started this project last summer as a learning exercise but it proved more difficult than anticipated and I couldn't manage to finish the drone up until now. The project is mostly DIY as the batteries, the body and the software being designed by me.

Descriere generală

The drone's flight controller functions are executed by a ESP32 C6 super-mini paired with an MPU6050 Inertial Measuring Unit, which provides the raw data necessary for stabilization. To determine the drone’s precise orientation, a complementary filter is used and it blends high-frequency gyroscope data with stable accelerometer readings to achieve a balance between short-term accuracy and long-term stability. This orientation data feeds into a continuous control loop where a Proportional-Integral-Derivative (PID) controller calculates the required throttle adjustments based on the error between the desired and actual state, with these commands then being transmitted to the motors as Pulse Width Modulation (PWM) signals. Instead of a traditional radio transmitter, the drone is managed via a dedicated web interface stored in the microcontroller's flash memory and accessed through a local area network, providing a streamlined, browser-based control platform for the operator. The physical frame is made of 4 3d printed arms attached to a 3mm polycarbonate sheet.

Hardware Design

Component Quantity
ESP32-C6-Super-Mini 1
MPU6050 (IMU) 1
A2208 1400KV 14T BLDC Motor 4
30A ESC 4
Mateksys Mini Power Hub 1
3S 12.6V 20A Li-ion BMS 1
Samsung 35E 18650 3500mAh 8A 12

ESP32-c6-super-mini: This is the microcontroller and it will receive the input from the remote interface and use it for the calculations that will result in the output needed by the motors. Almost all the pins on the microcontroller can do the same things (PWM, SPI), so I chose them in the most convenient way possible for the circuit layout on the breadboard. I chose pins 4, 5, 6, 7 for SPI, leaving them to be defined in the software as SCLK, MOSI, MISO, and CS. The pins chosen for the motors must be capable of PWM, and since all pins on the microcontroller are capable of producing a PWM signal, I chose pins 20, 19, 18, 15 for the 4 motors.

MPU6500: This is the most important component of the drone, as it provides the information regarding the attitude of the UAV. This IMU is compatible with both I2C and SPI, but I chose SPI due to its higher speed. For SPI, the following pins are used: SCLK, SDI, SDO, NCS.

Power Distribution Board: This module is connected to the drone's battery and distributes power to the ESCs and the microcontroller. I connected the 5V terminals to the power pins of the ESP and the motor power terminals to the ESCs.

ESC: They are used to keep a constant motor speed by taking power from the PDB and providing it to the motors and the power is proportional to the input received from the microcontroller. I connected their signal to the PWM pins of the microcontroller, and they are powered by the power distribution board.

BMS: The battery management system is needed to have a safe battery pack so they charge uniformly and don't overdeplete.

Circuit Diagram

Software Design

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/jan.vaduva/sconstantin2203.1779118095.txt.gz · Last modified: 2026/05/18 18:28 by sconstantin2203
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0