This shows you the differences between two versions of the page.
|
pm:prj2026:tarik_ilhan.omer:andrei.oprea3009 [2026/05/03 22:24] andrei.oprea3009 |
pm:prj2026:tarik_ilhan.omer:andrei.oprea3009 [2026/05/04 17:33] (current) andrei.oprea3009 [Descriere generală] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Letter Recognition Game ====== | + | ====== Digit Recognition Game ====== |
| ===== Introducere ===== | ===== Introducere ===== | ||
| Line 7: | Line 7: | ||
| * Scopul proiectului este o implementare low-level de machine learning, o implementare pe un microcontroller cu puțină memorie RAM și Flash. | * Scopul proiectului este o implementare low-level de machine learning, o implementare pe un microcontroller cu puțină memorie RAM și Flash. | ||
| * Am vrut să creez un proiect pe low-level Machine Learning prin care să combin Machine Learning cu Hardware limitat. Am vrut și să înțeleg mai bine materia PM prin configurarea unui modul de sunet prin UART și a unui touchscreen prin I2C cu ajutorul datasheeturilor aferente. | * Am vrut să creez un proiect pe low-level Machine Learning prin care să combin Machine Learning cu Hardware limitat. Am vrut și să înțeleg mai bine materia PM prin configurarea unui modul de sunet prin UART și a unui touchscreen prin I2C cu ajutorul datasheeturilor aferente. | ||
| - | * Este util pentru mine, deoarece mă ajută să înțeleg concepte din 2 arii diferite, și pentru alții deoarece arăt că este posibil chiar și pe un microcontroller mic ca este posibil să fac un proiect complex, care poate fi scalat pe unități hardware mai performante în concordanță cu capacitatea lor. | + | * Este util pentru mine, deoarece mă ajută să înțeleg concepte din 2 arii diferite, și pentru alții deoarece arăt că este posibil chiar și pe un microcontroller mini ca este posibil să fac un proiect complex, care poate fi scalat pe unități hardware mai performante în concordanță cu capacitatea lor. |
| </note> | </note> | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| <note tip> | <note tip> | ||
| - | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | 1. Etapa de Input (Desenare): |
| + | Utilizatorul desenează o cifră pe panoul tactil al ecranului ILI9341. Microcontrolerul citește coordonatele de la controller-ul tactil prin magistrala SPI și aprinde pixelii corespunzători pe ecran, oferind feedback vizual imediat. | ||
| - | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | 2. Etapa de Declanșare (Interrupt): |
| + | Când desenul este finalizat, utilizatorul apasă butonul Recognize. Această acțiune generează o întrerupere hardware pe pinul INT0, semnalizând procesorului că trebuie să oprească modul de desenare și să înceapă procesarea datelor. | ||
| + | |||
| + | 3. Etapa de Procesare (Inferență AI): | ||
| + | ATmega328P preia matricea de pixeli formată pe ecran și rulează algoritmul de rețea neurală. Acesta calculează probabilitățile pentru fiecare clasă (cifrele 0-9) și determină care este cifra cu cel mai mare scor de încredere. | ||
| + | |||
| + | 4. Etapa de Output (Feedback): Microcontrolerul trimite un pachet de date prin UART către DFPlayer Mini. Modulul caută pe cardul SD fișierul audio asociat cifrei identificate și redă vocea prin Difuzor. | ||
| + | |||
| + | 5. Resetarea sistemului: | ||
| + | Apăsarea butonului Clear (conectat la INT1) golește buffer-ul de memorie și trimite o comandă de "fill screen" către ecran, pregătind sistemul pentru o nouă introducere de date. | ||
| + | |||
| + | {{:pm:prj2026:andrei.oprea3009:block_diagram.png?500x333}} | ||
| </note> | </note> | ||
| Line 20: | Line 32: | ||
| <note tip> | <note tip> | ||
| - | Aici puneţi tot ce ţine de hardware design: | + | Sistemul este compus din următoarele module hardware interconectate: |
| - | * listă de piese | + | |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * **Microcontroller:** ATmega328P (XMINI) \\ |
| - | * diagrame de semnal | + | * **Modul Afișaj și Input:** Ecran TFT LCD 2.8" cu controller ILI9341, comunicare prin interfață SPI, cu panou tactil rezistiv \\ |
| - | * rezultatele simulării | + | * **Modul Audio:** DFPlayer Mini (TF-16P) care decodează fișiere MP3/WAV, comunicând cu MCU-ul prin interfața UART (Serial). \\ |
| + | * **Output Audio:** Difuzor 8Ω / 3W conectat direct la amplificatorul intern al DFPlayer-ului. \\ | ||
| + | * **Interfață Control:** Butoane tactile conectate la pinii de întreruperi externe (INT0, INT1) pentru funcțiile de "Recognize" și "Clear". \\ | ||
| + | * **Stocare:** Card MicroSD pentru salvarea fișierelor audio și a ponderilor rețelei neurale. \\ | ||
| + | \\ | ||
| + | |||
| + | **Scheme Electrice:** TBC | ||
| </note> | </note> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ===== Software Design ===== | ===== Software Design ===== | ||