This is an old revision of the document!
Proiectul permite scanarea unor obiecte si transformarea lor in modele OBJ ce pot fi integrate in jocuri video sau animatii 3D.
Scopul proiectului este de a reduce timpul si costul de dezvoltare a jocurilor video prin eliminarea nevoii de a modela de la zero diferitele elemente necesare. Astfel, si cei care nu au cunoștiinte de modelare 3D sau talent artistic pot crea rapid modele pentru jocurile lor.
Scannerul foloseste un senzor laser pentru a măsura distanța față de obiect. Prin colectarea distanțelor din mai multe unghiuri și de la înălțimi diferite, se creează un point cloud care este apoi convertit într-un fișier OBJ.
Pentru rotirea obiectului și pentru mișcarea pe verticală a senzorului laser se utilizează două motoare stepper, pentru a avea o precizie cât mai mare. Motoarele sunt controlate cu ajutorul a 2 plăci DRV8825.
Senzorul laser trimite măsurătorile către placa Arduino prin I2C, iar Arduino comunică cu PC-ul prin interfața serială și biblioteca PySerial.
Aplicația de pe PC primește de la Arduino numărul de pași efectuați de fiecare motor și distanța măsurată, date care sunt convertite în coordonate cilindrice pe baza unui fișier de configurare bazat pe datele tehnice ale componentelor. Pentru motoarele utilizate, 200 de pași corespund cu o rotație completă de 360 de grade, iar o rotație completă înseamnă 8mm pentru mișcarea pe verticală a ansamblului senzorului. Coordonatele cilindrice sunt transformate în coordonate carteziene pe baza cărora se creeaza un fișier point cloud în format .ply, care este apoi convertit într-un mesh 3D folosind biblioteca Open3D.
Listă componente:
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.