This is an old revision of the document!
Proiectul constă într-un robot capabil să recunoască culorile fețelor unui Cub Rubik și să le reasambleze în ordinea corectă. Acesta funcționează ca o punte între lumea digitală și cea fizică, primind instrucțiuni și transformându-le în mișcări reale pentru a rezolva cubul.
Scopul principal este realizarea unui sistem interactiv care să poată demonstra vizual etapele de rezolvare ale cubului. Nu este doar o mașinărie care face totul singură, ci un dispozitiv care permite utilizatorului să urmărească și să controleze întreg procesul, pas cu pas.
Totul a plecat de la dorința de a vedea cum concepte precum inteligența artificială pot fi aplicate într-un obiect tangibil. Am pornit de la ideea unui robot care să poată comunica cu noi: el ne spune ce vede pe cub, iar noi îi putem spune ce mișcări să facă, evitând astfel o funcționare rigidă și complet automată.
Pentru mine, utilitatea este practică: învăț să stăpânesc interacțiunea dintre senzori și partea mecanică într-un mod fluid. Pentru ceilalți, robotul are un rol strict didactic. Este mult mai simplu să înveți să rezolvi cubul urmărind o demonstrație fizică, executată în timp real, decât încercând să descifrezi scheme abstracte dintr-o carte sau de pe internet.
PC (Interfața de control): Reprezintă nivelul superior de decizie. Acesta rulează algoritmii de rezolvare a cubului, calculează soluția optimă și transmite instrucțiunile către microcontroler prin protocolul UART.
ATmega328P (Microcontrolerul): Este unitatea centrală de procesare. Acesta acționează ca un interpret între software și hardware: „traduce” comenzile primite prin interfața serială în semnale de comandă pentru motoare și gestionează interogarea senzorilor.
Senzori C (Senzorii de culoare): Șase unități de citire care identifică culorile fețelor cubului. Aceștia convertesc lumina reflectată în date digitale ce sunt transmise către microcontroler prin bus-ul de date I2C.
Modulul I2C (Multiplexor): Deoarece senzorii partajează aceeași adresă sau sunt numeroși, acest modul permite gestionarea lor eficientă folosind doar doi pini de date (SDA/SCL), optimizând astfel fluxul de informații și cablajul.
CNC Shield: Plăci de extensie ce facilitează distribuția semnalelor către drivere. Acestea organizează pinii de control, permițând microcontrolerului să gestioneze simultan cele 6 motoare necesare proiectului.
Drivere: Module de putere care primesc semnalele logice de joasă tensiune de la microcontroler și livrează curentul necesar motoarelor. Acestea interpretează impulsurile primite pentru a executa pașii fizici.
Motoare Stepper: Actuatori de precizie care rotesc fețele cubului. Controlul lor este realizat prin semnale de tip Step/Dir, generate software prin rutine de întreruperi (ISR) pentru a asigura un unghi de rotație exact (90 de grade sau 180 de grade).
LCD: Afișează feedback vizual și starea sistemului în timp real.
Sursa de tensiune & Distribuitorul de putere: Asigură energia necesară întregului ansamblu. Distribuitorul separă ramura de forță (pentru motoare) de cea de control, pentru a evita interferențele electrice.
Regulator de tensiune: Coboară și stabilizează tensiunea pentru componentele logice sensibile (microcontroler și senzori), protejându-le împotriva fluctuațiilor.
Cooler: Sistem de răcire activ care previne degradarea termică a driverelor și a regulatorului în timpul funcționării prelungite.
Lista componente:
6 bucati Motor Pas cu Pas Nema 17
6 bucati Driver Motor A4988
1 bucata Sursa alimentare (maxim 30V)
1 bucata Cub Rubik
4 bucati Condensatori Electroliti
1 bucata Breadboard
1 bucata placa ATmega328p microcontroler
6 bucati Senzori Culoare TCS34725
1 bucata Multiplexor I2C (TCA9548A)
2 bucati Shield CNC v3
1 bucata Modul coborator de tensiune reglabil 1.25V - 37V
1 bucata Ventilator/Cooler ce se conecteaza la 12V
1 bucata Placa distributie putere, 9 cai, 12V, cu sigurante
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.