Dronă controlată cu manușă

Autor: Ciobanu George-Leonard

Grupa: 334CD

Introducere

Proiectul constă în realizarea unui sistem de control pentru o dronă, bazat pe o mănușă inteligentă, care permite pilotarea prin gesturi ale mâinii. Scopul acestui proiect este de a înlocui metodele tradiționale de control ale dronelor (cum ar fi telecomenzile sau aplicațiile mobile) cu o interfață naturală și intuitivă, oferind o experiență unică de interacțiune om-mașină. Utilitatea practică a proiectului se regăsește atât în posibilitatea utilizării efective a mănușii ca interfață de control pentru o dronă funcțională.

Descriere generală

Mănușa de control va fi echipată cu un giroscop și un senzor de îndoire pentru a detecta mișcările mâinii utilizatorului. Semnalele provenite de la acești senzori vor fi recepționate de un microcontroller, care va interpreta orientarea și gradul de îndoire al degetului. Aceste informații vor fi transmise wireless către un al doilea microcontroller aflat pe dronă. Acesta va comunica cu motoarele pentru a controla mișcarea și viteza dronei: în funcție de orientarea mâinii, drona se va înclina, iar în funcție de cât de mult este îndoit degetul, aceasta va accelera sau decelera. Controlul este astfel realizat în timp real, fără fir, prin gesturi intuitive.

Hardware Design

george.ciobanu2204_schema_kicad.jpg

Aici puneţi tot ce ţine de hardware design:

Lista Piese (Bill Of Materials)

Am incercat de asemenea sa folosesc un ESP8266 pentru receiver, dar dupa testari am observat ca nu poate folosi functiile de PWM si WiFi in acelasi timp.

  • ESP32 - Sender: Folosit pentru a citi informatiile primite de la giroscop MPU6050. Preia datele de la giroscop folosind I2C, si le trimite mai departe catre ESP8266 folosind Wi-Fi. Acesta isi ia alimentarea prin portul Micro-USB, de la o baterie externa. Se folosesc pinii D21 (SDA) si D22 (SCL) pentru comunicarea prin I2C.
  • ESP32 - Receiver: Folosit pentru a comunica cu drona. Acesta este conectat la telecomanda dronei, trimitand semnale PWM pentru a simula folosirea unui joystick. Acesta va fi alimentat de la laptop prin portul Micro-USB. Se folosesc pinii D12, D14, D25 si D26. D14 pentru miscarea pe axa OZ, D12 pentru rotatia pe aceasta (Yaw), D25 pentru rotatia pe axa OY (Pitch) si D26 pentru miscarea pe axa OX (Roll).
  • MPU6050: Un giroscop cu acelerometru, care va fi legat de ESP32, care vor fi montate pe o manusa care va fi pusa pe mana. Acesta va detecta miscarile mainii si le va transmite prin I2C. Acesta este alimentat de la porturile de 3.3V si GND de la ESP32.
  • Circuit Board: Aceasta este folosita pentru a lega mai usor ESP32 de MPU6050.
  • Drona: Aceasta va functiona asa cum a fost intentionata, doar ca in loc sa primeasca inputurile de la 2 joystick-uri, aceasta le va primi de la un microcontroller.
    • Rezistente si Condensatoare : Am folosit pentru filtruri RC pentru a transforma semnalele PWM trimise, pentru a le transforma in semnal analog (pentru telecomanda dronei).

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Platforme: PlatformIO, PyGame

Librarii Folosite: esp_now.h, WiFi.h, Wire.h, math.h

ESP32-Emitter : Manusa in sine contine microcontrollerul ESP32, impreuna cu giroscopul MPU-6050 si cu un buton. Aici, scopul ESP-ului este de a prelua informatiile prin I2C de la MPU-6050 si sa le transmita mai departe prin ESP-NOW. De asemenea butonul are rolul de a intrerupe programul in cazul in care utilizatorul considera necesara o sincronizare cu drona. ESP32 → MPU-6050: Pentru conexiunea dintre cele 2 am folosit libraria Wire.h, deoarece am avut probleme cu partea de creeare de prroiect folosind framework-ul esp-idf. Prin aceasta conexiune am facut rost de datele legate de orientare, rotatie si miscarea pe axa oZ.

ESP32-Receiver : Pentru comunicarea cu drona am dezasamblat controllerul unei drone mai vechi si am inlocuit joystick-urile cu diferite conexiuni pe microcontroller. Am legat 2 pini prin DAC si alti 2 pini prin PWM, deoarece ESP32 nu are mai multi pini pe care sa poata sa transmita semnale DAC. Pentru a converti totusi semnalul PWM la un semnal “analog” am folosit cate un filtru RC pentru fiecare pin.

Drone-Shower : Am implementat de asemenea o interfata grafica in python in care s-ar vedea aproximativ cum se misca drona. Acesta a fost facut refolosind concepte din tema unei materii de semestrul trecut.

Rezultate Obţinute

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

Drona zboara cu succes si se misca conform miscarilor mainii (pe care am pus placa ESP32 cu giroscopul); De asemenea si pe Drone-Shower se poate vedea cum zboara drona din aceleasi comenzi.

pm/prj2025/vstoica/george.ciobanu2204.txt · Last modified: 2025/05/28 07:44 by george.ciobanu2204
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