This is an old revision of the document!


Scanner 3D

Nume: Țeugea Ioan-Teodor
Grupa: 332CC

Introducere

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.

Descriere generală

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.

Schemă bloc

Hardware Design

Aici puneţi tot ce ţine de hardware design:

Listă componente:

  • Arduino Uno
  • Senzor laser VL53L0X
  • Placă DRV8825 (2x)
  • Motor stepper (2x)
  • Condensator 100uF 50V (2x)
  • Sursă alimentare 12V 5A

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/prj2022/ndrogeanu/scanner_3d.1651271238.txt.gz · Last modified: 2022/04/30 01:27 by ioan_teodor.teugea
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