Co je AUTOSQUARE? Jedná se o automatické “vyrovnání” počátků (HOME) dvou motorů použitých na posuv jedné osy CNC stroje. Auto square zajistí, že osa kolmá na osu se dvěma motory bude opravdu kolmá (tedy tak kolmá, jak dobře budou nastaveny koncové spínače).
CNC stroje mohou mít různé pohony jednotlivých os. Na našich strojích LUPA v3.3 a v3.5 používáme na delší ose dva motory. Je to kvůli jednoduššímu mechanickému řešení celé konstrukce. I když by se mohly motory jevit jako na sobě nezávislé, není tomu tak. Ovládací signály STEP a DIR mají společné. Používáme CNC Shield Protoneer v3.0, který umí ovládat 3 osy. Shield je osazen na Arduino UNO. Na shieldu jsou 4 sloty pro drivery X, Y, Z, A. Slot A nemá přivedeny vlastní ovládací signály STEP a DIR. Slot A umožňuje naklonování jednoho z ostatních slotů X, Y, Z. Naklonování se provádí zkratovacími propojkami. Jednoduše si zvolíte osu, kterou chcete naklonovat, a pomocí dvou propojek (jedna pro STEP, druhá pro DIR) na shieldu propojíte požadované piny. V této konfiguraci nelze autosquare použít, jednoduše proto, že ty dva motory na jedné ose nejsou ovládány samostatně.
GRBL nabízí nastavení pro využití autosquare, kdy jsou tyto dva motory na jedné ose ovládány samostatně. Funkci autosquare je vhodné použít u strojů se silnějšími motory a s posuvem os pomocí šroubů nebo pastorků na ozubených hřebenech. Na strojích se slabšími motory a posuvem os řemínky není funkce autosquare nutná.
Pro použití funkce autosquare je třeba GRBL nastavit. GRBL umožňuje v souboru config.h vybrat jeden ze dvou shieldů. 3.51 nebo Protoneer v3.0. I když by se mohlo zdát, že by bylo vhodnější vybrat přímo shield Protoneer v3.0, není tomu tak. Vhodnější je zvolit konfiguraci se shieldem 3.51 a upravit zapojení na shieldu Protoneer v3.0 pomocí drátových propojek. Při použití konfigurace pro Protoneer v3.0 totiž přijdete o možnost ovládat otáčky vřetene (PWM)! Pokud se vám nechce “drátovat” můžete použít přímo originál shieldu 3.51 ($14-15) jehož cena je výrazně vyšší než shieldu Protoneer v3.0 ($3). Na obrázku níže je doporučené nastavení v souboru config.h.
Použití GRBL s funkcí autosquare přináší oproti standardní verzi (bez autosquare) omezení. To je částečně zřejmě z popisu viz. obrázek výše. Jde o to, že Arduino UNO má omezený počet výstupů a pro ovládání dalšího motoru už není volný výstup. Musí se tak obětovat některá z funkcí standardního nastavení. V případě nastavení pro shield 3.51 je to možnost spínání vřetene. Níže najdete popis dvou variant nastavení. První jednodušší, to pokud se smíříte se skutečností, že přijdete o možnost spínání vřetene (funkce PWM zůstává zachována). Druhá s většími úpravami konfiguračních souborů, ale se zachováním spínání vřetene. U této varianty ale přijdete o možnost samostatně spínat chlazení. Holt něco za něco.
Ještě před popisem obou variant řešení video s demonstrací funkce autosquare na Youtube
1. jednodušší – úprava config.h
Pozor, v obou případech je v config.h potřeba vybrat nastavení pro desku 3.51 a nikoliv pro Protoneer v3.0, jak by se dalo očekávat. Na používané desce Protoneer v3.0 se musí druhý motor osy Y zapnout nikoli zkratovacími propojkami, ale musí se připojit na výstupy A4/A3 viz. obrázek.
Při kompilaci GRBL zřejmě vyskočí chyba u souboru report.c a to z důvodu chybějící závorky } v kódu. Je potřeba závorku na konci řádku 581 doplnit. Je ale možné, že chybová hláška nevyskočí.
Koncový spínač druhého motoru bude paralelně připojen ke spínači osy Z. Ostatní spínače zůstávají bez změn. Při tomto nastavení není standardně k dispozici pin pro spínání relé vřetene (zapnutí / vypnutí). Na pin D13, kde byl původně výstup pro spínání vřetene (přesněji řečeno ovládání směru otáčení vřetene), je nyní přiveden výstup spínání chlazení. Takže pokud potřebujete spínat vřeteno, lze to udělat s využitím výstupu pro chlazení a s ručním dopsáním příkazů pro spuštění / vypnutí chlazení (M8 / M9) do G-kódu. Standardně se v G-kódu pro zapnutí / vypnutí vřetene používá M3 / M5 a tyto příkazy bývají generovány softwary použitými pro vytváření G-kódu.
Toto nastavení zachová spínání vřetene na D13, ale přijdete o výstup pro spínání chlazení. Pozor, opět je v config.h potřeba vybrat nastavení pro desku 3.51 a ne Protoner v3.0. Zapojení je stejné jako v předchozím případě, jen na D13 bude spínání vřetene.
A teď to nejhorší, úprava všech souborů. Autorem úprav je Jakub Kraus.
Změny:
v config.h nastavit USE_SPINDLE_DIR_AS_ENABLE_PIN
v grbl.h vymazat chybovou hlášku “USE_SPINDLE_DIR_AS_ENABLE_PIN not supported with dual axis feature.”
v cpu_map.h:
v části #ifdef DUAL_AXIS_CONFIG_PROTONEER_V3_51 nastavit
#define COOLANT_FLOOD_DDR DDRC … původně DDRB
#define COOLANT_FLOOD_PORT PORTC … původně PORTB
#define COOLANT_FLOOD_BIT 7 … původně 5
… je to sice trochu prasárna protože bit 7 neexistuje, používat neexistující pin je v lepším případě nedefinované chování a v horším to něco rozbije
v části #ifdef VARIABLE_SPINDLE nastavit
#define SPINDLE_ENABLE_BIT 5 … původně 3
#else
#define SPINDLE_ENABLE_BIT 4
#endif
Pokud se nechcete s úpravami souborů trápit, tak si je stáhněte zde a nahraďte jimi ty původní ve vaší instalaci GRBL. Velmi doporučuji zálohovat původní soubory.
Závěr
Popsané řešení nevystihuje kompletní zapojení elektroniky potřebné pro ovládání CNC stroje. Je věnováno jen a pouze funkci autosquare a to při použití samostatné desky Arduino UNO a shieldu Protoneer v3.0 resp. jeho kopie. Popsané řešení nemusí být kompatibilní s hotovými ovládacími deskami GRBL (grbl control boards).
Výše popsané platí pro standardní GRBL 1.1. Pokud se chcete zbavit omezení GRBL 1.1, tak přejděte na grblHAL. Veškeré úpravy děláte na vlastní nebezpečí! Neručíme za žádné škody vzniklé v souvislosti s realizací výše popsaných změn.
3D tisková data na díly odsávání zpracované Jardou Pelánem. Odsávání se nastavuje na pevnou výšku a je nezávislé na pohybu osy Z. Více najdete na samostatné stránce.
3D tisková data na jednoduché odsávání. Držák odsávací trubice se nasazuje přímo na držák vřetene. Více najdete na samostatné stránce.
3D tisková data a výkres pro Fusion 360 na díly odsávání zpracované Liborem Kolmanem. Precizně zpracovaný návrh. Odsávání je upevněno přímo na držák vřetene a tedy pohybuje se s osou Z. Sestává ze dvou dílů spojovaných magnety. Odsávací koš se zástěnou je samostatný a lze ho snadno sundat. Je také možné mít více “košů” s různě dlouhými zástěnami, nebo se zástěnami z různých materiálů. Více informací na samostatné stránce kolmanl.info.
2D výkres (DXF) dílů na jednoduché odsávání. Dvoudílná sestava odsávání spojená pomocí magnetů. Jedna část se upevní přímo na držák vřetene, druhá (odsávací “koš”) se nasazuje na magnety a dá se pohodlně sundat, nebo vyměnit – to když budete mít více “odsávacích košů” s různou délkou zástěny. Díly jsou vyrobeny z 5mm překližky, zástěna např. z PET láhve.
Postprocesory pro GRBL v Aspire: 1. Grbl_startpause_mm.pp – rozdíl oproti standardně dodávanému s Aspire je v přidání malé pauzy na začátek programu, aby se vřeteno roztočilo na plné otáčky dříve než se zaboří do obrobku. 2. Grbl_startpause_mm_v2.pp – podobný prvnímu, ale v tomto postprocesoru se nerozlišují typy nástrojů. Můžete tak spojit dráhy více nástrojů do jednoho souboru. Vytvořeno jen a pouze kvůli možnosti použití nástroje Chamfer Toolpath v Aspire (frézování šikmé stěny), pro který je možné použít pouze kulovou frézu. A když standardně používáte na vše “hranatou”, tak vám tohle může vadit. Jen pozor, abyste nespojovali dráhy nástrojů různých průměrů 🙂
Při používání frézky ovládané GRBL se vám bude jistě hodit popis různých stavů, hlášení a příkazů se kterými se můžete setkat. V případě hodnocení překladu buďte prosím shovívaví, někdy je těžké přesně a srozumitelně popisy přeložit. Nebylo cílem ani dávat vyčerpávající popis. Berte následující jako úplný základ, který se hodí mít po ruce. Pro detailnější vysvětlení budete muset hledat, např. na Wikipedii, kde má GRBL samostatnou sekci.
Grbl – chybové kódy
Kód
Popis chyby
1
GCode Command letter was not found
Písmeno příkazu GCode nebylo nalezeno
2
GCode Command value invalid or missing
Hodnota příkazu GCode je neplatná nebo chybí
3
Grbl ‘$’ not recognized or supported
Parametr Grbl ‘$’ není rozpoznán nebo podporován
4
Negative value for an expected positive value
Záporná hodnota pro očekávanou kladnou hodnotu
5
Homing fail. Homing not enabled in settings
Chyba při “houmování”; “houmování” není povoleno v nastavení
6
Min step pulse must be greater than 3usec
Minimální puls STEP musí být větší než 3usec
7
EEPROM read failed. Default values used
Čtení EEPROM se nezdařilo. Použity výchozí hodnoty
8
Grbl ‘$’ command Only valid when Idle
Příkaz Grbl ‘$’ platí pouze při nečinnosti
9
GCode commands invalid in alarm or jog state
Neplatné příkazy GCode ve stavu Alarmu nebo pohybu
10
Soft limits require homing to be enabled
Soft limity vyžadují povolení “houmování”
11
Max characters per line exceeded. Ignored
Překročení maximálního počtu znaků na řádek. Ignorováno
12
Grbl ‘$’ setting exceeds the maximum step rate
Nastavení Grbl ‘$’ překračuje maximální hodnotu STEP
13
Safety door opened and door state initiated
Bezpečnostní kryt otevřen a status otevření iniciován
14
Build info or start-up line > EEPROM line length
Informace o sestavení nebo úvodní řádek > délka řádku v EEPROM
15
Jog target exceeds machine travel, ignored
Cílová pozice překračuje možnosti stroje, ignorováno
16
Jog Cmd missing ‘=’ or has prohibited GCode
Jog Cmd chybí ‘=’ nebo obsahuje nepovolený GCode
17
Laser mode requires PWM output
V režimu laseru je požadován výstup PWM
20
Unsupported or invalid GCode command
Nepodporovaný nebo neplatný příkaz GCode
21
> 1 GCode command in a modal group in block
> 1 příkaz GCode v modální skupině v bloku
22
Feed rate has not yet been set or is undefined
Rychlost posuvu ještě nebyla nastavena nebo není definována
23
GCode command requires an integer value
Příkaz GCode vyžaduje celé číslo
24
> 1 GCode command using axis words found
> Nalezen 1 příkaz GCode používající písmeno označení osy
25
Repeated GCode word found in block
Opakovaný příkaz GCode nalezený v bloku
26
No axis words found in command block
V bloku příkazů nebylo nalezeno žádné označení osy
27
Line number value is invalid
Neplatná hodnota čísla řádku
28
GCode Cmd missing a required value word
V příkazu GCode chybí hodnota příkazu
29
G59.x WCS are not supported
WCS G59.x nejsou podporovány
30
G53 only valid with G0 and G1 motion modes
G53 platí pouze pro režimy pohybu G0 a G1
31
Unneeded Axis words found in block
Nepotřebná označení os nalezená v bloku
32
G2/G3 arcs need >= 1 in-plane axis word
Oblouky G2/G3 potřebují >= 1 označení osy v rovině
33
Motion command target is invalid
Cíl příkazu pohybu je chybný
34
Arc radius value is invalid
Hodnota poloměru oblouku je chybná
35
G2/G3 arcs need >= 1 in-plane offset word
Oblouky G2/G3 potřebují >= 1 písmeno odsazení v rovině
36
Unused value words found in block
Nepoužité hodnoty příkazů nalezené v bloku
37
G43.1 offset not assigned to tool length axis
Odsazení G43.1 není přiřazeno délce nástroje
38
Tool number greater than max value
Číslo nástroje větší než maximální hodnota
Grbl – kódy alarmů
Kód
Popis alarmu
1
Hard limit triggered. Position Lost.
Spuštěn Hard limit. Poloha ztracena.
2
Soft limit alarm, position kept. Unlock is Safe.
Soft limit alarm, poloha udržena. Odemknutí je bezpečné.
3
Reset while in motion. Position lost.
Resetování za pohybu. Poloha ztracena.
4
Probe fail. Probe not in expected initial state.
Selhání nájezdu na sondu. Sonda není v očekávaném výchozím stavu.
5
Probe fail. Probe did not contact the work.
Selhání nájezdu na sondu. Sonda se nedotkla podložky.
6
Homing fail. The active homing cycle was reset.
Neúspěšný “houming”. Aktivní cyklus “houmování” byl resetován.
7
Homing fail. Door opened during homing cycle.
Neúspěšný “houming”. Dveře se otevřely během cyklu “houmování”.
8
Homing fail. Pull off failed to clear limit switch.
Neúspěšný “houming”. Chyba Pull off při čištění koncového spínače.
9
Homing fail. Could not find limit switch.
Neúspěšný “houming”. Nepodařilo se najít koncový spínač.
Grbl příkazy (příkazy, které nejsou definovány v G-kódu)
Kód
Popis příkazu
$$
Display Grbl Settings.
Zobrazit nastavení GRBL
$x=val
Change Grbl Setting x to val.
Změnit hodnotu pro měnné GRBL
$#
View GCode Parameters.
Vypíše hodnoty všech offsetů (G54, G55, atd.)
$G
View GCode parser state.
Vypíše aktuální hodnoty nastavení GRBL
$C
Toggle Check Gcode Mode
Přepnutí režimu kontroly G-kódu. Zapnutím se spustí program, ale bez pohybu osami a spuštění vřetene a zkontroluje se na možné chyby.
$H
Run Homing Cycle
Zpuštění “houmovacího” cyklu
$J=gcode
Run Jogging Motion.
Spuštění pohybů Jogging.
$X
Kill Alarm Lock state.
Vypnutí alarmu zamčení stroje.
$I
View Build Info
Zobrazí informaci o verzi a datu kompilace
$N
View saved start up code
Zobrazí spouštěcí bloky G-kódu
$Nx=line
Save Start-up GCode line (x=0 or 1) There are executed on a reset.
Nastaví spouštěcí bloky G-kódu. Tyto bloky mohou být dva, N0 a N1
$RST=$
Restores the Grbl settings to defaults.
Resetuje GRBL do základního nastavení.
$RST=#
Erases G54-G59 WCS offsets and G28/30 positions stored in EEPROM.
Vymaže hodnoty offsetů uložené v EEPROM
$RST=*
Clear and Load all data from EEPROM.
Vymazání a obnova všech dat v EEPROM používaných GRBL
$SLP
Enable Sleep mode.
Přepnutí do režimu spánku
Ctrl-x
Soft Reset
Měkký reset
?
Status report query.
Dotaz na stav.
~
Cycle Start/Resume from Feed Hold, Door or Program pause.
Přepnutí stavu na pokračování
!
Feed Hold – Stop all motion.
Zastavení pohybu stroje (Hold), nevypne vřeteno ani chlazení.
POZNÁMKA: Existuje řada dalších příkazů v reálném čase, které používají nezadatelné znaky. Jsou určeny pro vývojáře a mimo konzoli se běžně nepoužívají. Ovládají například přepisování rychlosti (feed). A nejsou zde popsány.
GRBL nastavení
Proměnná
Popis
$0
Step pulse, microseconds
$1
Step idle delay, milliseconds
$2
Step port invert, XYZmask*
$3
Direction port invert, XYZmask* The direction each axis moves.
$4
Step enable invert, (0=Disable, 1=Invert)
$5
Limit pins invert, (0=N-Open. 1=N-Close)
$6
Probe pin invert, (0=N-Open. 1=N-Close)
$10
Status report, ‘?’ status. 0=WCS position, 1=Machine position, 2= plan/buffer and WCS position, 3=plan/buffer and Machine position.
$11
Junction deviation, mm
$12
Arc tolerance, mm
$13
Report in inches, (0=mm. 1=Inches)**
$20
Soft limits, (0=Disable. 1=Enable, Homing must be enabled)
$21
Hard limits, (0=Disable. 1=Enable)
$22
Homing cycle, (0=Disable. 1=Enable)
$23
Homing direction invert, XYZmask* Sets which corner it homes to.
$24
Homing feed, mm/min
$25
Homing seek, mm/min
$26
Homing debounce, milliseconds
$27
Homing pull-off, mm
$30
Max spindle speed, RPM
$31
Min spindle speed, RPM
$32
Laser mode, (0=Off, 1=On)
$100
Number of X steps to move 1mm
$101
Number of Y steps to move 1mm
$102
Number of Z steps to move 1mm
$110
X Max rate, mm/min
$111
Y Max rate, mm/min
$112
Z Max rate, mm/min
$120
X Acceleration, mm/sec^2
$121
Y Acceleration, mm/sec^2
$122
Z Acceleration, mm/sec^2
$130
X Max travel, mm Only for Homing and Soft Limits.
$131
Y Max travel, mm Only for Homing and Soft Limits.
$132
Z Max travel, mm Only for Homing and Soft Limits.
Poznámka: * XYZmask je nastavení hodnot pro osy X Y a Z. Změní se, pokud se osa pohybuje v nesprávném směru. Hodnota bude 0-7. ** Hlášené jednotky (mm nebo inch) jsou nezávislé na jednotkách nastavených v G-kódu! Pro podrobnější popis jednotlivých proměnných doporučuji např. stránky Sakul.cz
GRBL – podporované příkazy G-kódu
Příkaz
Popis
F
Nastavení rychlosti pohybu v jednotkách/min (viz G20/G21)
G0
Rychlý pohyb (rychlostí Rapid Feed Rate)
G1
Lineární pohyb (frézování rychlostí F)
G2
Kruhový pohyb ve směru hodinových ručiček
G3
Kruhový pohyb v protisměru hodinových ručiček
G4
Pauza (až 6 sekund)
G10L2
Nastaví odsazení pro uložený počátek vůči absolutním souřadnicím stroje.
G10L20
Stejně jako G10 L2, ale odsazení XYZ je vůči aktuální poloze.
G17
Vykreslí oblouk v rovině XY (výchozí nastavení).
G18
Vykreslí oblouk v rovině ZX.
G19
Vykreslí oblouk v rovině YZ.
G20
Nastavení jednotek souřadného systému na palce (inch).
G21
Nastavení jednotek souřadného systému na milimetry.
G28
Nájezd do “bezpečné” polohy. POZNÁMKA: Pokud se neprovede “houmovací” cyklus a nastavení bezpečné polohy, je použití této funkce velmi “nebezpečné”.
G28.1
Nastavení “bezpečné” polohy v absolutních souřadnicích stroje.
G30
Nájezd do uložené polohy.
G30.1
Nastavení předdefinované polohy v absolutních souřadnicích stroje, před uložením souřadnic se provede rychlý pohyb G0 do této polohy.
G38.2
Nájezd sondou na dotyk. Když k dotyku nedojde vyhlásí se chyba.
G38.3
Jako G38.2, ale bez vyhlášení chyby pokud nedojde k dotyku.
G38.4
Jako G38.2, ale sonda se vzdaluje a zastaví se při ztrátě kontaktu.
G38.5
Jako G38.4, ale bez vyhlášení chyby při selhání.
G40
Vypnutí kompenzace nástroje. GRBL tuto funkci nepodporuje.
G43.1
Dynamické odsazení pro délku nástroje, posunuje konec nástroje v ose Z pro následné pohyby.
Jako u G54 aktivuje další uložené počátky pracovních souřadnic.
G61
Režim přesné cesty. GRBL nepodporuje žádné jiné režimy.
G80
Konzervační cyklus Zrušit. Grbl nepodporuje žádný z režimů konzervovaných cyklů, které se tímto zruší, takže se při použití nic nestane.
G90
Všechny vzdálenosti a pozice jsou absolutní hodnoty od aktuálního pracovního počátku.
G91
Všechny vzdálenosti a pozice jsou relativní k aktuální pozici.
G91.1
Nastaví režim přírůstkového pozicování oblouku.
G92
Nastaví aktuální souřadnice bodu jako výchozí pracovní počátek.
G92.1
Vynulování všech platných odsazení G92 a vynulování všech uložených hodnot.
G93
Pohyb v jednotkách času.
G94
Režim pohybu v jednotkách/min při aktuální rychlosti F.
M0
Pauza programu.
M1
Stejně jako M0, ale pozastaví se pouze v případě, že je zapnutý volitelný stop spínač.
M2
Konec programu, vypne vřeteno/laser a zastaví stroj.
M3
Spustí vřeteno ve směru hodinových ručiček. V režimu Laser nastaví konstantní výkon.
M4
Jako M3, v režimu Laser nastaví dynamický výkon.
M5
Zastaví vřeteno.
M8
Zapne chlazení (stejné jako M7)
M9
Vypne chlazení.
M30
Stejné jako M2
S
Nastaví otáčky vřetene ot./min, nebo výkon laseru.
POZNÁMKA: Kódy mohou obsahovat počáteční nuly, G0 a G00 jsou stejné. Existuje spousta dalších příkazů G-kódu, tyto podporuje GRBL. Mnoho příkazů je modálních, což znamená, že jsou od zadání platné pro další průběh programu. Například G0 X1 následovaný příkazem Z5 si pamatuje režim G0 a použije jej na Z5. S je také modální, platí od posledního zadání. Dva příkazy ve stejné modální skupině nemohou být na stejném řádku.
Parametry G-kódu pro GRBL
Znaky
Popis
X Y Z
Vzdálenosti nebo pozice na osách X Y Z.
I J K
Vzdálenosti nebo pozice pro oblouky G2 a G3. Odpovídají ose Z Y X. Jedná se vždy o přírůstkové souřadnice bez ohledu na G90/G91.
L
Počet cyklů smyčky, podporováno, ale nepoužívá se.
N
Číslo řádku, podporováno, ale nepoužívá se.
R
Poloměr oblouku pro G2 a G3.
P
Víceúčelový parametr závisí na příkazu, ve kterém je použit.
T
Výběr nástroje, nepoužívá se.
POZNÁMKA: Za všemi parametry musí následovat číslo.
GRBL – stavy
Stav
Popis
Alarm
“Houmování” je povoleno, ale cyklus “houmování” neproběhl nebo byla zjištěna chyba, např. aktivovaný koncový spínač. Je třeba znovu provést “houmování” nebo příkaz Unlock (odemknutí stroje).
Idle
Čekání na jakýkoliv příkaz.
Jog
Provádění pohybu Jog, žádné nové příkazy až do dokončení, kromě příkazů Jog. Poznámka: Jog jsou manuální pohyby stroje po osách.
Homing
Provádí se cyklus “houmování”, nepřijímá nové příkazy do dokončení.
Check
Je povolen kontrolní režim (Check); všechny příkazy jsou přijímány, ale budou pouze analyzovány, nikoli provedeny (stroj se nebude pohybovat).
Cycle
Spuštěné příkazy G-kódu, všechny příkazy přijaty, po dokončení příkazů přejde stroj do režimu nečinnosti (Idle).
Hold
Probíhá pozastavení, pro pokračování spustit Resume.
Safety Door
Bezpečnostní spínač dveří byl aktivován, podobně jako při Hold, ale k pokračování (Resume) dojde při zavření dveří. Na svém stroji pravděpodobně bezpečnostní dvířka nemáte!
Sleep
Příkaz Sleep byl přijat a proveden, někdy se používá na konci úlohy. Pro pokračování proveďte reset nebo nové zapnutí stroje.
Nejsem nijak zdatný programátor a ani elektronik. Ale co potřebuji si dokážu najít a v případě potřeby přizpůsobit, doplnit nebo složit. A kupodivu i s tímto přístupem se dá, i když často s pomocí rad zkušenějších, dobrat slušných výsledků.
Kamarád se mě ptal, jestli bych mu neosvětlil základy GRBL. A v poslední době nebyl jediný. No to si tedy vybral. Ale dobře. Pár frézek jsme postavili, fungují, majitelé si nestěžují, tak snad poradit mohu. Jestli to s GRBL myslíte vážně, tak doporučuji projít si domovskou stránku GRBL včetně novějších updatů. Nutno dodat, že pro ovládání frézek a podobných strojů existuje více možností. GRBL v kombinaci s hračkoidními deskami Arduina (omluvte mě, ale není to průmyslové řešení) je spíše pro nadšence a hobby zájemce. Profíci nechť ohnou nos a dále nečtou.
Na vyzkoušení funkce GRBL stačí pro začátek holé Arduino UNO (nebo i NANO protože tyhle desky jsou hardwarově shodné, ale na NANO neosadíte jednoduše shield pro 4 drivery, nicméně pro první pokusy a hraní postačí). Není potřeba hned kupovat originál, stačí klon, ale velmi doporučuji, aby to byl “ten s velkým švábem” se specifikací ATMEGA16U2+MEGA328P, tedy precizní. Číňan ho prodává pod $10. Cokoli jiného sice zřejmě bude fungovat, ale občas může docházet k nevysvětlitelnému chování.
K připojení Arduina k počítači nepotřebujete nic kromě USB kabelu. Pokud máte WIN10 a novější, tak po připojení počítač tuto periferii s velkou pravděpodobností bezpečně pozná. U WIN7 to chce trochu štěstí. Mohou nastat jen 3 možnosti: 1/ PC desku pozná, výborně! 2/ PC desku nepozná, ale začne hledat vhodné ovladače – tenhle proces může trvat opravdu dlouho a doporučuji PC nechat ať hledá, nejspíš najde, výborně! 3/ PC desku rovnou prohlásí za neznámé zařízení – máte pech a nezbývá než zkusit doinstalovat ovladače pro USB komunikaci ručně. Detailní popis postupu přesahuje rozsah tohoto textu. Ale jako první záchrana může pomoci nainstalovat kompletní Arduino IDE, tedy vývojové prostředí pro Arduino, které stejně budete potřebovat pro úpravy a nahrávání Arduino programů do desek s Arduinem. Takže další krok je instalace Arduino IDE, dle svého PC vyberete správnou verzi balíčku pro instalaci.
Po nainstalování Arduino IDE spusťte aplikaci a USB kabelem připojte svoje Arduino UNO (nebo NANO). V základu bývá v desce nahrán program pro blikání diodou na pinu 13, takže by dioda na vaší desce měla začít blikat. Pro komunikaci PC s deskou je potřeba na kartě “Nástroje” vybrat správnou desku a port.
Na obrázku výše je otevřen program “Blink”, to je snad úplně základní program, který můžete vyzkoušet nahrát do desky a hned poznáte, zda funguje – začne blikat dioda na pinu 13. Není potřeba připojovat žádné další periferie k desce. Nahrání spustíte šipkou v levé části horního menu a po nahrání bude okno programu vypadat jako na obrázku níže. A dioda bude blikat.
V tomto článku není prostor pro popis všech možností využití jak programu, tak desky Arduina, takže pojďme rovnou k tomu, jak GRBL do desky dostat. Verzí GRBL je několik. Zajímá nás pouze ta poslední, tedy verze GRBL 1.1h z roku 2019. Bohužel od té doby už k žádné aktualizaci nedošlo. Stáhněte balíček dle svého “archivátoru”, třeba ZIP, a rozbalte do svého PC. Už při instalaci Arduino IDE došlo k vytvoření složek, které tento program používá a můžete stažený balíček rozbalit do struktury jeho složek s různými výukovými a ukázkovými programy. Stejně tak ho ale můžete rozbalit kamkoli, hlavně když ho později najdete :).
Pozor! Jeden z čtenářů tohoto článku poslal upozornění, že na umístění souborů GRBL záleží. Při nahrávání programu do desky Arduina hledá kompilátor knihovny *.h v adresáři “libraries”. Takže doporučuji celou složku s GRBL náhrát přímo do adresáře “libraries”. Případně po stažení ZIP archivu jej nerozbalovat a využít funkce Arduino IDE: Projekt > Přidat knihovnu > Přidat .ZIP knihovnu…
Hlavní složka “grbl” obsahuje několik podsložek. V Arduino IDE otevřeme soubor “grblUpload.ino”, který se nachází zde vaše umístění/grbl/examples/grblUpload/grblUpload.ino. Nač otálet? Stisknout šipku pro nahrání. Dojde ke kompilaci programu, která může chvíli trvat, a následně k samotnému nahrání. Ve spodní části okna se začnou objevovat i nepěkné hlášky zvýrazněné oranžově, ale pokud nahrávání skončí hlášením “Konec nahrávání” nemusíte se tím znepokojovat. Nyní máte desku připravenou pro frézování … ale kdepak, tak snadné to není. Každopádně jestli se vám program povedlo nahrát, tak vás zřejmě už žádný velký softwarový zádrhel nečeká.
K nastavení základního chování GRBL se používá soubor config.h. Tady jsou definovány prakticky všechny proměnné ovlivňující chování budoucího stroje. Otevřít a editovat se dá třeba v programech Notepad (Zápisník), PSPad a dalších, které nezmění strukturu souboru (v žádném případě třeba Word!). Nebudu procházet všechny jednotlivé proměnné, ostatně jsou celkem detailně popsány. A i když vám to nejspíš přijde jako nepochopitelný chaos, tak kromě toho, že většinu z nich vůbec nebudete potřebovat měnit, tak postupně, v součinnosti s uváděním vašeho stroje do chodu, jistě funkce “těch důležitých” pochopíte. Nabízím svůj config.h ke stažení. V komentování nejsem moc zodpovědný, takže se v tom musíte přehrabat sami (srovnáním originálního a mého config.h). Místa, kde jsem nastavení měnil, jsem označil **. Velmi doporučuji si původní (lépe řečeno funkční) config.h vždy zálohovat. Třeba do samostatné složky pro každou změnu (např. budu mít složky “originál”, “test_homovani”, ….). Při nahrávání GRBL do Arduina je vyžadován vždy config.h, takže ten co potřebuji nakopíruji ze své složky do hlavní složky programu (grbl/).
Úpravou confing.h se upravují ta úplně základní nastavení. Pro podrobnější uživatelské nastavení už musíme to GRBL konečně spustit. Jak? GRBL je zprostředkovatel a převede data frézovacího programu, tedy dráhy nástroje (nástrojů) zapsané v G-kódu, na pohyb jednotlivých os a případně obslouží i další náležitosti jako je ovládání vřetene (nebo laseru), spínání odsávání atd. Potřebujeme tedy nástroj / program, který toto umožní. Na výběr je mnoho programů. Já jsem si oblíbil program Candle, který podrobně popisuji v jiném článku. To vážně jen odkážu na jiný článek? Ale kdepak. Candle je bezva, ale opravdu jen pro to posílání dat do stroje. Na úpravu parametrů GRBL je nepohodlný. Na to mám raději program GRBL Panel. Opět zdarma a volně ke stažení. Neinstaluje se, takže jen stáhnout archiv ZIP, rozbalit do počítače a spustit souborem GrblPanel.exe. Objeví se okno jako na obrázku níže. Nejspíš se vaše deska Arduino sama nepřipojí. Stačí ale zvolit správný port (zde COM17) a stisknout tlačítko “Connect”. Z Arduina se načte vše potřebné. A teď to přijde …
Po kliknutí na záložku “Settings” se v přehledné formě objeví všechny proměnné ovlivňující chod stroje. Popisovat všechny není záměrem tohoto článku. Doporučuji k prostudování pěkně zpracovanou tabulku ve formě PDF. Níže na obrázku je tabulka, kde lze jednotlivé proměnné snadno měnit. Každá proměnná má svoje označení ve formátu $ a čísla. Následuje hodnota a popis. V odkazované PDF příručce najdete jaké hodnoty nebo jaký rozsah hodnot lze nastavit případně i hodnoty pro specifické chování stroje viz. např. proměnná $3, kterou ovlivňujete směr pohybu jednotlivých os a obdobně proměnná $23, kterou měníte pohyb osy pro nájezd na Home pozici, tedy pokud máte stroj vybavený Home spínači. Načíst nastavení stroje lze stiskem tlačítka “Get Grbl Settings”. Změněná hodnota se po potvrzení klávesou Enter uloží do paměti Arduina. V pravé horní části okna se nachází informace o verzi GRBL, která je v Arduino desce nahraná. Ostatních kolonek a nastavení si nemusíte všímat.
Jak už jsem napsal výše, GRBL Panel používám pouze pro přehlednou a jednoduchou změnu $ parametrů. Na našich strojích LUPA v.3 používáme tato nastavení : $0=10, $1=255, $2=0, $3=0, $4=0, $5=0, $6=0, $10=1, $11=0.010, $12=0.002, $13=0, $20=1, $21=0, $22=1, $23=0, $24=40.000, $25=800.000, $26=250, $27=1.500, $30=16000, $31=6000, $32=0, $100=100.000, $101=100.000, $102=200.000, $110=9000.000, $111=9000.000, $112=4500.000, $120=800.000, $121=800.000, $122=450.000, $130=517.000, $131=833.000, $132=127.000.
Pro první pokusy nechte proměnné $22 a $20 nulové. Těmito proměnnými říkáte stroji, že máte osazené Home spínače a zároveň, že máte definovanou velikost stroje. Proměnné $30 a $31 udávají rozsah ovládání otáček vřetene a de facto jen určují v jakých hodnotách budete moci otáčky ovládat. Samotné nastavení ovládání otáček z programu už je vyšší dívčí a pro začátek se tím nezabývejte a nechte defaultní hodnoty. U proměnných od $110 po $122 velmi záleží na zvolené koncepci stroje / pohonu os. Naše frézky mají osy X a Y poháněné řemínky, proto taková rychlost a zrychlení. Na ose Z je použit šroub a všimněte si výrazně nižších hodnot.
Pro úplnost musím uvést, že i v prostředí výše zmiňovaného programu Candle lze proměnné měnit. Ale pouze ručně vypisováním do konzoly programu. Pokud chci např. parametr $22 změnit na hodnotu 1, tak musím napsat $22=1 (a odeslat) viz. obrázek níže. Jak jistě uznáte, tak vše takto ručně psát je krajně nepohodlné.
Pokud jste se dostali až sem doporučuji stáhnout bezplatný program Candle 1.1.7 a v něm si poprvé zkusit rozpohybovat jednotlivé osy. Velký pozor na verzi programu. Existuje i novější verze Candle 1.2b, která přináší několik velmi zajímavých vylepšení (zejména volně programovatelné klávesové zkratky), ale také spoustu chyb a podivností a nemohu ji proto doporučit, sám zůstávám u verze 1.1.7.
Prostředí programu Candle je přehledné. Osami můžete zajezdit šipkami v pravé části okna – začne se pohybovat oranžová “tužka” symbolizující nástroj. Podrobnější popis programu v samostatném článku.
Na obrázku CNC Shieldu pro 4 “malé” drivery s popisem vstupů a výstupů si všimněte těchto maličkostí: – v levém horním rohu je napájení krokových motorů – nahoře ve střední části jsou Jumpery pro naklonování 4. osy, na našich strojích máme pro osu Y dva motory a tak je naklonována právě osa Y, výstup pro “naklonovaný” motor je na pozici A – +5V/GND je napájení Arduina v případě, kdy nepoužijete napájecí kulatý konektor, který je součástí desky Arduina – ve spodní části vlevo pozor, označení na desce ESTOP je ve skutečnosti RESET, pro tlačítko ESTOP je vhodnější použít pozici Abort (A0)
Tady se základním popisem instalace GRBL končím protože dál už je potřeba začít na Arduino desku připojovat další komponenty – napájení, drivery, motory, relé apod.
Věřím, že i tak vám tento základní popis pomůže ve vašem snažení o výrobu CNC stroje – frézky, laseru, řezačky polystyrénu apod.
Aspire patří do rodiny programů od anglické společnosti Vectric Ltd. Jedná se o výkonný intuitivní profesionální CAD/CAM software umožňující i složité práce s 3D modely. Pro import podporuje formáty DWG, DXF, EPS, AI, PDF, STL. Pro import obrázků BMP, JPG, TIF, GIF. Obsahuje 3D simulátor drah obrábění. Vzhledem k tomu, že software umí importovat velké množství v praxi používaných standardních formátů souborů, lze 2D data i 3D modely vkládat velmi pohodlně. Vectric Aspire obsahuje komplexní sadu nástrojů pro kreslení a rozvržení, vytváření vektorových křivek, převádění obrazu na křivky, komplexní sadu nástrojů pro tvorbu i editaci 3D modelů, vizuální simulaci nástrojových drah, správu vrstev a další. Zároveň nabízí rozsáhlé možnosti práce s následujícím množstvím nástrojových drah a strategií obrábění: Profilování, Kapsa, Mozaika, Vrtání, V-Carving, Hranolové vyřezávání, Vlnkování, Texturování, 3D hrubování a 3D dokončování. Software Aspire v sobě kombinuje funkce verzí V-Carve PRO a Cut3D. Díky komplexní řadě nástrojů pro práci s 3D modelem, vám tak umožní jeho vytváření od nuly, z importovaných křivek či obrázků, jeho deformování a tvarování obdobným způsobem jako by jste jej tvořili z hlíny vlastníma rukama, vícestranné obrábění, velmi pokročilé obrábění ve 4-té rotační ose a zároveň obsahuje knihovnu klipartů s objekty 2D křivek i 3D těles. Tato databáze je pravidelně rozšiřována a umožňuje i přidávání vlastních klipartů (vámi vytvořených 3D modelů).
Program se neustále vyvíjí a často jsou vydávány nové verze. Nevýhodou může být, že není vždy zajištěna zpětná kompatibilita. Např. pokud si data připravíte ve verzi 8.0, tak je ve verzi 10.0 neotevřete a naopak. Zdá se ale, že kompatibilita existuje vždy mezi nejbližšími dvěma verzemi, tzn. data z 8.0 se dají otevřít v 9.0.
Vectric má ke svým produktům velmi propracované online manuály a i když jsou jen v angličtině lze z nich snadno (např. s pomocí online překladače) pochopit k čemu je která ikonka nebo jak se ke které funkci dostat.
Pro mnohé bude velkou nevýhodou cena, která u aktuální verze 11.5 činí 1800€ (bez DPH). Vectric nabízí snížení ceny v případě upgradu na novější verzi, případně při přechodu z jiného jejich programu.
Pro obrábění je potřeba materiál upnout. Samostatnou kapitolou jsou tužší deskové materiály jako je třeba sklotextit. Nedá se napsat, že by platilo univerzální pravidlo pro způsob upnutí. V následujícím příkladu je upnutí řešeno speciálně pro konkrétní nástroj – frézu dvoubřitou vroubkovanou. Jedná se o celokarbidovou dvoubřitou frézu s pilníkovým (diamantovým) vzorkováním. Nástroj má „obrácenou“ spirálu. To znamená, že při frézování je materiál přitlačován k podložce. Nehrozí tak přizvedávání a vibrování hlavně tenčích desek. Právě ta “obrácená” spirála je důležitá. Nemusí se tolik dbát na přitlačení materiálu v celé ploše a desku stačí pevně uchytit po obvodu. Samozřejmě se deska nesmí příliš vzdouvat, aby měl nástroj při vyjetí vzhůru dostatečnou rezervu pro nájezd na další řezanou linii. Na druhou stranu je ale důležité mít pod materiálem prostor, kam se bude odvádět odfrézovaný materiál.
Černě probarvená sklotextitová deska o rozměru 620x310mm s tloušťkou 1mm je jednoduše uchycena pouze ve čtyřech bodech malými packami, ty přimačkávají desku k základně. Podél dlouhé spodní hrany je po celé délce doraz, vlevo je kruhový pevný doraz, nahoře a vpravo excentr pro vymezení přesné polohy desky. Jako základna je použit zbytek MDF vhodné velikosti a protože byla deska příliš úzká, jsou v místech pacek a dorazů dolepeny další zbytky MDF. Celý přípravek je přišroubován k základní desce frézky. Když se dobře podíváte, uvidíte po delších hranách tenké smrkové lišty, kterými je deska podložena. Proč? Poznáte z dalšího obrázku.
MDF deska je profrézována v rastru cca 25x25mm do hloubky cca 3mm. Šířka drážek je 5mm. Do některých drážek jsou vloženy balzové lišty tl. 5mm. Množství vkládaných lišt se odvíjí od tloušťky frézované desky. Čím tenčí, tím více lišt. Lišty se do drážek nelepí ale jen nasouvají. Když se opotřebují, tak se vymění. Lišty přesahují cca 2mm nad úroveň MDF. Vyfrézované tvary v MDF jsou z několika prvních frézování, kdy sklotextitová deska ležela zcela na MDF. Bohužel drážky se pro odvod odpadu ukázaly jako nedostatečné a nástroj vtlačoval odpadní materiál do MDF. Proto to přizvednutí balzovými lištami a proto také ty smrkové lišty po obvodu. Jistě by šlo celý přípravek udělat elegantněji.
Téměř dokončené frézování. Je zřejmé, že se nejedná o frézku LUPA což ale principu vůbec nevadí. Inspirací může být také odsávání prachu. Překližkový držák je dvěma maticemi uchycen na základnu osy Z. Výškově se dá umístění držáku přizpůsobit. “Mantinely” pro uzavření prostoru kolem nástroje tvoří mechová guma nalepená zespodu na držák.
Deska po dokončení frézování.
Obecně se dá doporučit, zejména při opakované výrobě stejného dílu, nebo opracování stejného výchozího materiálu (desky stejné velikosti apod.), zhotovení speciálního upínacího přípravku. A i když nebudete vyrábět opakovaně stejné věci je vhodné na základní desku frézky upevnit pomocnou desku u které nebude vadit její rozřezání, rozvrtání, zkrátka poškození. Zároveň platí, že je lepší mít obráběný materiál umístěn co nejvýše vůči ose Z – tedy tak, aby vřeteno sjíždělo jen o co nejmenší vzdálenost. Omezí se tím vyložení osy Z a tedy i případné vůle na pohyblivých částech osy Z. To může pomoci omezit případné vibrace a v konečném důsledku bude frézování přesnější a pro nástroj bezpečnější.
Způsobu upevnění pomocných desek (přípravků) k základní desce frézky se meze nekladou. Postačí i několik vrutů, které budete dávat vždy do stejného místa. Případně v základní desce vytvoříte rastr závrtných matic, které umožní větší variabilitu možností uchycení přípravků.
Ze začátku se nesnažte vymyslet nejdokonalejší přípravek ani jeho uchycení. Stejně vždy přijdete na to, že by to šlo lépe. Takže hlavně frézovat a sbírat zkušenosti :).
Jarda Pelán vymyslel a vymodeloval sestavu pro odsávání. Jedná se o několik 3D modelů navržených pro výrobu 3D tiskem. Vše důležité je snad zřejmé z fotek. Princip řešení odsávání je takový, že hlavní držák je umístěn na pevné části osy Z (tzn. odsávání se nepohybuje nahoru / dolů společně s osou Z a zůstává stále ve stejné výšce nad opracovávaným materiálem). “Bariéru” pro uzavření prostoru kolem nástroje tvoří zástěra z PET lahve upevněná na rámeček, který se pomocí magnetu uchytí na hlavní tělo odsávání. Je tak zjednodušen přístup k nástroji. PET třásně jsou poddajné, takže nehrozí zaseknutí o nějaký výstupek při frézování a současně vytvoří kompaktní stěnu kolem nástroje což vede k lepšímu odsátí prachu. Když se třásně opotřebují jednoduše se nahradí novými.
3D data dal Jarda k dispozici, takže si je můžete stáhnout (data *.STL). Nastavení tiskárny si musíte pořešit dle svých zkušeností a autor nenese záruku, že zrovna na vaší tiskárně se podaří vytisknout bezvadný výrobek. Co by vás mohlo při kompletaci překvapit je, že autor použil čtvercové matice M3. Neodymové magnety mají velikost 5x2mm.
A jak to celé může dopadnout je vidět na připojených obrázcích.
Když jsme hledali vhodné vřeteno pro naše frézky řady LUPA v.2 našli jsme tohle vřeteno na Aliexpressu. Bylo skladem někde v Evropě a tak za necelý týden zvonil pošťák na dveře. Nečekali jsme nic extra, ale vřeteno nás příjemně překvapilo. Ačkoli není kleština součástí hřídele a je jen na hřídel nasunuta a zajištěna šroubky, tak je perfektně souosá a nástroj v ní upevněný nehází. Tohle první vřeteno jsme dost trápili a vyzkoušelo si frézovat jak dřevo, tak hliník. Při provozu se trochu hřeje, ale možná i díky masívnímu kovovému úchytu se nepřehřívá a teplota prakticky nezávisí na zátěži. V horní části je na hřídeli umístěn větrák – to je asi největší zdroj hluku. Na různých internetových diskuzích lze najít, že si někteří na vřeteno namísto tohoto sranda větráčku dávají vlastní, např. tištěné na 3D tiskárnách. Podle našich zkušeností to ale není třeba.
S vřetenem je dodáván i zdroj, který slouží pro regulaci otáček. Výrobce udává otáčky 3000-12000/min. Na zdroji lze nastavit i otáčky vyšší (přes 14tis/min). Jaký to bude mít dopad na životnost jsme zatím nezjistili. Zdroj není zrovna zázrak bezpečnosti. Připojuje se do sítě 110/230V dvoužilovým kabelem bez ochranného vodiče. Ke zdroji se všechny kabely připojují přes šroubovací svorkovnici, jen pro připojení potenciometru regulace otáček je použit konektor. Do svorkovnice se připojuje také vřeteno – je stejnosměrné, takže záleží na připojení kabelů. Vřeteno je regulováno napětím a to může dosahovat až cca 100V! Od výrobce jsou dva vstupy na svorkovnici propojeny kablíkem. Tento vstup slouží pro případné spínání vřetene pomocí relé – jednoduše pokud jsou vstupy na svorkovnici propojeny, tak se vřeteno po připojení napájení roztočí a pokud propojeny nejsou, tak se neroztočí. Pozor, spíná se přímo 230V! V naší ovládací elektronice LUPA BOX v.2 spínání pomocí relé používáme.
Kromě spínání vřetene pomocí relé používáme také regulaci pomocí PWM na kterou není zdroj od výrobce připraven. Vyrábíme si vlastní elektroniku, která regulaci vřetene přes PWM umožňuje a nahrazuje ovládání potenciometrem. Díky tomu můžeme zajistit ovládání otáček z ovládacího programu (např. Candle) a tedy i přímo z G-kódu. Průběh regulace je bohužel dost nelineární, ale i to jsme vyřešili použitím dalšího Arduina NANO, které kromě převodu a řízení otáček používáme ještě pro další pomocné funkce. Pro úplnost doplním, že lze koupit verzi, kde je zdroj připraven pro regulaci 0-10V, ale ta bývá hůře dostupná a obyčejně je dražší. Pak je nutné pro regulaci použít externí modul, který převede PWM (signál, který je výstupem z GRBL) na napětí 0-10V. I tak se ale při koupi této varianty budete potýkat s nelinearitou regulace otáček.
Vřeteno hodnotím jako ideální pro hobby použití. Používáme ho na našich hobby frézkách a zatím jsme neměli jediný problém. CNC profíci nejspíš ohrnou nos protože si nedokáží představit nic jiného než výkonné střídavé vřeteno s frekvenčním měničem. To už je ale jiná cenová hladina. Takové vřeteno je navíc docela těžké a stroj na to musí být dimenzován. Zkrátka začarovaný kruh …
Technické parametry:
Otáčky motoru 3000 – 12000 /min (lze i více)
Průměr motoru 52mm
Délka motoru 208mm
Maximální napětí na motoru 100V
Maximální proud 6A
Točivý moment 0.5Nm
Upínání ER11
Obsah balení: Vřeteno 500W (stejnosměrný motor) s upínáním ER11, regulátor otáček (zdroj 110-230V), držák motoru vč. šroubů, kleština 1/8″ (ER11).
Montáž musí být provedena odborně aby nedošlo k úrazu elektrickým proudem. Všechny kovové části musí být dodatečně uzemněny a zdroj musí být umístěn do nevodivé krabice se zajištěným odvětráním.
Vřeteno lze u nás zakoupit jako příslušenství frézek.
Při frézování obyčejně vzniká spousta odpadu a tak se hodí odsávání. Až vás přestane bavit šmejdění trubicí vysavače kolem nástroje, tak dalším krokem může být třeba navrhované řešení. Opravdu se jedná o úplný základ a vlastní invenci se meze nekladou.
Jedná se o dva díly postavené na 3D tiskárně (data *.STL). Odsávací hubice se napojí na vysavač. Držák s protaženou hubicí se nasazuje na úchyt vřetene. Držák je navržen pro nasazení na úchyt, který je často součástí obyčejných čínských stejnosměrných vřeten. Při výměně nástroje se odsávání jednoduše z úchytu vřetene sundá. Držák nemá zrovna nejvhodnější tvar pro 3D tisk na běžné SLA (“slintací”) tiskárně, takže se hodí ho rozdělit na dvě půlky (spodní / horní) a po vytištění je jen jednoduše spojit vruty. Výtisk na obrázcích není zrovna prvotřídní kvality, ale na funkci to nemá vliv.
Mějte prosím na paměti, že běžný vysavač není určen pro dlouhodobé použití a hlavně velmi rychle ho naplníte. Propojovací hadici je třeba umístit tak, aby neomezovala pohyb stroje – na obrázku je připojení spíše demonstrativně a pohybu stroje by vadilo.
A jak to celé může dopadnout je vidět na připojených obrázcích.
Výše popsané odsávání se hodí spíše pro frézování plochých věcí, kde vřeteno zajíždí stále do stejné hloubky. Pokud budete chtít frézovat prostorově (výškově) členitější tvary, tak je vhodnější řešit uchycení sání spíše na nepohyblivé části konstrukce osy Z, aby se nepohybovalo nahoru / dolů. Možné řešení na dalším obrázku. Překližková deska je přišroubována ke konstrukci stroje. Na desku jsou uchyceny typové úchyty pro novodurové odpadní trubky a celá sestava je vyskládána právě z odpadních trubek. Odsávání je hadicí s větším průměrem napojeno na průmyslový odsavač pilin.
V praxi pak frézování s odsáváním může vypadat třeba takto … video na YouTube.
Candle GRBL je jednoduchý software pro řízení CNC strojů ideální pro začátečníky a navíc je zdarma. Jazykem programu je angličtina, ale ani ti z vás, kdo angličtinou nevládnou, by neměli mít s pochopením a používáním programu problémy.
Úvodem důležitá informace. Návod je sepsán pro verzi 1.1.7 takže spoustu věcí ve starších verzích nenajdete a stejně tak těžko předvídat, co bude případně v nějaké novější.
Candle umí zobrazit G-kód a obsahuje pouze základní funkce, které jsou potřeba pro spuštění programů v G-kódu. I když nenabízí tolik funkcí jako složitější programy stále je to zcela dostatečné pro „začátečnickou“ práci s CNC strojem. Výhodou je celková přehlednost prostředí, a že v základu obsahuje vlastně vše, co může nejen začátečník běžně potřebovat.
Pro jaké typy CNC strojů lze Candle použít?
Candle využívá zdrojový kód GRBL, který může běžet na Arduinu. Takže pomocí Candle lze ovládat každý CNC stroj, který je řízen Arduinem a nemá více než 3 osy (X, Y, Z). Tento typ programu je určen pro hobby použití, proto se používá hlavně na domácí a malé frézky.
Candle – návod k použití
Pojďme postupně k uživatelskému rozhraní a k použití jednotlivých funkcí.
State (poloha) Tato část zobrazuje polohu vřetena ve vztahu k pracovním souřadnicím “Work coordinates” a souřadnicím stroje “Machine coordinates“. Zcela zásadní je uvědomit si co které souřadnice znamenají. Zatímco souřadnice stroje udávají polohu vřetene vůči stroji, pracovní souřadnice jsou důležité při samotném obrábění. Velice jednoduše řečeno souřadnice stroje by vás nemusely ani zajímat pokud by vám stačilo, že někam do pracovního prostoru stroje upevníte materiál a dle počátečního bodu obrábění na materiál najedete nástrojem. Nyní by stačilo vynulovat pracovní souřadnice (protože program v G-kódu musí mít dán počátek a ten se udává vůči “nule”) a spustit program. Jenže! Průšvih nastane když se něco při obrábění pokazí. Např. stroj se zasekne / ztratí kroky, nebo se zlomí nástroj apod. Můžete samozřejmě pro pokračování obrábění zkusit najet vřetenem přesně do stejné “nulové” pozice a program spustit znovu, ale s největší pravděpodobností se úplně přesně netrefíte. Od toho jsou souřadnice stroje. Pokud máte stroj vybavený koncovými spínači, nebo přesněji řečeno spínači pro tzv. houmování, dokážete naprosto přesně a opakovaně nastavit polohu vřetene do této HOME pozice – říkejme tomu třeba základní výchozí pozice, kde jsou souřadnice stroje X,Y,Z=0. Od tohoto místa si můžete odjet třeba do středu pracovního prostoru, souřadnice stroje budou třeba X=305.2, Y=134.7, Z=21.4mm. Čísla jsou to sice nezapamatovatelná, ale to vůbec ničemu nevadí. Vy si jen v tomto místě vynulujete pracovní souřadnice, takže obrábět začnete z pozice X,Y,Z=0. Pokud se cokoliv pokazí a budete se potřebovat dostat na počátek obrábění, stačí opět odjet na HOME a následně se přesunout na výše uvedené nezapamatovatelné souřadnice. Abyste si nemuseli taková čísla pořád pamatovat má Candle různá tlačítka. A o tom už dále v textu.
Poznámka: Pokud není váš stroj vybavený koncovými spínači na jednotlivých osách (spínači které slouží pro nájezd vřetene do pozice „HOME“) lze doporučit, abyste při ukončení práce před vypnutím stroje odjeli vřetenem na konec každé osy. Tato poloha pro vás bude počátkem při dalším zapnutí stroje. Mějte ale prosím na paměti, že když stroj vypnete a znovu zapnete nikdy nebudete mít jistotu, že vřeteno bude přesně ve stejné pozici. Mohli jste stroj vypnout v mezikroku motoru a po zapnutí se malinko pootočí. Proto je mnohem vhodnější mít na stroji “houmovací” spínače. Pomocí nich přesunete vřeteno do vždy stejné pozice. Použití spínačů je vždy přesnější než nájezd na konce os tzn. na mechanické dotazy!
Control (ovládání) První tlačítko je „Home“. Tuto funkci lze použít pouze, pokud máte stroj vybaven koncovými spínači (viz. výše) a stroj je správně nastaven (na úrovni řízení Arduinem). Po spuštění funkce najede vřeteno do pozice dané koncovými spínači. Pokud váš stroj koncové spínače nemá, tuto funkci nepoužívejte. V základním nastavení GRBL jako první najíždí na koncový spínač osa Z a “vynuluje se”. Po ní najíždí současně osy X a Y. Osa, která najede na koncový spínač, se zastaví a “čeká” až na koncový spínač najede i druhá osa. Až potom dojde k “vynulování” obou os. Způsob nájezdu na koncové spínače, např. pořadí, nebo nenajíždění některé osy lze definovat v konfiguračním souboru config.h – define HOMING_CYCLE_0 (1<<Z_AXIS) … Pokud nevíte, co děláte, tak se v config.h nehrabte.
Dalším ovládacím tlačítkem je „Z-probe“ (Z-sonda). K řídící desce s Arduinem lze připojit Z-sondu, která slouží k přesnému výškovému nastavení nástroje. Pokud máte sondu připojenu a správně nastavenu, tak stiskem tohoto tlačítka se vřeteno začne pohybovat dolů, dokud se nástroj nedotkne základny sondy. Co se bude dít dále lze definovat zapsáním G-kódu do kolonky „Probe commands“, která je přístupná na panelu Service>Settings>Connection>Control>Probe commands. Obvyklé nastavení je takové, že se po dotyku „vynuluje“ pracovní souřadnice osy Z, případně ještě vřeteno vyjede nahoru o předem nastavenou vzdálenost.
Další dvě tlačítka jsou „Zero XY“ a „Zero Z“, jejich stisknutím vynulujete pracovní souřadnice v místě, kde se aktuálně nachází vřeteno.
Prvním tlačítkem ve spodní řadě je “Restore origin“ (obnovení počátku). Tohle tlačítko si brzy oblíbíte. Bude to vaše “záchrana” ve spoustě situací. Stisknutím tohoto tlačítka obnovíte předchozí pracovní souřadnice pomocí příkazu G92 (co je G92 vás celkem nemusí zajímat – ale kdyby snad ano … G92 zaznamená aktuální polohu na všech osách). Předchozími pracovními souřadnicemi se rozumí souřadnice, které jste nastavili stiskem tlačítek „Zero XY“ a „Zero Z“ viz. výše.
Tlačítko “Restore origin” se hodí, když při frézování dojde k problému – např. na některé z os motor ztratí kroky, nebo frézování ukončíte stiskem RESET (tím se smažou pozice pracovních souřadnic). Pokud dojde ke ztrátě kroků, stačí stroj znovu “nahoumovat” a opět stisknout “Restore origin“. Stiskem „Restore origin“ pošlete vřeteno do pozice 0, 0, 0 původních pracovních souřadnic – pro vynulování musíte znovu stisknout „Zero XY“ a nastavit nulovou pozici nástroje následovanou stiskem „Zero Z“. Tyto souřadnice (poslední pracovní) si stroj pamatuje dokud nenastavíte nové. Pamatuje si je jak při vypnutí stroje, tak počítače. Snadno tak můžete večer vše vypnout a druhý den pokračovat přesně od stejného místa.
Tlačítko „Safe position“ (bezpečná pozice) přesune vřeteno dle příkazů v dialogovém okně Service>Settings>Connection>Control>Safe positions commands. Co je pro vás bezpečná pozice si musíte určit sami. Obyčejně se používá pro vyjetí nástroje v ose Z nahoru o danou vzdálenost.
Pokud váš stroj nemá koncové spínače lze tuto funkci použít také jako tlačítko „Home“. Stačí v nastavení „Safe positions commands“ vložit kód „G53G00G90Z0; G53G90X0Y0“. Po stisku tlačítka pak vřeteno přejde do výchozí polohy. Funkci těchto tlačítek (Restore origin, Safe position) si řádně otestujte, abyste ji pochopili. Nedoporučuji ale jako souřadnici Z zadávat 0. Pokud máte upnutý nějaký obrobek nebo cokoli na pracovní ploše snadno do těchto předmětů vřeteno a nástroj narazí a dost možná to odnese nástroj.
Tlačítko “Reset” = emergency stop (nouzové zastavení). Po stisknutí se stroj zastaví a vřeteno se vypne. Důležité tlačítko. Pokud je při frézování jakýkoliv problém je tohle poslední záchrana. Doporučuji mít na stroji osazené také mechanické tlačítko ESTOP, které bude suplovat právě tuto funkci.
Pozor! Pokud ve vaší ovládací elektronice používáte Arduino UNO s CNC Shieldem, tak na něm je ESTOP špatně zapojen. Na Shieldu funguje ESTOP jako reset Arduina. Doporučuji ESTOP připojit na pozici RESET/ABORT – to supluje funkci tlačítka “Reset” na obrazovce.
Tlačítko “Unlock” (odemknutí) slouží k opětovnému zapnutí zařízení po stisknutí tlačítka “Reset“.
Poznámka: Pochopení způsobu ovládání pozice vřetene, co znamenají souřadnice stroje a co pracovní souřadnice, pochopení výše popsaných funkcí tlačítek a zkrátka zvládnutí základních operací souvisejících s pohybem vřetene a nastavením jeho polohy jsou základní úkony, bez kterých se při obsluze vašeho CNC stroje neobejdete.
User commands (uživatelské příkazy) Candle umožňuje vytvoření čtyř uživatelsky definovaných funkcí, které jsou přiřazeny tlačítkům 1-4.
Definice spočívá v zapsání G-kódu do kolonek pro jednotlivá tlačítka v dialogovém okně Settings (nastavení). Na obrázku níže vidíte, že pro tlačítko 1 je nastaveno, aby po jeho stisknutí najelo vřeteno na souřadnice x=0, y=0, z=0 a to rychloposuvem (G0). Stejně jako v textu výše doporučuji v tomto případě důkladně zvážit, zda je nájezd na Z=0 rychloposuvem vhodný. Na obrázku je také vidět zápis G-kódu pro “Z-sondu” (Probe commands) a pro “bezpečnou pozici” (Safe position commands). Až si osvojíte základy programování v G-kódu, tak zjistíte, že s tlačítky se dají dělat divy. Pokud chcete zadat více příkazů G-kódu oddělují se jednotlivé příkazy středníkem.
Heightmap (výšková mapa) Panel pro práci s výškovou mapou. Pro její vytvoření a pro její použití. Jen stručně k čemu ji lze použít. Výšková mapa se hodí, když potřebujete, aby nástroj v celé ploše opracovávaného materiálu zajel do přesné hloubky vůči povrchu materiálu. Typicky např. při gravírování nápisů do nerovného podkladu – křivé prkno, vypouklá miska apod. Takřka nezbytné je použití výškové mapy při vytváření DPS (desky plošných spojů) gravírováním. Cuprextit (laminátová deska s měděnou vrstvou) rozhodně není zcela rovný a i upnutím ke stroji se může zdeformovat. Jistě si dokážete představit, jak by vypadala třeba obyčejná drážka frézovaná gravírovací frézou s tvarem břitu V, kdyby někde zajela do hloubky 0,5mm a jinde 0,2mm … byla by různě široká. Výškovou mapu vytvoříte tlačítkem “Create”, případně můžete použít mapu, kterou jste si vytvořili dříve. Použití je snadné a není třeba podrobnějšího popisu. Hotovou mapu jednoduše “promítnete” (zaškrtnete políčko “Use heightmap“) na vaše frézovací data a Candle přepočítá souřadnice tak, aby frézování proběhlo přesně s ohledem na křivost povrchu. Tlačítka “Create” a “Open” jsou jasná (vytvořit / otevřít). Tlačítko “Edit mode” slouží k přepínání mezi režimem vytváření mapy a standardním režimem programu.
Možnost vytvořit výškovou mapu je aktivní pouze pokud máte nahraný nějaký program. Stiskem tlačítka “Auto” se nastaví generování mapy v rozsahu, na kterém je program (tam, kde se podle programu má pohybovat nástroj). V sekci “Border” v “W” a “H” lze zadat rozměr mapy manuálně a v “X” a “Y” se nastavuje umístění nastavené plochy mapy. V sekci “Probe grid” v “X” a “Y” se nastavuje počet měřících bodů a v “Zt” a “Zb” se nastavuje rozsah pohybu osy Z.
Spindle (vřeteno) V této sekci jsou prvky ovládání vřetene. Tlačítkem vřeteno vypnete / zapnete a pomocí posuvníku nastavujete otáčky. Když je spuštěn program (G-kód), tak nelze vřeteno vypnout, ale je možné měnit otáčky. Kam až vás posuvník pustí nastavíte Service>Settings>Machine information – kolonka Spindle speed min / max. Pozor, nastavené hodnoty určují jen rozsah regulace posuvníkem v Candle a nesouvisí zcela s reálnými otáčkami vřetene. Navíc je potřeba mít správně nastavené max. otáčky i v Arduinu (parametry $30 pro max, $31 pro min.). Toto nastavení souvisí s podrobným a přesným nastavením stroje a přesahuje rámec tohoto článku.
Overriding (přenastavení) V této sekci lze manipulovat s rychlostmi posuvu (Feed rate), rychloposuvu (Rapid speed) a otáčkami vřetene (Spindle speed) když je spuštěn program (G-kód). Toto jsou velmi užitečné funkce. Když je program (G-kód) spuštěn, tak můžete optimalizovat zejména rychlost posuvu nástroje při obrábění (Feed rate), můžete také měnit rychlost přejezdů (Rapid speed) a v neposlední řadě upravovat otáčky vřetene. Rychlost posuvu a otáčky vřetene mají, při vhodně zvoleném nástroji, zásadní vliv na kvalitu obrábění a na životnost nástroje! Pokud chcete přenastavit jednotlivé položky, zaškrtněte políčko a posuvníkem nastavte požadované hodnoty.
Jog (ovládání pohybu po osách) Sekce Jog umožňuje manuálně ovládat 3 osy vašeho stroje. Čtyři směrová tlačítka umístěná vlevo ovládají osy X a Y a dvě šipky vpravo slouží pro ovládání osy Z.
V rozbalovací nabídce „Step“ (krok) lze nastavit, jak se bude vřeteno po osách pohybovat. Při výběru „Continuously“ (průběžně) bude pohyb probíhat po dobu stisknutí tlačítka. Ostatní volby nabízejí velikost kroku – o jakou vzdálenost se vřeteno ve vybraném směru posune. Vyberte vzdálenost a stiskem směrového tlačítka se vřeteno o tuto vzdálenost posune. Ve středu směrových tlačítek X Y je tlačítko „Stop“ (zastavení). Tímto tlačítkem zastavíte pohyb, pokud jste například předtím spustili posuv vřetene o krok 10mm. Pokud vám přednastavené kroky nevyhovují, můžete do kolonky vepsat vlastní. Pozor, při zadávání desetinného čísla musíte použít tečku, kterou ale nelze z klávesnice napsat. Řešením je vybrat krok, který desetinou tečku obsahuje a změnit jen čísla. Další rozbalovací nabídka je „Feed“ (rychlost posuvu v mm/min). Vyberte si posuv, který vám vyhovuje. Pomalejší je vhodný pro jemné ruční ovládání. Rychlejší pak použijete při dlouhých přejezdech. Při zadávání vysokých hodnot pozor na mechanické možnosti stroje. Poslední volbou je zaškrtávací políčko pro zapnutí ovládání pomocí klávesnice. Políčko lze zaškrtnout buď myší nebo klávesou “Scroll/Lock” … tuto klávesovou zkratku si zapamatujte, opravdu se hodí pro rychlé přepínání mezi oběma druhy ovládání. Ještě pozor – pokud je aktivní ovládání klávesnicí, tak nejsou dostupné některé další ovládací prvky. Ovládací prvky pro pohyb osami viz. obrázek:
Ovládání z numerické klávesnice přináší zajímavé možnosti. Pokud posíláte program G-kód z počítače, tzn. máte počítač připojený ke stroji (a k Arduinu), tak můžete např. využít externí USB numerickou klávesnici, tzv. NumPad a dálkově stroj ovládat. Také je možnost použít obyčejný USB GamePad a přes definici klávesových zkratek využívat jeho tlačítek pro ovládání stroje. I když je lákavé použít bezdrátové řešení s Bluetooth doporučuji pro spolehlivý provoz raději spojení kabelem. Pro zajímavost – Gamepad na obrázku dole má celkem 14 tlačítek, takže lze využít opravdu pestrou škálu příkazů. Candle samotný ovládání Gamepadem neumí. Je potřeba použít externí program přes který se klávesové zkratky používané v Candle přiřadí jednotlivým tlačítkům.
Console (konzole) V této části jednak vidíte co se děje při stisku ovládacích tlačítek a také tady lze manuálně zadávat příkazy G-kódu (MDI – manual data input). G-kód můžete vkládat jako jednotlivé příkazy, ale klidně i jako soubor příkazů. Příkazy prováděné z konzoly jsou nezávislé na načteném programu. V případě chyby na stroji se v okně zobrazí její číslo a dá se tak podle seznamu chyb zjistit, co se stalo.
Nahrání a spuštění programu (G-kódu) Program musíte mít už vytvořený. Candle není určen pro tvorbu programů G-kódu. Program (soubor) otevřete buď pomocí tlačítka Open ve spodní části okna, nebo přes horní lištu „File>Open“. Po otevření programu se několik prvních řádků zobrazí ve spodní části obrazovky.
Pozor na formát dat. Candle pracuje s milimetry. Program může být i v palcích, pak je ale třeba, aby byl v programu uveden kód G20 (palce).
Před spuštěním programu najeďte nástrojem tam, kam potřebujete. Pro spolehlivé určení výšky nástroje se hodí použití dotykové sondy (Z-probe). V nastavené poloze stiskněte tlačítka „Zero XY“ a „Zero Z“ pro vynulování pracovních souřadnic. Po nastavení počátku obrábění stiskněte také tlačítko „Safe position“ a pokud ji nastavíte, viz. popis výše, vřeteno se vrátí zpět do výchozí polohy.
Po načtení program spustíte jednoduše kliknutím na tlačítko „Send“ (odeslat) ve spodní části obrazovky. Candle začne posílat data do řídící jednotky Arduino a vřeteno se začne pohybovat dle programu G-kódu. Stisknutím „Pause“ (pauza) se zastaví pohyb vřetene, ale vřeteno se nevypne. Pokud potřebujete program úplně zastavit, jednoduše klikněte na „Abort“ (zrušit) a vše se vypne, vč. vřetene. Program znovu (od začátku) spustíte dalším kliknutím na „Send“. Kliknutím na „Reset“ se v zobrazení jednotlivých řádek přesunete na začátek. Vedle tlačítek jsou ještě dvě zaškrtávací políčka. Zaškrtnutím “Check mode” si můžete nechat virtuálně zobrazit, jak bude frézování probíhat. Nelekejte se, pohyb nástroje bude velmi zrychlený. Zaškrtnutím “Autoscroll” nastavíte, že se při frézování bude automaticky listovat programem, takže uvidíte na jakém řádku se právě program nachází (Processed – vyřízeno, In queue – na řadě).
Candle má jednu šikovnou vychytávku a sice spuštění programu od libovolného řádku. Vyberte myší řádek (řádek se zvýrazní viz. obrázek výše), od kterého chcete program spustit, najeďte na tlačítko „Send“, klikněte, ale tlačítko myši nepouštějte a objeví se nabídka „Send from current line“ (spustit od aktuálního řádku), přejeďte na nabídku a tlačítko myši pusťte. Objeví se okno s informací jaké příkazy G-kódu Candle před spuštěním provede.
Doporučuji věnovat se zejména Z pozici nástroje, aby nedošlo k jeho poškození, pokud nebude mimo obráběný materiál. Někdy se může stát, že se Candle při tomto spuštění zcela zhroutí, zřejmě se to děje jen pokud se pokusíte spustit program od některého z prvních řádků, kde ještě nejsou použity žádné souřadnice X, Y, Z.
Vizualizace G-kódu Výhoda programu Candle je v zobrazení G-kódu přehlednou formou vč. zobrazení nástroje. S náhledem lze snadno manipulovat myší. Vyzkoušejte si co jednotlivá tlačítka a kolečko na myši dělají. Pro natočení pohledu lze také použít ikonky krychle v pravém horním rohu.
Po spuštění programu se nástroj v Candle začne virtuálně pohybovat. Všimněte si fialové a šedé dráhy na obrázku. Šedá barva vyznačuje dráhu, kterou má nástroj už za sebou. Fialová barva ukazuje část dráhy pro níž byla data již odeslána do řídící elektroniky (do Arduina). Pokud je vzdálenost mezi fialovou tečkou a virtuálním nástrojem příliš malá ukazuje to na nějaký problém v komunikaci mezi počítačem a strojem (Arduinem). Znamená to, že počítač dodává řídící elektronice data pomalu. V extrému může docházet k tomu, že vřeteno nejede, ale poskakuje protože Arduino čeká na další data. Pokud vše bez problému funguje, tak OK, ale pokud ne může být na vině třeba pomalá komunikace.
Nastavení stroje Nastavení stroje proveďte dle doporučení výrobce nebo komunity sdružené kolem vašeho CNC stroje.
Nové verze programu Candle Autor programu neustále něco vylepšuje. Často nějaké drobnosti přidá, ale občas také něco ubere. Aktuální verzi Candle najdete na GitHub.
Článek je samozřejmě volně k dispozici všem zájemcům. Pokud z něj ale budete některé části textu kopírovat pro svou potřebu, budu rád když nám dáte vědět, případně když uvedete zdroj :-).
Článek vznikl s využitím informací z webu CNC Philosophy.