Arduino CNC Shield V4

Uit Private Rotor Designs
Naar navigatie springen Naar zoeken springen
Crystal Clear action run.png
DOCUMENTATION

Release status: documentation

Cnc shield.png
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:

  1. ) CNC Shield
  2. ) Stepper-drivers
  3. ) 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:
MonitorSCR1.png

Schema

Cnc v3 diagram.png

A rduino => shield referentie

320
UNO SCHIELD IO
A0 Reset/Abort
I IEC60417.png
A1 Feed Hold
I IEC60417.png
A2 Cyclus Start/Vervolg
I IEC60417.png
A3 KoelVS
I IEC60417.png
A4 I2C SDA
IO IEC60417.png
A5 I2C SCL
O IEC60417.png
D0 USB
IO IEC60417.png
D1 USB
IO IEC60417.png
D2 Stap X
O IEC60417.png
D3 Stap Y
O IEC60417.png
D4 Stap Z
O IEC60417.png
D5 Richting X
O IEC60417.png
D6 Richting Y
O IEC60417.png
D7 Richting Z
O IEC60417.png
D8 Enable Steppers
O IEC60417.png
D9 Limiet X
I IEC60417.png
D10 Limiet Y
I IEC60417.png
D11 Limiet Z
I IEC60417.png
D12 Spindle Enable
O IEC60417.png
D13 Spindle Richting
O IEC60417.png

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)

Arduino-cnc-shield-v3 bb.png

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

Drivers.png
  • 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:

Cnc shield top.jpg
  • 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).
Driver connection.png
  • 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/