This is an old revision of the document!


Rubik Cube Solver

Introducere

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.

Descriere generală

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.

Hardware Design

Listă de componente

Componentă Cantitate Categorie Rol / Detalii tehnice
Motor Pas cu Pas Nema 17 6 bucăți Mișcare / Actuatoare Asigură acționarea mecanică directă a celor 6 fețe ale cubului.
Driver Motor A4988 6 bucăți Mișcare / Actuatoare Controlul precis al curentului și pașilor pentru fiecare motor Nema 17.
Shield CNC v3 2 bucăți Mișcare / Actuatoare Plăci de extensie pentru interfațarea și montarea rapidă a driverelor.
Senzor de Culoare TCS34725 6 bucăți Senzori & Optică Achiziția de date cromatice (RGB) de pe fiecare fațetă a cubului.
Multiplexor I2C (TCA9548A) 1 bucată Senzori & Optică Permite citirea simultană a celor 6 senzori prin izolarea aceleiași adrese I2C.
Placă Microcontroler ATmega328p 1 bucată Control / Logică Unitatea centrală de procesare (ex: Arduino Uno) care rulează algoritmul.
Placă distribuție putere (9 cai) 1 bucată Alimentare / Protecție Sistem de distribuție 12V echipat cu siguranțe fuzibile pentru protecție la scurtcircuit.
Modul Buck Converter 1 bucată Alimentare / Protecție Coborâtor de tensiune reglabil (1.25V - 37V) pentru stabilizarea liniei de logică (5V).
Sursă de alimentare 1 bucată Alimentare / Protecție Sursa principală de energie, asigură tensiunea necesară motoarelor (max. 30V).
Condensatori Electrolitici 4 bucăți Alimentare / Protecție Filtrarea tensiunii și absorbția vârfurilor de curent pentru protecția driverelor.
Ventilator / Cooler (12V) 1 bucată Alimentare / Protecție Răcirea activă a driverelor A4988 pentru prevenirea protecției termice.
Breadboard 1 bucată Prototipare Placă de test pentru realizarea rapidă a conexiunilor electrice fără lipire.
Cub Rubik 1 bucată Altele Obiectul fizic central supus procesului de scanare și rezolvare mecanică.

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/atoader/razvan.lazar2108.1778906488.txt.gz · Last modified: 2026/05/16 07:41 by razvan.lazar2108
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