This is an old revision of the document!


Calculator de buzunar++

Nume: Negoiță Vlad-Andrei
Grupa: 331CA

Introducere

(acum mult, mult timp…) Eram la ora de fizică și, la o problemă destul de simplă, am ajuns la următoarea expresie de calculat:

$$ x = \frac{0.378 * 0.294 ^ 3 - \sqrt{0.764} * 0.245 ^ 2}{0.532 - 0.654}$$

După două încercări (evident nereușite) de a calcula, am tras concluzia că voi rămâne la calculul simbolic m(. Totuși, pentru când un rezultat numeric este important (de exemplu, poate fi interpretat mai departe), e nevoie de o metodă mai robustă decât a bate manual la calculator zeci de cifre. Pentru această situație am creat Calculatorul de buzunar++: un device simplu care, folosind PhotoMath, reduce semnificativ erorile umane în calculele numerice de rutină.

Descriere generală

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

Hardware Design

Pentru realizarea acestui proiect, am achiziționat următoarele componente:

Schema electrică:

Software Design

Pentru acest proiect, am folosit Arduino IDE. Codul poate fi accesat la adresa https://github.com/VladNegoita/Calculator.

În continuare, va fi descrisă succint modul de funcționare al componentei software.

După realizarea conexiunilor fizice, display-ul funcționează aproape imediat întrucât am folosit o bibliotecă care ușurează semnificativ utilizarea acestuia: LiquidCrystal_I2C.

Pentru driverele camerei, am identificat o soluție implementata pe github: https://github.com/bitluni/ESP32CameraI2S (există și un videoclip explicativ pe youtube asociat).

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ă. <note tip> Descrierea codului aplicaţiei (firmware): * 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> ===== Rezultate Obţinute ===== <note tip> Care au fost rezultatele obţinute în urma realizării proiectului vostru. </note> ===== Concluzii ===== ===== Download =====

===== Jurnal ===== <note tip> 04.05 - Adăugarea introducerii, descrierii și a componentelor hardware ce vor fi utilizate </note> ===== Bibliografie/Resurse ===== <note> 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>

Export to PDF

pm/prj2024/rrusu/vlad_andrei.negoita.1716493941.txt.gz · Last modified: 2024/05/23 22:52 by vlad_andrei.negoita
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