This shows you the differences between two versions of the page.
|
pm:prj2026:vlad.radulescu2901:radu_mihai.voinea04 [2026/05/06 09:16] radu_mihai.voinea04 [Lista Piese] |
pm:prj2026:vlad.radulescu2901:radu_mihai.voinea04 [2026/05/23 00:29] (current) radu_mihai.voinea04 [Rezultate Obţinute] |
||
|---|---|---|---|
| Line 33: | Line 33: | ||
| {{:pm:prj2026:vlad.radulescu2901:schema_electrica_voinea_radu_mihai_335ca.png?750|}} | {{:pm:prj2026:vlad.radulescu2901:schema_electrica_voinea_radu_mihai_335ca.png?750|}} | ||
| - | <note tip> | + | ===== Schema PCB ===== |
| - | Aici puneţi tot ce ţine de hardware design: | + | {{:pm:prj2026:vlad.radulescu2901:schema_pcb_voinea_radu_mihai_335ca.png?750|}} |
| - | * listă de piese | + | {{:pm:prj2026:vlad.radulescu2901:pcb_virtual_voinea_radu_mihai_335ca.png?750|}} |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
| - | * diagrame de semnal | + | ===== PCB Fizic ===== |
| - | * rezultatele simulării | + | {{:pm:prj2026:vlad.radulescu2901:pcb_fizic_voinea_radu_mihai_335ca.jpeg?750|}} |
| - | </note> | + | {{:pm:prj2026:vlad.radulescu2901:pcb_fizic_2_voinea_radu_mihai_335ca.jpeg?750|}} |
| ===== Software Design ===== | ===== Software Design ===== | ||
| + | ==== Mediu de Dezvoltare ==== | ||
| - | <note tip> | + | **PlatformIO IDE** (VS Code) cu două environment-uri: ''env:car'' și ''env:remote''. |
| - | Descrierea codului aplicaţiei (firmware): | + | Framework Arduino pe ESP32-S3, compilator Xtensa GCC (ESP-IDF toolchain). |
| - | * 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 | + | |
| - | </note> | + | |
| + | ==== Biblioteci 3rd-Party ==== | ||
| + | |||
| + | ^ Bibliotecă ^ Nod ^ Utilizare ^ | ||
| + | | ''arduino-esp32'' | Car + Remote | Wi-Fi, AsyncUDP, ADC, FreeRTOS | | ||
| + | | ''esp32-camera'' | Car | Driver OV2640, captură JPEG, PSRAM | | ||
| + | | ''NimBLE-Arduino'' | Car + Remote | BLE Coded PHY Extended Advertising | | ||
| + | | ''LovyanGFX'' | Remote | Display ILI9341 parallel 8-bit, ''drawJpg()'' | | ||
| + | | ''ESP-IDF LEDC'' | Car | PWM motoare DC (4 canale, 1 kHz, 10-bit) | | ||
| + | | ''ESP-IDF MCPWM'' | Car | PWM servomotoare SG90 (50 Hz, 1 µs rezoluție) | | ||
| + | | ''video_protocol.h'' / ''ble_protocol.h'' | Shared | Struct-uri și constante protocol custom | | ||
| + | |||
| + | ==== Algoritmi și Structuri ==== | ||
| + | |||
| + | * **Differential drive mixer** — ''left = y + x'', ''right = y − x''; PWM = ''|mix| × speed × MAX_DUTY / 10000'' | ||
| + | * **Servo rate integration** — task la 100 Hz integrează rata joystick în poziție float, mapată la µs (500–2500) | ||
| + | * **UDP frame reassembly** — ''chunk_bitmap[128]'' pentru deduplicare; double buffer PSRAM cu swap zero-copy la completare | ||
| + | * **BLE Coded PHY** — Extended Advertising 125 Kbps (FEC); ''WRITE_NR'' la 50 Hz; ''motorsStop()'' automat la deconectare | ||
| + | * **ADC calibrare** — medie 64 samplee la startup; deadzone + normalizare asimetrică → [−100, +100] | ||
| + | * **FreeRTOS core pinning** — Core 0: Wi-Fi + video; Core 1: BLE + control | ||
| + | |||
| + | ==== Surse și Funcții Implementate ==== | ||
| + | |||
| + | **''car/main.cpp'':** ''initMotors'', ''motorsDrive'', ''motorsStop'', ''initServos'', ''servoTask'', ''initCamera'', ''sendFrame'', ''cameraTask'', ''initWiFiAP'', ''initBLE'' | ||
| + | |||
| + | **''remote/main.cpp'':** ''onPacketReceived'', ''videoTask'', ''calibrateJoysticks'', ''readAxis'', ''controlTask'', ''connectToCar'', ''startBLEScan'', ''updateSpeedLEDs'', ''LGFX'' (clasă display) | ||
| + | |||
| + | **''include/'':** ''video_protocol.h'' — ''VideoPacketHeader'', constante UDP; ''ble_protocol.h'' — ''ControlCommand'', UUID-uri BLE | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | + | Masinuta: [[https://youtu.be/yV8iQhhMfLA]] |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
| - | </note> | + | Telecomanda: [[https://youtu.be/jgnJoZh3GZg]] |
| + | ===== Ansamblu final ===== | ||
| + | {{:pm:prj2026:vlad.radulescu2901:ansamblu_final_1_voinea_radu_mihai_335ca.jpeg?750|}} | ||
| + | {{:pm:prj2026:vlad.radulescu2901:ansamblu_final_2_voinea_radu_mihai_335ca.jpeg?750|}} | ||
| + | {{:pm:prj2026:vlad.radulescu2901:ansamblu_final_3_voinea_radu_mihai_335ca.jpeg?750|}} | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| ===== Download ===== | ===== Download ===== | ||
| + | |||
| + | {{:pm:prj2026:vlad.radulescu2901:design_circuit_voinea_radu_mihai_335ca.zip|}} | ||
| <note warning> | <note warning> | ||
| Line 70: | Line 100: | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| - | <note tip> | + | ==== 4 aprilie 2026 ==== |
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * **Refactorizare formatare cod** — îmbunătățiri de consistență și lizibilitate în protocoalele BLE și video |
| - | </note> | + | * **Refactorizare definiții pini și comentarii** — claritate sporită în ''car_main'' și ''remote_main'' |
| + | * **Actualizare pin reset cameră** — conexiunea pinului de reset mutat la 3V3 pe PCB | ||
| + | * **Actualizare rotație display** — corectat pentru randare video și vizualizare cameră | ||
| + | * **Adăugare control BLE și funcționalitate motoare** — integrare joystick (3 commit-uri) | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== 3 aprilie 2026 ==== | ||
| + | * **Adăugare streaming cameră și afișare de la distanță** — configurare WiFi AP și transmisie UDP (2 commit-uri) | ||
| + | * **Adăugare control BLE și funcționalitate motoare** — integrare joystick | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== 1 aprilie 2026 ==== | ||
| + | * **Adăugare funcționalitate streaming cameră** — configurare WiFi AP și transmisie video UDP | ||
| + | * **Refactorizare cod mașină și telecomandă** — structură îmbunătățită și lizibilitate sporită (2 commit-uri) | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== 30 martie 2026 ==== | ||
| + | * **Refactorizare setări cameră** — control manual al expunerii; îmbunătățiri opțiuni socket pentru display | ||
| + | * **Îmbunătățire setări cameră** — performanță mai bună în interior; corecție culori display | ||
| + | * **Optimizare control expunere automată** — corecție culori pentru stream display | ||
| + | * **Refactorizare streaming video** — trecere la UDP cu pachete fragmentate pentru fiabilitate și performanță sporite | ||
| + | * **Îmbunătățire fiabilitate cameră și display** — opțiuni socket îmbunătățite și validare JPEG | ||
| + | * **Refactorizare cod cameră și display** — claritate și îmbunătățiri de performanță | ||
| + | * **Refactorizare setări VCOM** — control manual expunere și optimizare VCOM pentru stream display | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== 29 martie 2026 ==== | ||
| + | * **Adăugare funcționalitate streaming cameră** — configurații inițiale adăugate | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== 26 martie 2026 ==== | ||
| + | * **Implementare control rată servo cu BLE** — gestionare îmbunătățită a zonei moarte a joystick-ului | ||
| + | * **Adăugare control servo cu integrare joystick** — actualizare definiții GPIO motoare | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== 25 martie 2026 ==== | ||
| + | * **Adăugare funcționalitate control servo** — integrare joystick | ||
| + | * **Actualizare configurație logging Bluetooth** — depanare îmbunătățită și claritate sporită (2 commit-uri) | ||
| + | * **Refactorizare control joystick și management viteză** — integrare ADC | ||
| + | * **Actualizare definiții pini GPIO motoare** — claritate și funcționalitate îmbunătățite | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== 24 martie 2026 ==== | ||
| + | * **Adăugare control LED pentru indicare viteză** — afișare stare conexiune în modulul telecomandă | ||
| + | * **Adăugare module mașină și telecomandă** — funcționalitate BLE și control motoare | ||
| + | |||
| + | ---- | ||
| + | ==== 23 martie 2026 ==== | ||
| + | * **Refactorizare logică control motoare** — utilizare PWM și îmbunătățire inițializare butoane | ||
| + | * **Inițializare structură proiect** — configurare CMake și PlatformIO; control GPIO pentru funcții motoare | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||