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:

Microcontroler ATmega328P

Modul GSM SIM800L (cu antenă)

Ecran LCD Nokia 5110 (PCD8544)

Acumulator Li-Ion 18650

Modul încărcare baterie TP4056

Convertor Step-Up MT3608

Buzzer Pasiv

Modul RTC DS3231

Tranzistor NPN (BC547 / 2N2222)

Fotorezistență (LDR)

Butoane Tactile (Push Buttons)

Condensator Electrolitic 1000µF

Condensatori Ceramici 100nF

Set Rezistențe (1kΩ, 10kΩ, 220Ω, etc.)

Oscilator Cuarț 16MHz

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.1778016961.txt.gz · Last modified: 2026/05/06 00:36 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