Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:vlad.radulescu2901:radu_mihai.voinea04 [2026/05/06 10:00]
radu_mihai.voinea04 [Jurnal]
pm:prj2026:vlad.radulescu2901:radu_mihai.voinea04 [2026/05/23 00:29] (current)
radu_mihai.voinea04 [Rezultate Obţinute]
Line 43: Line 43:
 ===== Software Design ===== ===== Software Design =====
  
 +==== Mediu de Dezvoltare ====
  
-<note tip> +**PlatformIO IDE** (VS Codecu două environment-uri:​ ''​env:​car''​ ș''​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 şsurse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +
-  * (etapa 3surse ş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 =====
  
-====== Ansamblu final ======+Masinuta: ​   [[https://​youtu.be/​yV8iQhhMfLA]] 
 + 
 +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_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_2_voinea_radu_mihai_335ca.jpeg?​750|}}
pm/prj2026/vlad.radulescu2901/radu_mihai.voinea04.1778050836.txt.gz · Last modified: 2026/05/06 10:00 by radu_mihai.voinea04
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