Hoe GRBL in te stellen en CNC-machine te bedienen met Arduino
Als u denkt of bezig bent met het maken van uw eigen CNC-machine, dan komt u hoogstwaarschijnlijk de term GRBL tegen. Dus in deze tutorial zullen we leren wat GRBL is, hoe te installeren en hoe het te gebruiken voor het besturen van je op Arduino gebaseerde CNC-machine.
We zullen ook leren hoe we de Universal G-code Sender kunnen gebruiken, een populaire open source GRBL-controllersoftware.
Wat is GRBL?
GRBL is een open source software of firmware die motion control voor CNC-machines mogelijk maakt. We kunnen de GRBL-firmware eenvoudig op een Arduino installeren en zo krijgen we meteen een goedkope, hoogwaardige CNC-controller. De GRBL gebruikt G-code als invoer en voert motion control uit via de Arduino.
Voor een beter begrip kunnen we het volgende diagram bekijken:
Uit het diagram kunnen we zien waar de GRBL plaatsvindt in het "grote plaatje" van het werkingsprincipe van een CNC-machine. Het is een firmware die we moeten installeren of uploaden naar de Arduino, zodat deze de stappenmotoren van de CNC-machine kan besturen. Met andere woorden, de functie van de GRBL-firmware is om de G-code te vertalen in motorische beweging.
Vereiste hardware
- Arduino – Zoals we al zeiden, hebben we een Arduino nodig om de GRBL te installeren. We hebben met name een op Atmega 328 gebaseerd Arduino-bord nodig, wat betekent dat we Arduino UNO of Nano kunnen gebruiken.
- Stappenmotoren – Uiteraard zorgen de stappenmotoren voor de beweging van de machine.
- Stuurprogramma's – Voor het aandrijven van de stappenmotoren hebben we drivers nodig en veelvoorkomende keuzes als het gaat om kleinere DIY CNC-machines (met NEMA 14 of 17 steppers) zijn de A4988 of DRV8825 drivers.
- Arduino CNC-schild – Voor het aansluiten van de stepper-drivers op de Arduino is de eenvoudigste manier om een Arduino CNC Shield te gebruiken. Het maakt gebruik van alle Arduino-pinnen en biedt een gemakkelijke manier om alles aan te sluiten, de stappenmotoren, de spindel/laser, de eindschakelaars, de koelventilator enz.
Houd er rekening mee dat dit slechts de elektronische basiscomponenten zijn die we nodig hebben om te begrijpen hoe een CNC-machine werkt.
Als voorbeeld van hoe alles moet worden aangesloten, kunnen we mijn DIY CNC-schuimsnijmachine bekijken.
U kunt de belangrijkste elektronische componenten die nodig zijn voor het bouwen van deze CNC-machine hier controleren en verkrijgen:
- Stappenmotor – NEMA 17………………
- A4988 Stepper-stuurprogramma………………..…
- Arduino CNC-schild ………………………. Amazon / Banggood / AliExpress
- Arduino Uno………………………………..…
Het belangrijkste gereedschap van deze CNC-machine is een hete draad die gemakkelijk door een piepschuim kan smelten of snijden en elke gewenste vorm kan maken. Voor meer details over hoe ik de machine heb gemaakt en hoe alles werkt, kun je de specifieke tutorial bekijken.
Desalniettemin zullen we deze machine in dit artikel als voorbeeld gebruiken, omdat hetzelfde werkingsprincipe geldt voor elke andere CNC-machine, of het nu een frees- of lasermachine is.
Hoe GRBL te installeren
Ten eerste hebben we de Arduino IDE nodig om de GRBL te kunnen installeren of uploaden naar de Arduino.
Dan kunnen we de GRBL-firmware downloaden van github.com.
Download het als .ZIP-bestand en volg dan deze stappen:
- Open het bestand grbl-master.zip en pak de bestanden uit
- Open de Arduino IDE, ga naar Sketch> Include Library> Add .ZIP Library…
- Navigeer naar de uitgepakte map “grbl-master”, selecteer daar de map “grbl” en klik op het geopende bestand. Nu moeten we GRBL gebruiken als een Arduino-bibliotheek.
- Navigeer vervolgens naar Bestand> Voorbeelden> grbl> grblUpload. Er wordt een nieuwe schets geopend en we moeten deze uploaden naar het Arduino-bord. De code ziet er misschien raar uit omdat het maar één regel is, maar maak je geen zorgen, alles gebeurt op de achtergrond in de bibliotheek. We hoeven dus alleen het Arduino-bord en de COM-poort te selecteren en op die uploadknop te drukken en we zijn klaar.
GRBL-configuratie
Op dit punt moeten we de GRBL configureren of aanpassen aan onze machine. Dat kunnen we doen via de Serial Monitor van de Arduino IDE. Zodra we de seriële monitor openen, krijgen we een bericht als "Grbl 1.1h ['$' voor hulp]". Als je dit bericht niet kunt zien, zorg er dan voor dat je de baudrate wijzigt in 115200.
Als we "$$" typen, krijgen we een lijst met opdrachten of huidige instellingen, en ze zien er ongeveer zo uit:
$100=250.000 (x, stap/mm)
$101=250.000 (y, stap/mm)
$102=3200.000 (z, stap/mm)
$110=500.000 (x max. snelheid, mm/min)
$111=500.000 (y max. snelheid, mm/min)
$112=500.000 (z max. snelheid, mm/min)
$120=10.000 (x accel, mm/sec ^2)
$121=10.000 (y versnelling, mm/sec^2)
$122=10.000 (z versnelling, mm/sec^2)
Al deze commando's kunnen of moeten worden aangepast volgens onze CNC-machine. Bijvoorbeeld met het eerste commando, $100=250.000 (x, step/mm), kunnen we de stappen per mm van de machine aanpassen, of we kunnen specificeren hoeveel stappen de motor moet maken om onze X-as 1 mm te laten bewegen.
Ik zou echter willen voorstellen om deze instellingen te laten zoals ze zijn. Er is een eenvoudigere manier om ze aan te passen aan onze machine met behulp van de controllersoftware, die we in de volgende sectie zullen uitleggen.
GRBL-controller
Dus als we eenmaal de GRBL-firmware hebben geïnstalleerd, weet onze Arduino nu hoe hij de G-code moet lezen en hoe hij de CNC-machine volgens deze moet besturen. Om de G-code naar de Arduino te sturen, hebben we echter een soort interface of controllersoftware nodig die de Arduino vertelt wat hij moet doen. Eigenlijk zijn er veel zowel open source als commerciële programma's voor dat doel. Natuurlijk houden we het bij open source, dus als voorbeeld gebruiken we de Univarsal G-code Sender.
Universele G-code Sender gebruiken
Voor dit voorbeeld zal ik de 2.0 Platform-versie gebruiken. Zodra we het hebben gedownload, moeten we het zipbestand uitpakken, naar de map "bin" gaan en een van de uitvoerbare "ugsplatfrom" -bestanden openen. Dit is eigenlijk een JAVA-programma, dus om dit programma te kunnen uitvoeren, moeten we eerst JAVA Runtime Environment installeren.
Zodra we de universele G-code-afzender openen, moeten we eerst de machine configureren of de eerder getoonde GRBL-parameters configureren. Voor dat doel zullen we de UGS Setup Wizard gebruiken, wat veel handiger is dan het handmatig typen van commando's via de seriële monitor van de Arduino IDE.
De eerste stap hier is om de baudrate te selecteren, die 115200 zou moeten zijn, en de poort waarop onze Arduino is aangesloten. Zodra we de universele G-code-zender met de Arduino hebben verbonden, kunnen we in de volgende stap de bewegingsrichting van de motoren controleren.
Indien nodig kunnen we de richting omkeren via de wizard, of door de aansluiting van de motor op het Arduino CNC Shield handmatig om te draaien.
In de volgende stap kunnen we de stappen/mm parameter aanpassen die we eerder noemden. Hier is het veel gemakkelijker om te begrijpen hoe u het moet aanpassen, omdat de installatiewizard berekent en ons vertelt naar welke waarde we de parameter moeten bijwerken.
De standaardwaarde is 250 stappen/mm. Dit betekent dat als we op de knop "x+" bewegen klikken, de motor 250 stappen zal maken. Afhankelijk van het aantal fysieke stappen dat de motor heeft, de geselecteerde stappenresolutie en het transmissietype, zal de machine een bepaalde afstand afleggen. Met behulp van een liniaal kunnen we de werkelijke beweging van de machine meten en die waarde invoeren in het veld "Werkelijke beweging". Op basis hiervan berekent de wizard en vertelt ons naar welke waarde we de parameter steps/mm moeten wijzigen.
In mijn geval, voor de DIY CNC-machine die ik heb gemaakt, bewoog de machine 3 mm. Volgens dit stelde de wizard voor om de parameter steps/mm bij te werken naar een waarde van 83.
Met deze waarde bijgewerkt, beweegt de machine nu correct, 1 mm in de software betekent 1 mm voor de CNC-machine.
In de UGS-console kunnen we bij elke actie de opdrachten zien die worden uitgevoerd. We kunnen opmerken dat door het bijwerken van de stappen / mm-parameter het UGS-programma daadwerkelijk naar de Arduino heeft gestuurd, of de GRBL-firmware het eerder genoemde commando. Dit was de standaardwaarde:$100=250.000 (x, step/mm), en nu hebben we geüpdatet naar een waarde van 83 stappen per mm:$100=83.
In de volgende stap kunnen we de eindschakelaars inschakelen en testen of ze goed werken.
Afhankelijk of ze een normaal open of normaal gesloten verbinding zijn, kunnen we ze hier ook omkeren.
Hier is het vermeldenswaard dat we soms de eindschakelaar van de Z-as moeten uitschakelen. Dat was het geval met mijn DIY CNC-schuimsnijmachine, waar ik de Z-as-eindschakelaar niet nodig had en ik deze moest uitschakelen om de machine goed te kunnen plaatsen. Om dat te doen, moeten we het config.h-bestand bewerken dat zich in de Arduino-bibliotheekmap (of Documents\Arduino\libraries) bevindt.
Hier moeten we de homing-cycluslijnen vinden en de standaardset voor 3-assige CNC-machine becommentariëren en de instelling voor 2-assige machines verwijderen. Om de wijzigingen door te voeren, moeten we het bestand opslaan en de grblUpload-schets opnieuw uploaden naar ons Arduino-bord.
Desalniettemin kunnen we in de volgende stap de homing van de CNC-bewerking in- of uitschakelen.
Met behulp van de knop "Try homing" zal de machine naar de eindschakelaars gaan bewegen. Als het de andere kant op gaat, kunnen we de richting gemakkelijk omkeren.
Ten slotte kunnen we in de laatste stap van de installatiewizard zachte limieten inschakelen voor onze CNC-machine.
De zachte limieten voorkomen dat de machine buiten het ingestelde werkgebied komt.
Conclusie
Dus dankzij de GRBL-firmware en de Arduino kunnen we onze DIY CNC-machine eenvoudig instellen en laten werken. Natuurlijk hebben we in deze tutorial alleen de basis behandeld, maar ik denk dat dit voldoende was om te begrijpen hoe de dingen werken en hoe we onze eerste CNC-machine aan de praat kunnen krijgen.
Natuurlijk zijn er veel andere instellingen en functies beschikbaar, aangezien de GRBL echt capabele CNC-controller-firmware is. De GRBL-documentatie legt dat allemaal in detail uit, dus je kunt ze altijd bekijken op hun wiki-pagina op github.com.
Er zijn ook veel andere open source GRBL-controllerprogramma's zoals de Universal G-code Sender, en hier zijn er een paar:GRBLweb (webbrowser), GrblPanel (Windows GUI), grblControl (Windows/Linux GUI), Easel (browsergebaseerd) enz Je zou ze moeten verkennen en zien welke het beste bij je past.
Productieproces
- Een gebruikte CNC-machine vinden
- Hoe maak je een gebruikte CNC-machine schoon
- Hoe genereer je een G-code-bestand met ArtCAM voor CNC-machines?
- Hoe problemen met gebruikte CNC-machines te voorkomen
- Hoe u uw CNC-machine kiest
- Bedien muntvangers met Arduino
- Arduino met Bluetooth om een LED te bedienen!
- Draaibank Met CNC
- Hoe sieraden te bewerken met CNC-bewerking?
- CNC-machineprocessen automatiseren
- Hoe CNC Swiss Machine uitblinkt in draaien?