This shows you the differences between two versions of the page.
pm:prj2024:mdinica:robert.grancsa [2024/05/16 16:47] robert.grancsa |
pm:prj2024:mdinica:robert.grancsa [2024/05/27 00:16] (current) robert.grancsa |
||
---|---|---|---|
Line 899: | Line 899: | ||
de SPI, pentru GPS m-am folosit de pinii de UART si pentru camera am ales sa folosesc pinii cei mai | de SPI, pentru GPS m-am folosit de pinii de UART si pentru camera am ales sa folosesc pinii cei mai | ||
apropiati unul de altul pentru date, ca sa nu fie overlap la conectarea firelor.</p> | apropiati unul de altul pentru date, ca sa nu fie overlap la conectarea firelor.</p> | ||
- | <p><img src="https://i.imgur.com/aljwQI3.png" alt="Schematicul"></p> | + | <p><img src="assets/Schematic.png" alt="Schematicul"></p> |
<p style="font-family:Roboto">Tabelul cu piesele folosite se poate vedea mai jos.</p> | <p style="font-family:Roboto">Tabelul cu piesele folosite se poate vedea mai jos.</p> | ||
<table> | <table> | ||
Line 938: | Line 938: | ||
</table> | </table> | ||
<h2 style="font-family:Raleway; font-weight: 600;" id="software-design">Software Design </h2> | <h2 style="font-family:Raleway; font-weight: 600;" id="software-design">Software Design </h2> | ||
- | <p>Descrierea codului aplicației (firmware):</p> | + | <p>Codul este momentan functional pe partea de cod main, functionalitatile extra nu au putut fi duse pana la |
+ | capat din cauza limitarilor hardware (ram insuficient pentru a encoda poze in base64), dar cele de | ||
+ | baza cum ar fi tracking de viteza functioneaza corect.</p> | ||
+ | <h3 style="font-family:Raleway; font-weight: 500;" id="biblioteci">Biblioteci </h3> | ||
+ | <p>Au fost folosite biblioteci precum:</p> | ||
<ul> | <ul> | ||
- | <li>mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)</li> | + | <li>Adafruit_GFX - pentru display si grafice</li> |
- | <li>librării și surse 3rd-party (e.g. Procyon AVRlib)</li> | + | <li>OV7670 - pentru camera si sincronizare de ceas pe I2C/I2S</li> |
- | <li>algoritmi și structuri pe care plănuiți să le implementați</li> | + | <li>TinyGPS++ - pentru a citi datele pe UART pe GPS</li> |
- | <li>(etapa 3) surse și funcții implementate</li> | + | <li>WiFi, WiFiMulti, WiFiClient, HTTPClient - pentru transfer de date via internet</li> |
</ul> | </ul> | ||
+ | <h3 style="font-family:Raleway; font-weight: 500;" id="features">Features </h3> | ||
+ | <p>Au fost folosite doua thread-uri separate, unul care se ocupata de citirea datelor, actualizarea lor si | ||
+ | afisarea pe ecran de fiecare data cand se gaseste o actualizare a vitezea via Hall Effect sensor, iar | ||
+ | al doilea thread, care e pinned la un alt core fata de primul, se ocupa de transmisia prin wifi a | ||
+ | datelor catre back-end-ul care tine un loc al datelor.</p> | ||
+ | <p>Am folosit si intreruperi pentru a detecta butonul apasat, ca mai apoi sa pot cicla intre ecranul | ||
+ | principal de viteza, si ecranul care arata display-ul.</p> | ||
+ | <p>Serverul este scris in Express, si se foloseste de MongoDB sa salveze datele persistent.<br> | ||
+ | El este hostat pe raspberry pi, si pastreaza mereu legatura la device. Acest back-end face si | ||
+ | request-uri catre Google Cloud sa clasifice obiectele din imagine de pe camera,<br> | ||
+ | care mai apoi intoarce daca a gasit vreun semn de circulatie sau vreun danger pe imagine, si in caz ca | ||
+ | se gaseste ceva dangerous imaginea respectiva este si ea salvata in baza de date ca logging.</p> | ||
+ | <p>Aceste date pot fi vazute dupa vazute dupa aceea pe front-end-ul scris in React.</p> | ||
+ | <h3 style="font-family:Raleway; font-weight: 500;" id="schelet">Schelet </h3> | ||
+ | <p>Codul contine partea de init, care initializeaza wifi-ul, si fiecare senzor valabil precum gps-ul, camera | ||
+ | si ecranul. Apoi avem partea de cod care introduce intreruperile si pornirea de core-uri pentru | ||
+ | task-ul de send, si cel de update a ecranului.</p> | ||
+ | <p>Se foloseste de multe functii ajutatoare, pentru a trimite datele, pentru a da refresh la ecran si pentru | ||
+ | a calcula distanta parcursa de la ultima activare.</p> | ||
+ | <h3 style="font-family:Raleway; font-weight: 500;" id="calibrare">Calibrare </h3> | ||
+ | <p>Pentru senzorul Hall, calibrarea a fost facuta folosind print-uri la serial si folosind un magnet si | ||
+ | regland potentiometrul de pe device pentru a ajunge la sensitivitatea dorita.</p> | ||
<h2 style="font-family:Raleway; font-weight: 600;" id="rezultate-obținute">Rezultate Obținute </h2> | <h2 style="font-family:Raleway; font-weight: 600;" id="rezultate-obținute">Rezultate Obținute </h2> | ||
- | <p>Care au fost rezultatele obținute în urma realizării proiectului vostru.</p> | + | <p>Codul sursa pentru proiect poate fi gasit <a href="https://github.com/RobertGrancsa/PM_Project">aici</a> |
- | <h2 style="font-family:Raleway; font-weight: 600;" id="concluzii">Concluzii </h2> | + | |
- | <h2 style="font-family:Raleway; font-weight: 600;" id="download">Download </h2> | + | |
- | <p>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ă 😉.</p> | + | |
- | <p>Fișierele se încarcă pe wiki folosind facilitatea <strong>Add Images or other files</strong>. | + | |
- | Namespace-ul în care se încarcă fișierele este de tipul <strong>:pm:prj20??:c?</strong> sau | + | |
- | <strong>:pm:prj20??:c?:nume_student</strong> (dacă este cazul).</p> | + | |
- | <h2 style="font-family:Raleway; font-weight: 600;" id="jurnal">Jurnal </h2> | + | |
- | <p>Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
</p> | </p> | ||
- | <h2 style="font-family:Raleway; font-weight: 600;" id="bibliografieresurse">Bibliografie/Resurse </h2> | + | <p><img href="https://github.com/RobertGrancsa/PM_Project" src="https://opengraph.githubassets.com/6f91aeeafc7c48641ebbb89c91265b7bede1f65b01d95f3c0df5048f17a0d8a2/RobertGrancsa/PM_Project" |
- | <p>Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe <strong>Resurse | + | alt="codul sursa"></p> |
- | Software</strong> și <strong>Resurse Hardware</strong>.</p> | + | <h2 style="font-family:Raleway; font-weight: 600;" id="download">Download </h2> |
+ | <p>Proiectul poate fi gasit pe <a href="https://github.com/RobertGrancsa/PM_Project">github</a>, si | ||
+ | descarcat si compilat local.</p> | ||
</div> | </div> | ||
</body> | </body> | ||
</html> | </html> | ||
- |