Differences

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

Link to this comparison view

pm:prj2024:rvirtan:page_flipper [2024/05/16 10:53]
renata.vaideanu [Hardware Design]
pm:prj2024:rvirtan:page_flipper [2024/05/27 19:22] (current)
renata.vaideanu [Software Design]
Line 1: Line 1:
 ====== Page Flipper ====== ====== Page Flipper ======
 +<note tip>
 +   * Nume: Văideanu Renata - Georgia
 +   * Grupa: 332 CD
 +   * Îndrumător:​ Răzvan-Nicolae Vîrtan
 +</​note>​
 ===== Introducere ===== ===== Introducere =====
-Proiectul va consta în dezvoltarea și implementarea unui dispozitiv inovator ce simplifică experiența de lectură prin furnizarea automată a paginilor cărții la apăsarea unui buton. Acest dispozitiv reprezintă o soluție ingenioasă pentru cei care doresc confort și eficiență în timpul lecturii, eliminând necesitatea întoarcerii manuale a paginilor. Ideea aparatului s-a născut din dorința de a simplifica lectura cărților tipărite și de a oferi o soluție practică. Dispozitivul este util deoarece îmbunătățește confortul și eficiența în timpul lecturii, permițându-le utilizatorilor să se concentreze mai mult pe conținutul cărții. Utilizatorul poate controla dispozitivul,​ de asemenea, folosind o aplicație dedicată, care se conectează prin Bluetooth la dispozitivul hardware. Această aplicație permite utilizatorului să controleze funcțiile dispozitivului și să selecteze direcția de întoarcere a paginii (stânga sau dreapta) prin intermediul smartphone-ului sau tabletei lor.+Proiectul va consta în dezvoltarea și implementarea unui dispozitiv inovator ce simplifică experiența de lectură prin furnizarea automată a paginilor cărții la apăsarea unui buton. Acest dispozitiv reprezintă o soluție ingenioasă pentru cei care doresc confort și eficiență în timpul lecturii, eliminând necesitatea întoarcerii manuale a paginilor. Ideea aparatului s-a născut din dorința de a simplifica lectura cărților tipărite și de a oferi o soluție practică. Dispozitivul este util deoarece îmbunătățește confortul și eficiența în timpul lecturii, permițându-le utilizatorilor să se concentreze mai mult pe conținutul cărții.
  
 ===== Descriere generală ===== ===== Descriere generală =====
  
 Partea de hardware a proiectului constă într-o placă de plexiglas echipată cu trei picioare robotice: două pentru susținerea cărții și unul pentru întoarcerea paginilor. De asemenea, avem un al patrulea picioruș care trage pagina în mișcare pentru a facilita procesul de întoarcere a paginilor. În plus, includem butoane pentru semnalarea direcției de întoarcere a paginii (stânga sau dreapta). Această structură hardware asigură o funcționare eficientă și fiabilă a dispozitivului,​ oferindu-i utilizatorului o varietate de posibilități. Partea de hardware a proiectului constă într-o placă de plexiglas echipată cu trei picioare robotice: două pentru susținerea cărții și unul pentru întoarcerea paginilor. De asemenea, avem un al patrulea picioruș care trage pagina în mișcare pentru a facilita procesul de întoarcere a paginilor. În plus, includem butoane pentru semnalarea direcției de întoarcere a paginii (stânga sau dreapta). Această structură hardware asigură o funcționare eficientă și fiabilă a dispozitivului,​ oferindu-i utilizatorului o varietate de posibilități.
 +
 +
 +{{ pm:​prj2024:​rvirtan:​schemabloc2.png }}
 ===== Hardware Design ===== ===== Hardware Design =====
  
 In realizarea proiectului se vor folosi: In realizarea proiectului se vor folosi:
   * Arduino UNO R3   * Arduino UNO R3
-  * x servomotor MG90S +  * x servomotor MG90S 
-  * x modul giroscopic si accelerometru 3 axe GY-521 +  * x modul giroscopic si accelerometru 3 axe MPU6050 
-  * 2 x modul Multiplexor Analogic cu 16 Canale ​CD74HC4067 +  * modul Multiplexor Analogic cu Canale ​PCA9548A ​ 
-  * breadboard, butoane, ​fir+  * breadboard, butoane, ​fire, rezistente 
 + 
 +Oganizarea pinilor: 
 +    * Pinii PWM 3, 5, 6, 9, 10 vor fi folositi de cele 5 servomotoare 
 +    * Pinii 2 si 4 vor fi solositi pentru cele doua butoane 
 +    * Pinii SCL si SDA vor fi conectati la pinii SCL si SDA ai multiplexorului 
 +    * Pinii Analogici A0, A1 si A2 vor fi solositi pentru multimplexor
  
 Componentele proiectului vor fi conectate conform diagramei: Componentele proiectului vor fi conectate conform diagramei:
  
-{{ pm:​prj2024:​rvirtan:​schemacircuit1.png?700 }}+{{ pm:​prj2024:​rvirtan:​schemanoucircuit2.jpeg?​700 }} 
 + 
 +Detalii ale Schemei: 
 +  
 +  * Microcontroler Arduino UNO: 
 +       * Este utilizat pentru a controla servomotoarele și pentru a comunica cu senzori prin intermediul magistralei I2C. 
 +       * Pinii digitali D2-D6 sunt folosiți pentru controlul servomotoarelor (M1-M5). 
 +       * Pinii analogici A4 și A5 sunt utilizați pentru magistrala I2C (SDA și SCL). 
 + 
 +  * Multiplexor I2C PCA9548A: 
 +       * Este utilizat pentru a extinde magistrala I2C și a permite comunicarea cu mai multe dispozitive I2C cu aceeași adresă. 
 +       * Conectat la pinul SDA și SCL de pe Arduino. 
 +       * Cele trei module MPU-6050 sunt conectate la diferitele canale (SC0-SC7) ale multiplexorului. 
 + 
 +  * Senzori MPU-6050: 
 +       * Sunt conectați la canalele multiplexorului I2C pentru a permite citirea datelor de la mai multe giroscoape cu adrese identice. 
 +       * Fiecare MPU-6050 are pini de alimentare (VLOGIC și VDD) conectați la +5V și GND. 
 +       * Pinii SDA și SCL ai fiecărui MPU-6050 sunt conectați la canalele respective de pe multiplexor. 
 + 
 +  * Servomotoare:​ 
 +       * M1-M5 sunt servomotoarele conectate la pinii D3, D5, D6, D9, D10 ai Arduino pentru controlul mișcării. 
 +       * Fiecare servomotor are pini de alimentare (+5V și GND). 
 + 
 +  * Butoane: 
 +       * Două butoane conectate la pinii D8 și D9 ai Arduino, fiecare cu o rezistență de 1K ohmi (R1 și R2). 
 +       * Butoanele vor fi folosite ca trigger care vor incepe procesul de miscare spre stanga sau spre dreapta a paginilor 
 + 
 + 
 +Mai jos se poate gasi o organizare orientativa a componentelor hardware: 
 +{{ pm:​prj2024:​rvirtan:​schemanoucircuit.png?700 }} 
 ===== Software Design ===== ===== Software Design =====
  
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware): +Link pentru repo-ul de Git[[https://​github.com/​Renata2304/​Page-Flipper|Repo Git]]
-  * 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>​ </​note>​
 +** Mediu de dezvoltare: **
 +[[https://​www.arduino.cc/​en/​software|Arduino IDE]]
  
-===== Rezultate Obţinute =====+** Librarii folosite: ** 
 +  * **Adafruit_MPU6050.h** - Această bibliotecă este utilizată pentru a interacționa cu senzorul MPU6050 
 +  * **Wire.h** - Bibliotecă standard pentru comunicarea I2C pe microcontrolerele Arduino 
 +  * **Servo.h** - Bibliotecă pentru controlul servomotoarelor.
  
-<note tip> +** Principalele functii implementate ** 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +  * **pcaselect** - selectează canalul activ pentru comunicația I2C 
-</​note>​+  * **switch_gyro** - selectează senzorul MPU6050 activ  
 +       * 0 - senzorul atasat de servo-ul din dreapta 
 +       * 1 - senzorul atasat de servo-ul din stanga 
 +       * 2 - senzorul atasat de servo-ul din centru 
 +  * **init_mpu** - implementeaza cele 3 giroscoape la inceput, pentru a putea fi accesate prin intermediul multiplexorului 
 +  * **move_weel** - folosit pentru mișcarea roții folosite pentru a se da pagina 
 +  * **move_upper_leg** - folosit pentru a misca piciorul de care este atasat roata 
 +  * **left_leg** si **right_leg** - folosit pentru fixarea sau relaxarea picioarelor din partile laterale ale cartii, datoare sa fixeze ​ cartea
  
-===== Concluzii ===== 
  
-===== Download =====+M-am folosit de: PCAADDR 0x70: Adresa I2C pentru un comutatorul de canale I2C, PCA9548A. 
 +De asemenea, am folosit verctorii steps (steps[i] ​1 pentru pasul curent, pentru a putea monitoriza fluxul de pasi) si first (folosit oentru cei 3 senzori, pentru a i se da servo-ului un imbold pentru a continua miscarea).
  
-<note warning>​ +Mai in detaliu: In cadrul functiei setup(), se initializeaza pinii din Arduino care urmeaza sa fie folositi ulteriordar si senzoriiFuncția loop este responsabilă pentru citirea datelor ​de la senzori, monitorizarea stării butoanelor șefectuarea unor serii de mișcări ale servo-urilor în funcție de aceste stări. Fiecare apăsare a unui buton inițiază o secvență de pași care controlează mișcarea diferitelor componente ale robotului, utilizând datele de la senzorii MPU6050 pentru a ajusta mișcările.se afla codul necesar.
-O arhivă ​(sau mai multe dacă este cazulcu fişierele obţinute în urma realizării proiectului:​ surseschemeetcUn fişier README, un ChangeLog, un script ​de compilare şcopiere automată pe uC crează întotdeauna ​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**. +===== Rezultate Obţinute =====
-</​note>​+
  
-===== Jurnal =====+{{ pm:​prj2024:​rvirtan:​img-20240527-wa0003.jpg?​600 }} 
 +{{ pm:​prj2024:​rvirtan:​img-20240527-wa0011.jpg?​600 }}
  
-<note tip> +Mai jos se pot vedea componentele ​proiectului.  
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul ​proiectului. +{{ pm:​prj2024:​rvirtan:​ColajPiese.jpg?​600 }}
-</​note>​+
  
-===== Bibliografie/Resurse =====+[[https://​drive.google.com/​drive/​folders/​1MHcQC9tpuMDQGORrKlBojF7qTBst9nRw?​usp=drive_link|Link video-uri cu testarea proiectului]]
  
-<​note>​ +Asa cum se vede si din vide-uri, din cauza piciorului care trage pagina spre stanga sau spre dreapta care este, probabil, prea scurt, nu se poate face perfect tragerea paginilor. 
-Listă cu documentedatasheet-uriresurse Internet folositeeventual grupate pe **Resurse Software** ş**Resurse Hardware**+===== Concluzii ===== 
-</note>+ 
 +Proiectul a reprezentat o provocare din punct de vedere hardware, din cauza căutării pieselor necesare. Am început montajul ​cu două multiplexoare CD74HC4067dar am realizat foarte curând că nu puteam comunica eficient cu cele trei giroscoape MPU6050. În cele din urmă, am optat pentru un multiplexor PCA9548A, special conceput pentru astfel de operațiuni. Necesitatea utilizării unui multiplexor a venit din faptul că giroscoapele au adresa I2C hard-codatăiar schimbarea acesteia este foarte dificilă. Cu toate acesteaam îndrăgit foarte mult acest proiect șam învățat foarte multe despre protocolul I2C și utilizările sale
 +===== Download ===== 
 + 
 +[[https://​github.com/​Renata2304/​Page-Flipper|Link Repo Git]] 
 +===== Bibliografie/​Resurse =====
  
 <​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>​
  
 +[[https://​www.youtube.com/​watch?​v=JvmEIBTOv5U|Video-ul care a servit ca inspiratie]]
 +
 +== Resurse Hardware: ==
 +  * [[https://​invensense.tdk.com/​wp-content/​uploads/​2015/​02/​MPU-6000-Datasheet1.pdf|Datasheet MPU6050]]
 +  * [[https://​www.electronicoscaldas.com/​datasheet/​MG90S_Tower-Pro.pdf|Datasheet MG90S]]
 +  * [[https://​www.nxp.com/​docs/​en/​data-sheet/​PCA9548A.pdf|Datasheet PCA9548A]]
 +
 +== Resurse Software: ==
 +  * [[https://​docs.arduino.cc/​software/​ide/​| Documentatie Arduino IDE]]
pm/prj2024/rvirtan/page_flipper.1715845982.txt.gz · Last modified: 2024/05/16 10:53 by renata.vaideanu
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