Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:mdinica:robert.grancsa [2024/05/04 01:18]
robert.grancsa
pm:prj2024:mdinica:robert.grancsa [2024/05/27 00:16] (current)
robert.grancsa
Line 1: Line 1:
 ====== Bike Infotainment System ====== ​ ====== Bike Infotainment System ====== ​
 <​html>​ <​html>​
 +
 <​head>​ <​head>​
       <​title>​README</​title>​       <​title>​README</​title>​
Line 844: Line 845:
       <script type="​text/​javascript">​       <script type="​text/​javascript">​
             document.addEventListener("​DOMContentLoaded",​ function () {             document.addEventListener("​DOMContentLoaded",​ function () {
-                  ​alert("​Bike Infotainment System"​);​+                  ​
             });             });
       </​script>​       </​script>​
Line 854: Line 855:
       <div class="​crossnote markdown-preview ​ ">       <div class="​crossnote markdown-preview ​ ">
  
-      ​+            <h1 style="​font-family:​Raleway;​ font-weight:​ 700;" id="​bike-infotainment-system">​Bike Infotainment System </h1>
             <h2 style="​font-family:​Raleway;​ font-weight:​ 600;" id="​introducere">​Introducere </h2>             <h2 style="​font-family:​Raleway;​ font-weight:​ 600;" id="​introducere">​Introducere </h2>
             <p style="​font-family:​Roboto">​Autor:​ <​strong>​Robert Grancsa 332CA</​strong></​p>​             <p style="​font-family:​Roboto">​Autor:​ <​strong>​Robert Grancsa 332CA</​strong></​p>​
Line 895: Line 896:
             <​p><​img src="​https://​i.imgur.com/​X5e3Lpz.png"​ alt="​Diagrama proiectului"></​p>​             <​p><​img src="​https://​i.imgur.com/​X5e3Lpz.png"​ alt="​Diagrama proiectului"></​p>​
             <h2 style="​font-family:​Raleway;​ font-weight:​ 600;" id="​hardware-design">​Hardware Design </h2>             <h2 style="​font-family:​Raleway;​ font-weight:​ 600;" id="​hardware-design">​Hardware Design </h2>
-            <p>Aici puneți tot ce ține de hardware design:</​p>​ +            <p style="​font-family:​Roboto"​>Schematicul produsul se poate vedea mai jos. Am incercat sa conectez pinii spefici SPI pe pinii specifici 
-            <ul+                  ​de SPI, pentru GPS m-am folosit de pinii de UART si pentru camera am ales sa folosesc pinii cei mai 
-                  <li>listă de piese</li+                  apropiati unul de altul pentru date, ca sa nu fie overlap la conectarea firelor.</​p>​ 
-                  <li>scheme electrice (se pot lua și de pe Internet și din datasheet-uri, e.g. <a +            <​p><​img src="​assets/​Schematic.png"​ alt="​Schematicul"></​p>​ 
-                              ​href="​http:​//www.captain.at/electronic-atmega16-mmc-schematic.png"​>link</a>)</li+            <p style="​font-family:Roboto">​Tabelul cu piesele folosite se poate vedea mai jos.</​p>​ 
-                  <li>diagrame de semnal</li+            <table
-                  <li>rezultatele simulării</li+                  <thead> 
-            </ul>+                        <​tr>​ 
 +                              <​th>​Nume Piesa</th> 
 +                              <​th>​Model</​th>​ 
 +                              <​th>​Protocol</​th>​ 
 +                        </tr
 +                  </thead> 
 +                  <​tbody>​ 
 +                        <​tr>​ 
 +                              <​td>​Microcontroller</​td>​ 
 +                              <​td>​ESP32-WROOM32</td> 
 +                              ​<​td>​-<​/td> 
 +                        </tr> 
 +                        <​tr>​ 
 +                              <​td>​Display<​/td> 
 +                              <​td>​ST7735</​td>​ 
 +                              <​td>​SPI</​td>​ 
 +                        </​tr>​ 
 +                        <​tr>​ 
 +                              <​td>​Camera</​td>​ 
 +                              <​td>​OV7670</​td>​ 
 +                              <​td>​I2S</​td>​ 
 +                        </​tr>​ 
 +                        <​tr>​ 
 +                              <​td>​GPS</​td>​ 
 +                              <​td>​GY-GPS6MV2</​td>​ 
 +                              <td>UART</td> 
 +                        ​</tr
 +                        <tr> 
 +                              <​td>​Hall Effect Sensor</td
 +                              <td>YS-27</​td>​ 
 +                              <​td>​ADC</​td>​ 
 +                        </​tr>​ 
 +                  ​</tbody
 +            </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-weight600;" ​id="concluzii">Concluzii ​</h2>+            ​</​p>​ 
 +            <p><​img href="https://​github.com/​RobertGrancsa/​PM_Project"​ src="​https://​opengraph.githubassets.com/​6f91aeeafc7c48641ebbb89c91265b7bede1f65b01d95f3c0df5048f17a0d8a2/​RobertGrancsa/​PM_Project" 
 +                        alt="codul sursa"></​p>
             <h2 style="​font-family:​Raleway;​ font-weight:​ 600;" id="​download">​Download </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, +            <p>Proiectul poate fi gasit pe <a href="​https://github.com/RobertGrancsa/PM_Project">github</a>, si 
-                  scheme, etc. Un fișier README, un ChangeLog, un script de compilare și copiere automată ​pe uC crează +                  ​descarcat si compilat local.</p>
-                  î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>​ +
-            <h2 style="​font-family:​Raleway;​ font-weight:​ 600;" id="​bibliografieresurse">Bibliografie/​Resurse ​</h2> +
-            <​p>​Listă cu documentedatasheet-uri,​ resurse Internet folosite, eventual grupate pe <​strong>​Resurse +
-                        ​Software</​strong>​ și <​strong>​Resurse Hardware</​strong>​.</p> +
       </​div>​       </​div>​
 </​body>​ </​body>​
 </​html>​ </​html>​
- 
pm/prj2024/mdinica/robert.grancsa.1714774733.txt.gz · Last modified: 2024/05/04 01:18 by robert.grancsa
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