GRBL pro zelenáče

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.

Základní panel Arduino IDE s výběrem desky.

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.

Okno se základním programem pro Arduino “Blink”. Po odeslání programu do Arduino desky je nahrání signalizováno nápisem “Konec nahrávání”.

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…

Výběr balíčku pro instalaci GRBL

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á.

Nahrání GRBL do Arduina

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/).

Ukázka souboru config.h

Ú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 …

Základní okno programu GRBL Panel

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.

Snadná editace proměnných v programu GRBL Panel

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é.

Konzola programu Candle

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.

Základní okno programu Candle, aneb Arduino připojeno a GRBL funkční.

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.

Využití pinů u Arduino UNO
Vstupy a výstupy na CNC Shieldu

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.