Využití Arduino GRBL
Č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
-
- Příspěvky: 68
- Registrován: 11. 2. 2016, 9:01
- Bydliště: Banska Bystrica - Vlkanova
- Kontaktovat uživatele:
@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!
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, ...
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.
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š.
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í?
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.."
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