Využití Arduino GRBL
-
frewill
- Příspěvky: 150
- Registrován: 28. 1. 2012, 2:07
Čaute, na některé své projekty bych rád využil k řízení motorů GRBL kód s Arduinem.
Místo ovládání externím počítačem bych ale rád ke stávajícímu Arduinu připojil klavesnici a display a motor řídil přímo arduinem, na kterém je GRBL nainstalován.
Poradí mě někdo, jak posílat příkazy pro dráhu, směr a rychlost pro jednotlivé osy?
Díky moc Franta
Místo ovládání externím počítačem bych ale rád ke stávajícímu Arduinu připojil klavesnici a display a motor řídil přímo arduinem, na kterém je GRBL nainstalován.
Poradí mě někdo, jak posílat příkazy pro dráhu, směr a rychlost pro jednotlivé osy?
Díky moc Franta
-
frewill
- Příspěvky: 150
- Registrován: 28. 1. 2012, 2:07
OK, ale jak tam ten G-kodovy příkaz dostanu? Mám ho napsat do nějaké proměnné? nebo existuje nějaký příkaz s parametry, který vložím do hlavní Loop smyčky?
V programování Arduina jsem spíše začátečník.
V programování Arduina jsem spíše začátečník.
-
dhaman
- Příspěvky: 68
- Registrován: 11. 2. 2016, 9:01
- Bydliště: Banska Bystrica - Vlkanova
@frewill - musím ťa sklamať arduino túto požiadavku nezvládne. Klávesnicu a display k tomu tak ľahko nepripojíš.
Možné riešenie:
- Raspberry Pi 3 (https://www.patro.cz/produkt/1076949270 ... h-software" onclick="window.open(this.href);return false;)
- Klasický monitor (hdmi)
- Klávesnica/myš
- k tomu pripojíš cez USB(serial port) arduino a ovladať to možeš štandardne napríklad cez Grbl Controller (http://zapmaker.org/projects/grbl-controller-3-0/" onclick="window.open(this.href);return false;)
(http://zapmaker.org/raspberry-pi/runnin ... pberry-pi/" onclick="window.open(this.href);return false;)
Možné riešenie:
- Raspberry Pi 3 (https://www.patro.cz/produkt/1076949270 ... h-software" onclick="window.open(this.href);return false;)
- Klasický monitor (hdmi)
- Klávesnica/myš
- k tomu pripojíš cez USB(serial port) arduino a ovladať to možeš štandardne napríklad cez Grbl Controller (http://zapmaker.org/projects/grbl-controller-3-0/" onclick="window.open(this.href);return false;)
(http://zapmaker.org/raspberry-pi/runnin ... pberry-pi/" onclick="window.open(this.href);return false;)
Hej ty robota! Mňa sa neboj ja sa ťa ani nedotknem!
-
packa
- Příspěvky: 7202
- Registrován: 7. 2. 2007, 6:42
- Bydliště: Královehradecký kraj
no určitě by šla k grbl připojit sd karta a g kod posílat z ní jako se to dělá u 3d tiskáren.
-
frewill
- Příspěvky: 150
- Registrován: 28. 1. 2012, 2:07
Napadá mě jedna z možných funkcí - Rotační osa.
Potřebuju ovládat pouze 1 osu, funkci rozjezd a brždění obstará GRBL, taktéž polohování. Kalibraci úhlu na počet kroků mohu zadat taky přímo do GRBL. Jednoduchý keypad a lcd displey připojit k arduinu zvládnu.
Hlavní smyčka GRBL programu je prázdná, tak jsem si myslel, že bych svůj program napsal do ní.
Jak ale přesvědčit Adruino, aby četl příkazy z mého programu a né z externího PC posílajicího příkazy po seriové lince pomocí např. GRBL controleru.
Rád bych zrušil řízení externím počítačem/procesorem a chtěl bych vlastní jednoduché uživatelské prostředí a ovládání. Pro ovládání 1 osy nepotřebuji složité uživatelské prostředí se 3 osami, ...
Potřebuju ovládat pouze 1 osu, funkci rozjezd a brždění obstará GRBL, taktéž polohování. Kalibraci úhlu na počet kroků mohu zadat taky přímo do GRBL. Jednoduchý keypad a lcd displey připojit k arduinu zvládnu.
Hlavní smyčka GRBL programu je prázdná, tak jsem si myslel, že bych svůj program napsal do ní.
Jak ale přesvědčit Adruino, aby četl příkazy z mého programu a né z externího PC posílajicího příkazy po seriové lince pomocí např. GRBL controleru.
Rád bych zrušil řízení externím počítačem/procesorem a chtěl bych vlastní jednoduché uživatelské prostředí a ovládání. Pro ovládání 1 osy nepotřebuji složité uživatelské prostředí se 3 osami, ...
-
frewill
- Příspěvky: 150
- Registrován: 28. 1. 2012, 2:07
Někde jsem tu viděl příspěvky, kde uživatelé psali, že si GRBL program upravovali k vlastním potřebám. Ale kde to bylo a kdo to byl, to už asi nedohledám.
-
packa
- Příspěvky: 7202
- Registrován: 7. 2. 2007, 6:42
- Bydliště: Královehradecký kraj
no můžeš si napsat do druhého arduina vlastní sender příkazů a ten si udělat po svém pak je propojíš arduina a jedeš , ale pro jednu osu je celé grbl zbytečné
-
atlan
- Příspěvky: 3382
- Registrován: 7. 2. 2011, 9:12
Pozri g code sender, asi by to chcelo odchytit co poisela do arduina, vies tam natukat aj nejake prikazy
-
dhaman
- Příspěvky: 68
- Registrován: 11. 2. 2016, 9:01
- Bydliště: Banska Bystrica - Vlkanova
Uff bude treba pozriet tu slucku citania serial prikazov a podla toho pozriet ake funkcie vola. Niekde v zdrojakoch to urcite bude.
Hej ty robota! Mňa sa neboj ja sa ťa ani nedotknem!
-
frewill
- Příspěvky: 150
- Registrován: 28. 1. 2012, 2:07
To je taky varianta, ale připadá mě to jako drbat se levou rukou za pravým uchem. Zatím zkusím ještě pohledat, říkal jsem si že by mě tu třeba někdo pomohl zkrátil cestupacka píše:no můžeš si napsat do druhého arduina vlastní sender příkazů a ten si udělat po svém pak je propojíš arduina a jedeš , ...
Jednou osou to začíná a další se mohou přidat, navíc v hlavě už mám další projekt na dvě osy.packa píše: ..., ale pro jednu osu je celé grbl zbytečné
Nedávno jsem si dělal rotační osu, kde jsem řešil rozjezd a brždění motoru ale bylo to takový nemastný neslaný, pak mě napadlo, proč nevyužít GRBL, kde už to je vyřešeno. Tak že asi tak.
-
Mex
- Příspěvky: 10287
- Registrován: 6. 2. 2014, 10:29
Určitě by se to dalo udělat.
Otázka ale zní: dokážeš to udělat?
Pokud by šlo o ovládání jedné osy, tak tam je (podle mě) ovládání pomocí GRBL celkem zbytečné.
Snažší a efektivnější by bylo použít jen nějakou knihovnu pro ovládání krokáče (třeba AccelStepper) udělat to pomocí ní.
Síla GRBL je ve zpracování G-kódu, plánování drah a sychronizaci os. Ale nic z toho ty nepotřebuješ.
Otázka ale zní: dokážeš to udělat?
Pokud by šlo o ovládání jedné osy, tak tam je (podle mě) ovládání pomocí GRBL celkem zbytečné.
Snažší a efektivnější by bylo použít jen nějakou knihovnu pro ovládání krokáče (třeba AccelStepper) udělat to pomocí ní.
Síla GRBL je ve zpracování G-kódu, plánování drah a sychronizaci os. Ale nic z toho ty nepotřebuješ.
-
frewill
- Příspěvky: 150
- Registrován: 28. 1. 2012, 2:07
Díky za radu, na knihovnu se podívám, možná to bude opravdu stačit. Myšlenka zneužít GRBL mě ale stále neopouštíMex píše:Snažší a efektivnější by bylo použít jen nějakou knihovnu pro ovládání krokáče (třeba AccelStepper) udělat to pomocí ní.
Jinak ten druhý projekt bude naklápět testovanou nádržku ve dvou osách v klimatické komoře při -40°C. Jak se asi chová krokový/servo motor a jednoduché enkodéry v -40°C a co se stane až sestavu pod proudem ohřeju na RT a začne všude kondenzovat voda? Za jak dlouho vnitřnosti motoru/enkoderu zkorodují?
-
filla
- Příspěvky: 3523
- Registrován: 1. 12. 2013, 12:55
- Bydliště: Brno
to uz tady preci je http://www.jova1.cz/dilna/rotacni_osa/rotacni_osa.html" onclick="window.open(this.href);return false;frewill píše:Napadá mě jedna z možných funkcí - Rotační osa.
Potřebuju ovládat pouze 1 osu, funkci rozjezd a brždění obstará GRBL, taktéž polohování. Kalibraci úhlu na počet kroků mohu zadat taky přímo do GRBL. Jednoduchý keypad a lcd displey připojit k arduinu zvládnu.
Hlavní smyčka GRBL programu je prázdná, tak jsem si myslel, že bych svůj program napsal do ní.
Jak ale přesvědčit Adruino, aby četl příkazy z mého programu a né z externího PC posílajicího příkazy po seriové lince pomocí např. GRBL controleru.
Rád bych zrušil řízení externím počítačem/procesorem a chtěl bych vlastní jednoduché uživatelské prostředí a ovládání. Pro ovládání 1 osy nepotřebuji složité uživatelské prostředí se 3 osami, ...
"do řiti se řítíme, ani o tom nevíme.."
-
bronek999
- Příspěvky: 521
- Registrován: 6. 3. 2014, 6:50
Kód: Vybrat vše
if(Action1 == 9) // Tlacitko "G kod"
{
FRESULT res;
FIL file;
sys.abort = 0;
sys.auto_start = 1;
MotorsEnable(0x07);
if(zrychlenie > 100) zrychlenie = 100;
LCD_Clear(LIME);
res = f_open(&file, filename, FA_OPEN_EXISTING | FA_READ);
NoMoveTicks = 0;
if (res == FR_OK)
{
char riadok[100];
while (f_gets(riadok, sizeof (riadok), &file) != NULL)
{
gc_execute_line(riadok);
protocol_execute_runtime(); // CNC
if(sys.abort) break;
}
}
sys.abort = 0;
f_close (&file);
while(NoMoveTicks < 100);
// while(sys.state == STATE_CYCLE); // pockam na dokoncenie cyklu
LCD_Clear(GetColor());
beep(1000);
Action1 = 0;
break;
}gc_execute_line(riadok); // tu posielam prikaz G kodu
protocol_execute_runtime(); // toto treba periodicky volat aby to fungovalo spravne