This shows you the differences between two versions of the page.
|
pm:prj2026:cezar.zlatea:vasile.vornicescu [2026/05/19 16:58] vasile.vornicescu [Software Design] |
pm:prj2026:cezar.zlatea:vasile.vornicescu [2026/05/19 18:30] (current) vasile.vornicescu [Software Design] |
||
|---|---|---|---|
| Line 97: | Line 97: | ||
| Fiecare 3D punct din grid, va fi conectat cu vecinii săi cu o linie, iar obiectul final va fi un fel de "line mesh". Nu voi randa explicit triunghiuri. Deoarece primitivele nu vor fi triunghiuri ci linii, nu este necesar un test de adâncime, respectiv un framebuffer, care ar fi mult prea mare pentru a încăpea în cei 8KB de SRAM. | Fiecare 3D punct din grid, va fi conectat cu vecinii săi cu o linie, iar obiectul final va fi un fel de "line mesh". Nu voi randa explicit triunghiuri. Deoarece primitivele nu vor fi triunghiuri ci linii, nu este necesar un test de adâncime, respectiv un framebuffer, care ar fi mult prea mare pentru a încăpea în cei 8KB de SRAM. | ||
| - | ==Logarea datelor== | + | ===Logarea datelor=== |
| User-ul își va putea salva funcțiile preferate pe un SD card. Pentru aceasta voi folosi **SPI**. Înițierea SPI-ului este realizată în fișierul ''spi.h''. Pentru montarea și lucrul cu fișiere voi folosi librăria externă Petit FatFs. Fișierul pentru funcții ''data.txt'' deja există pe cardul SD. Acolo voi stoca funcțiile în formă simbolică. | User-ul își va putea salva funcțiile preferate pe un SD card. Pentru aceasta voi folosi **SPI**. Înițierea SPI-ului este realizată în fișierul ''spi.h''. Pentru montarea și lucrul cu fișiere voi folosi librăria externă Petit FatFs. Fișierul pentru funcții ''data.txt'' deja există pe cardul SD. Acolo voi stoca funcțiile în formă simbolică. | ||
| - | ==Algoritmi și structuri de date:== | + | ===Algoritmi și structuri de date:=== |
| * **Geometry.h**: aici am definit diverse funcții geometrice și matematice ce operează pe tipul de date descris în secțiunea precedentă: | * **Geometry.h**: aici am definit diverse funcții geometrice și matematice ce operează pe tipul de date descris în secțiunea precedentă: | ||
| * Operații primitive pe numere în virgulă fixă: | * Operații primitive pe numere în virgulă fixă: | ||
| Line 121: | Line 121: | ||
| - | ===Elemente de UI=== | + | ===Elemente de UI și User Experience=== |
| + | ==UI== | ||
| + | Pagina de pornire va permite utilizatorului să tasteze o funcție de la tastatură, încarce una deja existentă de pe micro SD sau să marcheze funcția tastată pentru salvare. Va fi un meniu simplu, în partea de sus va fi o bară unde funcția curentă va putea fi vizualizată simbolic. | ||
| + | ==User Experience== | ||
| + | Deoarece tastatura are doar 16 butoane, voi folosi 2 "layout-uri". Unul din cele 16 butoane va schimba layout-ul: | ||
| + | * Layout 0: | ||
| + | * Butonul de schimbare layout (1 buton). | ||
| + | * Buton de ștergere ultim caracter (1 buton). | ||
| + | * Cifre 0-9 (10 butoane). | ||
| + | * 2 variabile: x, y (2 butoane). | ||
| + | * Operatorul '(' și ')' (2 butoane). | ||
| + | * Layout 1: | ||
| + | * Butonul de schimbare layout (1 buton). | ||
| + | * Buton de ștergere ultim caracter (1 buton). | ||
| + | * Buton de finalizare, treci la plotarea functiei (1 buton). | ||
| + | * Operații elementare '+', '-', '/', '*' (4 butoane). | ||
| + | * Operații avansate ''sin'', ''cos'', ''exp'', ''log'', ''floor''. (5 butoane). | ||
| + | * Operatorul '(' și ')' (2 butoane). | ||
| + | * Toggle save for SD. (1 buton). | ||
| + | * Open saved functions menu (1 buton). | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||