Differences

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

Link to this comparison view

pm:prj2026:ionut.otelea:catalina.neagu [2026/05/08 23:23]
catalina.neagu
pm:prj2026:ionut.otelea:catalina.neagu [2026/05/27 17:30] (current)
catalina.neagu [Biblioteci folosite]
Line 1: Line 1:
 ======Mini-Kindle====== ======Mini-Kindle======
-======Catalina ​Neagu======+**Autor:​** ​Neagu Catalina-Andreea \\ 
 +**Grupa:** 333CD
  
 ====== 1. Introducere ====== ====== 1. Introducere ======
Line 6: Line 7:
 ===== Despre ce este proiectul? ===== ===== Despre ce este proiectul? =====
  
-Proiectul reprezinta un mini e-book reader portabil ​inspirat de dispozitivele Kindle, realizat in jurul unui microcontroler ​ESP32 si al unui display E-Ink. Dispozitivul permite afisarea textului din fisiere stocate pe card microSDnavigarea intre pagini folosind un encoder rotativ ​si redarea ​audio prin difuzor in anumite conditii de utilizare.+Un e-book reader portabil ​bazat pe ESP32 si display E-Ink, ​optimizat pentru navigare tactila (haptic) ​si audio.
  
-===== Care este scopul proiectului?​ =====+Scop: Dispozitiv compact pentru citit, cu consum ultra-redus,​ folosind un ecran paper-like. 
 +Utilitate: Afisare pagini text, navigare intuitiva, feedback haptic, portabilitate.
  
-Scopul proiectului este dezvoltarea unui dispozitiv compact si eficient energetic pentru citirea textelor digitale: +===== Ce a inspirat ideea? =====
-  * SPI (display E-Ink si microSD) +
-  * ADC (senzor de lumina LDR) +
-  * PWM si control digital (vibratii si audio) +
-  * management alimentare LiPo+
  
-Proiectul urmareste realizarea unui produs embedded interactiv ​si portabilcu interfata intuitiva ​si consum redus de energie.+Ideea a fost inspirata de dispozitivele moderne de tip Kindle ​si de conceptul de “paper-like display”care ofera confort vizual ​si consum ​foarte ​redus de energie. Proiectul isi propune sa combine experienta unui e-reader minimalist cu functii smart precum feedback haptic.
  
-===== Ce a inspirat ideea? ​=====+====== 2. Functionalitati principale ======
  
-Ideea a fost inspirata de dispozitivele moderne de tip Kindle si de conceptul de “paper-like display”, care ofera confort vizual si consum foarte redus de energie. Proiectul isi propune sa combine experienta unui e-reader minimalist cu functii smart precum control audio, detectie de lumina ambientala si feedback haptic.+Afisare text: Redare continut din Flash (PROGMEM) pe ecran E-Ink.
  
-===== De ce este util acest proiect? =====+Navigare: Encoder rotativ pentru scrolling si buton OK pentru selectie.
  
-Acest mini e-reader: +FeedbackMotor de vibratii (haptic) ​si Buzzer pentru alerte. 
-  * afiseaza texte si pagini pe un display E-Ink; + 
-  * permite navigarea intuitiva prin encoder ​rotativ si butoane; +Gestionare: Alarma de inactivitate (buzzer) la 10 secunde de nefolosire in modul lectura. 
-  * citeste fisiere de pe card microSD; + 
-  * poate reda audio prin difuzor; +====== 3. Descrierea componentelor ====== 
-  * detecteaza nivelul de lumina ambientala folosind senzorul LDR; + 
-  * ofera feedback prin vibratii la interactiune; +^ Componenta ^ Functionalitate principala ^ 
-  * functioneaza portabil, alimentat ​de baterie LiPo; +| ESP32 | Microcontroler principal; gestioneaza ​display-ul, audio si intrarile utilizatorului | 
-  * are consum redus si autonomie ridicata.+| Display ​E-Ink 2.9” | Afisare text si interfata tip e-book cu consum redus | 
 +| Encoder ​rotativ ​| Navigare intre pagini ​si meniuri | 
 +| Buton OK | Confirmare selectie si navigare | 
 +| Motor vibratii ​3V | Feedback haptic ​la interactiune ​| 
 +| Buzzer Pasiv | Feedback audio si alarma ​de inactivitate | 
 +| Breadboard | Prototipare | 
 +| Fire Dupont | Conectarea componentelor |
  
 ---- ----
  
-====== ​2Functionalitati principale ​======+===== Schema Bloc ===== 
 +{{:​pm:​prj2026:​ionut.otelea:​schema_bloc_kindle_1_.png?​500|}} 
 +===== Schema Electrica ​===== 
 +{{:​pm:​prj2026:​ionut.otelea:​schematic_kindle.png?​500|}}
  
-===== Afisare text pe display E-Ink =====+===== Pini folositi si motivatie ​===== 
 +Am distribuit pinii in functie de rolul lor hardware pentru a evita conflictele la pornire:
  
-Dispozitivul afiseaza continutul fisierelor text pe un display ​E-Ink de 2.9 inchoferind o experienta similara cu cea a unui e-book reader comercial.+Display ​E-Ink (SPI): SCK=18MISO=19, MOSI=23 (standard SPI); CS=5, DC=17, RST=16, BUSY=4.
  
-===== Navigare prin encoder si butoane =====+Encoder Rotativ: CLK=27 (folosit pentru ISR), DT=22, SW=21.
  
-Utilizatorul poate naviga intre pagini si meniuri folosind encoderul rotativ si butoanele dedicate.+Buton OK: 13 (intrare cu PULLUP intern).
  
-===== Citire fisiere de pe microSD =====+Motor Vibratii: 26 (iesire digitala catre tranzistor).
  
-Cartile si fisierele text sunt stocate pe un card microSD, accesat prin intermediul modulului TF/microSD.+Buzzer: 32 (iesire digitala pentru tonuri PWM).
  
-===== Redare audio =====+===== Justificarea utilizarii functionalitatilor ​=====
  
-Sistemul poate reda audio printr-un amplificator si un difuzor compact, ​pentru ​functii de asistenta audio sau notificari.+Intreruperi:​ Folosite ​pentru ​encoder (attachInterrupt pe pinul 27) pentru a detecta rotirea imediat, fara a bloca procesorul.
  
-===== Detectie lumina ambientala =====+SPI: Folosit pentru comunicatia de mare viteza cu display-ul E-Ink.
  
-Senzorul LDR permite detectarea nivelului ​de lumina ambientala. In conditii de lumina scazuta, dispozitivul poate activa functii suplimentare precum redarea audio.+GPIO: Utilizate pentru citirea butoanelor si controlul perifericelor ​de feedback (vibratii/​buzzer).
  
-===== Feedback haptic ​=====+===== Hardware Vizualizare ===== 
 +{{:​pm:​prj2026:​ionut.otelea:​pm2.jpeg?​200|}} 
 +{{:​pm:​prj2026:​ionut.otelea:​pm4.jpeg?​200|}} 
 +{{:​pm:​prj2026:​ionut.otelea:​pm3.jpeg?​200|}} 
 +{{:​pm:​prj2026:​ionut.otelea:​pm1.jpeg?​200|}} 
 +====== 5. Implementare software ======
  
-Motorul de vibratii ofera feedback tactil la interactiunea cu butoanele si meniurile.+===== Biblioteci folosite =====
  
-===== Alimentare portabila =====+GxEPD2_BW: Aleasa pentru eficienta in gestionarea buffer-ului E-Ink.
  
-Dispozitivul functioneaza pe baterie LiPo reincarcabila,​ fiind usor de transportat si utilizat fara alimentare externa.+SPI.h: Esentiala pentru comunicatia hardware cu display-ul.
  
-----+PROGMEM: Folosita pentru a stoca textele cartilor direct in Flash, economisind RAM-ul ESP32-ului.
  
-====== 3. Descrierea componentelor ======+===== Schelet proiect ​===== 
 +Proiectul foloseste o masina de stari (enum StareKindle {MENIU, LECTURA}).
  
-^ Componenta ^ Functionalitate principala ^ +Interactiunea:​ Intreruperile ​gestioneaza ​encoderul. Loop-ul principal monitorizeaza butoanele (OK si SW) si verifica timpul scurs pentru alarma ​de inactivitate.
-| ESP32 | Microcontroler principal; ​gestioneaza ​display-ul, cardul SD, audio si intrarile utilizatorului | +
-| Display E-Ink 2.9” | Afisare text si interfata tip e-book cu consum redus | +
-| Modul TF / MicroSD | Citire fisiere text de pe card microSD | +
-| Card microSD | Stocarea fisierelor si a continutului text | +
-| Encoder rotativ | Navigare intre pagini si meniuri | +
-| Butoane | Control suplimentar pentru selectare si navigare | +
-| Baterie LiPo 3.7V | Alimentarea portabila a dispozitivului | +
-| Modul incarcare LiPo (TP4056) | Incarcarea si protectia bateriei | +
-| Amplificator audio | Amplificarea semnalului audio generat de ESP32 | +
-| Difuzor 3W 4Ω | Redare audio | +
-| Senzor lumina LDR | Detectarea luminii ambientale | +
-| Motor vibratii 3V | Feedback haptic la interactiune | +
-| Tranzistor NPN 2N2222 | Controlul motorului de vibratii si protectia ESP32 | +
-| Rezistente | Stabilizarea semnalelor si protectia componentelor | +
-| Condensatoare 100nF | Filtrare zgomot si stabilizare alimentare | +
-| Breadboard | Prototipare fara lipire | +
-| Fire Dupont | Conectarea componentelor | +
-| Switch ON/OFF | Pornirea si oprirea dispozitivului |+
  
-----+Validare: Validarea interactiunii se face prin feedback haptic (vibratii la fiecare apasare OK) si vizual pe display.
  
-===== Schema Bloc ===== +====== 6. Calibrare, optimizari si validare ======
-{{:​pm:​prj2026:​ionut.otelea:​schema_bloc.png?​500|}}+
  
-===== Schema Electrica ​===== +===== Calibrarea elementelor ​===== 
-{{:pm:prj2026:ionut.otelea:schema_electrica.png?600|}}+ 
 +EncoderAm implementat o logica de debounce hardware si software pentru a elimina zgomotul la rotire. 
 + 
 +BuzzerCalibrat pentru frecventa de 4000Hz, frecventa pentru claritatea sunetului. 
 + 
 +Debounce ButoaneUtilizarea unui prag de 300ms (DEBOUNCE_MS) in loop() pentru a evita trigger-ul multiplu la o singura apasare. 
 + 
 +===== Optimizari ====== 
 + 
 +Memorie RAMStocarea tuturor cartilor in Flash prin PROGMEM in loc de variabile String in RAM.
  
-====== 5Functionarea sistemului ======+Performanta Display: Utilizarea display.firstPage() si display.nextPage() intr-un loop do-while, care permite actualizarea ecranului pe bucati, fara a necesita un buffer full-frame in RAM.
  
-Sistemul este controlat de microcontrolerul ESP32care coordoneaza toate perifericele conectate.+Consum: Eliminarea delay()-urilor blocante si utilizarea millis() pentru gestionarea timpuluiceea ce permite ESP32 sa ramana receptiv in orice moment.
  
-Display-ul E-Ink afiseaza paginile text citite de pe cardul microSD. Utilizatorul navigheaza intre pagini folosind encoderul rotativ si butoanele dedicate.+====== 7Functionarea sistemului ======
  
-Fisierele text sunt stocate pe cardul microSD si accesate prin modulul TF. In anumite conditii, precum lipsa luminii ambientale detectata ​de senzorul LDR, dispozitivul poate activa redarea audio prin intermediul amplificatorului si difuzorului.+Sistemul este controlat ​de microcontrolerul ESP32 care coordoneaza perifericele.
  
-Motorul ​de vibratii ofera feedback tactil ​la interactiunea utilizatorului cu dispozitivul.+Display-ul E-Ink afiseaza paginile text citite secvential din Flash. Utilizatorul navigheaza intre carti si pagini folosind encoderul rotativ. La apasarea butonului OK, se intra in modul lectura sau se revine in meniu, fiind insotit ​de un feedback tactil ​(motor vibratii).
  
-Intregul sistem este alimentat ​de o baterie LiPo reincarcabilagestionata ​prin modulul TP4056oferind portabilitate si autonomie ridicata.+Daca utilizatorul ramane inactiv timp de 10 secunde in modul lecturasistemul declanseaza o alarma sonora ​prin buzzer pentru a notifica trecerea timpului. Sistemul este complet asincronpermitand reactii instantanee la intrarile utilizatorului.
pm/prj2026/ionut.otelea/catalina.neagu.1778271829.txt.gz · Last modified: 2026/05/08 23:23 by catalina.neagu
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