This is an old revision of the document!
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.
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).
| 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 |
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.