Stránka 1 z 2
Využití Arduino GRBL
Napsal: 4. 12. 2017, 1:00
od frewill
Č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
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 1:27
od atlan
g-codom
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 1:45
od frewill
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.
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 1:49
od dhaman
@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;)
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 2:12
od packa
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.
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 2:14
od frewill
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, ...
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 2:17
od frewill
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.
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 2:25
od packa
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é
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 2:26
od atlan
Pozri g code sender, asi by to chcelo odchytit co poisela do arduina, vies tam natukat aj nejake prikazy
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 2:35
od dhaman
Uff bude treba pozriet tu slucku citania serial prikazov a podla toho pozriet ake funkcie vola. Niekde v zdrojakoch to urcite bude.
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 2:49
od frewill
packa 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š , ...
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 cestu
packa píše: ..., ale pro jednu osu je celé grbl zbytečné
Jednou osou to začíná a další se mohou přidat, navíc v hlavě už mám další projekt na dvě osy.
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.
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 2:50
od Mex
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š.
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 3:02
od frewill
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í.
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í
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í?
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 3:42
od filla
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, ...
to uz tady preci je
http://www.jova1.cz/dilna/rotacni_osa/rotacni_osa.html" onclick="window.open(this.href);return false;
Re: Využití Arduino GRBL
Napsal: 4. 12. 2017, 4:10
od bronek999
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;
}
Tento kod som kedysi pouzil ku grbl pre stm32. G kod som tahal z SD karty, ovlada sa to dotykovym displejom.
gc_execute_line(riadok); // tu posielam prikaz G kodu
protocol_execute_runtime(); // toto treba periodicky volat aby to fungovalo spravne