This is an old revision of the document!
Proiectul meu consta in creearea unui scanner 3d de mici dimensiuni. Cu autorul acestuia vom putea scana obiecte de mici dimensiuni din jurul nostru pentru a putea obtine un fisier .obj al acestora. Cu acest fisier putem dupa sa facem o multitudine de lucruri. Idea din spatele proiectului a pornit de la jocul Minecraft, intr-un moment in care ma jucam cu colegii. Pe Minecraft exista anumite modalitati, utilizand programe externe, de a importa fisiere in joc care sa te ajute la construirea diverselor lucruri, oferita o matrita pe post de ajutor. Aceste fisiere, cu extensia .litematica, pot fi obtinute din fisiere .obj. Deci toata idea a pornit de la dorinta mea de a construit cat mai exact diverse lucruri de prin casa in Minecraft, intr-un mod cat mai exact. Evident, aceasta este doar un mod de a utiliza proiectul meu. Alte aplicatii ale proiectului meu constau in abilitatea de a printa 3d diferite obiecte, cum ar fi figurine de mici dimensiuni pentru machete sau de a importa obiecte din jurul nostru in programe care lucreaza cu aceste tipuri de fisiere, cum ar fi Blender pentru editare scene 3d.
Scanner-ul 3d are o placa de baza pe care se pozitioneaza obiectul pe care dorim sa il scanam. Senzorul de infrarosu scaneaza in timp ce placa de baza se roteste. Dupa o rotatie completa, senzorul isi modifica pozitia verticala si continua procesul pana cand nu o sa mai scaneze nimic.
Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html
Lista de piese:
Motor Pas cu Pas 28BYJ-48 - 2 bucati
Driver motor ULN2003 - 2 bucati
Senzor de Distanta Infrarosu 20-150 cm GP2Y0A02YK0F - 1 bucata
Modul Slot Card Compatibil cu MicroSD - 1 bucata
Buton - 2 bucati
Rezistenta 10kΩ - 2 bucati
Fire
Placa breadboard
Arduino Uno
Pini utilizati:
1. Senzorul de distanta cu infrarosu utilizeaza pinul A0 deoarece el este un senzor analog.
2. Modulul de card SD utilizeaza pinii 10, 11, 12, 13 deoarece acestia sunt pinii desemnati de Arduino pentru protocolul SPI. Pinul 12 este pentru MISO, pinul 11 este pentru MOSI, pinul 13 este pentru SCK, iar pinul 10 este pentru CS. Cel din urma putea fi oricare altul, l-am ales pentru ca este aproape de ceilalti pini.
3. Cele doua drivere de motor utilizeaza pinii 2-5, respectiv 6-9.
4. Cele doua butoane utilizeaza pinii 0 si 1. Chiar daca acestia sunt pini si pentru RX/TX, acest lucru nu este o problema, deoarece nu utilizez interfata seriala in timp ce proiectul functioneaza, deci nu poate interactiona cu cele doua butoane.
Dupa o analiza, am realizat ca motoarele pe care le utilizam erau prea slabe, avand un cuplu aproximativ de 40 N x mm. Astfel, am ales sa utilizez in locul lor motoare Nema 17, modelul 17HS4401, impreuna cu driverele A4988, care au un cuplu de 40 N x cm.
Noua lista de piese:
Motor Pas cu Pas 17HS4401 - 2 bucati
Driver motor A4988 - 2 bucati
Senzor de Distanta Infrarosu 20-150 cm GP2Y0A02YK0F - 1 bucata
Modul Slot Card Compatibil cu MicroSD - 1 bucata
Buton - 2 bucati
Rezistenta 10kΩ - 2 bucati
Condensator 100 uF - 1 bucata
Fire
Placa breadboard
Arduino Uno
Pini noi utilizati:
3. Driverele pentru motoare utilizeaza pinii 9-8 si 7-6.
4. Pinii pentru cele doua butoane vor fi mutati pe pinii 2 si 3.
https://github.com/FraughtCoin/PM-3D-Scanner
Aici se gaseste codul pentru proiect.
Am utilizat bibliotecile SPI.h, SD.h si GP2Y0A02YK0F.h. SPI.h si SD.h au fost utilizate pentru ca utilizez un adaptor de card SD care utilizeaza SPI. GP2Y0A02YK0F.h este o biblioteca pentru a facilita utilizarea senzorului de infrarosu cu acelasi nume.
Elementele de noutate reprezinta montajul fizic,
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.