This shows you the differences between two versions of the page.
pm:prj2024:rrusu:vlad_andrei.negoita [2024/05/17 17:02] vlad_andrei.negoita [Hardware Design] |
pm:prj2024:rrusu:vlad_andrei.negoita [2024/05/27 10:26] (current) vlad_andrei.negoita [Jurnal] |
||
---|---|---|---|
Line 33: | Line 33: | ||
Schema electrică: | Schema electrică: | ||
- | {{:pm:prj2024:rrusu:creenshot_2024-05-17_165637.png?800|}} | + | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2024/rrusu/screenshot_2024-05-17_165637.png?800|}} |
- | + | ||
- | <hidden><note tip> | + | |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | |
- | * 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> | ||