This shows you the differences between two versions of the page.
pm:prj2025:vradulescu:constantin.matei03 [2025/05/15 19:55] matei.constantin03 [Descriere generală] |
pm:prj2025:vradulescu:constantin.matei03 [2025/05/27 12:11] (current) matei.constantin03 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 36: | Line 36: | ||
* **Divizor rezistiv pentru monitorizarea bateriei** | * **Divizor rezistiv pentru monitorizarea bateriei** | ||
- | Format din 2 rezistențe de 100kOhmi, conectate între Vbat și GND, cu punctul median legat la pinul A0 al ESP32. Acesta scade tensiunea bateriei la un nivel sigur pentru citirea de către ESP32. | + | Format din 2 rezistențe de 100kOhmi, conectate între Vbat și GND, cu punctul median legat la pinul A0 al ESP32. Acesta scade tensiunea bateriei la un nivel sigur pentru citirea de către ESP32. |
- | {{ :pm/prj2025/vradulescu/adc-capacitate-baterie.png?600 | Capacitate-baterie}} | + | {{ :pm:prj2025:vradulescu:adc-capacitate-baterie.png?300|}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 48: | Line 48: | ||
{{ :pm:prj2025:vradulescu:schema-electrica.jpg | }} | {{ :pm:prj2025:vradulescu:schema-electrica.jpg | }} | ||
- | ===== Software Design ===== | + | ====== Documentație Software ====== |
- | **Mediu de dezvoltare:** | + | === Stadiul actual al implementării software === |
- | - PlatformIO | + | Proiectul este funcțional și bazat pe codul open-source [ESP-Drone](https://github.com/espressif/esp-drone/tree/master), adaptat pentru ESP32-C3. Au fost făcute modificări la nivelul pinilor conform schemei electrice proprii și s-a configurat ADC-ul pentru monitorizarea bateriei. Conexiunea Wi-Fi funcționează, comenzile sunt recepționate prin UDP, iar drona răspunde corect la comenzi. |
+ | === Alegerea bibliotecilor === | ||
+ | Am folosit **ESP-IDF**, deoarece este framework-ul oficial Espressif, oferă control total asupra hardware-ului, este bine documentat și include unelte integrate pentru build, flash și debug. | ||
+ | |||
+ | === Element de noutate === | ||
+ | Proiectul aduce noutate prin adaptarea codului ESP-Drone pe microcontrolerul **ESP32-C3**, cu o configurație personalizată a pinilor și integrarea unui sistem de monitorizare a bateriei cu ADC. Controlul se face wireless prin aplicație mobilă sau gamepad. | ||
+ | |||
+ | === Utilizarea funcționalităților din laborator === | ||
+ | - PWM pentru controlul motoarelor | ||
+ | - ADC pentru citirea tensiunii bateriei | ||
+ | - Wi-Fi în mod AP și comunicație UDP | ||
+ | - Task-uri și cozi din FreeRTOS | ||
+ | - Debug serial și monitorizare loguri | ||
+ | |||
+ | === Structura proiectului și validare === | ||
+ | Proiectul este împărțit pe fișiere: | ||
+ | * **wifi_esp32.c** – conexiune Wi-Fi și UDP | ||
+ | * **main.c** – inițializare și logica principală | ||
+ | * **config.h** – definiri pini și parametri | ||
+ | * **adc_esp32.c** – citire și conversie ADC | ||
+ | * **motors.c** – interpretare comenzi și control motoare | ||
+ | * **led_esp32.c** – controlul ledurilor | ||
+ | |||
+ | Validarea s-a făcut prin conectarea aplicației mobile și testarea comenzilor de zbor, cu verificare vizuală și în serial monitor. | ||
+ | |||
+ | === Calibrarea senzorilor === | ||
+ | Am calibrat ADC-ul pe baza valorilor cunoscute de tensiune (3.3V și 4.2V). Tensiunea citită este convertită în procente pentru a estima nivelul bateriei. Valorile sunt filtrate pentru stabilitate. | ||
+ | |||
+ | === Optimizări === | ||
+ | - Dimensiuni reduse pentru buffer-ele UDP | ||
+ | - Eliminarea componentelor nefolosite din proiect | ||
+ | - Sincronizare eficientă între task-uri cu cozi | ||
+ | - Inițializare Wi-Fi rapidă fără DHCP | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | {{:pm:prj2025:vradulescu:final.jpeg?600 |Imagine finală dronă}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | ===== Concluzii ===== | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | **Arhiva cu codul sursă:** [[https://ocw.cs.pub.ro/courses/?image=pm%3Aprj2025%3Avradulescu%3Adrona.zip&tab_details=view&do=media&ns=pm%3Aprj2025%3Avradulescu|Descarcă drona.zip]] |
- | 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**. | + | **GitHub:** [[https://github.com/mateic2006/proiect-pm-drona|Vezi proiectul pe GitHub]] |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 78: | Line 106: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | [[https://github.com/espressif/esp-drone|ESP-Drone - GitHub]] |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | [[https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/|ESP-IDF Documentation (ESP32-C3)]] |
- | </note> | + | [[https://randomnerdtutorials.com/|Random Nerd Tutorials - ESP Projects]] |
+ | [[https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-reference/peripherals/adc.html|ESP-IDF ADC API Reference]] | ||
+ | [[https://www.espressif.com/en/products/socs/esp32-c3/resources|ESP32-C3 Resources]] | ||
+ | [[https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/|Getting Started with ESP32C3]] | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||