Uživatelská příručka CNDY Shield GRBL CNC Arduino UNO

V1.2

CNDY Shield GRBL CNC

Pinout GRBL na Arduino Uno

Analog 0 = Tlačítko Přerušit*
Analog 1 = Tlačítko pozastavení kanálu* (SAFETY_DOOR je sdíleno s pozastavením kanálu. Povoleno pomocí definice konfigurace)
Analog 2 = Tlačítko Start cyklu / Restart*
Analogové 3 = Výstup povolení chladicí kapaliny
Analogové 4 = (Volitelný) Výstup chladicí kapaliny pro mlhu (nebo diagnostická kontrolka ALARM_STATE**)
Analogový 5 = Vstup sondy*
Digitální 13 = Směr vřetena
Digitální 12 = Koncové spínače osy Z*
Digitální 11 = Vřeteno / Laser povolit PWM
Digitální 10 = koncové spínače osa Y*
Digitální 9 = Koncové spínače osy X*
Digitální 8 = Povolit / Zakázat krokové motory
Digitální 7 = Směr osy Z
Digitální 6 = Směr osy Y
Digitální 5 = Směr osy X
Digitální 4 = osa Z krokového pulzu
Digitální 3 = osa Y s krokovým impulsem
Digitální 2 = osa X s krokovým impulsem

Volitelná funkce dvou os

Uno Analogový kolík 3 = osa A DUAL_DIRECTION (dříve výstup umožňující chlazení)
Uno analogový kolík 4 = osa A DUAL_STEP (dříve jako volitelný výstup chladicí kapaliny pro mlhu)
Uno Digital 13 = Chladicí kapalina (výměna směru vřetena.)

Po instalaci úložiště grbl jako knihovny v Arduinu odkomentujte následující řádky v souboru config.h file ve složce knihovny grbl.

#define ENABLE_DUAL_AXIS // Výchozí zakázáno. Chcete-li povolit, zrušte komentář.

// Vyberte jednu osu pro zrcadlení jiného motoru. V tuto chvíli jsou podporovány pouze osy X a Y.
#define DUAL_AXIS_SELECT Y_AXIS // Musí být buď X_AXIS nebo Y_AXIS

POZNÁMKA: Omezení dvou os je sdíleno s (osa Z) limit pin ve výchozím nastavení.

Funkce dvou os vyžaduje k provozu nezávislý krokový pulzní kolík. Nezávislý směrový kolík není nezbytně nutný, ale umožňuje snadnou inverzi směru s nastavením Grbl $$. Tyto kolíky nahrazují směr vřetena a kolíky volitelné mlhy chladicí kapaliny.

Tato volitelná funkce dvou os je primárně určena pro naváděcí cyklus k nezávislému umístění dvou stran portálového portálu se dvěma motory, tj. samovyrovnání. To vyžaduje další koncový spínač pro klonovaný motor. Aby se dosáhlo samosvornosti, musí být oba koncové spínače na klonované ose fyzicky umístěny tak, aby se spustily, když je portál čtvercový. Důrazně doporučujeme ponechat motory vždy zapnuté, aby se zajistilo, že portál zůstane pravoúhlý s nastavením $1=255.

Pro Grbl na Arduino Uno musí být klonovaný osový koncový spínač sdílen a zapojen s limitním pinem osy z kvůli nedostatku dostupných pinů. Naváděcí cyklus musí umístit osu z a klonovanou osu v různých cyklech, což je již výchozí konfigurace.

Funkce dvou os funguje naklonováním výstupu kroku osy na další pár krokových a směrových kolíků. Krokový impuls a směr klonovaného motoru lze nastavit nezávisle na motoru hlavní osy. Aby se však ušetřil cenný flash a paměť, musí tato dvouosá funkce sdílet stejná nastavení (krok/mm, maximální rychlost, zrychlení) jako rodičovský motor. Toto NENÍ funkce pro nezávislou čtvrtou osu. Pouze motorový klon.

VAROVÁNÍ: Ujistěte se, že jste otestovali směry vašich dvouosých motorů! PŘED spuštěním prvního naváděcího cyklu nebo jakéhokoli dlouhého pohybu musí být nastaveny tak, aby se pohybovaly stejným směrem! Motory pohybující se v opačných směrech mohou způsobit vážné poškození vašeho stroje! Tuto funkci dvou os používejte na vlastní nebezpečí.

POZNÁMKA: Tato funkce vyžaduje přibližně 400 bajtů paměti flash. Některým konfiguracím může dojít flash, aby se vešly na Arduino 328p/Uno. Podporovány jsou pouze osy X a Y. Je podporován variabilní režim vřetena/laser, ale pouze pro jednu možnost konfigurace. Jádro XY, kolík směru vřetena a chladicí kapalina M7 jsou zakázány/nepodporovány.

Aby se zabránilo tomu, že cyklus nájezdu najede na dvojitou osu, když se jeden limit spustí před druhým kvůli selhání spínače nebo hluku, cyklus nájezdu se automaticky přeruší, pokud se koncový spínač druhého motoru nespustí v rámci tří níže definovaných parametrů vzdálenosti. Procento délky osy automaticky vypočítá vzdálenost selhání jako procentotage maximálního zdvihu druhé neduální osy, tj. pokud je volba duální osy X_AXIS na 5.0 %, pak bude vzdálenost při selhání vypočítána jako 5.0 % maximálního zdvihu osy y. Max a min vzdálenost při selhání jsou limity toho, jak daleko nebo málo je platná vzdálenost při selhání.

#define DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT 5.0 // Plovoucí (procenta)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MAX 25.0 // Plovoucí (mm)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MIN 2.5 // Plovoucí (mm)

Poznámka k portu I2C

Analog 4 (A4) a Analog 5 (A5) se používají pro port I2C na Arduino Uno nebo 328p. To znamená, že pokud používáte výchozí funkci sondy, mlhovou chladicí kapalinu, dvouosou nebo vlastní diagnostickou kontrolku LED ALARM_STATE, nebude použití I2C možné. Komunikace s jiným Arduinem pro zvýšení funkčnosti bude muset být přes sériové připojení na D0 a D1.

Začínáme (Stepper Drivers)

Za prvé, pro připojení vašich krokových motorů k Grbl budete potřebovat nějaké ovladače krokových motorů pro napájení krokových motorů a připojení vstupů vašich ovladačů ke kolíkům ovladače Arduino. Existuje řada ovladačů, které to umí, dostupné jako plně předpřipravené, částečně předpřipravené nebo zcela DIY. Krokové ovladače budou muset sdílet kolík aktivace krokového pedálu (D8) k jejich příslušným aktivačním pinům, zatímco kolíky směrového a krokového pulsu (D2-D7) budou muset být připojeny k jejich příslušným pinům na ovladačích. Jen se ujistěte, že všechny vaše ovladače a Arduino sdílet společný základ (uzemněno do hvězdy s pohonem vašeho motoru). To je asi vše, co budete potřebovat, abyste mohli začít.

Naváděcí a koncové spínače

Poté, jakmile se rozhodnete, že jste připraveni nebo byste chtěli pro umožnění navádění a/nebo pevných limitů, budete muset připojit a normálně otevřený koncový spínač ke každému z limitních kolíků (D9, D10 a D12). Navádění a pevné limity používají stejné přepínače. Tyto limitní kolíky jsou již drženy vysoko pomocí interního pull-up rezistoru, takže je stačí pouze připojit k zemi. Takže když zavřete spínač, spínač přitáhne koncový kolík k zemi. Pokud byste chtěli mít pevné koncové spínače na obou koncích pohybu osy, stačí zapojit dva koncové spínače paralelně k osovému koncovému kolíku a zemi. Ujistěte se, že máte nainstalované spínače, než se pokusíte provést naváděcí cyklus, a ujistěte se, že praktikujete správné způsoby zapojení, abyste minimalizovali vnější elektrický šum na vstupních kolících.

Správné postupy zapojení mohou zahrnovat použití stíněných kabelů nebo třamp-na feritových kabelových jádrech a pomocí některých 0.1uF kondenzátorů paralelně s koncovými spínači pro debouncing / filtrování šumu. Dobrým nápadem může být také držet motorové vodiče v dostatečné vzdálenosti od vodičů koncových spínačů.

Je možné nakonfigurovat GRBL tak, aby používal normálně sepnuté koncové spínače, pokud si to přejete. Někteří se domnívají, že normálně sepnuté koncové spínače mohou pomoci snížit katastrofální havárii v případě selhání koncového spínače. Mnoho uživatelů vůbec nepoužívá žádné limitní spínače a místo toho volí softwarové limity.

Ovládací tlačítka

V Grbl v0.8 a novějších jsou piny příkazů spuštění cyklu, pozastavení posuvu a resetu, takže na svém stroji můžete mít tlačítka fyzického ovládání. Stejně jako limitní piny jsou tyto piny drženy vysoko pomocí interního pull-up rezistoru, takže vše, co musíte udělat, je připojit normálně otevřený spínač ke každému pinu a k zemi. Opět se ujistěte, že praktikujete správné způsoby zapojení, abyste minimalizovali vnější elektrický šum na vstupních kolících.

Vřeteno a kolíky chladicí kapaliny

Pokud máte touhu nebo potřebu vřetena (D13) nebo ovládání chladicí kapaliny (A3 a A4) , Grbl přepne tyto výstupní piny na vysokou nebo nízkou úroveň v závislosti na příkazech G-kódu, které odešlete do Grbl. S v0.9+ a proměnnou PWM vřetenem bude kolík D11 vydávat rozsah objtages od 0V do 5V v závislosti na příkazu G-kódu otáček vřetena. 0V znamená v tomto případě vřeteno vypnuté. Vzhledem k tomu, že všechny tyto piny jsou závislé na aplikaci, jak se používají, necháme na vás, abyste určili, jak je ovládat a používat pro váš stroj. Můžete také hacknout vřeteno a zdroj ovládání chladicí kapaliny filemůžete snadno změnit, jak fungují, a poté zkompilovat a nahrát váš upravený Grbl přes Arduino IDE.

Diagnostické LED světlo

Komerční CNC stroje mají často alespoň jeden diagnostický LED maják pro případ havárie stroje nebo kódu alarmu. Pro nové uživatele GRBL a DIY CNC strojů je tato funkce velmi užitečná, aby věděli, kdy došlo k ALARM_STATE (např. selhání uvedení stroje do výchozí polohy se zapnutým nájezdem a koncovými spínači).

GRBL standardně nemá diagnostickou LED kontrolku. Je to proto, že Ardunio UNO s čipem 328p má omezený programovací prostor a téměř veškerý tento prostor je v současné době využíván (i když ne celý!). Ne každá žádoucí funkce může být implementována na zařízení s tak nízkou pamětí, takže někdy je třeba obětovat.

Navíc jsou v současnosti využívány všechny dostupné I/O porty a pro takové světlo je potřeba alespoň jeden I/O pin. Naštěstí lze tuto funkci snadno přidat hacknutím kódu GRBL C a na čipu 3p je stále k dispozici asi 328% paměti!

Mnoho strojů v současné době nepoužívá volitelnou funkci MIST COOLANT na Analog 4, takže můžeme tento pin snadno předefinovat pro naše použití. Alternativní metodou by mohlo být kódování takových LED světel na externím Arduinu, které by pak mělo k dispozici všechny I/O porty, kde by bylo možné zapojit tolik LED světel / bzučáků, kolik chcete, a komunikovat přes sériový nebo I2C.

Chcete-li hacknout zdrojový kód GRBL pro použití LED ALARM na štítu CNDY, proveďte následující:

Krok 1: V systému Linux nebo Macintosh otevřete textový editor (ve Windows použijte Notepad++) a upravte soubor cpu_map.h file:

Změňte toto:

// Definujte výstupní kolíky povolení záplavy a mlhy chladicí kapaliny.
#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Jedno analogový kolík 3
#define COOLANT_MIST_DDR DDRC
#define COOLANT_MIST_PORT PORTC
#define COOLANT_MIST_BIT 4 // Jedno analogový kolík 4

K tomu:

// Definujte výstupní kolíky povolení záplavy a mlhy chladicí kapaliny.
#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Jedno analogový kolík 3
//#define COOLANT_MIST_DDR DDRC
//#define COOLANT_MIST_PORT PORTC
//#define COOLANT_MIST_BIT 4 // Jedno analogový pin 4

//////////////////

// Definice ALARM LED OUTPUT
#define SIGNAL_LIGHT_DDR DDRC
#define SIGNAL_LIGHT_PORT PORTC
#define SIGNAL_LIGHT_BIT 4 // Jedno analogový pin 4

// #define signal_light(on) (SIGNAL_LIGHT_DDR |= (1<

// #define signal_light_init() signal_light(off)

#define signal_light_init signal_light_off

#define signal_light_on (SIGNAL_LIGHT_DDR |= SIGNAL_LIGHT_PORT |= (1<

#define signal_light_off (SIGNAL_LIGHT_DDR |= SIGNAL_LIGHT_PORT &= ~(1<

//////////////////

Krok 2: V systému Linux nebo Macintosh otevřete textový editor (ve Windows použijte Notepad++) a upravte soubor protokol.c file:

Změňte toto:

// V případě potřeby provádí příkazy za běhu. Tato funkce funguje primárně jako Grblův stav
// stroj a ovládá různé funkce v reálném čase, které Grbl nabízí.
// POZNÁMKA: Toto neměňte, pokud přesně nevíte, co děláte! void protocol_exec_rt_system()
{

uint8_t rt_exec; // Proměnná Temp, aby se zabránilo opakovanému volání volatile.
rt_exec = sys_rt_exec_alarm; // Kopírování nestálého sys_rt_exec_alarm.
if (rt_exec) { // Zadejte pouze v případě, že některý bitový příznak je pravdivý

// Systémový alarm. Všechno se vypnulo něčím, co se vážně pokazilo. Zpráva
// zdroj chyby pro uživatele. Pokud je to kritické, Grbl se deaktivuje zadáním nekonečna
// smyčka, dokud se systém neresetuje/zruší.

sys.state = STATE_ALARM; // Nastavení stavu alarmu systému

report_alarm_message(rt_exec);

K tomu:

// V případě potřeby provádí příkazy za běhu. Tato funkce funguje primárně jako Grblův stav
// stroj a ovládá různé funkce v reálném čase, které Grbl nabízí.
// POZNÁMKA: Toto neměňte, pokud přesně nevíte, co děláte!
void protocol_exec_rt_system()
{

uint8_t rt_exec; // Proměnná Temp, aby se zabránilo opakovanému volání volatile.
rt_exec = sys_rt_exec_alarm; // Kopírování nestálého sys_rt_exec_alarm.

////////////////////////

// Definice ALARM LED OUTPUT
signal_light_init; //Init LED ve vypnutém stavu
if (sys.state==STATE_ALARM) {signal_light_on;}
else if (sys.state!=STATE_ALARM) {signal_light_off;}
// jinak {signal_light_off;}

////////////////////////

if (rt_exec) { // Zadejte pouze v případě, že některý bitový příznak je pravdivý
// Systémový alarm. Všechno se vypnulo něčím, co se vážně pokazilo. Zpráva
// zdroj chyby pro uživatele. Pokud je to kritické, Grbl se deaktivuje zadáním nekonečna
// smyčka, dokud se systém neresetuje/zruší.
sys.state = STATE_ALARM; // Nastavení stavu alarmu systému
report_alarm_message(rt_exec);

Právě jsme změnili definovanou funkci Analog 4 (A4) z volitelného mlhového chladiva na naše LED světlo. Potom jsme napsali kód v C, abychom mohli zapisovat (PC4) Port C 4 (Analog4) na vysokou nebo nízkou úroveň v závislosti na tom, zda bylo řečeno, aby byl zapnutý nebo vypnutý. Potom jsme napsali jednoduchý příkaz if-else, abychom zkontrolovali stavový stroj GRBL a řekli nám, zda jsme v aktivním ALARM_STATE a kdy máme rozsvítit LED.

Pokud vše půjde dobře, můžeme zkompilovat v Arduino IDE, nahrát kód a nyní budeme mít funkční LED diagnostické světlo ALARM_STATE! Volitelně můžeme připojit externí LED majákové světlo, které bude umístěno vysoko nad strojem, které bude viditelné přes celou místnost.

Možné problémy

V ideálním případě budou tyto změny provedeny s nejaktuálnějším dostupným zdrojovým kódem grbl a budou provedeny PŘED přidáním „knihovny“ grbl do IDE Arduino. Pokud již máte grbl ve složce knihoven Arduino, budete muset ručně procházet a smazat složku grbl nebo upravit files v knihovně arduino. Na mém linuxovém počítači se „knihovna“ nachází na adrese: /home/andrew/Arduino/libraries/grbl. Nejnovější vydání grbl lze nalézt na https://github.com/gnea/grbl/releases. Můžete si stáhnout dostupný zip file a složku s názvem grbl-1.1h.20190825 najdete uvnitř. Uvnitř této složky bude složka s názvem grbl ta, kterou budete chtít přidat do Arduino IDE jako „knihovnu“ „zip“. file“. Ujistěte se, že jste provedli změny v souborech cpu_map.ha protocol.c files předtím, než jej přidáte do Arduino IDE. V opačném případě budete muset upravit files ve vaší složce libraries/grbl. U zipu grbl-1.1h je známá chyba funkce dvou os file, je to opraveno, pokud si místo toho stáhnete hlavní větev grbl. https://github.com/gnea/grbl

Aktualizace a chyby CNDY Shield

*V1.1: má malou chybu sítotisku, kde jsou zaměněny PWM vřetena a směr vřetena. To bylo opraveno ve verzi 1.2.

V1.2 již nemá volitelné kondenzátory redukce šumu na 5V lince a má nové na ostatních linkách vstupních tlačítek. V1.2 má volitelnou LED zapojenou paralelně k PWM vřetena. To může být užitečné pro nastavení laseru pro bezpečnost.

Aktualizováno 28. srpna 2021

Další informace naleznete na RabbitMountainResearch.com.

Dokumenty / zdroje

CNDY Shield GRBL CNC Arduino UNO [pdfUživatelská příručka
GRBL CNC, Arduino UNO

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *