|
|
Zeile 3: |
Zeile 3: |
| == Software == | | == Software == |
|
| |
|
| Die Steuerhardware und Software stammt von Burkhard Lewetz - Ing.Büro für technische Software-Entwicklungen (http://www.lewetz.de/). Original wurde die software WinPC-NC über eine serielle Verbindung genutzt. Die Original-Steuerung wurde inzwischen von der Leistungselektronik getrennt und soll durch eine eigene Ansteuerung basierend auf einem BeagleBone Black ersetzt werden. | | Die Steuerhardware und Software stammt von Burkhard Lewetz - Ing.Büro für technische Software-Entwicklungen (http://www.lewetz.de/). Original wurde die Software WinPC-NC genutzt. Hierzu wird ein Windows-PC (oder Linux-PC mit Wine) benötigt; dieser wird per serieller Schnittstelle mit dem Achscontroller-PC in der Fräse verbunden. Dies hat den Vorteil, dass der (Windows) PC selbst nicht echtzeitfähig sein muss, sondern nur die Abläufe zu Beginn an den Achscontroller übermittelt. Letzterer steuert dann die Stepper-Motoren in Echtzeit |
|
| |
|
| == Hardware == | | == Hardware == |
Zeile 9: |
Zeile 9: |
| Die CNC-Fräse ist eine CUT2000 der Firma Haase (http://www.team-haase.de/). | | Die CNC-Fräse ist eine CUT2000 der Firma Haase (http://www.team-haase.de/). |
|
| |
|
| === Leistungselektronik ===
| | [[Interna der CUT2000]] |
|
| |
|
| Die Ansteuerung der Schrittmotoren basiert auf vier Toshiba TA8435H Treibern.
| | = Betrieb im Fablab = |
|
| |
|
| [[Datei:Leistungselektronik_Hinten.jpeg|500px|center|thumb|Leistungselektronik hinten]]
| | Um die CNC-Fräse im Fablab in Betrieb zu nehmen, gibt es letztlich mehrere Ansätze und Herangehensweisen. |
|
| |
|
| [[Datei:Leistungselektronik_Vorne.jpeg|500px|center|thumb|Leistungselektronik vorne]]
| | * Betrieb der Fräse mit Achscontroller und Original-Software |
| | | * Ansatz von Felix und Paul: Achscontroller abklemmen und Steuerung komplett selbst übernehmen; Details siehe [[Experimentelle Ansteuerung der CUT2000]] |
| === Verbindung CNC 25-Pol DSUB Stecker ===
| | * Ansatz von stesie: Achscontroller lassen, Windows-Software zu Gunsten einer Python-Eigenentwicklung über Bord werfen: [[PyPC-NC]] |
| | |
| ==== Typen ====
| |
| | |
| <code>
| |
| Ref[] - Zuleitung für Referenzschalter 1-1 Verbindung mit RefOut bei gedrücktem Schalter
| |
| RefOut - Ableitung für Referenzschalter
| |
| direction[] - CNC-Input um Richtung einzustellen, [3.5V, 5V], High vom Motor weg, Low zum Motor hin
| |
| clock[] - CNC-Input um Motoren anzusteuern, Geschwindigkeit des Flankenwechsels regelt Drehgeschwindigkeit
| |
| </code>
| |
| | |
| ==== Breite Reihe ====
| |
| | |
| <code>
| |
| 01 - None
| |
|
| |
| 02 - directionX
| |
| 03 - clockX
| |
|
| |
| 04 - directionY
| |
| 05 - clockY
| |
|
| |
| 06 - directionZ
| |
| 07 - clockZ
| |
|
| |
| 08 - directionT
| |
| 09 - clockT
| |
|
| |
| 10 - RefX
| |
| 11 - RefY
| |
| 12 - RefZ
| |
| 13 - RefT
| |
| </code>
| |
| | |
| ==== Schmale Reihe ====
| |
| | |
| <code>
| |
| 14 - None
| |
| 15 - None
| |
| 16 - None
| |
| 17 - None
| |
| 18 - RefOut ( 24 bei 37-Pol Adapter )
| |
| 19 - RefOut ( 24 bei 37-Pol Adapter )
| |
| 20 - RefOut ( 24 bei 37-Pol Adapter )
| |
| 21 - RefOut ( 24 bei 37-Pol Adapter )
| |
| 22 - RefOut ( 24 bei 37-Pol Adapter )
| |
| 23 - RefOut ( 24 bei 37-Pol Adapter )
| |
| 24 - RefOut ( 24 bei 37-Pol Adapter )
| |
| 25 - RefOut ( 24 bei 37-Pol Adapter )
| |
| </code>
| |
| | |
| === Experimentelle Ansteuerung ===
| |
| | |
| [[Datei:CNC_Arduino.jpg|500px|center|thumb|CNC mit Arduino ansteuern]] | |
| | |
| Um die Ansteuerung der Leistungselektronik zu testen wurde folgende neben der notwendigen Verkabelung folgender Code verwendet:
| |
| | |
| <code>
| |
| int pin_refX = 11;
| |
| int pin_dirX = 12; // LOW = Vom Motor weg
| |
| int pin_clkX = 13;
| |
|
| |
| int pin_refY = 08;
| |
| int pin_dirY = 09; // LOW = Vom Motor weg. Gedreht, eigentlich zum Motor hin.
| |
| int pin_clkY = 10;
| |
|
| |
| int pin_refZ = 05;
| |
| int pin_dirZ = 06; // LOW = Vom Motor weg
| |
| int pin_clkZ = 07;
| |
|
| |
| int pin_refT = 02;
| |
| int pin_dirT = 03; // LOW = Vom Motor aus gesehen im Uhrzeigersinn
| |
| int pin_clkT = 04;
| |
|
| |
| int pin_anaX = 00;
| |
| int pin_anaY = 01;
| |
| int pin_anaZ = 02;
| |
| int pin_anaT = 03;
| |
|
| |
| void setup() {
| |
| pinMode(pin_refX, INPUT_PULLUP);
| |
| pinMode(pin_refY, INPUT_PULLUP);
| |
| pinMode(pin_refZ, INPUT_PULLUP);
| |
| pinMode(pin_refT, INPUT_PULLUP);
| |
|
| |
| pinMode(pin_dirX, OUTPUT);
| |
| pinMode(pin_dirY, OUTPUT);
| |
| pinMode(pin_dirZ, OUTPUT);
| |
| pinMode(pin_dirT, OUTPUT);
| |
|
| |
| pinMode(pin_clkX, OUTPUT);
| |
| pinMode(pin_clkY, OUTPUT);
| |
| pinMode(pin_clkZ, OUTPUT);
| |
| pinMode(pin_clkT, OUTPUT);
| |
| }
| |
|
| |
| void driveX(int dir) {
| |
| digitalWrite(pin_dirX, dir);
| |
| digitalWrite(pin_clkX, HIGH);
| |
| delayMicroseconds(1);
| |
| digitalWrite(pin_clkX, LOW);
| |
| }
| |
|
| |
| void driveY(int dir) {
| |
| digitalWrite(pin_dirY, dir);
| |
| digitalWrite(pin_clkY, HIGH);
| |
| delayMicroseconds(1);
| |
| digitalWrite(pin_clkY, LOW);
| |
| }
| |
|
| |
| void driveZ(int dir) {
| |
| digitalWrite(pin_dirZ, !dir); // Achtung, hier Richtung gedreht
| |
| digitalWrite(pin_clkZ, HIGH);
| |
| delayMicroseconds(1);
| |
| digitalWrite(pin_clkZ, LOW);
| |
| }
| |
|
| |
| void driveT(int dir) {
| |
| digitalWrite(pin_dirT, dir);
| |
| digitalWrite(pin_clkT, HIGH);
| |
| delayMicroseconds(1);
| |
| digitalWrite(pin_clkT, LOW);
| |
| }
| |
|
| |
| void loop() {
| |
| analogReference(DEFAULT);
| |
| int anaX = analogRead(pin_anaX);
| |
| int anaY = analogRead(pin_anaY);
| |
| int anaZ = analogRead(pin_anaZ);
| |
| int anaT = analogRead(pin_anaT);
| |
|
| |
| if(anaX < 340) { driveX( LOW); } else if(anaX > 680) { driveX(HIGH); }
| |
| if(anaY < 340) { driveY( LOW); } else if(anaY > 680) { driveY(HIGH); }
| |
| if(anaZ < 340) { driveZ( LOW); } else if(anaZ > 680) { driveZ(HIGH); }
| |
| if(anaT < 340) { driveT(HIGH); } else if(anaT > 680) { driveT( LOW); }
| |
|
| |
| delayMicroseconds(1000); // 1000 als Wert zeigt in sicherer Geschwindigkeit eine bewegung
| |
| }
| |
| </code>
| |
Originalzustand
Software
Die Steuerhardware und Software stammt von Burkhard Lewetz - Ing.Büro für technische Software-Entwicklungen (http://www.lewetz.de/). Original wurde die Software WinPC-NC genutzt. Hierzu wird ein Windows-PC (oder Linux-PC mit Wine) benötigt; dieser wird per serieller Schnittstelle mit dem Achscontroller-PC in der Fräse verbunden. Dies hat den Vorteil, dass der (Windows) PC selbst nicht echtzeitfähig sein muss, sondern nur die Abläufe zu Beginn an den Achscontroller übermittelt. Letzterer steuert dann die Stepper-Motoren in Echtzeit
Hardware
Die CNC-Fräse ist eine CUT2000 der Firma Haase (http://www.team-haase.de/).
Interna der CUT2000
Betrieb im Fablab
Um die CNC-Fräse im Fablab in Betrieb zu nehmen, gibt es letztlich mehrere Ansätze und Herangehensweisen.
- Betrieb der Fräse mit Achscontroller und Original-Software
- Ansatz von Felix und Paul: Achscontroller abklemmen und Steuerung komplett selbst übernehmen; Details siehe Experimentelle Ansteuerung der CUT2000
- Ansatz von stesie: Achscontroller lassen, Windows-Software zu Gunsten einer Python-Eigenentwicklung über Bord werfen: PyPC-NC