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