This shows you the differences between two versions of the page.
pm:prj2022:ndrogeanu:scanner_3d [2022/04/30 01:27] ioan_teodor.teugea [Hardware Design] |
pm:prj2022:ndrogeanu:scanner_3d [2022/06/02 12:40] (current) ioan_teodor.teugea [Rezultate Obţinute] |
||
---|---|---|---|
Line 26: | Line 26: | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | ==== Listă componente ==== |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
- | * diagrame de semnal | + | |
- | * rezultatele simulării | + | |
- | </note> | + | |
- | + | ||
- | Listă componente: | + | |
* Arduino Uno | * Arduino Uno | ||
* Senzor laser VL53L0X | * Senzor laser VL53L0X | ||
Line 40: | Line 33: | ||
* Condensator 100uF 50V (2x) | * Condensator 100uF 50V (2x) | ||
* Sursă alimentare 12V 5A | * Sursă alimentare 12V 5A | ||
+ | |||
+ | ==== Schemă ==== | ||
+ | {{ :pm:prj2022:ndrogeanu:teugea_ioan-teodor_circuit_schem.png?600 |}} | ||
+ | |||
+ | ==== Implementare finala ==== | ||
+ | {{:pm:prj2022:ndrogeanu:proiect_implementat.jpg?600|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Arduino trimite datele catre laptop, impreuna cu anumite coduri cu diferite semnificatii: | ||
+ | * -2 - eroare initializare senzor | ||
+ | * 5 - senzorul a fost initializat cu succes | ||
+ | * 20 - a fost efectuata o noua masuratoare. Impreuna cu acest cod se trimit numarul de pasi efectuati de motoarele de rotire si deplasare verticala si distanta masurata | ||
+ | * 10 - s-a terminat scanarea obiectului | ||
- | <note tip> | ||
- | 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 | ||
- | </note> | ||
+ | Centrul de referinta al modelului este centrul platformei pe care sta acesta. Centrul se afla la o distanta cunoscuta **D** fata de senzor. Senzorul intoarce distanta **d1** de la marginea obiectului la senzor. Pe baza acestor doua distante, putem calcula distanta de la centru la marginea obiectului scazand **D - d1**. | ||
+ | |||
+ | Specificatiile motoarelor folosite arata ca 200 de pasi de rotatie corespund cu o rotatie completa de 360 de grade. Astfel, se calculeaza unghiul din care este privit obiectul prin regula de 3 simpla. Pentru deplasarea pe verticala, specificatiile arata ca o rotatie completa a unui motor corespunde cu o deplasare verticala de 8mm. | ||
+ | |||
+ | Astfel, prin aceste 3 masuratori am obtinut pozitia punctului de pe obiect in coordonate cilindrice. Acestea sunt transformate in coordonate carteziene si scrise intr-un fisier .ply | ||
+ | |||
+ | Repository GitHub: [[https://github.com/John-Ted/Scanner-3D-PM]] | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Proiectul executa scanari, insa faptul ca obiectul este vazut doar din lateral, problemele cu senzorul si algoritmii de conversie din point cloud in mesh 3D nu permit o rezolutie extraordinara. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
+ | |||
+ | {{:pm:prj2022:ndrogeanu:point_cloud.png?600|}} | ||
+ | |||
+ | {{:pm:prj2022:ndrogeanu:model_obj.png?100|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Proiectul are potential, creeaza modele 3D, insa mai trebuie lucrat pentru imbunatatirea rezolutiei rezultatelor | ||
+ | |||
+ | == Posibile imbunatatiri == | ||
+ | * Schimbarea senzorului de distanta cu unul mai bun | ||
+ | * Rotirea obiectului si pe alte axe in afara de OY | ||
===== Download ===== | ===== Download ===== | ||