|
|
|
|
|
|
La costruzione di una fresatrice CNC
con il kit
KT150 - BFB2000 - BFW40 |
|
|
|
|
Costruzione CNC |
|
|
Dettagli lavori meccanici |
|
|
|
|
|
Motore fresatore BFW40 |
Unità di comando |
|
|
Dettagli parte elettronica |
|
|
|
|
Software |
|
|
|
|
|
|
Descrizione della macchina |
|
Il sistema è costruito a partire da tre prodotti Proxxon.
Questi sono modificati per poter montare tre motori passo-passo al posto delle rotelle di regolazione.
I motori sono pilotati tramite un'interfaccia dal PC. Questa interfaccia può
funzionare anche in modo autonomo ed è dotata di una tastiera e un display LCD.
Parti componenti
I tre pezzi Proxxon (che possono essere acquistati separatamente) sono i seguenti:
-Banco bidirezionale X-Y KT150
-Banco per trapano e fresatrice BFB 2000, per trapani e motori di fresatrici dotati di un collo di fissaggio di 43 mm (norma EUROPEA).
-Motore fresatrice BFW 40/E, con controllo continuo di numero di giri tra 900 – 6,000 giri/min.
Questa componente può essere sostituito da un trapano con il collo di fissaggio di 43 mm.
Altre componenti:
tre motori passo - passo
tre accoppiamenti oldham
supporti per motori, vite, cuscinetti
interfaccia elettronica |
|
|
Dettagli meccanici |
|
|
XY banco bidirezionale X-Y KT150 - alcuni dettagli della tavola KT150 estratte dal catalogo Proxxon |
|
Dati tecnici: |
|
|
Superficie di lavoro: |
200 x 200 mm |
|
Superficie di spostamento: |
mass. 150 x 150 mm |
|
Altezza della costruzione: |
75 mm. |
|
Peso: |
5.9 kg |
|
Avanzamento: |
per giro 2 mm |
|
Gradazione della scala: |
0,05 mm |
|
Ogni pista ha un dispositivo di fissaggio con guide a coda di rondine.
Le guide sono aggiustabili per eliminare il gioco. |
|
|
Per aggiungere i motori alla tavola KT150 abbiamo bisogno dell'esecuzione di alcuni pezzi e della lavorazione di alcune parti della tavola KT150.
Per iniziare dobbiamo smontare la tavola KT150 per poter lavorare il supporto dell'asse e dell'asse filettato come segue : |
La lavorazione del supporto dell'asse |
Dobbiamo eseguire 3 fori di 4,2 mm (o 4 millimetri),
che saranno filettati con un maschio M5 nelle posizioni indicate nel disegno accanto. |
La lavorazione dell'asse filettata (la vite senza fine) |
L'asse viene tornito all'estremità non filettata per apportare al diametro necessario agli accoppiamenti con la giunta Oldham (6,35 mm).
Per evitare questa lavorazione si può utilizzare un accoppiamento con il diametro interno di 10 millimetri. |
Supporto motore x, y |
La realizzazione del supporto per il motore.
Questo è stato realizzato utilizzando una fresatrice CNC per avere una buona accuratezza. |
|
Il motore è montato sulla flangia di sostegno attraverso quattro distanziatori che hanno le dimensioni del disegno accanto.
Per realizzarli abbiamo utilizzato una barra di ottone Ø10mm.
Un 'altra soluzione è quella di usare delle viti M6 con una lunghezza (filettata) superiore a 65 millimetri.
In questo caso i fori saranno modificati da Ø4mm a Ø6, 5 mm della flangia supporto descritta sopra.
In questa macchina abbiamo utilizzato entrambe le soluzioni. |
Vista
inferiore della tavola KT150 dopo il montaggio di alcuni componenti |
Queste foto
mostrano i dettagli di assemblaggio per le due flange e viti per gli assi X e Y.
Il motore trasmette il movimento di rotazione all'asse filettato mediante un accoppiamento
con disco intermediario mobile (Oldham), che consente la compensazione per spostamenti
assiali (± 0,1 millimetri), radiali (± 0,2 millimetri) e angolari (+ / - 0,5 °).
L'accoppiamento è prodotto da Huco e ha il codice 232P19.24.F. |
|
Dettagli dell'asse X |
Click to image to zoom |
|
|
Dettagli dell'asse Y |
Click to image to zoom |
|
|
Banco per fresatrice BFB 2000 (Z asse) |
|
|
|
|
|
Motore passo -passo |
Il motore è di tipo 4S56R-N12056S fabbricato da SAEHAN ELECTRONICS |
|
General Specifications |
Voltage |
12V |
Current (A/Phase ) |
0,6A |
Resistance (Ω/Phase) |
20Ω |
Indutance (mH/Phase) |
30mH |
Holding Torque (Kgf-cm) |
5 |
Detent Torque (gf-cm) |
400 |
Rrotor Inertia (g-cm2) |
120 |
Weight (g) |
500g |
Length |
51mm |
Step Angle |
1.8° |
Number of phase |
4 |
Number of Lead Wire |
6 |
|
|
|
|
Unità di commando |
|
Display LCD 2x40 caratteri. Lo schermo LCD viene utilizzato se si desidera utilizzare la fresatrice senza un computer. Sul display si possono vedere le coordinate, il menù del disegno, le impostazioni ecc. |
|
Sul pannello anteriore si trovano l 'interruttore"Power" e l'interruttore "Spindle".
L 'interruttore Spindle ha tre posizioni :
1 - ON (l'uscita 220V = ON)
2 - OFF (l'uscita 220V = OFF)
3 - AUTO (l'uscita 220V è gestita dal programma dell'interfaccia).
Se la macchina è gestita da computer, questa posizione è equivalente alla posizione 2 (OFF) |
|
Sul pannello posteriore del dispositivo sono disposti:
- 3 connettori a 6 contatti per il motore,
- il connettore di potenza 220V AC,
- il connettore di uscita 220V AC per il motore della fresatrice,
- il connettore PC-SUB D25
- il connettore firmware SUB D9 (per la programmazione del microprocessore). |
|
Dettagli della parte elettronica |
SCHEMATICS |
|
|
Diagramma blocchi |
|
|
|
|
Nello schema blocchi si può vedere che ci sono due modi per utilizzare l' interfaccia: locale e con l' utilizzo di un computer.
La modalità di funzionamento viene scelta utilizzando DIP 2.
- In posizione "On" la macchina può essere gestita con il computer. In questo caso al connettore SV7 si collegherà l'interfaccia parallela (SV17B), che tramite 6 fotoaccoppiatori si collega alla porta parallela del PC . In questa situazione la tastiera non è necessaria.
- In posizione "Off" la macchina sarà gestita dalla tastiera locale. Al connettore SV7 sarà collegato un display LCD 2x40 (SV17A), su cui si vedono le coordinate della macchina e si può navigare tra i menù.
Il circuito è alimentato attraverso un trasformatore 18V-3A che vi è montato sotto il circuito stampato. |
Schema CPU |
|
|
|
|
L' interfaccia è gestita da un microcontrollore PIC16F877. Esso genera tutti i segnali necessari ai motori X, Y (in formato 4 Fasi ) e al motore Z (in formato Passo / Direzione). |
Interfaccia motori |
|
Per l'interfaccia dei tre motori usiamo soluzioni costruttive diverse per verificare qual è la più appropriata (un buon rapporto prezzo / qualità) in questo caso.
Tutte e tre le interfacce utilizzano il metodo PWM. Questa soluzione consiste nell'alimentazione delle induttanze del motore a una tensione più alta del catalogo,
ma limitando la corrente quando si raggiunge il valore desiderato. Va notato che non deve essere superata, in ogni caso, la corrente massima (nel nostro caso del motore utilizzato 0.6A).
Per ulteriori informazioni, si prega di leggere AN907 da Microchip ("Stepping Motors Fundamentals"). |
Driver motore asse X |
|
|
|
|
Il driver del motore X è costruito con circuito integrato SLA7026M. Questo è un controller / driver per motori unipolari da 3A PWM.
Questo circuito richiede pochissimi componenti esterni e può
essere acquistato ad un prezzo accettabile (10 €) che lo rende la soluzione più adeguata delle tre testate.
Allo stesso produttore (Allegro Microsystems) si trova il modello SLA7062M che è comandato con segnali Passo /Direzione
e consente il funzionamento in microstepping (1/2, 1/4, 1/8, 1/16).
|
Driver motore asse Y |
|
|
|
|
Il driver del motoreY è costruito con circuito integrato L6506 e quattro transistori 14N05L. L6506 controlla la corrente necessaria al motore passo passo.
Questo comanda 4 transistori MOSFET canale N tipo 14N05L che possono essere pilotati direttamente con il livello logico (5V). |
Driver motore asse Z |
|
Il driver del motore dell'asse Z è fatto su un'altra scheda e utilizza la coppia conosciuta di circuiti integrati L 297 / L298.
A differenza dei motori degli assi x, y questo driver è comandato direttamente con segnali STEP / DIRECTION |
|
|
|
CIRCUITO STAMPATO |
|
Il circuito stampato è monofaccia ed è costruito con l'aiuto di una pellicola speciale chiamata Press and Peel (PnP). |
|
|
|
|
Il regolatore, i finali di potenza e il ponte raddrizzatore sono montati su un dissipatore in alluminio. |
A causa della mancanza di spazio il microprocessore PIC16F877 è di tipo SMD. |
|
|
SOFTWARE |
|
Il programma del microcontrolore PIC16F877 è scritto in Assembler con MPLAB8. Per la programmazione e il debug ho utilizzato il PICKIT2 da Microchip. |
Esso è diviso in due parti: "PC control" e di "Local control" e saranno descritti di seguito separatamente.
All' inizio del programma dopo l'inizializzazione delle periferiche viene letta la posizione del Jumper DIP2 (viene letta solo una volta dopo il reset) collegato alla porta RC1.
La posizione determina quale parte del software sarà utilizzato (PC / locale).
Il programma è composto dai seguenti file: |
main.asm |
file principale |
bank.inc |
macro per cambiare i banchi di memoria |
wait_i.inc |
macro per la generazione dei ritardi (delay) |
phase.inc |
macro per la generazione dei segnali necessari ai motori passo-passo , ecc |
util_macro.inc |
macro per operazioni matematiche e di conversioni |
key.inc |
routine per la lettura della tastiera |
lcd_i.inc |
macro per la gestione del display LCD |
print_routine.inc |
routine per mandare i dati al display LCD |
Il file main.hex (ver.0.140908) può essere scaricato da qui. |
|
|
Controllo PC |
Nell'immagine
accanto può essere visto l'algoritmo semplificato di questa parte del programma.
Questa parte contiene i file "main.asm, bank.inc, wait_i.inc e phase.inc".
Il file "main.asm", che contiene solo il programma per il controllo del PC può essere scaricato qui. |
|
Controllo locale |
|
Siccome questa parte del programma è più complessa mi limiterò a descrivere il menù. |
MENU |
Description |
Local Key |
|
|
Free key move |
Local Draw |
|
|
Free key move |
|
Go To |
|
Move table to "Actual Position" + X,Y (@+x,y) |
|
|
Set X |
Insert X coordinate |
|
|
Set Y |
Insert Y coordinate |
|
Point |
|
Do one bore at X,Y |
|
|
Set X |
|
|
|
Set Y |
|
|
Line |
|
Cut a line between A(x,y) and C(x,y) |
|
|
A-Set-X |
|
|
|
A-Set-Y |
|
|
|
C-Set-X |
|
|
|
C-Set-Y |
|
|
Rectan |
|
Cut a rectangle with the opposite angle A(x,y) and C(x,y) |
|
|
A-Set-X |
Insert X coordinate of the angle A |
|
|
A-Set-Y |
Insert Y coordinate of the angle A |
|
|
C-Set-X |
Insert X coordinate of the angle C |
|
|
C-Set-Y |
Insert Y coordinate of the angle C |
|
Circle |
futures |
Not implemented |
Local Setup |
|
|
|
|
Origin |
|
Set drawing origins |
|
|
Set X |
Insert X coordinate |
|
|
Set Y |
Insert Y coordinate |
|
Depth |
Set Z |
Set cut depth |
|
Surfac |
Set Z |
Set surface (Z=0) |
|
Speed |
Set-XYW |
Set work speed (between 1 and 250) |
|
|
Set-XYT |
Set travel speed (between 1 and 250) |
|
|
Set-ZDW |
Set down speed of Z-axis (between 1 and 250) |
|
|
Set-ZUP |
Set up speed of Z- axis (between 1 and 250) |
|
M Step |
Set-X |
Set size of step (step number for 1mm) for X axis |
|
|
Set-Y |
Set size of step (step number for 1mm) for Y axis |
|
|
Set-Z |
Set size of step (step number for 1mm) for Z axis |
|
Le coordinate saranno introdotte in formato 999,99 millimetri e con il tasto " CRL" si possono cancellare i caratteri inseriti.
Il tasto "OK" conferma il valore inserito e se questo è l' ultimo parametro per un comando inizierà l'esecuzione del lavoro.
Il programma in questa versione (ver.0.140908) non ha il controllo dei valori limite che si possono utilizzare,
questa cosa deve essere fatta dall'operatore.
Anche in questa versione non vengono utilizzati i tasti "+" e " - "di conseguenza, tutte le coordinate inserite saranno positive.
Per questo il disegno, che verrà eseguito avrà il punto di origine (0,0) nell 'angolo in basso a sinistra. |
|
Tastiera |
I tasti 2,4,6,8 consentono lo spostamento della tavola nelle direzioni X, Y, se ci troviamo nel menù "Local Key ", o nel menù "Local Draw " senza aver selezionato un sottomenù.
Nelle stesse condizioni è possibile spostare l'asse Z utilizzando i tasti + -.
Il tasto "Mode" è usato per cambiare il menù principale (Key> Draw > Setup).
Per l'attivazione di un Menù, si utilizza il tasto "Select" e per tornare al livello precedente si usa il tasto "ESC".
Per impostare un valore si utilizza la tastiera numerica. Per l'annullamento di un carattere inserito si utilizza il tasto "CLR". |
|
|
|
|
|
|