Indice

 

Prefazione del Consiglio di Classe

Introduzione

Abstract

 

Capitolo 1: Il lavoro nell’insieme

1.1: Schemi a blocchi

1.2: Logica di funzionamento

 

Capitolo 2: L’Hardware

2.1: L’amplificatore per le fotocellule   

     2.2: La scheda pilota dello sterzo

     2.3: La scheda pilota per il motore passo-passo

 

Capitolo 3: Il microprocessore

3.1: Generalità

        3.2: Il PIC 16F84

             

Capitolo 4: Il motore passo-passo

      4.1: Generalità sui motori passo-passo

        4.2: Principio di funzionamento

               

Capitolo 5: Il software

5.1: Diagramma di flusso

        5.2: Il programma

      5.3: Algoritmo completo .

 

Appendici

A1: Amplificatore per motore P.P.

      A2: Amplificatori fotocellule

      A3: La scheda con PIC 16F84

      A4: Il programma in C

A5: Circuito stampato delle schede per i

motori P.P. e piano di montaggio .

      A6: Circuito stampato degli amplifoto e piano

di montaggio .

 

 

 

 


Prefazione del Consiglio di Classe

 

Sempre più negli ultimi anni si è reso necessario avvicinare la scuola al mondo del lavoro.

Per ottenere questo risultato sono percorribili varie strade: una è la partecipazione dei futuri periti a stage aziendali (che per evidenti motivi devono avere una durata limitata nel tempo con la conseguenza di un ridotto coinvolgimento degli studenti nelle problematiche dell’azienda).

Una seconda strada potrebbe essere quella di far partecipare attivamente gli alunni allo sviluppo di un progetto come se fossero realmente a lavorare in un’azienda.

Per quanto riguarda la prima metodologia, gli studenti hanno partecipato ad uno stage di cinque settimane presso una importante azienda elettronica della zona, nota a livello mondiale per l’alta tecnologia che produce.

La seconda metodologia ha dato come risultato questa  dispensa: il Consiglio di Classe ha individuato un progetto di una certa complessità da sviluppare nell’intero arco di due anni scolastici nell’ambito delle ore di TDP e dell’area di progetto.

Per lo sviluppo del lavoro gli studenti hanno dovuto seguire il tipico iter aziendale:

·        Analisi delle specifiche

·        Progettazione

·        Realizzazione

·        Documentazione

L’impostazione a blocchi dello sviluppo del progetto, ormai pratica comune in qualsiasi attività produttiva, ha permesso di dividere il lavoro tra i vari studenti: ogni singolo “pezzo” dell’intero sistema è stato affidato di volta in volta a uno o più studenti, responsabili “in toto” della loro parte: alcuni si sono occupati del software (fortemente presente come componente immateriale in tutto questo lavoro), alcuni dell’hardware, altri della documentazione, badando comunque che alla fine tutti avessero fatto un po’ di tutto.

Questa suddivisione ha permesso ulteriormente di assecondare gli interessi personali degli studenti con il risultato accessorio di una maggior produttività.

Il ruolo dell’insegnante è stato di coordinatore dell’attività; l’intervento diretto è stato volutamente ridotto al minimo, e comunque solo per quelle poche parti che oggettivamente erano fuori della portata degli studenti. Questa scelta ha portato ad ottenere un prodotto che, anche se per alcuni aspetti può essere incompleto o evidentemente perfettibile, nell’insieme è più che apprezzabile.

 


INTRODUZIONE

 

 

Il progetto illustrato in questa breve dispensa è stato sviluppato durante questo e il precedente anno scolastico.

E’ il progetto di un automobilina che grazie ai suoi sensori ottici riesce a seguire un tracciato fatto da una striscia di materiale riflettente tracciata sul pavimento.

L’apparecchiatura elettronica di bordo gli permette di funzionare senza l’aiuto di dispositivi esterni.

 


 

 


 


 

 

 

 

 

Questo lavoro ci ha permesso di applicare nella pratica molti concetti teorici studiati nelle varie materie e di sperimentare dal vivo le varie fasi dello sviluppo di un progetto di una certa complessità.

Il lavoro è suddiviso secondo i seguenti passi:

·        Stesura delle specifiche

·        Stesura di un progetto di massima

·        Sviluppo di un prototipo hardware e software

·        Stesura della documentazione contestualmente all’avanzamento del lavoro

·        Sistemazione definita del prototipo e assemblaggio finale

 

Il lavoro è costituito da componenti hardware e componenti software.

Lo sviluppo hardware comprende sia le schede elettroniche che la parte meccanica relativa al prototipo della macchinina.

Il software comprende il programma relativo alla elaborazione dei comandi che la macchinina deve eseguire per seguire il nostro tracciato.

 

 

 

 

Abstract

 

 

The plane explained in this duplicated lecture notes it was been developped during this and last school year .

it is a project of a car wich by some optical sensor can follow the tracing composed by a reflecting strips in a random order.

The hardware inside the car permit to function without the help of extrenal device.

 


 

 

 


 

 

 

 


This work we have permited to apply in the pratice more of the teorical concet studied in the varius subjects and experiment live the varius stage of developped of a difficult project.

The work is divided in this paiment:

·     Specific drowingup.

·     Generic drowingup.

·     Develop of hardwere and softhwere prototype.

·     Drowingup of the documents contextual at develop of the work .

·     final argoments of a prototype and final assembling.

The work is composed by hardwers’ components and softhwers’ components.

The hardweres’ develop include the electronical board and meccanical parts of a cars’ prototype .

The softhwere include the microprocessor that elaborates the comand that the car must executes to follow our tracing.

 

  


 

 

 

 

 

 

 

 

 

CAPITOLO 1: Il lavoro nell’insieme

 

1.1: Schemi a blocchi

1.2: Logica di funzionamento


1.1:Schema a blocchi


 

 

 

 


Lo schema di figura evidenzia tutti i principali elementi del sistema:

·        Le fotocellule (e il relativo amplificatore) preposte a rilevare l’eventuale presenza della striscia riflettente.

·        Il microprocessore (uP) che elabora i segnali in arrivo dalle fotocellule e che, in base agli ingressi, pilota i motori

·        Le schede di potenza per il pilotaggio dei motori

·        I motori


1.2: Logica di funzionamento

 

 

Come abbiamo precedentemente illustrato,  la macchinina è in grado di seguire un percorso predefinito, indicato da una striscia che riflette la luce emessa da una lampadina posta nella parte anteriore del prototipo.

La figura seguente mostra le fotocellule, la lampada e la striscia riflettente: la luce della lampada viene riflessa dalla striscia e quindi rilevata dalle fotocellule.

 

 


 

 

 

 


Quando i fasci luminosi emessi dalla lampadina e riflessi dalla striscia riflettente non illuminano nessuno dei fotorilevatori (rettilineo) la macchinina si muove in avanti senza sterzare.

 

 


 

 

 


Quando il percorso subisce una svolta, il fotorilevatore corrispondente si trova ad essere sopra la striscia riflettente, quindi capta i fasci luminosi da essa riflessi e manda il segnale opportunamente amplificato al uP che fa sterzare la macchinina nella giusta direzione.

 

 


 

 

 

 

 

 

 

CAPITOLO 2: L’HARDWARE

 

2.1: L’amplificatore delle fotocellule

2.2: La scheda pilota per il motore passo-passo

2.3: La scheda pilota per il motore dello sterzo


1.3: L’amplificatore delle fotocellule

 

Schema a blocchi:


 

 

 


Principio di funzionamento:

 

Il sensore collegato agli ingressi genera un segnale elettrico. L’amplificatore provvede ad amplificarlo e a mandarlo al comparatore che genera un uscita bassa o alta a seconda se il sensore sia attivo o no.

La figura seguente mostra lo schema dell’amplificatore non invertente per il segnale proveniente dalla fotocellula.

L’elemento attivo è costituito da un unico integrato LM324, contenente al suo interno 4 amplificatori operazionali.

 


 

 


Il comparatore utilizzato è nella configurazione a trigger di Schmitt: se il segnale al suo ingresso supera il livello di soglia (fissato dal potenziometro), pone l’uscita a 0, altrimenti a 1.

Nel terminale di uscita è posto un diodo led per la verifica del corretto funzionamento della basetta e delle fotocellule.

 

 


 

 

 


1.4: La scheda di potenza per il motore

 direzionale

 

Non essendo il uP in grado di erogare tutta la corrente necessaria ai motori, si è reso necessario mettere a punto l’opportuno amplificatore di interfaccia.

Abbiamo deciso di non usare un amplificatore vero e proprio, ma un circuito con relais.

La scelta di utilizzare relais è stata dettata dalle seguenti considerazioni:

 

·        Per invertire la direzione di rotazione del motore è necessario invertire l’alimentazione.

E’ possibile senz’altro ottenere questo risultato utilizzando elementi attivi, tipo BJT o simili, ma in questo caso le difficoltà progettuali avrebbero rallentato lo sviluppo del lavoro.

 

·        La frequenza con la quale vengono impartiti i comandi al modellino non è sicuramente elevata.  In linea di massima possiamo considerare che non saranno impartiti più di 1 o 2 comandi al secondo.

E’ quindi possibile utilizzare anche elementi meccanici.

Questa soluzione ha anche il vantaggio di ridurre le cadute di tensione causate dagli elementi attivi essendo quella dei relais sono decisamente trascurabili rispetto a quanto si può ottenere con dei BJT.

Questa caratteristica è particolarmente interessante dovendo alimentare il modellino con delle batterie.

 

Ne è risultato un circuito semplice e funzionale, con probabilità di guasto decisamente bassa.

 

Per rendere compatibile l’uscita del uP con i circuiti di potenza, abbiamo utilizzato il seguente schema di collegamento:

 


 

 


E’ evidente che sia il canale Dx che Sx devono attivare la scheda, quindi saranno entrambi collegati al piedino On/Off.

Per il canale Sx la polarità della tensione sul motore deve essere invertita, quindi verrà collegato allo Swap.

 

 

 

2.3: La scheda per il motore passo-passo

 

La struttura a blocchi della scheda di potenza per il motore passo-passo è la seguente:

 

 


 


Si nota che sono quattro canali uguali, ognuno composto da due interruttori.

Per la logica di funzionamento dell’insieme, si riveda al capitolo 4.

Sono disponibili in commercio opportuni circuiti integrati che comprendono tutta la circuiteria necessaria ma, essendo nel presente lavoro esaltato l’aspetto didattico, abbiamo deciso di progettare e costruire un circuito a componenti discreti.

Come visto per lo schema a blocchi, anche il circuito elettrico è composto da 4 stadi identici tra loro.

 


 

 


TR3 e TR4 sono transitors di potenza; TR1 e TR2 sono utilizzati come piloti per i finali.

Il segnale di ingresso viene amplificato da TR1 e TR2 giunge alle basi dei finali che, essendo complementari (uno PNP e l’altro NPN) rispondono in maniera “complementare”: uno si porta nello stato ON e l’altro nello stato OFF simulando quindi i due interruttori dello schema a blocchi.

Dovendo pilotare un circuito prevalentemente induttivo (gli avvolgimenti dei motori), è opportuno inserire degli accorgimenti per le extra-correnti di apertura: è questa la funzione dei due diodi in parallelo all’uscita.


Figura 3d cs

 

 

 


 

 

 

 

 

 

 

CAPITOLO 3: IL MICROPROCESSORE

3.1: Generalità

3.2: Il PIC16F84

 

 

 

 


 

3.1: Generalità

 

 

Un microprocessore [µP] è un circuito elettrico che elabora dati e informazioni, viene utilizzato nella didattica, per elaborare testi, per controllare processi industriali e altre applicazioni. In particolare nel nostro progetto esso dovrà svolgere le seguenti funzioni:

 

·        Ricevere il segnale dai fotorilevatori

·        Elaborare il segnale

·        Comandare le schede di potenza che a loro volta comandano i motori

 

 

 

Casella di testo: RILEVATORI OTTICI Casella di testo: µP Casella di testo: ORGANI DI MOVIMENTO

 

 

 

 

 


Un microprocessore è un unità di elaborazione dati.

L’applicazione più diffusa è sicuramente nei Personal Computer (PC); si caratterizza per le dimensioni decisamente contenute.

Può svolgere anche da solo un’ampia gamma di funzioni, poiché può riunire molte centinaia di migliaia di componenti in un singolo Chip.

Un microprocessore integrato contiene tipicamente una memoria per l’immagazzinamento del programma; può anche disporre di un estensione di memoria ad accesso casuale (RAM) per contenere dati temporanei. La memoria per il programma  può essere a sola lettura (ROM), cioè una memoria il cui contenuto può essere letto più volte, ma non modificato o, in molti casi, una EPROM o EEPROM: queste ultime sono riscrivibili, quindi permettono di modificare più volte il contenuto, e quindi il programma stesso; è questo il caso anche del nostro µP.

 

Sono presenti anche alcuni registri per contenere le istruzioni, per contenere l’indirizzo delle istruzioni da eseguire, per i dati e un unità aritmetica-logica (ALU).

È possibile anche che l’integrato dispone al suo interno di unità di I/O per collegarsi a dispositivi esterni.

 

 

3.2: Il PIC16F84

 

I microprocessori della Microchip sono ragruppabili in tre insiemi principali: modelli base, middle-range e high-range.

 

Noi useremo il PIC16F84, appartenente all’insieme dei middle-range.

 

·        Le sue principali caratteristiche sono:

·        Architettura RISC (Reduced Istruction Set Computer) con 35 istruzioni

·        Frequenza di clock massimo: 20 MHz

·        1K EEPROM interna per il programma

·        32 byte di RAM

·        13 I\O pin con controllo individuale di direzioni

·        Watchdog timer

 

 

 


La figura seguente mostra lo schema a blocchi interno.

 


Nella prossima figura la mappa della memoria di programma e dello stack; si nota che ha dimensione fissa, limitando quindi il numero delle chiamate innestate;

Questa scelta è però coerente con la logica del sistema, tendente ad anche un sistema semplice e nel contempo molto flessibile. 

 


La mappa della memoria RAM (figura seguente) evidenzia anche i registri interni.


 

 

 

 

 

 

 

 

CAPITOLO 4: I MOTORI PASSO-PASSO

 

4.1            GENERALITA’

4.2          Principio di funzionamento

 


4.1: Generalità sui motori passo-passo

           

 

 

I motori passo-passo, spesso chiamati anche step motor o stepper, sono caratterizzati nel panorama dei motori elettrici da una serie di particolarità che ne fanno la scelta (quasi) ideale per tutte quelle applicazioni che richiedono precisione nello spostamento angolare e nella velocità di rotazione, quali la robotica ed i servomeccanismi in genere.

 

 

 

I vantaggi dei motori passo-passo: è possibile realizzare azionamenti di precisione controllati da computer in catena aperta, cioè senza utilizzare sensori di posizione o di velocità. Sono quindi utilizzabili con relativa semplicità e senza richiedere particolare potenza di calcolo.

Hanno un'elevata robustezza meccanica ed elettrica: infatti non esistono contatti elettrici striscianti e, se necessario, possono essere realizzati anche in esecuzione completamente stagna.

E' facile far compiere all'albero piccole rotazioni angolari arbitrarie in ambedue i versi e bloccarlo in una determinata  posizione.

La velocità di rotazione può essere molto bassa anche senza l'uso di riduttori meccanici.

 

I difetti dei motori passo-passo: Richiedono sempre circuiti elettronici per il pilotaggio, in  genere di tipo digitale.

Hanno un funzionano a scatti e con forti vibrazioni, soprattutto ai bassi regimi, in particolare se si adottano le tecniche di pilotaggio più semplici.

Il loro rendimento energetico è basso e, in genere, la potenza meccanica è piccola.

Hanno un costo elevato, relativamente ad altri tipi di motore con analoghe prestazioni.

Difficilmente raggiungono velocità di rotazione elevate.

Solo ultimamente e solo per le applicazioni high-end sono stati sostituiti da motori brushless o da attuatori voice-coil ma le complicazioni costruttive e la difficile reperibilità rendono a volte queste opzioni poco praticabili per l'hobbista.

 

4.2: Il principio di funzionamento

 

 

I motori passo-passo sono motori che, a differenza di tutti gli altri, hanno come scopo quello di mantenere fermo l'albero in una posizione di equilibrio: se alimentati si limitano infatti a bloccarsi in una ben precisa posizione angolare.

Solo indirettamente è possibile ottenerne la rotazione: occorre inviare al motore una serie di impulsi di corrente, secondo un'opportuna sequenza, in modo tale da far spostare, per scatti successivi, la posizione di equilibrio.

E' così possibile far ruotare l'albero nella posizione e alla

velocità voluta semplicemente contando gli impulsi ed impostando la loro frequenza, visto che le posizioni di equilibrio dell'albero sono determinate meccanicamente con estrema precisione.

 

 

 


 

 

 

 


Nella figura sono schematicamente illustrati i due tipi di motori passo-passo: l’unipolare e il bipolare.

Nel primo la corrente percorre l’avvolgimento di fase sempre nello stesso verso, nel secondo lo percorre in un verso o in quello opposto, a seconda della polarità della tensione ai suoi capi.

Nel nostro prototipo abbiamo utilizzato un motore passo-passo di tipo bipolare.

Il motore passo-passo bipolare dispone solo di due avvolgimenti che, grazie alla corrente che può attraversarli in entrambi i versi, hanno le stesse funzioni dei quattro avvolgimenti del motore passo-passo unipolare.

L’azionamento dei motori passo-passo può avvenire in tre diversi modi:

 

·        Ad una fase alla volta (on phase-on o wave mode)

·        A due fasi alla volta (two phase-on o normal mode)

·        A mezzo passo (half-step mode)

 


Per azionare il motore bipolare del nostro prototipo abbiamo usato il sistema di pilotaggio ad una fase alla volta il quale consiste nell’attivazione di un avvolgimento alla volta, secondo questa sequenza:

 

 

 


Nella sequenza inizialmente è attivata la sola fase AB, con polarità positiva sul terminale A e negativa sul terminale B, quindi viene polarizzato positivamente C e negativamente D, e così via.

Nel nostro caso in particolare, la configurazione degli interruttori, per i primi due passi, sarà come nella figura seguente:

 

 


 


Nel 3° e nel 4° passo sarà interessata l’altra coppia di interruttori.


 

 

 

 

 

 

Capitolo 5: Il software

 

5.1: Diagrammi di flusso

5.2: Il programma

5.3: Algoritmo completo

 


5.1: Diagramma di flusso


 


 


                                                                                                                                                                                 

Si nota che il diagramma di flusso è piuttosto semplice: dopo aver inizializzato le porte di I\O, il sistema si posiziona nel ciclo principale che, in pratica, si limita a leggere le fotocellule e quindi pilotare i motori di conseguenza.

 

 

 

5.2: Il programma

 

 

Inizializzazione: La fase di inizializzazione si riduce praticamente alla selezione del verso delle porte di I/O.

Il motore passo-passo delle ruote di trazione necessita di 4 bit mentre al motore in C.C. delle ruote bastano 2 bit.

Abbiamo quindi scelto di utilizzare gli 8 bit della PORTB con uscite e i  4 bit della PORTA come ingressi per la lettura delle fotocellule.

 

 

Lettura fotocellule: Le fotocellule, in funzione della direzione che prende la macchinina, mandano due bit, A e B, alla PORTA (porta di ingresso) del µP.

Il µP deve provvedere a leggerle e a mandare i giusti comandi alle schede di pilotaggio dei motori direzionali.

Supponendo che i due bit mandati dalle fotocellule facciano parte di un byte (insieme di 8 bit) avremo in entrata del uP questa sequenza di bit : xxxxxxBA.

I primi sei bit non servono ai fini della correttezza dell’informazione, quindi si ha il compito di leggere solo gli ultimi due bit (A e B).

Il bit B corrisponde alla fotocellule di sinistra; quindi il µP esegue una operazione logica AND (&) tra il byte entrante, ovvero il valore della PORTA (xxxxxxBA) e il valore 00000010,  in modo mandare a zero e lasciare invariato il bit B.

 

/*=================================================*/

char leggi_foto_sx(void)

{      

        char risusx;

 

//xxxxxxBA & 00000010

        rususx = PORTA  &  0X02;                       

return (risusx);

}

 

 

 

Analogamente per leggere la fotocellula di destra il uP fa la solita cosa, ossia esegue l’operazione logica AND (&) tra il valore della PORTA per 00000001 in modo da lasciare invariato solo il bit interessato.

 

/*=================================================*/

char leggi_foto_dx(void)

{      

        char risudx;

       

//xxxxxxBA & 00000001

        rusudx = PORTA  &  0X01;                       

 

return (risudx);

}

 

Esegue i comandi (Algoritmo semplificato): Una volta letto il valore delle fotocellule il uP deve essere in grado di capire quando e come la macchina deve muoversi e comandare le schede di potenza dei motori che a loro volta comandano i motori.

Per fare ciò nel compilatore usa il seguente algoritmo:

 

·       

Quando le fotocellule sono entrambe illuminate, ossia A= 0 e B = 0, la macchina incontra orizzontalmente la striscia riflettente e i motori ricevono il comando di fermarsi.

 


/*=================================================*/

if ((A==0) && (B==0))

{

        ferma();

}

 

·        Quando la fotocellula di destra è attiva, ossia A = 0, la macchinina è spostata verso sinistra nei confronti della striscia e i motori ricevono il comando sterzare a destra e continuare  ad avanzare.

 


 

 


/*=================================================*/

else if (A==0)

{

        gira_a_dx();

}

 

·        Quando la fotocellula di sinistra è attiva, ossia B = 0, la macchinina è spostata verso destra nei confronti della striscia e i motori ricevono il comando sterzare a sinistra e continuare  ad avanzare.


 

 


/*=================================================*/

else if (B==0)

{

        gira_a_sx();

}

 

·        Quando le fotocellule sono entrambe attivate, ossia A = 1 e B = 1, la macchina è in asse con la striscia riflettente e i motori ricevono il comando di avanzare.


/*=================================================*/

else if ((A != 0) && (B != 0))

{      

        avanti();

}


5.3: L’algoritmo completo

 

In realtà l’algoritmo di calcolo è lievemente  più complesso avendo verificato, nella fase di messa a punto, che l’algoritmo semplificato presentava dei problemi.

 


 

 

 


·        FASE 1: Quando una fotocellula (ad esempio la destra) intercetta la linea riflettente, si comanda di girare  a destra fino alla fase 2.

 

·        FASE 2: quando la fotocellula sinistra intercetta a sua volta la guida. A questo punto si fa eseguire una piccola deviazione a sinistra fino alla  fase 3.

 

·        FASE 3: è il momento in cui la fotocellula sinistra non vede più la linea bianca. A questo punto si comanda di andare diritto, garantendo così di essere in asse con la linea guida.

 


 

 

 

 

Appendici

A1: Amplificatore per motore P.P.

     A2: Amplificatori fotocellule

     A3: La scheda con PIC 16F84

    A4: Il programma in C

A5: Circuito stampato delle schede per i

motori P.P. e piano di montaggio .

     A6: Circuito stampato degli amplifoto e piano

di montaggio .