This shows you the differences between two versions of the page.
pm:prj2024:rrusu:vlad_andrei.negoita [2024/05/04 00:31] vlad_andrei.negoita [Descriere generală] |
pm:prj2024:rrusu:vlad_andrei.negoita [2024/05/27 10:26] (current) vlad_andrei.negoita [Jurnal] |
||
---|---|---|---|
Line 18: | Line 18: | ||
Device-ul respectă următoarea secvență de pași: | Device-ul respectă următoarea secvență de pași: | ||
- | 1. | + | - așteaptă primirea unui semnal pentru capturarea unei poze (ex. apăsarea unui buton) |
- | 2. | + | - poza este împachetată și, folosing API-ul de la PhotoMath, este trimisă pentru a fi descifrată și, eventual, rezolvată |
- | 3. | + | - rezultatul este primit și procesat, urmând afișarea pe display-ul LCD al device-ului |
Line 30: | Line 30: | ||
* [[https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/2894-lcd-cu-interfata-i2c-si-backlight-albastru.html| Display LCD cu interfață I2C]] | * [[https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/2894-lcd-cu-interfata-i2c-si-backlight-albastru.html| Display LCD cu interfață I2C]] | ||
* Breadboard, fire de legătură | * Breadboard, fire de legătură | ||
- | + | ||
- | <hidden><note tip> | + | Schema electrică: |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2024/rrusu/screenshot_2024-05-17_165637.png?800|}} |
- | * 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 | + | |
- | * rezultatele simulării | + | |
- | </note></hidden> | + | |
===== Software Design ===== | ===== Software Design ===== | ||
+ | Pentru acest proiect, am folosit Arduino IDE. | ||
+ | Codul poate fi accesat la adresa https://github.com/VladNegoita/Calculator. | ||
- | <note tip> | + | În continuare, va fi descrisă succint modul de funcționare al componentei software. |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | După realizarea conexiunilor fizice, display-ul funcționează aproape imediat întrucât am folosit o bibliotecă care ușurează semnificativ utilizarea acestuia: **LiquidCrystal_I2C**. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | Pentru driverele camerei, am identificat o soluție implementata pe github: https://github.com/bitluni/ESP32CameraI2S (există și un videoclip explicativ pe youtube asociat). |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | Camera realizează poze de rezoluție destul de mică, nefiind tocmai satisfăcătoare în practică. Pentru a ajunge la această concluzie, am folosit un WebServer unde am încărcat pozele realizate de cameră periodic și am interogat folosind Postman. |
+ | |||
+ | Întrucât pozele sunt primite într-un format **.bmp** și **.jpeg** este necesar pentru utilizarea API-ului este nevoie de o conversie între aceste formate. Întrucât nu există suport oferit pentru o astfel de operație pentru microcontroller-ul ales, am decis ca un script de python să se ocupe de conversie și de apelul API-ului, întorcând rezultatul pe serială. Această pivotare nu deviază de la scopul inițial al proiectului, întrucât doar furnizează un intermediar (un potențial server pentru o aplicație reală a calculatorului). | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | {{:pm:prj2024:rrusu:result.jpg?600|}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
+ | Proiectul e capabil sa recunoască cifre, iar în condiții ideale poate rezolva și ecuații foarte simple. Singura limitare este camera, ce poate face poze de o rezoluție și calitate îndoielnică. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | Proiectul este un PoC (proof of concept) și trebuie tratat ca atare. Am ajuns la concluzia că acest domeniu necesită multă răbdare și o planificare extrem de bună a resurselor. Pe lângă asta, documentația (incluzând datasheet-uri și resurse online) este extrem de limitată, asta fiind o problemă destul de mare în realizarea proiectului. |
- | <hidden><note warning> | ||
- | 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**. | + | ===== Bibliografie/Resurse ===== |
- | </note></hidden> | + | |
- | ===== Jurnal ===== | + | * https://github.com/bitluni/ESP32CameraI2S |
- | <note tip> | + | * https://github.com/igrr/esp32-cam-demo |
- | 04.05 - Adăugarea introducerii, descrierii și a componentelor hardware ce vor fi utilizate | + | |
- | </note> | + | |
- | ===== Bibliografie/Resurse ===== | + | * https://www.optimusdigital.ro/ro/index.php?controller=attachment&id_attachment=204 |
+ | |||
+ | * https://www.optimusdigital.ro/ro/index.php?controller=attachment&id_attachment=1479 | ||
- | <note> | + | * https://www.waveshare.com/wiki/LCD1602_I2C_Module |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. \\ | + | |
- | Fizica din spatele roțiilor mecanum: https://www.youtube.com/watch?v=gnSW2QpkGXQ | + | |
- | </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> | ||