This shows you the differences between two versions of the page.
pm:prj2025:eradu:rares.apostol3011 [2025/05/24 12:13] rares.apostol3011 [Software Design] |
pm:prj2025:eradu:rares.apostol3011 [2025/05/29 20:15] (current) rares.apostol3011 [Concluzii] |
||
---|---|---|---|
Line 91: | Line 91: | ||
* Pentru procesarea pachetelor, am folosit o functie de callback, ** udp.onPacket **, care se executa automat atunci cand este primit un pachet UDP. Aici, se transforma pachetul in string, si cu ajutorul functiei ** parse_message() ** se modifica niste variabile globale, folosite in loop(). Am ales sa folosesc AsyncUdp pentru a nu bloca executia in loop, asteptand un mesaj. Astfel, codul din onPacket se executa doar atunci cand este primit un pachet nou | * Pentru procesarea pachetelor, am folosit o functie de callback, ** udp.onPacket **, care se executa automat atunci cand este primit un pachet UDP. Aici, se transforma pachetul in string, si cu ajutorul functiei ** parse_message() ** se modifica niste variabile globale, folosite in loop(). Am ales sa folosesc AsyncUdp pentru a nu bloca executia in loop, asteptand un mesaj. Astfel, codul din onPacket se executa doar atunci cand este primit un pachet nou | ||
* In ** loop() **, sunt controlate motoarele, in functie de variabilele globale. Se roteste servomotorul(am dat un delay de 20 de ms pentru a avea suficient timp), si sunt controlate puterea si sensul motoarelor din fata: pentru a merge inainte, pinii A trimit semnalul PWM, si pinii B sunt setati pe LOW. Pentru a da cu spatele, invers: pinii A sunt setati pe LOW, pinii B trimit PWM. Daca nicio pedala nu e apasata, atunci toti pinii sunt setati pe LOW. | * In ** loop() **, sunt controlate motoarele, in functie de variabilele globale. Se roteste servomotorul(am dat un delay de 20 de ms pentru a avea suficient timp), si sunt controlate puterea si sensul motoarelor din fata: pentru a merge inainte, pinii A trimit semnalul PWM, si pinii B sunt setati pe LOW. Pentru a da cu spatele, invers: pinii A sunt setati pe LOW, pinii B trimit PWM. Daca nicio pedala nu e apasata, atunci toti pinii sunt setati pe LOW. | ||
- | |||
+ | 3. **Cod ESP32 CAM** | ||
+ | <note important>Am folosit codul de [[https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer|aici]] </note> | ||
+ | |||
+ | Am modificat cateva lucruri: esp32 va primi o adresa statica, va folosi grayscale(jpeg nu e suportat de camera). De asemenea, rezolutia este foarte mica(QQVGA), camera merge destul de prost si am incercat sa fie totusi functionala, chiar daca calitatea video nu este excelenta | ||
+ | |||
- | ===== Rezultate Obţinute ===== | ||
- | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
- | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Mi s-a parut mult de munca, mai ales la partea de hardware, unde am avut probleme cu unele piese. Sistemul de servo a luat destul de mult timp, am incercat sa il fac cat mai precis. Am incercat sa scriu singur codul pentru camera, dar nu am gasit niciun fel de documentatie pentru rhyx-m21-45, si am folosit un exemplu din arduino. | ||
+ | |||
+ | Cu toate astea, proiectul mi-a placut, mai ales cand la final am vazut ca masina chiar merge, si o pot controla din telefon, cum mi-am dorit. | ||
===== Download ===== | ===== Download ===== | ||
Line 130: | Line 133: | ||
**Update 2**: am reusit sa pornesc ESP32-ul. Pentru ca am scris deja codul pentru controlul motoarelor pe esp8266, o sa continui cu ambele: esp32 pentru camera, esp8266 pentru motoare. | **Update 2**: am reusit sa pornesc ESP32-ul. Pentru ca am scris deja codul pentru controlul motoarelor pe esp8266, o sa continui cu ambele: esp32 pentru camera, esp8266 pentru motoare. | ||
+ | |||
+ | ** Proiect complet **: | ||
+ | |||
+ | 1. [[https://youtube.com/shorts/-Rezx8TZMO0| Masina gata]] | ||
+ | |||
+ | 2. [[https://youtube.com/shorts/xrrqcrR-CG8| Aplicatia]] | ||
- | ===== Bibliografie/Resurse ===== | + | ===== Bibliografie si resurse ===== |
- | <note> | + | [[https://randomnerdtutorials.com/esp32-cam-video-streaming-face-recognition-arduino-ide/|ESP32 CAM]] |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | |
<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> |