Arduino CNC Shield V4
Release status: documentation
Description | hardware
|
License | GPL
|
Author | |
Contributors | PROTONEER
|
Based-on | |
Categories | |
CAD Models | none
|
External Link | none
|
Inleiding
Het CNC Shield is ontworpen door Protoneer om te profiteren van de vraag naar een goedkope controlleroplossing voor doe-het-zelf-CNC-machines. Het is ontworpen om 100% compatibel te zijn met Grbl, de Opensource G-Code-interpreter, en past op de populaire Arduino Uno. Het CNC Shield kan worden gebruikt om een aantal verschillende soorten CNC-machines te besturen, waaronder CNC-freesmachines, lasergraveer-/snijmachines, tekenmachines, 3D-printers of elk ander project dat nauwkeurige besturing van stappenmotoren nodig heeft. Het maakt gebruik van Pololu en compatibele stappenmotoren, ofwel de A4988 of de hogere huidige DRV8825.
Er zijn 3 hoofdcomponenten nodig om het CNC Shield operationeel te krijgen:
- ) CNC Shield
- ) Stepper-drivers
- ) Arduino-UNO
Elk van deze zal hieronder worden vermeld/besproken.
In deze handleiding wordt versie 3.0 van het CNC Shield gebruikt.
Het CNC Shield is gelicentieerd onder een Creative Commons Attribution-ShareAlike 3.0 Unported-licentie.
Let op: dit document is een leidraad en geen handleiding. Het CNC Shield en Grbl zijn Opensource en worden voortdurend ontwikkeld en aangepast. Als gevolg hiervan biedt dit document een leidraad, maar is het geenszins alomvattend of gezaghebbend. Het is essentieel dat alle gebruikers hun eigen onderzoek doen en oplossingen vinden die passen bij hun toepassing en vereisten.
Functies
Het schield is compatibel met de Arduino formfactor en past dus op alle Arduino's met deze pin-out.
Arduino UNO-compatibel
- 14 digitale invoer-/uitvoerpinnen – 6 pinnen kunnen worden gebruikt als PWM-uitgangen
- 6 analoge ingangen
- 16 MHz kristaloscillator
- Werkt op 5V
- Aanbevolen ingangsspanningsbereik: 7V tot 12V
- Flash-geheugen: 32 KB (0,5 KB gebruikt door bootloader)
- SRAM: 2 KB
- EEPROM: 1 KB
CNC-schield
Versie 3.00
- Ondersteuning voor 4 assen (X, Y, Z, A - Kan X, Y, Z dupliceren of een volledige 4e as uitvoeren met aangepaste firmware met behulp van pinnen D12 en D13)
- 2 x eindstops voor elke as (6 in totaal - elk assenpaar gedeeld door dezelfde IO-pin)
- Spindelvrijgave en richtingsaansluiting
- Aansluiting voor koelvloeistof inschakelen
- Gebruikt GRBL als besturingssoftware
- Voeding: DC 12-36V (alleen de DRV8825-drivers kunnen maximaal 36V aan, dus bij gebruik van de A4988 mag de 24V niet overschreden worden)
- Maakt gebruik van verwijderbare stappenmotoren (DRV8825 of A4988)
- Stappenmotoren kunnen worden aangesloten met 4-pins dupont/molex-connectoren
- Jumpers om Micro-Stepping in te stellen
DRV8825 stappenmotordrivers
- Lage RDS (AAN)-uitgangen
- Automatische detectie/selectie van de stroomvervalmodus
- Interne UVLO
- Gemengd met langzame stroomvervalmodi
- Synchrone gelijkrichting voor een laag vermogensverlies
- Crossover-stroombeveiliging
- Thermische uitschakelcircuits
- 3,3 en 5 V compatibele logische voeding
- Aardfoutcircuit
- Beveiliging tegen kortsluiting van belasting
- Zes microstepping-modi: volledig, 1/2, 1/4, 1/8, 1/16 en 1/32
A4988 stappenmotordrivers
- Eenvoudige stap- en richtingscontrole-interface
- Vijf verschillende stapresoluties: volledig, 1/2, 1/4, 1/8 en 1/16
- Dankzij de instelbare stroomregeling kunt u de maximale stroomuitvoer instellen met een potentiometer, waardoor u spanningen boven de nominale spanning van uw stappenmotor kunt gebruiken om hogere stapsnelheden te bereiken
- Intelligente chopping-controle die automatisch de juiste huidige vervalmodus selecteert (snel verval of langzaam verval)
- Thermische uitschakeling bij te hoge temperatuur, uitschakeling bij te lage spanning en bescherming tegen overstroom
- Beveiliging tegen kortsluiting en kortsluiting
Opmerkingen voor sommige compatibele UNO's
Sommige compatibele UNO's gebruiken de CH340 USB-naar-serieel-chip. Om ervoor te zorgen dat uw computer deze UNO herkent, moet u mogelijk het nieuwste CH340-Driver downloaden
Eenvoudige Arduino code
Om een stappenmotor met het CNC Shield V3 aan te drijven, verwijzen we naar de pinout van het schild die ons toegang geeft tot de pinnen die we kunnen oproepen om opdrachten naar de motorcontroller te sturen (DRV8825, A4988 of SilentStepStick).
const int enPin=8;
const int stepXPin = 2; //X.STEP
const int dirXPin = 5; // X.DIR
const int stepYPin = 3; //Y.STEP
const int dirYPin = 6; // Y.DIR
//const int stepZPin = 4; //Z.STEP
//const int dirZPin = 7; // Z.DIR
int stepPin=stepYPin;
int dirPin=dirYPin;
const int stepsPerRev=200;
int pulseWidthMicros = 100; // microseconds
int millisBtwnSteps = 1000;
void setup() {
Serial.begin(9600);
pinMode(enPin, OUTPUT);
digitalWrite(enPin, LOW);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
Serial.println(F("CNC Shield Initialized"));
}
void loop() {
Serial.println(F("Running clockwise"));
digitalWrite(dirPin, HIGH); // Enables the motor to move in a particular direction
// Makes 200 pulses for making one full cycle rotation
for (int i = 0; i < stepsPerRev; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(pulseWidthMicros);
digitalWrite(stepPin, LOW);
delayMicroseconds(millisBtwnSteps);
}
delay(1000); // One second delay
Serial.println(F("Running counter-clockwise"));
digitalWrite(dirPin, LOW); //Changes the rotations direction
// Makes 400 pulses for making two full cycle rotation
for (int i = 0; i < 2*stepsPerRev; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(pulseWidthMicros);
digitalWrite(stepPin, LOW);
delayMicroseconds(millisBtwnSteps);
}
delay(1000);
}
Om de werking van het Shield en de motoren te testen, gebruiken we geen specifieke bibliotheek. Houd er echter rekening mee dat als u meer geavanceerde functies wilt gebruiken, u de AccelStepper-bibliotheek of de GRBL V0.9-firmware kunt gebruiken.
GBRL
Voordat u de UNO op het CNC Shield aansluit, kunt u het beste Grbl op de UNO laden. Voor een volledige beschrijving en volledige details van Grbl, zie de Wiki op de Grbl-projectpagina's:
Informatie over GBRL vindt U hier
Er zijn veel gesprekken over welke versie van Grbl moet worden gebruikt met een v3.0 CNC Shield. Protoneer zegt dat alleen Grbl v0.8 compatibel is, maar een latere versie kan worden gebruikt met kleine aanpassingen aan het config.h-bestand. Voor meer details over het verschil tussen v0.8 en v0.9 zie: Voor uitleg klikt U hier
Aanpassingen aan GRBL
Grbl laden op de UNO
Controleer Grbl op de UNO
Open de Arduino IDE seriële monitor (Extra/Seriële monitor) Als Grbl correct is geladen, rapporteert het de versie in het Monitor-venster:
Schema
A rduino => shield referentie
UNO | SCHIELD | IO |
---|---|---|
A0 | Reset/Abort | |
A1 | Feed Hold | |
A2 | Cyclus Start/Vervolg | |
A3 | KoelVS | |
A4 | I2C SDA | |
A5 | I2C SCL | |
D0 | USB | |
D1 | USB | |
D2 | Stap X | |
D3 | Stap Y | |
D4 | Stap Z | |
D5 | Richting X | |
D6 | Richting Y | |
D7 | Richting Z | |
D8 | Enable Steppers | |
D9 | Limiet X | |
D10 | Limiet Y | |
D11 | Limiet Z | |
D12 | Spindle Enable | |
D13 | Spindle Richting |
Aansluitingen
Het schild wordt op de Arduino-microcontroller geplaatst en de motoren worden rechtstreeks op de uitgangspinnen van de driver aangesloten. U kunt de gewenste drivers kiezen op basis van het vermogen van uw motoren en uw toepassingen (A4988, DRV8825, SilentStepStick, TMC)
Onder elke driver zijn klemmenblokken beschikbaar om de stapresolutie te selecteren. Deze klemmenblokken worden aangesloten op pin MS0, MS1 en MS2 van de controllers.
Voordat u de motoren aansluit, moet u ervoor zorgen dat u de stroombegrenzer op elke controller instelt op basis van de motor die deze aandrijft.
Handleiding voor bedrading en aansluitingen
Voor we verder gaan eerst even dit
Veiligheids- en hanteringsvereisten
Voordat u de bedrading aansluit, is het van essentieel belang dat u een aantal veiligheidskwesties en hanteringsvereisten in acht neemt.
Hoewel de spanningen op en rond het CNC Shield laag zijn (5V voor de Arduino en tot 36V voor het CNC Shield en steppers), is het nog steeds mogelijk om zowel uzelf als de componenten pijn te doen als u er verkeerd of onzorgvuldig mee omgaat. De volgende punten zijn van cruciaal belang en kunnen niet sterk genoeg worden benadrukt. Lees aandachtig:
- Sluit NOOIT een stappenmotor aan op de CNC Shield terwijl de stroom is ingeschakeld of aangesloten.
- Koppel ALTIJD de stroom los voordat u de stappenmotoren aansluit of loskoppelt.
- Zorg er bij het installeren van de driver voor dat u de driver correct oriënteert, zodat de inschakelpin (EN) overeenkomt met de EN-pin op het CNC-schild (linksboven). Merk op dat de kleine potentiometer zich aan de onderkant van de A9488 bevindt, terwijl deze zich aan de bovenkant van de DRV8825 bevindt – zorg er dus voor dat u de twee drivers niet met elkaar verwart.
Orientatie Drivers
- Sluit ALTIJD een stappenmotor aan op de CNC Shield wanneer u de CNC Shield en driver test of gebruikt. Dit is erg belangrijk omdat de stappenmotoren zijn ontworpen om de stroom op te voeren totdat deze de stroom bereikt die nodig is om te kunnen werken. Als er geen stappenmotor is aangesloten, zal er niets zijn dat de stroom verbruikt en kunt u de stappenmotor beschadigen als deze daarbij oververhit raakt.
- Bij het bevestigen van een koellichaam op de drivers is het van cruciaal belang dat er geen kortsluiting ontstaat in de pinnen. Plaats het koellichaam in het midden. Als het koellichaam niet correct wordt geplaatst, kan dit ertoe leiden dat de driver kortsluiting krijgt en uitvalt. Dit is een veelvoorkomende oorzaak van defecten aan het stuurprogramma en een veel voorkomende verwerkingsfout.
Componenten opstelling
Hieronder vindt u een algemeen schetsproces voor het aansluiten van de verschillende componenten:
- Neem de normale voorzorgsmaatregelen voor statische elektriciteit en plaats het CNC-schield op de Arduino Uno en zorg ervoor dat de juiste pinnen van het CNC-schild in de juiste UNO-headers worden gestoken.( door de Arduino FormFactor is dit maar op één manier mogelijk.
- Bepaal de micro-stepper-instelling voor uw toepassing en plaats de jumpers zoals vereist
In de onderstaande tabellen geeft 1 aan dat er een jumper is geplaatst en geeft 0 aan dat er geen jumper is geplaatst.
A4988 Stepper Driver-configuratie
M0 | M1 | M2 | Microstep Resolution |
---|---|---|---|
0 | 0 | 0 | Full step |
1 | 0 | 0 | Half step |
0 | 1 | 0 | Quarter step |
1 | 1 | 0 | Eighth step |
1 | 1 | 1 | Sixteenth step |
drv8825 Stepper Driver-configuratie
M0 | M1 | M2 | Microstep Resolution |
---|---|---|---|
0 | 0 | 0 | Full step |
1 | 0 | 0 | Half step |
0 | 1 | 0 | 1/4 step |
1 | 1 | 0 | 1/8 step |
0 | 0 | 1 | 1/16 step |
1 | 0 | 1 | 1/32 step |
0 | 1 | 1 | 1/32 step |
1 | 1 | 1 | 1/32 step |
- Plaats de drivers in het CNC-schield en let er vooral op dat de Enable (EN) overeenkomt met de indicatie (EN).
- Sluit de stappenmotoren aan op de headerpinnen. Zorg ervoor dat u uw stappenmotor controleert om zeker te zijn van de juiste bedradingsvolgorde. Verschillende stappenmotoren hebben verschillende kleuren draden, dus gebruik het blad met technische specificaties van de stappenmotor om de juiste volgorde te bepalen.
- Ongeordend lijstitem Raadpleeg de details op de Protoneer-website, stel jumpers in voor de slave-as en sluit extra eind-/thuisschakelaars en sondes aan volgens uw toepassingsvereisten, zie: hier
Testen
Protoneer heeft een zogenaamde ‘Pre-Flight Checklist’ gepubliceerd. Dit is een geweldige bron voor het testen van het CNC Shield. Deze Blog vindt U hier
Grbl configureren
Er zijn veel wiki's, blogs en berichten over hoe je Grbl kunt configureren, zie de linkssectie hieronder voor enkele. Voor Grbl v0.9 zie: Grbl-v0.9
Maak verbinding met de UNO met behulp van een serieel consoleprogramma zoals Putty of een Grbl GUI (zie onderstaande links voor enkele voorbeelden) en voer “$$” in om een lijst met instellingen te zien:
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=6 (dir port invert mask:00000110)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=1 (homing dir invert mask:00000001)
$24=50.000 (homing feed, mm/min)
$25=635.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=314.961 (x, step/mm)
$101=314.961 (y, step/mm)
$102=314.961 (z, step/mm)
$110=635.000 (x max rate, mm/min)
$111=635.000 (y max rate, mm/min)
$112=635.000 (z max rate, mm/min)
$120=50.000 (x accel, mm/sec^2)
$121=50.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=225.000 (x max travel, mm)
$131=125.000 (y max travel, mm)
$132=170.000 (z max travel, mm)
Er volgt een tweede tutorial met een uitgebreide configuratie van GRBL
Links
Dit is een overzicht met handige verwijzingen naar informatie over CNC GRBL:
Designer of the CNC Shield: | https://blog.protoneer.co.nz/arduino-cnc-shield/ |
Grbl to v0.9: | https://github.com/grbl/grbl/wiki |
Grbl from v1.1: | https://github.com/gnea/grbl/wiki |
Grbl GUIs: | https://github.com/gnea/grbl/wiki/Using-Grbl |
Driver Details: | https://www.pololu.com/category/120/stepper-motor-drivers |
Wikipedia Arduino entry: | https://en.wikipedia.org/wiki/Arduino |
Arduino IDE: | https://www.arduino.cc/en/Main/Software |
PuTTY serial console: | https://www.putty.org/ |