Proiect: Valkyrie CNC

Autor: TinHead -10/07/2010-

Salutare !

CNC

Valkyrie CNC este o masina de debitare cu trei axe, controlata de calculator, ce foloseste o freza pentru a decupa in material forme, concepute cu ajutorul unui program CAD/CAM.

Intro

Inspiratia pentru acest proiect mi-a venit dand intr-o zi peste proiectul RepRap (www.reprap.org) o imprimata 3D cu trei axe controlata de un Arduino. Din acel moment am hotarat ca imi trebuie si mie asa ceva, asa ca am studiat in deataliu problema si am ajuns la concluzia ca imi va fi enorm de greu sa fac rost de componentele printate in plastic si de curelele dintate, restul nu ar fi fost o problema prea mare. Sa cumpar un kit nu s-a pus problema de la inceput din cauze de $$. Asa ca am cautat o alternativa in genul celor prezentate pe siteul RepRap sub denumirea de RepStrap, o masina intermediara care ar putea ajuta la construirea celei finale prin printarea componentelor necesare in house.

Tot cautand,  am dat peste siteul acestui tip: www.buildyourcnc.com, care pe langa faptul ca produce o gama de kituri de CNC-uri de vanzare, a postat pe site o gramada de filmulete in diverse etape ale asamblarii. Urmarind-ule mi-am facut o idee despre cum ar trebui facuta partea mecanica si am folosit ideeile prezentate acolo in constructia mea.

Intr-un final am decis ca este mai interesanta o constructie a unui CNC decat a unui RepRap, deoarece CNC-ul poate fi adaptat pentru a face acelasi lucru, marele plus fiind ca poate fi folosit si pentru a taia in material, ceea ce cu un RepRap este destul de greu datorita modului in care este conceput.

Asa a luat nastere Valkyrie CNC la care lucrez de aproximativ 1 an si jumatate.



Detalii tehnice:

- 265 x 225 mm zona maxima de lucru

- lungime 50 cm,  latime 35 cm,  inaltime 35 cm

- deplasare pe axe in gol 600mm/min

- alimentare pe 12V/5A o sursa AT sau 24V/5A pentru viteza de deplasare mai mare

- precizie teoretica aproximativa 0.006 mm,  in practica aproximez eu pe la 0.01 mm datorita jocurilor care apar in componente, nu am gasit o metoda de masurare exacta

Materiale folosite:

Principalul material folosit este de PAL de 16 mm – am folosit aproximativ un metru patrat.

Pentru sine am folosit profil de aluminiu in forma de L cu dimensiunea de 1,5 cm X 9 mm – aproximativ 3 metri.

Pentru deplasarea axelor am folosit bara filetata de otel, cu filet M8, cam ce gasim pe la Bricostore  - 3 metri.

Rulmenti ABEC7, cei folositi la roler blades – 40 bucati

Initial motoarele folosite au fost motoare pas cu pas de 7.5 grade pe pas, 24 V, de tip canstack, astfel de motoare se gasesc in majoritatea  imprimantelor mai vechi (acestea apar in poze). Rezolutia obtinuta era destul de buna dar acele motoare se incalzeau foarte tare, si avand pasul mare generau vibratii destul de puternice.  Acum folosesc motoare mai puternice de 200 pasi pe rotatie,  care lucreaza mult mai silentios, voi updata si pozele la un moment dat :)

Partea de control este alcatuita in acest moment dintr-un Arduino, varianta Single Sided Serial (http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3) si drivere pentru motoarele pas cu pas de conceptie proprie.  Driverele sunt construite pe baza circuitelor dedicate TEA3718 care primesc secventele necesare de la un Attiny2313.

Restul materialelor folosite constau in suruburi M8 si M6  de diverse lungimi, cabluri, etc.

Partea mecanica:

Din punct de vedere mecanic, constructia este relativ simpla. Totul a pornit de la modul de deplasare al axelor folosind transmisia prin surub.  Am ales acest mod din considerentele urmatoare:

- raportul de forta este foarte bun,  miscarea axei fiind posibila prin rotirea directa a surbului de catre motor, fara a necesita reductie

- se pot obtine rezultate bune si fara folosirea de suruburi speciale, cu putina atentie la alegerea barei filetate

- constructia transmisiei este simpla

Practic bara filetata este montanta la cele doua extremitati in rulmenti, tinuta in loc de piulite anti-defacere. Pe aceasta se deplaseza prin rotatie  o piulita (lunga de 2 cm), care este fixata pe elementul ce trebuie deplasat (ansamblul axei). Prin rotirea barei filetate se obtine deplasarea piulitei si implicit a axei respective .

Cuplajul motorului la bara filetata este facut printr-o bucsa de cauciuc prin frecare.

Pentru o deplasare a axelor cat mai usoara acestea sunt montate pe sine, deplasarea realizandu-se prin rulmenti. Imi este foarte greu sa explic acest ansamblu, cred ca din poza se intelege mai bine :)

rail


Partea electronica:

Dupa cum spuneam mai sus, creierul este un Arduino ce primeste comenzile de deplasare de la calculator printr-o conexiune seriala, le interpreteaza, si controleaza cele 4 drivere (2 pentru a misca axa X, 1 pentru Y, 1 pentru Z).  Nu sunt prea multe de spus in plus despre Arduino aici, doar ca e facut “pe genunchi”,  folosind schemele de pe site.

In ceea ce priveste driverele am tinut sa le fac eu, in primul rand pentru a invata, in al doilea rand pentru ca nu sunt dispus sa cumpar astfel de componente. Am ajuns in prezent la versiunea 4 a acestora, pe scurt am dat 2 rateuri, versiunea 2 a functionat destul de bine.

Driverele actuale sunt  bazate pe TEA3718, un circuit intregrat specializat pe controlul motoarelor pas cu pas in curent constant. Pentru un motor este nevoie de doua astfel de circuite, deoarece un circuit controleaza doar una dintre bobinele motorului. Important la aceste circuite este ca acestea realizeza controlul curentului in bobina, cu alte cuvinte se poate stabili valoarea amperajului folosit in functie de motor, pentru o functionare in conditii optime.

Deoarece pentru controlul unui TEA3718 este nevoie de  4 semnale, deci 8 pentru un singur driver, am hotarat sa folosesc un ATTiny2313 pentru a prelua semanalele de control de la Arduino si a genera secventele necesare pentru cele doua TEA3718, astfel incat controlul driverului se face cu 4 semnale: Enable, Direction, Step, Half/Full (optional) . In acest fel se folosesc 16 pini pentru controlul intregii masini (driverele pentru X primesc aceleasi semnale).

Folosirea ATTiny2313 aduce si avantajul ca permite modificarea parametrilor de functionare a driverului printr-o simpla reprogramare, si posibilitatea implementarii de functionalitati noi precum deplasarea motoarelor in micropasi prin controlarea exacta a amperajului. Momentan firmware-ul suporta full stepping si halfstepping.

Partea software:

Pe Arduino ruleaza o versiune modificata a firmware-ului Reprap. Practic am inlocuit clasa Serial cu ceva mai mic scris in C, am modificat functiile de control pentru drivere, am eliminat tot ce tine de extrudorul folosit de RepRap. Astfel am reusit sa obtin spatiu in memorie pentru a adauga functiile necesare prelucrarii de comenzi pentru curbe, care nu ar fi avut loc pe un AtMega168.

Rolul cel mai important al Arduino,  consta in primirea comenzilor de la PC in format GCODE si transformarea acestora in secvente de pasi pentru driveri. GCODE este standardul in ceea ce priveste astfel de masini, si majoritatea programelor CAM au posibilitatea de a exporta in acest limbaj. Astfel designul se poate face in orice software si nu exista o limitare impusa de un format propietar.

Firmware-ul de pe drivere este scris in avr-gcc, tot ce face este sa astepte o translatie de la HIGH la LOW pe semnalul Step pentru a face un pas.

Final …

Momentan ma opresc aici, mai jos un filmulet cu masinaria la lucru:

Voi mai posta updateuri, pana atunci … stay tuned.

Bafta!


, , , ,

Ceva neclar in articolul de mai sus ? Ai vrea sa discuti cu cineva despre proiectul tau ? Vino in fiecare marti seara de la ora 19:00 la Intalnirea Tehnorama, sau ne poti contacta direct.
Vezi aici detalii complete.

Despre... TinHead

Acest autor a publicat 1 articole.
Pasionat de calculatoare si in special de hardware, Linux, si mai nou de masinarii si robotei.

Share

FacebookTwitterEmailWindows LiveTechnoratiDeliciousDiggStumbleponMyspaceLikedin

Comentarii


Ionica Adrian
July 11th, 2010

INCANTATOR! Salut, si eu sunt posesorul unui Dremel 300 pe care l-am folosit vara asta in debitare pe tabla de aluminiu. O curiozitate de a mea: ce accesoriu ai folosit la dremel? un burghiu? ai incercat sa debitezi si metal cu Valkyrie CNC?


TinHead
July 11th, 2010

Salut!

Folosesc freze de la Proxxon, din pacate oferta Dremel nu contine asa ceva.
Frezele sunt acestea: http://www.proxxontools.ro/produs.php?id=365

Nu am incercat metal, in pricipiu ar trebui sa mearga in niste limite. Din pacate constructia masinii asa cum este in acest moment are prea multe jocuri pentru a merita incercat. Asta pentru ca tot e taiat si gaurit manual … si bineinteles stramb :) Dar daca ar fi facuta cum trebuie nu cred ca ar fi probleme in aluminiu.


Ionica Adrian
July 11th, 2010

Eu m-am chinuit destul de mult cu debitarea de aluminiu vara asta….Mai intai am folosit dremelul cu discuri de debitare ce se gasesc la butoias( 36 pe set) dar acestea se mananca repede in aluminiu (10cm/disc aprox.)+ ca se mai rup… devenind o solutie destul de costisitoare pt cantitatea necesara mie de discuri. Apoi am trecut la dalta care ma nemultumit foarte tare intrucat indoaie in jurul ei, aluminiul fiind moale. Apoi am trecut la un pendulator cu panza subtire care l-am fixat de o masa facuta de mine dar cu panza in sus ieseta printr-un orificiu(din masa) mic. Desi am ramas la acesta nu iti recomand deoarece necesita destul de mult efort in maini pt tinerea si manevrarea a materialului.


TinHead
July 12th, 2010

Probabil ca pendularul ramane cea mai buna solutie, nu stiu daca folosind o freza ai vre-un castig. Oricum pana nu voi reusi sa refac structura nu voi putea sa dau un raspuns clar.


Ro-Bot-X
July 14th, 2010

In sfarsit sunt in concediu si m-am hotarat sa termin si eu CNC-ul. Am partea electronica (EZ Driver) pt 4 axe si motoarele pas cu pas (4 buc.) de la http://www.HobyCNC.com, cumparate de acum 4 ani si ceva. Placa functioneaza de la portul paralel, are pini de directie si pasi pentru fiecare motor plus pini pentru senzorii de capat de cursa (pulled up onboard). Ma gandesc ca un Arduino poate sa controleze acesti pini, deoarece portul paralel lucreaza cu nivel logic TTL.

In ce priveste partea mecanica (sasiul), am ales un hibrid intre modelul lui TinHead si ce am mai vazut eu pe net. Ansamblul este tot de tip moving gantry, dar voi folosi doar un singur surub pentru aza X si pentru axa Z vreau sa inversez pozitia saniei si a ghidajelor, astfel incat sania care se misca pe axa Y sa fie si sania care misca axa Z in sus si in jos. E drept ca piulita axei Z va suporta greutatea ghidajelor, motorului si a Dremelului, dar voi incerca sa o prind bine, cu surub de oprire si stransa in coliere metalice cu surub, model intalnit la furtunele de la masina. Greutatea ansamblului va elimina orice joc pe axa Z, ceea ce e un lucru bun. Din lipsa de suficienti rulmenti, voi folosi doar 3 prinderi pe fiecare latura a axei X, practic rulmentul de jos va avea doar rolul de a tine gantry-ul pe sine. In principiu, cred ca suprafata de lucru va fi de 45×30x15 cm (xyz), ceea ce imi va permite sa schimb scula de lucru cu un extruder si sa folosesc masina ca un RepRap. Deocamdata nu am poze, voi crea o pagina separata pentru acest proiect.


TinHead
July 14th, 2010

Salut Ro-bot-X !

O recomandare: daca tot ai driver-ul pe port-ul parallel gata facut eu iti recomand cu caldura sa nu te apuci cu Arduino, nu sunt castiguri prea mari momentan cel putin. Am o gramada de probleme din cauza asta si tocmai am “rezolvat” fuse-urile pe ambele Arduino pe care le detin :)

Eu am sa incerc cu portul paralel si EMC2 pe pc (http://www.linuxcnc.org), macar sa elimin posibilele buguri din firware-ul de pe Arduino (ca sunt destule) si sa ma pot concentra pe driver. Oricum din ce am vazut EMC2 e mult mai dotat ca feature-uri decat orice firmware disponibil pt Arduino in momentul asta, sunt curios cum merge;)

[...] Recunosc ca inspiratia ne-a venit discutand cu Razvan despre Valkyrie CNC [...]


tavisimi
January 7th, 2011

salut.suma respectelor pentru ceea ce ati reusit sa faceti acolo.sunt foarte incantat si interesat sa imi construiesc si eu un cnc.ati putea sa ma ajutati un pic poate cu partea electronica(controler,driver etc) poate imi puteti spune de unde as putea sa cumpar un driver sau poate aveti voi unul sau macar sa imi recomandati ceva,de asemenea m-ar interesa si partea de programare a driverului?este complicat de realizat? va multumesc mult.pe mine ma gasiti si pe gmail tot cu acelas id.


Viorel
January 9th, 2011

Salut,

Da, avem driver de motoare pas cu pas, aici – http://www.robofun.ro/easydriver_stepper_driver?keyword=driver&category_id=0

Foarte curand vom aduce si motoare pas cu pas exact potrivite acestui driver. Daca mai imi dai un email cam in 2 saptamani, le vom avea pe stoc.

Numai bine,
Viorel


Stefan
August 26th, 2011

Salut. Frumos CNC, vreau si eu sa ma apuc de unu : ). Apropo, ca masina principala ai folosit o bormasina, ca nu imi dau seama cu ce dai gauri . . .
O zi buna !

[...] Trimite un email la contact [at] robofun [dot] ro cu descrierea proiectului tau. Este necesar sa incluzi macar trei poze. Pentru a-ti creste sansele de castig, este bine insa sa-l faci cat mai simplu de inteles pentru cititori.  In acest sens, iti sugeram sa incluzi cat mai multe poze, si deasemenea si unul sau mai multe filme. Ca sa te inspire, aici sunt cateva proiecte care noua ni se par interesante din punct de vedere al prezentarii – Statie meteo cu Mac,  ROBOTL – robot cu retele neurale, Animatronic Hand, Swirl, Smart Home Management System, Radar Arduino, Valkirie CNC. [...]


simictj
May 8th, 2012

salut,sunt interesat si eu de constructia acestei masinari deoarece sunt pasionat de electronica , si as vrea sa ma ajute sa imi fac cablajele mai aspectuase, ai putea sa faci o schema pentru toata partea electrica?

Trimite un comentariu