This shows you the differences between two versions of the page.
|
pm:prj2026:atoader:razvan.lazar2108 [2026/05/25 18:27] razvan.lazar2108 [Surse și Funcții Implementate] |
pm:prj2026:atoader:razvan.lazar2108 [2026/05/25 18:30] (current) razvan.lazar2108 [Surse și Funcții Implementate] |
||
|---|---|---|---|
| Line 123: | Line 123: | ||
| * **i2c.h / i2c.c:** Implementează protocolul de magistrală I2C Master pe pinii dedicați ai MCU-ului (PC4 -> SDA, PC5 -> SCL). Rulează funcțiile primitive de control la frecvența standard de 100kHz: i2c_start(), i2c_stop(), i2c_write(), i2c_read_ack() și i2c_read_nack(). | * **i2c.h / i2c.c:** Implementează protocolul de magistrală I2C Master pe pinii dedicați ai MCU-ului (PC4 -> SDA, PC5 -> SCL). Rulează funcțiile primitive de control la frecvența standard de 100kHz: i2c_start(), i2c_stop(), i2c_write(), i2c_read_ack() și i2c_read_nack(). | ||
| * **senzor_culoare.h / senzor_culoare.c:** Gestionează inițializarea (tcs34725_init_sensor()) și citirea registrelor brute de date (Clear, Red, Green, Blue) de la senzorii optici punctuali TCS34725 prin intermediul funcției citeste_culoare_senzor(). | * **senzor_culoare.h / senzor_culoare.c:** Gestionează inițializarea (tcs34725_init_sensor()) și citirea registrelor brute de date (Clear, Red, Green, Blue) de la senzorii optici punctuali TCS34725 prin intermediul funcției citeste_culoare_senzor(). | ||
| - | * **Algoritmul de conversie:* Funcția determina_cod_culoare() implementează o logică bazată pe rapoarte cromatice (R/C, G/C, B/C). Deoarece senzorii sunt fixați pe brațe și nu pot fi centrați perfect pe fiecare pătrățel, acest algoritm elimină erorile cauzate de variațiile de distanță sau lumină ambientală. Funcția izolează și returnează doar codurile celor 6 culori țintă: 0 -> Galben, 1 -> Alb, 2 -> Verde, 3 -> Albastru, 4 -> Roșu, 5 -> Portocaliu. | + | * **Algoritmul de conversie:** Funcția determina_cod_culoare() implementează o logică bazată pe rapoarte cromatice (R/C, G/C, B/C). Deoarece senzorii sunt fixați pe brațe și nu pot fi centrați perfect pe fiecare pătrățel, acest algoritm elimină erorile cauzate de variațiile de distanță sau lumină ambientală. Funcția izolează și returnează doar codurile celor 6 culori țintă: 0 -> Galben, 1 -> Alb, 2 -> Verde, 3 -> Albastru, 4 -> Roșu, 5 -> Portocaliu. |
| * **motoare.h / motoare.c:** Configurează pinii I/O ca ieșiri și asigură liniștea totală în repaus prin trecerea EN_PIN în starea HIGH (motoare_init_pini()). Funcția step_motor() activează exclusiv motorul selectat, setează direcția și generează trenul de impulsuri cu un delay stabil de 800µs între pași. Funcția executa_lista_miscari() parsează lexical șirul primit prin UART folosind strtok(), rulând secvențial mutările cu un delay de 400ms între ele. | * **motoare.h / motoare.c:** Configurează pinii I/O ca ieșiri și asigură liniștea totală în repaus prin trecerea EN_PIN în starea HIGH (motoare_init_pini()). Funcția step_motor() activează exclusiv motorul selectat, setează direcția și generează trenul de impulsuri cu un delay stabil de 800µs între pași. Funcția executa_lista_miscari() parsează lexical șirul primit prin UART folosind strtok(), rulând secvențial mutările cu un delay de 400ms între ele. | ||
| * **main.c:** Reprezintă punctul central de intrare al aplicației. Conține rutina scanare_completa_cub() pentru interogarea senzorilor și trimiterea matricei, precum și bucla infinită (while(1)) care citește asincron octetul de comandă de la PC și direcționează execuția către Sarcina 1 (Scanare) sau Sarcina 2 (Listă mișcări). | * **main.c:** Reprezintă punctul central de intrare al aplicației. Conține rutina scanare_completa_cub() pentru interogarea senzorilor și trimiterea matricei, precum și bucla infinită (while(1)) care citește asincron octetul de comandă de la PC și direcționează execuția către Sarcina 1 (Scanare) sau Sarcina 2 (Listă mișcări). | ||
| * **Codul sursă al proiectului (GitHub):** [[https://github.com/razvanlazar2108/Rubik-Cube-Solver|Repository Rubik-Cube-Solver]] | * **Codul sursă al proiectului (GitHub):** [[https://github.com/razvanlazar2108/Rubik-Cube-Solver|Repository Rubik-Cube-Solver]] | ||
| + | |||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||