This is an old revision of the document!


RetroCell

Introducere

Proiectul constă în realizarea unui terminal de comunicații mobil și independent, cu o estetică retro, pe care rulează un sistem de operare dezvoltat de la zero.

Scopul lui: replicarea funcționalității de bază a unui telefon mobil clasic.

Ideea de la care am pornit: Mi-am dorit să recreez experiența telefoanelor fiabile de la începutul anilor 2000, explorând în același timp la nivel bare-metal, pe un microcontroller cu memorie foarte limitata.

Utilitate: demonstrează capacitatea de a construi o arhitectură software avansată (multitasking, gestiune PROGMEM) și de a integra senzori, protocoale și un management de putere eficient într-un singur sistem portabil. Pentru alții, ar putea fi un dispozitiv de comunicație de urgență / rezervă destul de interesant.

Descriere generală

1. Schema bloc

2. Descrierea Modulelor Hardware

Microcontroller (ATmega328P): Unitatea centrală de procesare a sistemului — gestionează intrările de la tastatură, comunicația cu rețeaua mobilă, afișarea interfeței și generarea semnalelor audio.

Modul GSM (SIM800L): Asigură conectivitatea la rețeaua celulară pentru apeluri vocale și SMS-uri. Comunică cu microcontrolerul prin UART.

Display (Nokia 5110 PCD8544): Ecran LCD monocrom pentru afișarea meniurilor, mesajelor și stării sistemului. Controlat prin SPI pentru un refresh fluid.

Modul RTC (DS3231): Menține data și ora exactă independent de microcontroler, inclusiv în modul repaus. Comunică prin I²C.

Tastatură multiplexată analogic: Mai multe butoane conectate printr-un divizor de tensiune la un singur pin ADC. Butonul apăsat este identificat prin nivelul de tensiune măsurat.

Senzor de lumină ambiantă (LDR): Fotorezistență pe un pin ADC. Valoarea citită ajustează automat luminozitatea ecranului prin PWM.

Buzzer pasiv: Redă tonuri de apel și sunete de sistem. Controlat de Timer 2 (mod CTC/PWM) pentru frecvențe precise fără a solicita procesorul.

Modul de alimentare: Acumulator Li-Ion (3.7V) cu circuit de încărcare și protecție, urmat de un convertor Boost ce stabilizează tensiunea la 5V.

3. Descrierea Modulelor Software

Scheduler cooperativ: Planifică execuția task-urilor (audio, display, senzori) pe baza unui tick generat de Timer 1 la fiecare milisecundă, eliminând funcțiile blocante de tip delay().

Driver grafic (GUI): Translatează text și date de stare într-un frame buffer de pixeli. Fonturile compacte (4×6, 3×5) sunt stocate în Flash (PROGMEM) pentru a conserva RAM-ul.

Motor audio: Redă structuri muzicale (frecvențe și durate din MIDI) stocate în PROGMEM, cu suport pentru legato/staccato și control al frecvenței prin Timer 2.

Controller de evenimente (Input & Power Management): Procesează intrările de la LDR și tastatură, gestionează intrarea în repaus la inactivitate și trezirea prin întreruperi (PCINT).

Parser AT: Formatează comenzile pentru SIM800L și interpretează răspunsurile rețelei (ex: RING, +CMTI).

Hardware Design

Listă componente

Componente și rolul lor

Componentă Referință Rol principal
ATmega328P U5 Microcontroler central — execută codul, controlează toate perifericele
SIM800L U1 Modul GSM — apeluri, SMS, comunicație celulară
Nokia 5110 LCD1 Afișaj grafic 84×48px — interfața utilizator
Li-Ion 18650 U6 Sursă de energie principală 3.7V
TP4056 Încărcator baterie Li-Ion (integrat în modulul Power Bank U7)
MT3608 U7 Step-up 5V (integrat în modulul Power Bank U7)
Buzzer pasiv BF1 Audio GSM (SPKP/SPKN) și tonuri generate de MCU (OC2B)
DS3231 U2 RTC — păstrează ora exactă cu compensare termică
Tranzistor NPN Q1 Driver backlight LCD — comutare PWM pe pinul BL
Fotorezistență LDR RP1 Senzor lumină ambientală — reglaj automat backlight
Butoane tactile S1–S5 Tastatura analogică citită pe un singur pin ADC
Condensator 1000µF C1 Decuplare alimentare SIM800L — absoarbe vârfurile de curent GSM
Condensatori 100nF C2, C3 Decuplare VCC și AREF pe ATmega
Rezistențe R2–R14 Divizoare tensiune, limitare curent, pull-down, pull-up
Cuarț 16MHz Y1 Referință de timp precisă pentru ATmega

Pini ATmega328P

Pin fizic Semnal Periferic Motivul alegerii
PD0 (30) GSM_RX SIM800L TX Pin hardware UART RX — nu poate fi schimbat
PD1 (31) GSM_TX SIM800L RX Pin hardware UART TX — nu poate fi schimbat
PD2 (32) WAKE_INT0 Buton wake-up Suportă întrerupere externă INT0 — trezire din sleep
PD3 (1) OC2B Buzzer pasiv Ieșire PWM hardware Timer2 — generare frecvențe audio
PD5 (9) OC0B Backlight LCD Ieșire PWM hardware Timer0 — control luminozitate
PD6 (10) DC Nokia 5110 Linie Data/Command SPI
PD7 (11) RST Nokia 5110 Reset display
PB2 (14) CS/CE Nokia 5110 Chip Select SPI
PB3 (15) MOSI Nokia 5110 Date SPI hardware — pin fix
PB5 (17) SCK Nokia 5110 Clock SPI hardware — pin fix
PC4 (27) I2C_SDA DS3231 Linie date I2C hardware — pin fix
PC5 (28) I2C_SCL DS3231 Linie clock I2C hardware — pin fix
PC0 (23) ADC0 Tastatura S1–S5 Canal ADC — citire tensiuni diferite per buton
PC1 (24) ADC1 LDR Canal ADC — citire divizor fotorezistență
PC6 (29) RESET# Circuit reset Pin dedicat reset hardware
PB6 (7) XTAL1 Cuarț 16MHz Pin dedicat oscilator extern
PB7 (8) XTAL2 Cuarț 16MHz Pin dedicat oscilator extern
3, 5 GND Mase separate digital și analog
4, 6 VCC Alimentare 5V digital
18 AVCC Alimentare 5V referință ADC
20 AREF Referință tensiune ADC (100nF la GND)

Software Design

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

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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ă ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/vlad.radulescu2901/tudor_andrei.matei.1778627466.txt.gz · Last modified: 2026/05/13 02:11 by tudor_andrei.matei
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