Používateľská príručka CNDY Shield GRBL CNC Arduino UNO

V1.2

CNDY Shield GRBL CNC

Pinout GRBL na Arduino Uno

Analógové 0 = tlačidlo prerušenia*
Analógové 1 = tlačidlo podržania informačného kanála* (SAFETY_DOOR je zdieľané s podržaním informačného kanála. Povolené pomocou definície konfigurácie)
Analógové 2 = tlačidlo spustenia cyklu/reštart*
Analóg 3 = Výstup aktivácie chladiacej kvapaliny
Analóg 4 = (Voliteľné) Výstup chladiacej kvapaliny hmly (alebo diagnostická kontrolka ALARM_STATE**)
Analógový 5 = vstup sondy*
Digitálne 13 = Smer vretena
Digitálny 12 = koncové spínače os Z*
Digitálne 11 = Vreteno / Laser povoliť PWM
Digitálne 10 = koncové spínače os Y*
Digitálne 9 = koncové spínače os X*
Digitálny 8 = krokové motory aktivovať / deaktivovať
Digitálna 7 = Smer osi Z
Digitálna 6 = Smer osi Y
Digitálna 5 = Smer osi X
Digitálny 4 = os Z s krokovým impulzom
Digitálny 3 = os Y s krokovým impulzom
Digitálny 2 = os X s krokovým impulzom

Voliteľná funkcia dvoch osí

Uno analógový kolík 3 = os A DUAL_DIRECTION (bývalý výstup umožňujúci chladenie)
Uno analógový kolík 4 = os A DUAL_STEP (bývalý ako voliteľný výstup chladiacej kvapaliny pre hmlu)
Uno Digital 13 = Chladiaca kvapalina (výmena smeru vretena.)

Po inštalácii úložiska grbl ako knižnice v Arduine odkomentujte nasledujúce riadky v súbore config.h file v priečinku knižnice grbl.

#define ENABLE_DUAL_AXIS // Predvolene vypnuté. Ak chcete povoliť, zrušte komentár.

// Vyberte jednu os na zrkadlenie iného motora. V súčasnosti sú podporované iba osi X a Y.
#define DUAL_AXIS_SELECT Y_AXIS // Musí byť buď X_AXIS alebo Y_AXIS

POZNÁMKA: Dvojosový limit je zdieľaný s (os Z) limit pin v predvolenom nastavení.

Funkcia dvoch osí vyžaduje na fungovanie nezávislý kolík krokových impulzov. Nezávislý smerový kolík nie je bezpodmienečne potrebný, ale uľahčuje jednoduchú inverziu smeru s nastavením Grbl $$. Tieto kolíky nahrádzajú smer vretena a kolíky voliteľnej hmly chladiacej kvapaliny.

Táto voliteľná funkcia dvojitej osi je primárne určená pre cyklus navádzania na nezávislé umiestnenie dvoch strán portálu s dvoma motormi, tj samovyrovnávanie. To si vyžaduje dodatočný koncový spínač pre klonovaný motor. Na samonastavenie musia byť oba koncové spínače na klonovanej osi fyzicky umiestnené tak, aby sa spustili, keď je portál štvorcový. Dôrazne odporúčame ponechať motory vždy zapnuté, aby ste zabezpečili, že portál zostane štvorcový s nastavením $1=255.

Pre Grbl na Arduino Uno musí byť klonovaný osový koncový spínač zdieľaný a prepojený s limitným kolíkom osi z kvôli nedostatku dostupných kolíkov. Navádzací cyklus musí umiestniť os z a klonovanú os v rôznych cykloch, čo je už predvolená konfigurácia.

Funkcia dvojitej osi funguje naklonovaním výstupu kroku osi na ďalší pár krokových a smerových kolíkov. Krokový impulz a smer klonovaného motora je možné nastaviť nezávisle od motora hlavnej osi. Aby sa však ušetril drahocenný flash a pamäť, táto funkcia s dvoma osami musí zdieľať rovnaké nastavenia (krok/mm, maximálna rýchlosť, zrýchlenie) ako materský motor. Toto NIE JE funkcia pre nezávislú štvrtú os. Iba motorový klon.

VAROVANIE: Uistite sa, že ste otestovali smery vašich dvojosových motorov! Pred spustením prvého cyklu navádzania alebo akéhokoľvek dlhého pohybu musia byť nastavené tak, aby sa pohybovali rovnakým smerom! Motory pohybujúce sa v opačných smeroch môžu spôsobiť vážne poškodenie vášho stroja! Túto funkciu dvojitej osi používajte na vlastné riziko.

POZNÁMKA: Táto funkcia vyžaduje približne 400 bajtov flash. Niektorým konfiguráciám môže dôjsť flash, aby sa zmestili na Arduino 328p/Uno. Podporované sú iba osi X a Y. Variabilný režim vretena/laser JE podporovaný, ale len pre jednu možnosť konfigurácie. Jadro XY, kolík smeru vretena a chladiaca kvapalina M7 sú zakázané/nepodporované.

Aby sa predišlo tomu, aby sa cyklus navádzania posunul na dvojitú os, keď sa jeden limit spustí pred druhým v dôsledku zlyhania spínača alebo hluku, cyklus navádzania sa automaticky preruší, ak sa koncový spínač druhého motora nespustí v rámci troch parametrov vzdialenosti definovaných nižšie. Percento dĺžky osi automaticky vypočíta vzdialenosť zlyhania ako percentotage maximálneho zdvihu druhej neduálnej osi, tj ak je výber duálnej osi X_AXIS na 5.0 %, potom sa vzdialenosť zlyhania vypočíta ako 5.0 % maximálneho zdvihu osi y. Maximálna a minimálna vzdialenosť pri poruche sú limity, ako ďaleko alebo málo je platná vzdialenosť pri poruche.

#define DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT 5.0 // Float (percento)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MAX 25.0 // Float (mm)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MIN 2.5 // Float (mm)

Poznámka pre I2C port

Analógové 4 (A4) a Analógové 5 (A5) sa používajú pre I2C port na Arduino Uno alebo 328p. To znamená, že pokiaľ používate predvolenú funkciu sondy, chladiacu kvapalinu hmly, dvojosové alebo vlastné diagnostické svetlo ALARM_STATE LED, používanie I2C nebude možné. Komunikácia s iným Arduinom na zvýšenie funkčnosti bude musieť prebiehať cez sériové pripojenie na D0 a D1.

Začíname (Stepper Drivers)

Po prvé, na pripojenie vašich krokových motorov k Grbl budete potrebovať nejaké ovládače krokových motorov na napájanie krokových motorov a pripojenie vstupov ovládača ku kolíkom ovládača Arduino. Existuje množstvo ovládačov, ktoré to dokážu, dostupné ako plne predpripravené, čiastočne predpripravené alebo úplne svojpomocne. Krokové ovládače budú musieť zdieľať kolík aktivácie krokovania (D8) na ich príslušné aktivačné kolíky, zatiaľ čo kolíky smerového a krokového impulzu (D2-D7) bude potrebné pripojiť k príslušným kolíkom na ovládačoch. Len sa uistite, že všetky vaše ovládače a Arduino zdieľať spoločný základ (uzemnené do hviezdy s pohonom vášho motora). To je asi všetko, čo budete potrebovať, aby ste mohli začať.

Navádzacie a koncové spínače

Potom, keď sa rozhodnete, že ste pripravení alebo by ste chceli na umožnenie navádzania a/alebo pevných limitov, budete musieť pripojiť a normálne otvorený koncový spínač ku každému z limitných kolíkov (D9, D10 a D12). Navádzanie a pevné limity používajú rovnaké prepínače. Tieto limitné kolíky sú už držané vysoko pomocou interného pull-up odporu, takže všetko, čo musíte urobiť, je pripojiť ich k zemi. Takže keď zatvoríte spínač, spínač pritiahne koncový kolík k zemi. Ak by ste chceli mať pevné koncové spínače na oboch koncoch pohybu osi, stačí zapojiť dva koncové spínače paralelne s koncovým kolíkom osi a uzemnením. Pred pokusom o vykonanie cyklu navádzania sa uistite, že máte nainštalované spínače, a uistite sa, že ste si vyskúšali správne spôsoby zapojenia, aby ste minimalizovali vonkajší elektrický šum na vstupných kolíkoch.

Správne postupy zapojenia môžu zahŕňať použitie tienených káblov alebo clamp-na jadrách feritových káblov a pomocou niekoľkých 0.1uF kondenzátorov paralelne s koncovými spínačmi na odskok / filtrovanie šumu. Udržiavanie vodičov motora mimo vodičov koncových spínačov môže byť tiež dobrý nápad.

Je možné nakonfigurovať GRBL tak, aby používal normálne zatvorené koncové spínače, ak si to želáte. Niektorí sa domnievajú, že normálne zatvorené koncové spínače môžu pomôcť znížiť katastrofickú nehodu v prípade zlyhania koncového spínača. Mnoho používateľov vôbec nepoužíva žiadne limitné spínače a namiesto toho sa rozhodnú pre softvérové ​​​​limity.

Ovládacie tlačidlá

V Grbl v0.8 a novších sú piny príkazov spustenia cyklu, zastavenia posuvu a resetovania, takže na svojom stroji môžete mať tlačidlá fyzického ovládania. Rovnako ako limitné kolíky, aj tieto kolíky sú držané vysoko pomocou vnútorného pull-up odporu, takže všetko, čo musíte urobiť, je pripojiť normálne otvorený spínač ku každému kolíku a k zemi. Opäť sa uistite, že ste praktizovali dobré spôsoby zapojenia, aby ste minimalizovali vonkajší elektrický šum na vstupných kolíkoch.

Vreteno a kolíky chladiacej kvapaliny

Ak máte túžbu alebo potrebu vretena (D13) alebo ovládanie chladiacej kvapaliny (A3 a A4) , Grbl prepne tieto výstupné kolíky na vysokú alebo nízku hodnotu v závislosti od príkazov G-kódu, ktoré odošlete Grbl. So zapnutou verziou 0.9+ a variabilným PWM vretena bude kolík D11 vydávať rozsah objtagje od 0V do 5V v závislosti od príkazu G-kódu rýchlosti vretena. 0V v tomto prípade znamená vypnuté vreteno. Keďže všetky tieto kolíky sú závislé od aplikácie, ako sa používajú, necháme na vás, aby ste určili, ako ich ovládať a používať pre váš stroj. Môžete tiež hacknúť vreteno a zdroj ovládania chladiacej kvapaliny files, aby ste mohli jednoducho zmeniť, ako fungujú, a potom skompilovať a nahrať váš upravený Grbl cez Arduino IDE.

Diagnostické LED svetlo

Komerčné CNC stroje majú často aspoň jeden diagnostický LED maják pre prípad havárie stroja alebo kódu alarmu. Pre tých, ktorí sú noví v GRBL a DIY CNC strojoch, je táto funkcia veľmi užitočná, ak chcete vedieť, kedy sa vyskytol ALARM_STATE (ako napríklad zlyhanie návratu stroja do východiskovej polohy so zapnutými koncovými a navádzacími spínačmi).

GRBL štandardne nemá diagnostickú LED kontrolku. Je to preto, že Ardunio UNO s čipom 328p má obmedzený programovací priestor a v súčasnosti sa využíva takmer celý tento priestor (aj keď nie všetko!). Nie každá požadovaná funkcia môže byť implementovaná na zariadení s tak nízkou pamäťou, takže niekedy je potrebné obetovať.

Okrem toho sa v súčasnosti využívajú všetky dostupné I/O porty a pre takéto svetlo je potrebný aspoň jeden I/O pin. Našťastie sa táto funkcia dá ľahko pridať hacknutím kódu GRBL C a na čipe 3p je stále k dispozícii asi 328% pamäte!

Mnoho strojov v súčasnosti nepoužíva voliteľnú funkciu MIST COOLANT na Analog 4, takže môžeme tento kolík jednoducho predefinovať pre naše použitie. Alternatívnou metódou môže byť kódovanie takýchto LED svetiel na externom Arduine, ktoré by potom malo k dispozícii všetky I/O porty, kde by bolo možné pripojiť toľko LED svetiel / bzučiakov, koľko chcete, a mohli by komunikovať cez sériové alebo I2C.

Ak chcete hacknúť zdrojový kód GRBL na použitie LED ALARM na štíte CNDY, postupujte takto:

Krok 1: V systéme Linux alebo Macintosh otvorte textový editor (v systéme Windows použite program Notepad++) a upravte súbor cpu_map.h file:

Zmeňte toto:

// Definujte výstupné kolíky aktivácie záplavovej a hmly chladiacej kvapaliny.
#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Jedno analógový kolík 3
#define COOLANT_MIST_DDR DDRC
#define COOLANT_MIST_PORT PORTC
#define COOLANT_MIST_BIT 4 // Jedno analógový kolík 4

K tomuto:

// Definujte výstupné kolíky aktivácie záplavovej a hmly chladiacej kvapaliny.
#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Jedno analógový kolík 3
//#define COOLANT_MIST_DDR DDRC
//#define COOLANT_MIST_PORT PORTC
//#define COOLANT_MIST_BIT 4 // Jedno analógový kolík 4

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

// Definícia ALARM LED OUTPUT
#define SIGNAL_LIGHT_DDR DDRC
#define SIGNAL_LIGHT_PORT PORTC
#define SIGNAL_LIGHT_BIT 4 // Jedno analógový kolík 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éme Linux alebo Macintosh otvorte textový editor (v systéme Windows použite program Notepad++) a upravte súbor protokol.c file:

Zmeňte toto:

// V prípade potreby vykoná príkazy za behu. Táto funkcia funguje primárne ako Grblov stav
// stroj a ovláda rôzne funkcie v reálnom čase, ktoré Grbl ponúka.
// POZNÁMKA: Toto nemeňte, pokiaľ presne neviete, čo robíte! void protocol_exec_rt_system()
{

uint8_t rt_exec; // Premenná Temp, aby sa zabránilo viacnásobnému volaniu volatile.
rt_exec = sys_rt_exec_alarm; // Kopírovať volatile sys_rt_exec_alarm.
if (rt_exec) { // Zadajte iba vtedy, ak je niektorý bitový príznak pravdivý

// Systémový alarm. Všetko sa zastavilo niečím, čo sa vážne pokazilo. správa
// zdroj chyby pre používateľa. Ak je to kritické, Grbl sa deaktivuje zadaním nekonečna
// slučka, kým sa systém neresetuje/nepreruší.

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

report_alarm_message(rt_exec);

K tomuto:

// V prípade potreby vykoná príkazy za behu. Táto funkcia funguje primárne ako Grblov stav
// stroj a ovláda rôzne funkcie v reálnom čase, ktoré Grbl ponúka.
// POZNÁMKA: Toto nemeňte, pokiaľ presne neviete, čo robíte!
void protocol_exec_rt_system()
{

uint8_t rt_exec; // Premenná Temp, aby sa zabránilo viacnásobnému volaniu volatile.
rt_exec = sys_rt_exec_alarm; // Kopírovať volatile sys_rt_exec_alarm.

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

// Definícia ALARM LED OUTPUT
signal_light_init; //Init LED vo vypnutom stave
if (sys.state==STATE_ALARM) {signal_light_on;}
else if (sys.state!=STATE_ALARM) {signal_light_off;}
// else {signal_light_off;}

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

if (rt_exec) { // Zadajte iba vtedy, ak je niektorý bitový príznak pravdivý
// Systémový alarm. Všetko sa zastavilo niečím, čo sa vážne pokazilo. správa
// zdroj chyby pre používateľa. Ak je to kritické, Grbl sa deaktivuje zadaním nekonečna
// slučka, kým sa systém neresetuje/nepreruší.
sys.state = STATE_ALARM; // Nastavenie stavu alarmu systému
report_alarm_message(rt_exec);

Práve sme zmenili definovanú funkciu Analog 4 (A4) z voliteľnej hmly chladiacej kvapaliny na naše LED svetlo. Potom sme napísali kód v C, aby sme mohli zapísať (PC4) Port C 4 (Analog4) na vysokú alebo nízku úroveň v závislosti od toho, či mu bolo povedané, aby bol zapnutý alebo vypnutý. Potom sme napísali jednoduchý príkaz if-else, aby sme skontrolovali stavový automat GRBL a povedali nám, či sme v aktívnom ALARM_STATE a kedy máme zapnúť LED.

Ak všetko pôjde dobre, môžeme skompilovať v Arduino IDE, nahrať kód a teraz budeme mať funkčné LED diagnostické svetlo ALARM_STATE! Voliteľne môžeme pripojiť externý LED maják na umiestnenie vysoko nad stroj, ktorý bude viditeľný cez miestnosť.

Možné problémy

V ideálnom prípade sa tieto zmeny vykonajú s najaktuálnejším dostupným zdrojovým kódom grbl a urobia sa PRED pridaním „knižnice“ grbl do IDE Arduino. Ak už máte grbl vo svojom priečinku knižníc Arduino, budete musieť manuálne prechádzať a odstrániť priečinok grbl alebo upraviť files v knižnici arduino. Na mojom linuxovom počítači sa „knižnica“ nachádza na adrese: /home/andrew/Arduino/libraries/grbl. Najnovšie vydanie grbl možno nájsť na https://github.com/gnea/grbl/releases. Môžete si stiahnuť dostupný zip file a priečinok s názvom grbl-1.1h.20190825 nájdete vo vnútri. Vo vnútri tohto priečinka bude priečinok s názvom grbl ten, ktorý budete chcieť pridať do Arduino IDE ako „knižnicu“ „zip“. file“. Nezabudnite vykonať zmeny v súboroch cpu_map.ha protocol.c files predtým, ako ho pridáte do Arduino IDE. V opačnom prípade budete musieť upraviť filev priečinku libraries/grbl. V zipse grbl-1.1h je známa chyba pre funkciu dvojitej osi file, je to opravené, ak si namiesto toho stiahnete hlavnú vetvu grbl. https://github.com/gnea/grbl

Aktualizácie a chyby CNDY Shield

*V1.1: má malú chybu sieťotlače, kde sú zamenené Spindle PWM a Spindle Direction. Toto bolo opravené vo verzii 1.2.

V1.2 už nemá voliteľné kondenzátory na redukciu šumu na 5V linke a má nové na ostatných linkách vstupných tlačidiel. V1.2 má voliteľnú LED pripojenú paralelne k Spindle PWM. To môže byť užitočné pre nastavenie lasera pre bezpečnosť.

Aktualizované 28. augusta 2021

Ďalšie informácie nájdete na RabbitMountainResearch.com.

Dokumenty / zdroje

CNDY Shield GRBL CNC Arduino UNO [pdf] Používateľská príručka
GRBL CNC, Arduino UNO

Referencie

Zanechajte komentár

Vaša emailová adresa nebude zverejnená. Povinné polia sú označené *