Interpret Gcode

Odpovědět
vasco
Příspěvky: 7
Registrován: 26. 8. 2008, 11:55

20. 6. 2011, 6:09

Zdravím,

předem bych chtěl říct, že nejsem strojař, pouze elektrikář :) O G kódu vím jen nutné minimum a se stavbou CNC zatím nemám žádné zkušenosti. Plánuji si vyrobit menší CNC frézku na výrobu plošných spojů.

Momentálně mám 3 unipolární krokové motory, které ovládám přes 3 tranzistorová pole ULN2004A. Každý motor je ovládán pomocí dvou vodičů z Arduina, které mám galvanicky oddělené od výkonové části pomocí optočlenů. Kód v Arduinu využívá knihovnu Stepper.h, která je součástí jejich vývojového prostředí. Arduino je spojené přes USB s počítačem a napsal jsem si jednoduchý program v Pythonu, který sériově odesílá informace o tom, který motor má udělat krok a kterým směrem.

A teď můj dotaz: Existuje nějaký jednoduchý, nejlépe Linux friendly, program (skript, knihovna ?) který interpretuje G kód a jeho výstupem je informace o tom, který motor má udělat krok a kterým směrem? Chtěl bych tyto informace následně v reálném čase odesílat přes USB Arduinu.

Zatím jsem našel jenom pokusy o implemetaci G interpretu přímo v Arduinu, ale to já nechci.

Je tento přístup použitelný? Moje naivní, elektrikářská, představa je taková, že všechny tři motory budou mít konstantní rychlost, pouze budou krokovat podle příkazů z Arduina, resp. počítače.
RaS
Příspěvky: 8593
Registrován: 26. 3. 2009, 9:12
Bydliště: Úvaly

20. 6. 2011, 6:14

proč nepoužiješ nějaké normální řešení Mach, EMC to máš oboje zadarmo (mach omezeně) a poskytne ti to alespoň nějaký uživatelský komfort..
věčný rýpal,který musí mít poslední slovo, odpůrce low-cost zařízení končících v naprosté většině případů v hromadě šrotu
uživatelé hýbátek, kteří mají z mých příspěvků celoživotní trauma nechť si mé příspěvky VYPNOU
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22432
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

20. 6. 2011, 6:15

no problem je daleko slozitejsi
konstantni rychlost je fyzikalni nesmysl - musis nejak zrychlit na nejakou tu rychlost a taky umet zabrzdit
konstantni rychlost je i technologicky nesmysl
viceosa interpolace vcetne techto ramp atd... daleko slozitejsi prob.

celkove je to tedy asi spatny smer paklize ti nejde o to za kazdou cenu programovat ridici system ale spis o to frezovat
a v tom pripade te nasmeruju na emc2 linuxovy projekt
jako live cd to je ihned funkcni a ma to obrovske moznosti
myslim ze co do tvorby systemu se muzes dosytosti vyradit i tam
Vsechna prava na chyby vyhrazena (E)
ledvinap
Příspěvky: 793
Registrován: 8. 11. 2009, 4:40
Bydliště: Plzen

20. 6. 2011, 6:42

Jak uz psali jini, je to dost krok spatnym smerem.
Pokud se presto o to pokusis:
USB ma pomerne velkou latenci a ve vetsine pripadu i jitter. Takze pokud budes posilat primo kroky, tak to bude mozna fungovat na nejake hodne male rychlosti.
Resit to jde tim, ze cast logiky presunes na Arduino - treba budes posilat seznam usecek, ty se budou interpolovat lokalne.
Pak narazis na to, ze je problem homing - latence usb zpusobi, ze nez PC zareaguje na koncak, je motor o kus dal. Takze napises homing na Arduinu.
Pak narazis na par podobnych problemu a najednou budes mit na arduinu vlastne jednoduchy interpreter, ktery se od G-kodu bude lisit jen pouzitym protokolem. Nebo skoncis u podobneho protokolu, jako pouzivaji ridici jednotky GVE od Gravosu - rozhodne se podivej na jejich dokumentaci, at vis, co te ceka ;-)

Pokud Arduino, tak bych se podival na firmare pro RepRap. Je tam hotovy interpreter jednoducheho G-kodu, nektere verze maji implementovanou experimentalni podporu ramp. Na plosnaky by to melo s minimalnimi upravami stacit.
Na PC pak muzes resit jak predzpracovat G-kod s motivem na G-kod, kteremu bude rozumnet Arduino. A postupne na teto kombinaci stavet.
vasco
Příspěvky: 7
Registrován: 26. 8. 2008, 11:55

20. 6. 2011, 7:03

Díky za odpovědi.

Na Mach3 jsem se již díval, jako rozhraní využívá paralelní port. K tomu bych musel použít nějaký starší počítač, takže toto řešení jen pokud nebude zbytí. EMC jsem neznal, ale teď jim nefunguje web http://www.linuxcnc.org/" onclick="window.open(this.href);return false; takže se na něj podívám později.

Možná to nakonec dopadne tak, že půjdu cestou nejmenšího odporu. Teď jsem narazil na http://www.hobbycnc.com/" onclick="window.open(this.href);return false; vypadá docela dobře a je i cenově přijatelný. Ještě jsem ale nezjišťoval jestli posílají zboží i do ČR.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22432
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

20. 6. 2011, 8:01

to hobbycnc je jen driver ne?
to je porad o tom lpt
Vsechna prava na chyby vyhrazena (E)
sidonie
Příspěvky: 1010
Registrován: 18. 12. 2009, 11:18
Bydliště: Vranová Lhota

21. 6. 2011, 4:36

LPT jde řešit přídavnou kartou do PCI sběrnice, ale i tu již některé desky postrádají. Na deskách od gigabyte stačí pořídit port do záslepky, na skoro všech základkách mají piny, ale přesto doporučuji ověřit.
http://interlink.tsbohemia.cz/gigabyte- ... 69896.html" onclick="window.open(this.href);return false;
Odpovědět

Zpět na „Ostatní veci kolem programovani“