3D Scanner Holder
Contents
Prečo?
Pri používaní 3D Davis scanner [1] sme zistili, že jemná manipulácia s malým objektom je náročná a komplikuje skenovanie, preto sme sa rozhodli uľahčiť si robotu a vyrobiť otáčavý držiak na malé objekty.
Postup
Vytvoríme si v 3D programe držiak, ktorý sa umiestni na motorček (steper, alebo servo), ktorý bude ovládaný pomocou arduina, aby sa vedel otáčať o presne definovaný uhol dokopy o 360° okolo vertikálnej osi.
Držiak by mal plošinu, ktorá by sa vedela otáčať ešte aj o 90° okolo horizontálne osi. Keďže program si vyžaduje, skenovanie aj z hora, čo je samozrejmé a namsieto toho, aby sa manipulovalo s kamerou, sa skenovaný objekt otočí o po horizontálnej osi a tak sa následne otáča.
Čo k tomu potrebujeme?
Hardware- hmotné veci: motor, arduino + súčiastky, držiak, krabička. Software- program ktorý bude spracovávať analógový signál z joysticku a ovládať motor, ktorý bude otáčať podnos.
Motor
Na tento projekt sme použili 5 žilový krokový motor z tlačiarne napájaný 12 V DC (typ: msgb048a54 01). Jeho veľkosti sú prispôsobené všetky vyrobené časti. Tento motorček je veľmi výhodný v tom, že sa dokáže jednoducho ovládať a vykonávať jeden krok čo je v prípade nášho krokového motora 1/51 z celej otáčkyDržiak
V programe FreeCAD sme si vytvorili 3D model držiaka. Vďaka technológii 3D tlače, dokážeme veľmi jednoducho vytvoriť to čo potrebujeme a tak sa vyhneme známemu problému pri zostavovaní ľubovoľnej aparatúry "držiak držiaku držiaku..."
Držiak sa skladá z nasledujúcich častí:
Základňa
Slúži na držanie krokového motora v stabilnej polohe a taktiež drží aj nosnú časť na ktorej je klzná plocha.
Nosná časť
Slúži na držanie Klznej plochy a je umiestnená na základni prostredníctvom koľajničky, ktorá dovoľuje jemnú manipuláciu, aby ozubené kolesá do seba správne zapadli.Klzná plocha
Aby sa celý systém mohol otáčať musí mať malé trenie, najjednoduchším riešením je klzné ložisko- keďže sú materiály dostatočne tvrdé a hladké, nie je to problém. Klzná plocha je umiestnená na nosnej časti.Ozubené koleso na osi motorčeka
je to jednoduché ozubené koleso prispôsobené na upevnenie o krokový motor, má 12 zubov.Veža
Veža je umiestnená na klznej ploche, na ktorej je na spodnej strane ozubené koleso ktoré má 27 zubov, čo je viac oproti ozubenému kolesu ktoré je umiestnené na motorčeku, tým je zabezpečený prevod do pomala 2,25:1. Cez stred ozubeného kolesa je diera, ktorá slúži na to aby dochádzalo iba k rotácii okolo vertikálnej osi. Veža je tak pohyblivá o 360° okolo vertikálnej osi. Taktiež sú na nej ramená, ktoré držia podnos.Podnos
Posledná časť držiaka, na ktorý sa pokladá objekt, ktorý chceme skenovať. Pomocou jednoduchého kĺbu sa dá otáčať okolo horizontálnej osi.Arduino
Systém ovládanie je veľmi jednoduchý. Využíva sa joystick na ovládanie krokového motora, ktorý následne otáča vežu. Na displeji sa zobrazí počet stupňov o koľko sa otočí vzhľadom na určený štartovací bod.
Potrebné súčiastky: Arduino, joystick, LED displej, motor (v našom prípade krokový), ULN2003, 12V DC zdroj a dostatočný počet káblov.
Zapojenie
Krokový motor je napojený na ULN2003, kde sú 4 ovládacie piny a 1 spoločné napájanie. Návod ako správne zapojiť 5 žilový krokový motor je na youtube
ULN2003 je napojená na arduino na piny (D8, D9, D10, D11). Joystick, je patrične zapojený na analógový vstup do arduina A0- stačí iba 1 vstup, keďže ovládame iba 1 os. Napájanie motora iba z arduina nie je dostačujúce, preto je potrebné mať dodatočný DC zdroj. LED displej je napojené na (piny) a zobrazuje uhol o ktorý sme už otočili náš držiak.Kód:
#include <Stepper.h> int joyX = 0; int joyVal; const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution // for your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0; // number of steps the motor has taken void setup() { // initialize the serial port: Serial.begin(9600); } void loop() { joyVal = analogRead(joyX); // step one step: if (joyVal > 600 && joyVal <= 900 ) { Serial.println(joyVal); myStepper.step(1); Serial.print("steps:"); Serial.println(stepCount); stepCount++; delay(500); } if (joyVal > 900 ) { Serial.println(joyVal); myStepper.step(1); Serial.print("steps:"); Serial.println(stepCount); stepCount++; delay(100); } if (joyVal < 400 && joyVal >= 100 ) { Serial.println(joyVal); myStepper.step(-1); Serial.print("steps:"); Serial.println(stepCount); stepCount--; delay(500); } if (joyVal < 100) { Serial.println(joyVal); myStepper.step(-1); Serial.print("steps:"); Serial.println(stepCount); stepCount--; delay(100); } }
Krabička
Celý systém je uložený v krabičke, ktorá sa skladá z dvoch častí strojovňa a garáž, ktorá tak zabezpečí prehľadnosť a ľahkú manipuláciu. Na vytvorenie krabičky odporúčame Rozšírenie do Inkscapu laser tool- Tabbed box [2]
Pre tento projekt sm echeli vyskúšať ako zvládneme presnosť rezu pri 8 mm plexiskle. Pri nastavení lasera rýchlosť 0,7 a výkon 90 sme dokázali takýto hrubý materiál prerezať. V inkscape sme využili rozšírenie Tabbed box, kde sú rozmery a nastavenia nasledovné:
strojovňa
V tejto časti krabičky je umiestnené arduino, joystick a LED displej a vstup na DC zdroj a výstup na kontrolu držiaka.
garáž
V tejto oddelenej časti je umiestnený samotný držiak, ktorý má dostatočne dlhý kábel, aby sa vedel pohodlne umiestniť na požadované miesto skenovania . Toto káblové spojenie strojovne s držiakom zaručí, aby sme sa náhodou neposunuli celý systém, keď budeme pomocou joysticku ovládať otáčanie.
Anglický text pre výstavu
This is a prototype of holder for small objects for 3D scanning. It is controled by arduino via joystick. The prototype use stepper motor to turn a tower by little steps.