Digit Recognition Game

Introducere

Proiectul meu constă într-un joc educativ pentru copii care se asigură că au învățat cifrele 0-9:

  • Se primește de la modulul sunet un audio cu cifra, după care trebuie scris acel număr pe touchscreen. Astfel, proiectul va valida corectitudinea cifrei.
  • 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.
  • 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.

Descriere generală

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.

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.

Hardware Design

Sistemul este compus din următoarele module hardware interconectate:

* Microcontroller: ATmega328P (XMINI)
* Modul Afișaj și Input: Ecran TFT LCD 2.8” cu controller ILI9341, comunicare prin interfață SPI, cu panou tactil rezistiv
* 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

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/tarik_ilhan.omer/andrei.oprea3009.txt · Last modified: 2026/05/04 17:33 by andrei.oprea3009
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