This is an old revision of the document!


Drona cu sistem de echilibrare automat

Introducere

Proiectul Drone Stabilizer reprezintă construcția unei drone (quadcopter), bazată pe motoare cu perii (brushed), capabilă să își mențină echilibrul în aer în mod autonom. Nucleul proiectului este implementarea unui algoritm de control de tip PID (Proportional-Integral-Derivative) care procesează datele de la un senzor inerțial pentru a ajusta viteza motoarelor în timp real.

Ideea a pornit de la provocarea de a stabiliza un sistem instabil într-un mediu tridimensional. Spre deosebire de dronele comerciale, acest proiect pune accent pe implementarea software a controlului de zbor și pe integrarea modulelor de comunicație wireless pentru control de la distanță, folosind o arhitectură simplă dar eficientă.

Functionalități principale:

* stabilizarea automată pe axele Pitch, Roll și Yaw folosind giroscopul și accelerometrul * recepția comenzilor de zbor (throttle, direcție) prin protocol wireless de 2.4GHz * controlul turației celor 4 motoare prin semnale PWM transmise către punțile H * monitorizarea orientării dronei în timp real * gestionarea energiei pentru a asigura stabilitatea electronicii în timpul căderilor de tensiune ale motoarelor

Laboratoare folosite: Intreruperi (Lab 2), Timere/PWM (Lab 3), SPI (Lab 5 - NRF24), I2C (Lab 6 - MPU).

Descriere generală

Sistemul este construit în jurul plăcii de dezvoltare AtMega 328P, care acționează ca unitate centrală de procesare (Flight Controller). Aceasta citește constant datele de la modulul GY-521 (MPU6050) prin interfața I2C pentru a determina înclinația exactă a dronei.

Pentru propulsie, sistemul utilizează 4 motoare tip 820 brushed, controlate în perechi de către două module DRV8833 (Punte H dublă). Microcontrollerul generează semnale PWM pentru a varia puterea motoarelor, permițând astfel corecțiile de poziție necesare stabilizării. Comunicația cu telecomanda este realizată prin modulele NRF24L01, asigurând o latență minimă în transmiterea comenzilor. Telecomanda este reprezentata de placa Arduino Nano V3, care este conectat la laptop si primeste comenziile din laptop prin protocolul UART, care de asemenea este conectata la un modul NRF24L01.

Logica de funcționare:

* Initialization State: Sistemul calibrează giroscopul (drona trebuie să stea pe o suprafață plană).

* Disarmed State: Motoarele sunt oprite. Se verifică conexiunea cu transreceptorul NRF24L01.

* Flight/Stabilization Mode: Algoritmul PID calculează eroarea dintre unghiul dorit (setpoint) și unghiul actual. Corecția rezultată este adunată/scăzută din valoarea de bază a throttle-ului pentru fiecare motor în parte.

* Signal Loss Protection: În cazul pierderii semnalului wireless, se incearca aducerea dronei in punctul din care a plecat, unde motoarele se opresc automat pentru siguranță (un fel de bonus, e nevoie si de un modul gps pentru acest lucru).

Schema bloc NanoDrone Stabilizer

Hardware Design

Sistemul este alimentat de o baterie LiPo de 500mAh (95C), capabilă să furnizeze curentul ridicat necesar motoarelor. Un modul ridicător de tensiune (step-up) asigură o alimentare constantă de 5V pentru Arduino și senzori.

Lista de piese

Componenta Descriere Protocol / Pinout
Arduino Nano v3 (ATmega328P) Microcontroller principal (Flight Controller) -
Modul GY-521 (MPU6050) Giroscop și accelerometru pe 3 axe I2C: SDA, SCL
2x Driver DRV8833 Punte H dublă pentru controlul celor 4 motoare PWM (4 pini de control)
4x Motoare 820 Brushed Motoare de propulsie de mare viteză Conectate la DRV8833
Modul NRF24L01 Transreceptor wireless 2.4GHz SPI: SCK, MISO, MOSI, CE, CSN
Modul Ridicător Tensiune 5V Stabilizare alimentare pentru partea logică USB Output / Vin
Baterie LiPo 500mAh 95C Sursă principală de energie Conector PH2.0
Breadboard 400 puncte Suport pentru prototipare rapidă -
Fire Dupont Conexiuni între module -

Schema bloc

Schema electrica a dronei

Detalii

Deoarece motoarele brushed pot genera zgomot electric semnificativ, alimentarea este separată prin modulul step-up 5V, care protejează Arduino Nano de fluctuațiile de tensiune (voltage sags) ce apar atunci când motoarele sunt la turație maximă.

Modulele DRV8833 sunt folosite în mod PWM pentru a controla viteza motoarelor. Deși sunt punți H (capabile de inversare), în acest proiect sunt configurate pentru rotație într-un singur sens, optimizând eficiența pentru zbor.

Software Design

Mediu de dezvoltare: PlatformIO / Arduino IDE.

Librării și surse 3rd-party planificate:

* RF24 - pentru gestionarea comunicației cu modulul NRF24L01 * Wire - pentru comunicația I2C cu senzorul MPU6050 * PID_v2 (sau implementare custom) - pentru calculul buclelor de stabilizare * MPU6050_light - pentru filtrarea datelor brute din accelerometru și giroscop

Algoritmi și structuri planificate:

* Filtru Complementar: Combină datele de la giroscop (precis pe termen scurt) cu cele de la accelerometru (precis pe termen lung) pentru a obține unghiul real de înclinație. * Bucle PID: Trei instanțe separate de PID (pentru Roll, Pitch și Yaw). * Mixer de Motoare: Algoritm care combină output-ul de Throttle (comanda utilizatorului) cu corecțiile PID pentru a seta valorile finale PWM pe fiecare motor.

Functii principale planificate:

* readIMU() - citește și filtrează datele de orientare * computePID() - calculează corecția pentru fiecare axă * updateMotors() - scrie valorile PWM către driverele DRV8833 * receiveData() - verifică dacă au sosit pachete noi de la telecomandă * failsafeCheck() - oprește motoarele dacă nu există semnal radio

Rezultate Obţinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

Resurse Hardware

Resurse Software

pm/prj2026/atoader/stefan.oprea1711.1778342517.txt.gz · Last modified: 2026/05/09 19:01 by stefan.oprea1711
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