UNIVERSITÀ DEGLI STUDI DI TRIESTE
Dipartimento Di ingegneria
Ed Architettura
Corso di Laurea in Ingegneria Elettronica
Sviluppo di un sistema di controllo per un plotter
tramite un dispositivo FPGA
Relatore:
prof. Stefano Marsi
Laureando:
Jamal el dine Hassan
La realizzazione di un plotter
consente di avere un sistema
capace di controllare le coordinate
di una penna, una punta o molti
altri oggetti.
Viene usato nelle:
Stampanti
Macchine per la fresatura dell’alluminio
Macchine per la fresatura del legno
Macchine per la realizzazione di PCB
Il nostro progetto Costituito da:
Due motori passo_passo ‘PM42S_096’
Un attuatore che consente di controllare lo stato della
penna
Drivers per avere l’alimentazione giusta dei diversi
motori
Tastiera come interfaccia di comando
Scheda DE1 che monta un FPGA della famiglia cyclone II
Alimentatore
Motore Passo_Passo
È costituito da :
1. Un rotore :
che non contiene connessioni elettriche e
può apparire come un magnete con bipolo
NORD-SUD
2. Uno statore :
appare come un insieme di avvolgimenti
3. Il modo di pilotaggio usato si chiama:
«Pilotaggio a doppia fase»
Motore Passo_Passo
Pilotaggio
Per comprendere questo metodo di pilotaggio
immaginiamo che il nostro motore abbia :
• Uno statore fatto da 4 espansioni.
• Un rotore come un magnete a due poli.
come in figura :
Motori Passo_Passo(Pilotaggio)
• Per attuare il metodo a doppia fase bisogna pilotare
due bobine insieme, ad esempio A e C.
• In tal modo le due bobine generano un campo
magnetico pari alla somma dei due rispettivi campi.
• Si genera così un campo magnetico di modulo quasi
doppio rispetto a quello creato da una singola
bobina.
• La direzione del campo generato sarà intermedia tra
le due bobine A e C e così facendo il rotore tende ad
allinearsi in questa direzione.
Motori Passo_Passo(Pilotaggio)
 applichiamo una sequenza d’impulsi :
Bobina D
Bobina B
Bobina C
Bobina A
Passo
0
0
1
1
1
0
1
1
0
2
1
1
0
0
3
1
0
0
1
4
Attuatore
Il nostro attuatore è stato realizzato per poter alzare e
abbassare il penarello quando serve.
costituito da :
 Un motore micro_servo sg_90
 Un penarello
 Un supporto opportuno
Attuatore(blocchi)
Attuatore(micro_servo)
 Un Servo attuatore tipicamente consiste in una scatoletta
di plastica di ridotte dimensioni da cui fuoriesce un perno in
grado di ruotare in un angolo compreso tra 0 e 180 gradi e
mantenere stabilmente la posizione raggiunta.
 l’elettronica del servo attuatore confronta il valore dato dal
potenziometro collegato al sistema di riduzione del moto
rotatorio col segnale di comando alimentato dal filo di
controllo. Dal loro confronto si decide in che direzione si
deve muovere il motore e, in qualche caso, con quale
velocità.
Attuatore(segnale di pilotaggio)
 Si va a generare un treno di impulsi alla frequenza di 50Hz
che corrisponde a un periodo di 20ms.
 Modificando la durata del impulso si può pilotare la
posizione in cui si deve muovere il perno.
 nel nostro caso per posizionare il perno negli angoli da 0° a
180° le durate degli impulsi variano da 0.51ms a 2.4ms
Attuatore(segnale di pilotaggio)
Tastiera
 La scheda DE1 monta un connettore di una porta PS2
 La tastiera è stata collegata a questa porta
 Il PS2 è un protocollo bidirezionale sincrono che utilizza
due linee:
Linea CLOCK
Linea DATI
Due tipi di comunicazione:
Dal device all’host
Dall’host al device
 Nel nostro progetto abbiamo utilizzato solo la
comunicazione dal device all’host.
Tastiera(Device to Host)
 Clock sempre generato dal device.
 Host(scheda) controlla la comunicazione.
 Frequenza di clock deve essere compresa tra 10 KHz e 16,7
KHz
 La comunicazione è fatta nel seguente modo :
• 1 bit di start, sempre 0
• 8 bits di data, il meno significativo prima(LSB first)
• 1 bit di parità
• 1 bit di stop, sempre 1
Funzionamento del sitema
Vediamo la seguente immagine
Funzionamento del sistema
La zona tracciata in rosso è stata
implementata per scrivere i caratteri
desiderati al suo interno.
Questa zona è stata divisa in 10 blocchi(5
colonne e 2 righe) come mostrato nella
seguente figura
Funzionamento del sistema
ogni blocco può contenere una lettera sola,
quindi in totale possiamo scrivere 10 lettere ,
le dimensione del blocco sono di lunghezza =
8 cm larghezza = 5cm .
Poi il blocco viene diviso in 5 colonne e 8 righe
e la sua forma sarà :
Funzionamento del sistema
Funzionamento del sistema
Dopo aver spiegato il funzionamento della
tastiera, dei motori, del nostro attuatore e come
è stata divisa la tabella dove vengono scritti i
caratteri, si può procedere alla fase successiva:
come fare a leggere un dato dalla tastiera e
tracciarlo sulla tabella ?
Funzionamento
Immaginiamo che venga premuto il tasto «A»
Dopo averlo rilasciato viene letto il codice
della lettera e viene disattivata la lettura della
tastiera
La lettera viene disegnata in questo modo :
Funzionamento
B
E
A
D
C
funzionamento
Percorso
Dal punto
Al punto
penarello
Possiamo
dividere
la lettera
in diversiStatopercorsi
1
A(0,01;0,08)
B(0,025;-0,08)
giù
4
D
E(-0,03;0,00)
giù
5
E
(0,05;0,03)
su
 Nel 2nostro caso della
lettera
A si può scrivere
B
C(0,025;0,08)
giù la
3
D(-0,01;-0,03)
su
seguente
tabella:C
 Il percorso numero 5 è solo lo spostamento al
blocco successsivo.
Funzionamento
Quindi tutte le lettere sono state divise in
diversi percorsi
Poi vengono tirate le coordinate necessarie
per compiere i percorsi
Adesso vediamo come questi percorsi si
trasformano in uno spostamento
Trasformazione
LAo
trasformazione
Dalla figura
 Sia il punto D di coordinate 𝑋𝑜, 𝑌𝑜
 Il punto C di coordinate 𝑋1, 𝑌1
 Sia LAo e LBo la lunghezza del filo sotteso dal
motore fino alla massa, rispettivamente del
motore A e B , corrispondente al punto D
 Sia LA1 e LB1 la lunghezza del filo sotteso dal
motore fino alla massa, rispettivamente del
motore A e B , corrispondente al punto C
 Sia L la distanza tra due motori.
Trasformazione
Vogliamo che la penna si sposti dal punto D al
punto C
𝐿𝐴𝑜 =
2
2
𝑋0 + 𝑌0 ;𝐿𝐵𝑜 =
𝐿 − 𝑋0
2
+ 𝑌0
2
Cosi si trovano nello stesso modo le nuove
lunghezze 𝐿𝐴1 e 𝐿𝐵1 e si trova la differenza di
lunghezza 𝐷𝐿𝐴 , D𝐿𝐵 .
Trasformazione
Dove 𝐷𝐿𝐴 = 𝐿𝐴1 − 𝐿𝐴𝑜 e 𝐷𝐿𝐵 = 𝐿𝐵1 − 𝐿𝐵𝑜
Dopo si procede al calcolo dei numeri degli
step neccessari per ogni motore per effettuare
lo spostamento dal punto D al punto C.
Calcolo numero di step
La data sheet dei motori mostra che essi
eseguono un giro completo con 96 step che
equivale pertanto a (3.75° gradi/step) .
allora si cerca di capire quale spostamento il
motorino riesce a compiere con un solo step.
Calcolo numero di step
 I motori montano un cilindrio di raggio
R=0,0135m .
lo spostamento con uno step sarà di :
3,5° ∗2𝜋∗𝑅
360°
= 8,8357 ∗ 10−4 𝑚
Chiamiamo 𝑆𝑜 = 8,8357 ∗ 10−4
spostamento con uno step.
Calcolo numero di step
Il numero di step da fare sarà :
𝑛𝑠𝑡𝑒𝑝𝑎 =
𝑛𝑠𝑡𝑒𝑝𝑏 =
𝐷𝐿𝐴
𝑆𝑜
𝐷𝐿𝐵
𝑆𝑜
per il motore A
per il motore B
Verso di rotazione
Abbiamo 𝐷𝐿𝐴 = 𝐿𝐴1 − 𝐿𝐴𝑜 e 𝐷𝐿𝐵 = 𝐿𝐵1 −
𝐿𝐵𝑜.
Se 𝐷𝐿𝐴 < 0 , 𝐿𝐴1 < 𝐿𝐴𝑜 vuol dire che il
motore A deve accorciare il filo, in questo
modo il motorino gira in senso anti orario.
Analogamente per il motore B si valuta il
valore di 𝐷𝐿𝐵.
Funzionamento
Cosi attraverso il processore si sono calcolati i
valori da utilizzare per lo spostamento dal
punto D al punto C.
1. Abbiamo trovato i numeri di step neccessari.
2. Sappiamo il verso di rotazione dei motori.
Funzionamento
Così vengono generati gli impulsi necessari per
entrambi i motori per esguire i numeri di step
trovati.
Una volta finito un percorso si passa ad un
altro.
Una volta finiti i percorsi di una lettera si attiva
di nuovo la ricezione dei dati dalla tastiera per
un eventuale nuova lettera.
Conclusione
Dopo l’applicazione del nostro progetto
abbiamo avuto dei risultati accettabili.
L’alimentazione è stata limitata a 17v, con una
massima corrente fornita di 500mA.
con una tensione di almeno di 20v i motori
possono aver un miglior funzionamento.
Suggerimenti
Suggerimenti per un ulteriore sviluppo :
1. Uso di motore bipolare per migliorare la
precisione.
2. Sviluppare un sistema d’alimentazione più
efficiente .
3. Uso degli ingranaggi per una miglior
precisione e un minor consumo.
GRAZIE
Scarica

FPGA _per_plotter - Università degli Studi di Trieste