This shows you the differences between two versions of the page.
|
pm:prj2026:florin.stancu:ioana_ligia.popescu [2026/05/08 20:14] ioana_ligia.popescu [Descriere generală] |
pm:prj2026:florin.stancu:ioana_ligia.popescu [2026/05/13 12:35] (current) ioana_ligia.popescu [Bibliografie/Resurse] |
||
|---|---|---|---|
| Line 13: | Line 13: | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| - | {{ :pm:prj2026:florin.stancu:ioana_ligia.poescu:schema_magic_cast.png |}} | + | {{ :pm:prj2026:florin.stancu:ioana_ligia.poescu:diagrama_bloc_magiccast.drawio.png |}} |
| + | |||
| + | **Descrierea Modulelor și a Modului de Interacțiune** | ||
| + | |||
| + | Proiectul "Magic Cast" este compus dintr-o serie de module hardware (senzori, actuatori, unitate de procesare) și module software (algoritmi de procesare a semnalului și decizie), care colaborează pentru a transforma mișcarea fizică într-o acțiune virtuală. | ||
| + | |||
| + | **1. Module Hardware** | ||
| + | * Sursă de Alimentare (Acumulator 18650 + Modul Boost 5V): Asigură portabilitatea "baghetei". Modulul de boost ridică tensiunea bateriei Li-Ion la 5V stabili, alimentând direct microcontrolerul și senzorul. | ||
| + | * Modul Input Senzorial (MPU6050 - Accelerometru & Giroscop): Este responsabil cu captarea datelor de mișcare pe 6 axe (accelerație și rotație) în spațiul 3D. | ||
| + | * Buton "Trăgaci" (Push-button): Un element de control conectat la un pin digital (GPIO) cu rezistență de pull-up internă. Acționează ca un semnal de declanșare (trigger) pentru a delimita momentul în care utilizatorul desenează forma în aer. | ||
| + | * Unitatea Centrală (Microcontroler ATmega328P - Xplained Mini): Reprezintă creierul hardware al proiectului. Acesta interoghează senzorii, execută algoritmul software și comandă perifericele de ieșire. | ||
| + | * Module de Feedback Local (Buzzer Pasiv & LED RGB): Oferă confirmare senzorială utilizatorului. Buzzerul generează feedback audio (frecvențe specifice fiecărei vrăji prin semnale PWM), iar LED-ul RGB își schimbă culoarea în funcție de elementul vrăjii invocate (ex: albastru pentru apă, roșu pentru foc). | ||
| + | * Interfața cu Jocul (Laptop / Monitor): Rulează aplicația/jocul final care primește comenzile și afișează efectele vizuale (ex: distrugerea monștrilor). | ||
| + | |||
| + | **2. Module Software (Logica internă pe ATmega328P)** | ||
| + | * Modulul de Filtrare Zgomot: Preia datele brute de la senzorul MPU6050, care conțin adesea "zgomot" cauzat de tremurul mâinii. Folosește un filtru matematic (ex: filtru trece-jos sau filtru complementar) pentru a netezi valorile înainte de analiză. | ||
| + | * Modulul de Detecție Traseu (Segmentare): Acest modul software se activează doar când starea butonului hardware trece în LOW (apăsat). Înregistrează coordonatele mișcării succesive într-un buffer (vector de date) pentru a forma un traseu continuu. | ||
| + | * Modulul de Identificare Vrajă (Pattern Matching): Procesează traseul finalizat (după eliberarea butonului). Analizează variațiile geometrice din buffer și, printr-un algoritm de recunoaștere a formelor (ex: calcularea schimbărilor de direcție sau distanțe minime), asociază traseul cu un anumit gest prestabilit (Cerc, Pătrat, Zig-Zag). | ||
| + | |||
| + | **3. Modul de interacțiune a modulelor (Fluxul datelor)** | ||
| + | Sistemul funcționează pe baza unui flux continuu de tipul Input -> Procesare -> Output: | ||
| + | * Inițierea acțiunii: Microcontrolerul așteaptă o acțiune pe pinul GPIO al Butonului Trăgaci. Când utilizatorul apasă butonul și mișcă bagheta, sistemul intră în starea de achiziție. | ||
| + | * Achiziția datelor: Prin intermediul magistralei I2C (pinii SDA și SCL), ATmega328P citește în mod repetat datele senzorului MPU6050 la o frecvență fixă. | ||
| + | * Procesarea (Software): Datele citite trec secvențial prin Modulul de Filtrare, sunt stocate de Modulul de Detecție a Traseului, iar la eliberarea butonului, Modulul de Identificare analizează traseul și returnează un cod specific vrăjii (ex: VRAJA_CERC). | ||
| + | * Generarea Output-ului: Odată ce vraja a fost identificată, microcontrolerul ia trei acțiuni simultane: | ||
| + | * Trimite semnale PWM modificate către Buzzer pentru a genera sunetul specific. | ||
| + | * Modifică starea pinilor PWM/GPIO legați la LED-ul RGB pentru a afișa culoarea vrăjii. | ||
| + | * Transmite un șir de caractere (ex: "CAST:WATER\n") prin protocolul UART (Serial) către Laptop, declanșând acțiunea în jocul video. | ||
| - | <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ă. | ||
| - | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | ||
| - | </note> | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| + | **Lista de piese (Bill of Materials - BOM)** | ||
| + | * __Microcontroler__: Placă de dezvoltare ATmega328P Xplained Mini (creierul proiectului). | ||
| + | * __Senzor Mișcare__: Modul GY-521 (IC original MPU-6050) – Accelerometru și giroscop pe 3 axe (comunicație I2C). | ||
| + | * __Alimentare__: Carcasă Powerbank USB 5V pentru acumulatori 18650 – Va oferi tensiune stabilă de 5V și portabilitate pentru baghetă. | ||
| + | * __Buton Control__: Buton Push 6x6x6 mm – Folosit ca ”trăgaci” pentru a iniția citirea gestului. | ||
| + | * __Feedback Audio__: Buzzer pasiv (difuzor intern de placă de bază PC) – Pentru redarea efectelor sonore specifice fiecărei vrăji. | ||
| + | * __Feedback Vizual__: * 1x LED RGB 10mm (catod comun) – Va lumina în culoarea specifică vrăjii (ex: roșu=foc, albastru=apă). | ||
| + | * * LED-uri opționale pentru status (Bicolor, Galben 3mm, Verde 5mm) – Pentru a semnaliza starea baghetei (ex: galben pentru ”mod înregistrare”, verde pentru ”gata de utilizare”). | ||
| + | * Unordered List ItemSuport Fizic: Placă PCB prototipare dublă față, 4x6cm, FR4. | ||
| + | |||
| + | {{ :pm:prj2026:florin.stancu:ioana_ligia.poescu:schema_electrica.png?800 |}} | ||
| + | |||
| + | **1. Diagrama de semnal I2C (Comunicația cu senzorul MPU-6050)** | ||
| + | {{ :pm:prj2026:florin.stancu:ioana_ligia.poescu:i2c_diagramasemnal.png |}} | ||
| + | Comunicația este inițiată printr-o condiție de START pe linia de date (SDA), urmată de transmiterea adresei senzorului și a bitului de Read/Write. Sincronizarea este menținută de semnalul de ceas (SCL) generat de microcontroler. Fiecare pachet de date este validat de un bit de confirmare (ACK). | ||
| + | |||
| + | **2. Diagrama de semnal CTC / Timer (Controlul Buzzerului Pasiv)** | ||
| + | {{ :pm:prj2026:florin.stancu:ioana_ligia.poescu:pwm_diagramasemnal.png |}} | ||
| + | Pentru a crea efectele sonore specifice fiecărei vrăji (frecvențe diferite), se utilizează Timer/Counter-ul intern al microcontrolerului în modul CTC (Clear Timer on Compare Match). Conform diagramei, timerul (TCNTn) se incrementează sincron cu ceasul (divizat prin prescaler) până când atinge valoarea maximă definită în registrul de comparație (OCRnx). În acel moment (TOP), timerul se resetează la zero și flag-ul de Output Compare (OCFnx) este setat. Poate fi controlat software exact prin modificarea valorii TOP, dictând astfel nota muzicală redată de buzzer. | ||
| <note tip> | <note tip> | ||
| Aici puneţi tot ce ţine de hardware design: | Aici puneţi tot ce ţine de hardware design: | ||
| Line 65: | Line 107: | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| + | **Resurse Hardware:** | ||
| + | * https://ww1.microchip.com/downloads/en/DeviceDoc/50002659A.pdf (datasheet ATmega324P Xplained Mini) | ||
| + | * https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42743-ATmega324P_Datasheet.pdf (datasheet ATmega324P -> pentru diagrame electrice) | ||
| + | * https://mysii.gorriens.net/images/arduino/capteurs/gy-521_mpu-6050_3-axis_gyroscope_and_acceleration_sensor_en.pdf(datasheet accelerometru GY-521mpu-6050) | ||
| + | * https://www.snapeda.com/parts/GY-521/GODREAM%20FORDREAM%20CO.,%20LIMITED/view-part/?welcome=home&ref=search&t=GY-521&ab_test_case=b (biblioteca piesa accelerometru pt. Fusion) | ||
| + | |||
| + | |||
| + | **Resurse Software:** | ||
| <note> | <note> | ||