Documente Academic
Documente Profesional
Documente Cultură
CORSO SERALE
AREA DI PROGETTO ANNO SCOLASTICO 2006/2007
INDICE
INTRODUZIONE
pag. 3
pag. 4
pag. 4/9
pag. 10/11
pag. 11/12
pag. 13/14
pag. 15/16
pag. 16/17
pag. 17/26
pag. 26/29
pag. 29/30
pag. 31/34
Introduzione
A conclusione del corso di studi presso lITIS M. PLANCK di Lancenigo (TV), ho
pensato di realizzare un progetto che consentisse di unire le conoscenze acquisite
sui microprocessori al controllo delle macchine utensili utilizzate per la lavorazione
di diversi materiali ( materiali teneri e in particolare legno ) e la realizzazione di
circuiti stampati ( asportazione rame mediante fresa e foratura ).
Utilizzando il microcontrollore PIC16F877A, opportunamente interfacciato con tre
motori e altre periferiche di controllo e comando, ho progettato una macchina
(pantografo) a livello hobbistico che, mediante il controllo di tre assi X-Y-Z,
realizza un sistema di controllo ampiamente utilizzato in campo industriale e che
comunemente chiamato CNC.
CNC labbreviazione di Computer Numeric Control, ossia una macchina per
lavorazioni meccaniche, vedi tornio, fresa ecc., che viene comandata da un
computer per eseguire delle lavorazioni ad un pezzo.
Con un programma CAD (vedi Autocad), viene disegnato il particolare da
realizzare, poi con un programma CAM (vedi KCAM) viene generato il
programma usato dal controllo CNC.
Una macchina a CNC di tipo hobbistico, come questa realizzata,
generalmente costituita dalle seguenti parti:
Computer
programmi CAD, CAM ed interpreti vari.
Programma di controllo CNC
file in formato Gcode del pezzo o lavorazione da eseguire
controllo elettronico del CNC (Stepper drivers)
gruppo alimentazione del controllo elettronico.
motori passo passo (step motor)
fresa che esegue le lavorazioni
fig. 2
Principio di funzionamento di un
motore passo-passo
Si prende in considerazione un motore passopasso
bipolare
costituito
da
quattro
avvolgimenti Ph1, Ph2, Ph3, Ph4 disposti
sullo statore a 90 luno dallaltro avvolti su
quattro espansioni polari.
Sul
rotore
presente
un
magnete
permanente.
Transistor BDX53C
Categoria
hFE
Lc max (A)
Modello
Pd max.
Vceo max.
transistor bipolari
750 min
8,0
NPN Darlington
60,00W
100,0 V
IB sia maggiore di IC/hFE di un 20 30%. Nel nostro caso i motori assorbono circa 1
ampere, per cui risulta RB = 470 ohm.
Lo svantaggio maggiore di pilotare le fasi con questa tecnica, consiste nel fatto
che la corrente di eccitazione di fase non sale istantaneamente al valore massimo
quando il transistore si porta in conduzione, ma bens con legge esponenziale che
dipende dalla costante di tempo del circuito di eccitazione.
Per questo motivo la velocit di rotazione deve essere limitata in quanto la coppia
motrice cala allaumentare della velocit.
Ci sono varie tecniche che consentono di fronteggiare questo problema.
La pi vantaggiosa consiste nellalimentare le fasi con una tensione maggiore di
quella nominale in modo da ridurre il tempo in cui la corrente arriva a regime. Una
volta raggiunto tale valore, si diseccita la bobina; la corrente continua a circolare
nella fase grazie ai diodi di ricircolo in parallelo alla bobina.
Quando la corrente scende al di sotto di un certo valore, si torna ad eccitare la
bobina. Tale tecnica, denominata PWM, consente di raggiungere ottimi risultati
con costi, per, sicuramente maggiori.
Esistono svariati circuiti integrati che consentono il controllo del motore nel modo
indicato: i pi famosi sono la coppia LM297-298.
Tuttavia la soluzione adottata consente un risparmio economico di circa
venticinque euro anche se le prestazioni sono inferiori.
10
c
o
l
l
e
g
a
m
e
n
t
o
m
o
t
o
r
i
Alimentazione
Pin collegamento tastierino
Pin collegamento
programmatore on board.
Il pic 16F877
11
12
Fig. 5
13
14
15
16
Schermata principale:
17
Board.
Schematic:
PORTD
PORTC
PORTC
18
#define
#define
#define
RELE
INPUTPORT
RELEPORT
PORTD,0
PORTA
PORTE,0
#define
#define
#define
#define
XF1
XF2
XF3
XF4
4
5
6
7
#define
#define
#define
#define
YF1
YF2
YF3
YF4
7
4
5
6
#define
#define
#define
#define
ZF1
ZF2
ZF3
ZF4
2
3
0
1
#define
#define
#define
XBIT
YBIT
ZBIT
0
1
2
#define
#define
#define
XDIR
YDIR
ZDIR
3
4
5
#define
cblock
STEPMASK
0X20
0X03
; dallindirizzo 0X20 si definiscono le varie label.
;ASSEGNAZIONE DI UN NOME
;SIMBOLICO ALLE FASI DEI MOTORI
;
;QUESTA TECNICA PERMETTE DI
;SPECIFICARE QUALE FASE ECCITARE
;SENZA DOVER OGNI VOLTA
;RICORDARE LUSCITA (PORTx,x)
MS
SAVE_W
SAVE_S
CONTX
CONTY
CONTZ
CONTX1
CONTY1
CONTZ1
PORTAI
CONT
COUNTER1
COUNTER2
NEWSAMPLE
OLDSAMPLE
XSTEPCOUNTER
YSTEPCOUNTER
ZSTEPCOUNTER
DUMMYPORT
endc
19
B'00000001'
OPTION_REG
MOVLW
B'01011100'
MOVWF
TRISB
CLRF
TRISE
CLRF
TRISC
CLRF
TRISD
MOVLW
B'00000111'
MOVWF
ADCON1
CLRF
TRISA
MOVLW
0XFF
MOVWF
TRISA
MOVLW
B'00000011'
MOVWF
TRISE
BCF
STATUS,5
;*******************
CLRF
NEWSAMPLE
CLRF
OLDSAMPLE
CLRF
XSTEPCOUNTER
CLRF
YSTEPCOUNTER
CLRF
ZSTEPCOUNTER
;*******************
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
PORTB
PORTC
PORTD
CONTX
CONTY
CONTZ
CONTX1
CONTY1
CONTZ1
CONT
MOVLW
MOVWF
B'10100000'
INTCON
;PORTC OUT
;PORTD OUT
;CONFIGURA ADCON1 PER INGRESSI DIGITALI
;DEL PORTA
;CONFIGURA PORTA COME INGRESSI DIGIT.
;PORTE,0 e 1 COME INGRESSI
;BANCO 0
;INIZIALIZZAZIONE DELLE VARIABILI
;MOTORI X, Y OFF
;RELE' OFF MOTORE Z OFF DIODI ON
;ABILITA INTERRUPT
Routine di Test:
in questa
parte di
programma
si rimane in
attesa della
pressione di
un pulsante
del
tastierino
per poter
passare alla
20
modalit manuale, cio il movimento degli assi tramite tastiera, oppure alla
modalit automatica, assegnando Il controllo alla porta parallela:
La scansione del tastierino collegato al PORTB, viene eseguita in maniera
semplice. Il sistema di test pone inizialmente sempre a zero il bit meno
significativo che controlla luscita di un diodo led (PORTB,0), mentre i bit
rimanenti controllano la tastiera. Poniamo a valore alto tutti i bit tranne quello
corrispondente alla colonna da testare. Successivamente si esegue un test per
controllare se una riga viene portata bassa.In questo caso viene chiamata la
routine POSIZIONA1. Si continua finch non viene premuto uno dei due tasti
scelti per il passaggio alla lavorazione automatica.
;*******************************
TESTA
BCF
PORTD,1
BCF
PORTD,2
;ACCENDE DIODI E SPEGNE RELE
BCF
PORTD,3
BCF
PORTB,0
BCF
PORTE,2
PORTB,5
TESTA1
MOVLW
MOVWF
BTFSS
CALL
MOVLW
MOVWF
BTFSS
CALL
GOTO
Routine posiziona:
con la pressione di un tasto si chiamano le routine per leccitazione delle fasi
dei motori.
Questa parte di programma non si differenzia da quella spigata in precedenza;
il test viene eseguito incrociando il controllo tra colonne e righe del tastierino.
21
;********************ROUTINE POSIZIONA********************
POSIZIONA1
BSF
PORTE,2
;attiva segnalatore
POSIZIONA
XYZ
ON
OFF
VAI
CALL
BSF
BSF
BSF
BTFSC
GOTO
BTFSS
GOTO
BTFSC
GOTO
GOTO
BCF
BCF
GOTO
BSF
BSF
MS20
PORTD,1
PORTD,2
PORTD,3
PORTE,1
VAI
PORTE,1
XYZ
PORTE,2
ON
OFF
PORTE,2
PORTD,0
VAI
PORTE,2
PORTD,0
;SPEGNE DIODI
MOVLW
MOVWF
B'01111110'
PORTB
;SCANSIONE COLONNA 2
BTFSS
CALL
BTFSS
CALL
BTFSS
CALL
BTFSS
CALL
PORTB,3
SX_Z
PORTB,6
DX_Z
PORTB,2
DX_Y
PORTB,4
SX_Y
;PREMUTO 5?
;CHIAMATA MOVIMENTO
;PREMUTO 0?
;CHIAMATA MOVIMENTO
;PREMUTO 2?
;CHIAMATA MOVIMENTO
;PREMUTO 8?
;CHIAMATA MOVIMENTO
MOVLW
MOVWF
B'11011110'
PORTB
;SCANSIONE COLONNA 3
;
BTFSS
CALL
BTFSS
CALL
BTFSS
CALL
PORTB,2
XY
PORTB,3
DX_X
PORTB,4
YX1
;PREMUTO 3?
; CHIAMATA MOVIMENTO IN X-Y
;PREMUTO 6?
;CHIAMATA MOVIMENTO IN X
;PREMUTO 9?
; CHIAMATA MOVIMENTO IN X-Y
MOVLW
MOVWF
BTFSS
B'11111100'
PORTB
PORTB,2
;SCANSIONE COLONNA 1
;
;PREMUTO 1?
22
IN Z
IN Z
IN Y
IN Y
CALL
BTFSS
CALL
BTFSS
CALL
YX
PORTB,3
SX_X
PORTB,4
XY1
MOVLW
MOVWF
BTFSC
GOTO
RETURN
B'11111101'
PORTB
PORTB,6
POSIZIONA
La coppia disponibile, con eccitazione a due fasi per volta, circa 1,4
volte maggiore di quella ottenuta con una sola fase attiva alla volta:
infatti sul rotore agiscono due forze tra loro perpendicolari che producono
una risultante con modulo 1.4 volte maggiore rispetto alle componenti
assiali.
Il consumo di potenza e quindi anche il riscaldamento del motore
raddoppiano. Questo fatto potrebbe creare problemi in alcuni motori non
adatti a questo tipo di pilotaggio.
23
SZ1
MOVLW
SUBWF
BTFSS
GOTO
BCF
BSF
BSF
1
CONTZ,0
STATUS,2
SZ2
PORTC,1
PORTC,0
PORTC,3
;UN PASSO
RETURN
SZ2
SZ3
MOVLW
SUBWF
BTFSS
GOTO
BCF
BSF
BSF
RETURN
2
CONTZ,0
STATUS,2
SZ3
PORTC,0
PORTC,2
PORTC,3
BCF
BSF
BSF
RETURN
PORTC,3
PORTC,1
PORTC,2
;UN PASSO
;UN PASSO
Di seguito analizzata una parte della routine che interpreta tali segnali e
controlla la posizione dei tre motori e del rel che aziona il motore porta utensile.
;********** ROUTINE LAVORAZIONE PEZZO *******************
scanningLoop
BTFSC RELEPORT
;CONTROLLA SE ATTIVARE RELE
BCF RELE
BTFSS RELEPORT
BSF RELE
BTFSC RELEPORT
BCF PORTE,2
BTFSS RELEPORT
BSF PORTE,2
RELEPORT
PORTE,0
Lo stato del bit zero del porto E, viene praticamente copiato nel bit zero del porto
D che controlla lo stato dellutensile.
La variabile rel stata cos dichiarata:
#define
RELE
PORTD,0
MOVF NEWSAMPLE,W
MOVWF OLDSAMPLE
GOTO
scanningLoop
UPDATEX
BTFSS OLDSAMPLE,XDIR
INCF XSTEPCOUNTER,F
;MOVIMENTAZIONE MOTORE X
;CONTROLLA DIREZIONE ASSE X
;SE 0 INCREMENTA PUNTATORE TABELLA
26
BTFSC OLDSAMPLE,XDIR
DECF XSTEPCOUNTER,F
MOVF XSTEPCOUNTER,W
ANDLW STEPMASK
CALL XSTEPTABLE
OUTTOXSTEPPORT
MOVWF DUMMYPORT
;SALVALO
MOVLW~( 1<<XF1 | 1<<XF2 | 1<<XF3 | 1<<XF4 );INVIA SUL PORTO CHE CONTROLLA
;MOTORE
ANDWF XPORT,W
;LASCIANDO INALTERATI I BIT NON INTERESSATI
IORWF DUMMYPORT,W
;CIOE 00001111 & PORTD = 0000XXXX
MOVWF XPORT
;OOOOXXXX | XF4XF3XF2XF1OOOO = XF4XF3XF2XF1XXXX
RETURN
27
Utensile
28
Particolare angolo
posizionamento punto o ,
e sistema di fissaggio pezzo
29
Conclusioni
Per concludere posso dire che questo progetto sviluppato nel corso
dell'ultimo anno scolastico, mi ha dato grandi soddisfazioni in quanto
sono riuscito, con la collaborazione degli insegnanti di TDP (Zaniol Italo)
e sistemi (Falavigna Marco), a realizzare una macchina che riesce ad
unire varie discipline tecniche cio elettronica, informatica, meccanica
nonch tecnologiche ( conoscenza dei materiali ).
Sottolineo che le scienze meccaniche ed elettroniche viaggiano oramai
insieme; avere una meccanica professionale, con spostamenti precisi al
centesimo di mm, non sarebbe possibile senza un controllo elettronico
realizzato con sistemi basati su microprocessore.
La macchina a controllo numerico realizzata, consente di ottenere ottimi
risultati per la realizzazione di basso rilievi in legno o plastica e risulta
soprattutto ideale per l'incisione e foratura di schede in vetronite (
circuiti stampati).
Lavorazione su legno
30
31
Drills
Holes
Dal men file selezionare RUN e alla schermata successiva aprire il file
dxf.ulp e scegliere dove salvare il file generato. C:\documenti\......
Conversione del file dxf in formato G CODE per la lavorazione con software
KCAM
In ALPHACAM men file input CAD, caricare il file salvato prima con
EAGLE
32
Input CAD
Selezionare SCALA
, TUTTO, fattore di
scala 0.1
33
34
35