ESAMI
DI MATURITÀ PROFESSIONALE
NUOVO ORDINAMENTO
Indirizzo :TECNICO DELLE INDUSTRIE ELETTRICHE ED ELETTRONICHE
TEMA 1997:
Sopra un nastro che scorre ad una velocità variabile tra 1 e 10 m/sec sono disegnate linee nere dello spessore di 1 mm e distanziate di 10 cm. Un elemento fotosensibile rileva la presenza delle linee generando un impulso in corrispondenza di ciascuna di esse. A partire da questa rilevazione si desidera realizzare un sistema che consenta la rilevazione della velocità in m/sec con la precisione di due decimali e permetta inoltre :
-la lettura in ogni momento da parte di un operatore umano,
-lattivazione di un segnale acustico ed eventualmente di un avviso scritto se la velocità supera il massimo o scende al di sotto del minimo stabilito,
-la registrazione ogni 5 minuti dei valori della velocità e la creazione di una tabella con i valori rilevati in 24 ore,
-la stampa ogni 24 ore della tabella dei valori associati allora del loro rilevamento e di un diagramma che indichi, per intervalli di velocità di un metro al secondo per quanto tempo nelle 24 ore si è mantenuta in ciascun intervallo.
Il candidato deve proporre per il sistema richiesto una soluzione che utilizzi componenti o apparati programmabili. In particolare, formulate le ipotesi aggiuntive che ritiene necessario, deve :
1) proporre lo schema generale del sistema illustrato la funzione ed il tipo di prestazione richiesta ai singoli blocchi,
2) proporre una realizzazione, con componenti, apparati e linguaggi di sua conoscenza e discutendo in particolare i problemi posti dai diversi valori di velocità a cui può scorrere il nastro :
a) della interfaccia destinata alla acquisizione dei dati e del programma che la governa,
b) di almeno un altro blocco di sua scelta oppure del programma per le elaborazioni e le stampe previste ogni 24 ore.
SOLUZIONE DEL PROBLEMA
Considerato che il sistema deve essere in grado di registrare ogni 5 minuti i valori della velocità misurata, creare una tabella con i valori rilevati in 24 ore con relativa stampa con anche statistiche annesse, si ritiene opportuno utilizzare un sistema assistito da un Personal Computer opportunamente programmato e interfacciato con un microconttrollore istruito per la lettura e valutazione della velocità e capace di colloquiare con la porta parallela del PC.
Schema a blocchi
FOTO RIVELATORE
Considerato che il sistema fotorivelatore deve riconoscere delle strisce nere disegnate sul nastro a sfondo chiaro, si ritiene idoneo luso di una barriera ottica a raggi infrarossi nel cui contenitore è alloggiato il diodo emettitore ed anche il fototransistore rivelatore. Ad esempio il tipo della SIMENS SFH900-2 può assolvere alle richieste del sistema. Funziona sul principio della rivelazione della variazione di luce riflessa fino ad una distanza di 5mm. La corrente massima diretta del diodo è di 50 mA mentre la corrente massima di collettore del fototransistore è di 10 mA. Per poter valutare il segnale ed avere limpulso di adeguata ampiezza ,in corrispondenza della striscia nera, si dovrà far uso di un amplificatore operazionale e trigger di Schmitt per ottenere un impulso privo di incertezze. Il circuito dovrà dare in uscita (verso lST6210) un livello basso quando passa la striscia nera altrimenti livello alto a +5V.
SCHEMA FOTO-RIVELATORE
La prima metà dell'operazionale è configurata come amplificatore differenziale con guadagno A=470k/10k=47 mentre la seconda metà realizza un trigger di Schmitt con soglie pari a circa ±Voh=11V x 15k/(12k+15k)=6 Volt. Il fototransistore in presenza di luce allinfrarosso tende alla saturazione portando il pin 2 invertente ad un potenziale inferiore del pin 3 non invertente cosí da avere il pin 1 duscita a livello alto (quasi +Vcc). In queste condizioni sul pin 7 avremo un livello quasi di - Vcc e il transistor BC237 interdetto cioè uscita alta a + 5V. Quando il fototransisotre in presenza della striscia nera, non riceve luce, il pin 2 invertente tende a + Vcc così da superare il potenziale del pin 3 non invertente. Luscita del primo operazionale andrà a livello quasi di - Vcc diventando meno positivo dellingresso non invertente così da far andare alto il pin 7 duscita. Il BC237 si satura e lOUT va a livello basso. Per regolare il trimmer mettere fra il punto 2 e 3 del fotorivelatore una resistenza da circa 2k2 per simulare il fototransistor chiuso e girare il trimmer per avere sul pin 1 una tensione positiva rispetto a massa di 7/8V.
MICROCONTROLLORE
Si fa uso del microcontrollore per poter valutare il tempo che intercorre fra il passaggio di una striscia e laltra in modo da poter risalire alla velocità. Infatti la velocità sarà data da : V = S/t
Conoscendo la distanza S fra una striscia e laltra conoscendo t troveremo V.
La velocità sappiamo che può variare da 1 m/s a 10 m/s e pertanto :
Tmax = S/V = 0,1(m) / 1 m/s) = 0,1 secondi Tmin = 0,1 (m) / 10 (m/s) = 0,01 secondi
Dallistante del riconoscimento di una striscia intendo continuare ad incrementare in un registro del micro (con riporto in un secondo registro) sino al riconoscimento di unaltra striscia così da uscire dal loop con un valore nei registri (x-y) direttamente proporzionale al tempo intercorso nellinterruzione dei due fasci, cioè il tempo che impiega il mezzo in movimento a percorrere i 10 Cm.
Il tempo viene valutato con la seguente routine :
ldi x,0 ;prepara azzerato il registro x e y ldi y,0 aspetta jrs 0,port_a,aspetta ;rimani ad aspettare se non va a 0 il pin di controllo conta inc x ;aggiungi 1 al registro x jrnc ok ;se non cè riporto vado a ok inc y ;altrimenti incremento y ok jrr 0,port_a,conta ;continua a contare se lingresso resta a 0 conta2 inc x ;aggiungi 1 al registro x jrnc ok2 ;se non cè riporto vado a ok inc y ok2 jrs 0,port_a,conta2 ;continua a contare fino al prossimo fronte di discesaCon un quarzo di 8Mhz il micro esegue un ciclo macchina in un tempo di 1,625 micro secondi.
Per eseguire listruzione inc x ci vogliono 2 cicli, 4 per jrnc e 5 per listruzione jrs pertanto ogni incremento avviene in un tempo pari a 12 x 1,625 = 19,5 micro secondi.
Per il tempo di 0,01 S = 10.000 m S pari alla velocità di 1 m/s conterà :
N(xy) = 10.000 : 19,5 = 512 (y = 2 e x = 0)
mentre per il tempo 0,1 S = 100.000 m S pari alla velocità di 10 m/s conterà :
N(xy) = 100.000 : 19,5 = 5128 (y = 20 e x = 28)
Il valore conteggiato nel registro y (byte MSB) e nel registro x (byte LSB) verranno inviati al PC. Il programma gestito dal PC dovrà ricostruire la velocità vera da visualizzare sul monitor.
RICOSTRUZIONE DELLA VELOCITÁ
Il valore della velocità dovrà essere rappresentato con due decimali pertanto il valore N(xy) = 512, che rappresenta la velocità di 1 m/s, deve essere convertito in un valore di 1,00 m/s mentre il N(xy) = 5128,deve essere convertito in un valore di 10,00.
V(m/s) = INT [(N(xy) / 513 + 0,005) x 100] / 100
Verifichiamo per N(xy) = 512 - dovrà dare 1,00 m/s
V(m/s) = INT [512/513 + 0,005) x 100] / 100 = INT [(0,998 + 0,005) x 100] /100 =
= INT (1,003 x100) /100 = INT(100,3) /100 = 100 /100 = 1,00 m/s (velocità espressa con due decimali)
Verifichiamo per N(xy) = 5128 - dovrà dare 10,00 m/s
V(m/s) = INT [5128/513 + 0,005) x 100] / 100 = INT [(9,996 + 0,005) x 100] /100 =
= INT (10,001 x100) /100 = INT(1000,1) /100 = 1000 /100 = 10,00 m/s (velocità espressa con due decimali)
Se vale per la velocità minima di 1 m/s e per la velocità massima di 10 m/s è ovvio che varrà anche per i valori intermedi.
DIAGRAMMA DI FLUSSO
Allo star del micro si dovrà configurare i pin di I/O (8 pin + 1 di uscita e 2 di ingresso). Il programma testerà lingresso e se permane a livello non va oltre. Se arriva il primo livello basso di un impulso dingresso (riconoscimento striscia nera) inizia la valutazione mediante una routine di conteggio per tutto il tempo che IN=0 ed anche per IN=1. Termina il conteggio quando arriva un nuovo livello basso dellimpuylso che riconosce unaltra striscia nera. A questo punto deve inviare al PC un registro alla volta cominciando da y = byte MSB (Most Significant Byte) e poi con x = byte LSB (Least Significant Byte), invocando la subroutine I/O. In I/O verrà messo alto il pin della linea WRITE per informare il PC che cè il primo dato da leggere. Rimane ad attendere la conferma sulla linea READ un livello alto per poi azzerare la linea write e ritornare indietro. A colloquio terminato il micro deve tornare a controllare lingresso ma prima deve attendere che finisca se non lo fosse già limpulso appena riconosciuto.
LISTATO ASSEMBLER
ldi pdir_b, 11111111b ;port_b configurata come uscita ldi popt_b,11111111b ldi port_b,00000000b ldi pdir_a, 00000100b ;port_a configurata come imput su pa0 e pa1 ldi popt_a,00000100b ;pa2 come out ldi port_a,00000000b main ldi wdog,255 jrs 0,port_a,main ;se l'ingresso é alto torna a main ldi x,0 ;prepara azzerato il registro x e y ldi y,0 conta inc x ;aggiungi 1 al registro x jrnc ok ;se non cè riporto vado a ok inc y ;altrimenti incremento y ok jrr 0,port_a,conta ;continua a contare se lingresso resta a 0 conta2 inc x ;aggiungi 1 al registro x jrnc ok2 ;se non cè riporto vado a ok inc y ok2 jrs 0,port_a,conta2 ;continua a contare fino al prossimo fronte di discesa ld a,y ;mette in a il valore di y ld port_,b,a ;e lo mette sulla port_b per inviarlo al PC call i_o ;dialoga con PC ld a,x ;prende x ld port_b,a ;lo mette verso PC call i_o ;dialoga con PC resta jrr 0,port_a,resta ;se siamo ancora in presenza dello stato basso resta qui jp main ;ritorna a valutare velocità i_o ldi wdog,255 ld a,port_a ;legge port_a set 2,a ;mette a 1 il bit 2 ld port_a,a ; e riscrive port_a con il pa2 settato asp ld wdog,255 jrs 0,port_a,asp ;aspetta risposta di conferma dal PC ld a,port_a ;rimette pa2 a zero res 2,a ld port_a,a ret ;ritorna
(c) by Vittorio Crapella [ Return ]