I.T.I.S. G. GALILEI A.S. 2011~2012 5^BET GUAN YANPING Propeller display ------LE PAROLE VOLANO NELL’ARIA Indice 1.1. Introduzione…………………………………………………………….3 1.1.1. La descrizione generale ...………………………………3 1.1.2. Diagramma dei blocchi ……...………………………..4 1.1.3. La lista materiale ……………..…………………………..5 1.1.4. Gli strumenti usati ……………..………………….. …..5 1.2. Lo schema …………………………………………………………….6 1.2.1. Lo schema elettrico ……………..………………………6 1.3. La descrizione degli elementi ……….………………………7 1.3.1. Il .pic18f2420…………..….……...........................7 1.3.2. Transistor BC337 ………………….…………….8 1.3.3. IR sensor ……………………………………………....8 1.3.4. Le resistenze……………………………………………….9 1.3.5. Il condensatore………………………………………….10 1.3.6. I led …………………………………………………………11 1.4. Le foto ……………………………………………………………….12 1.5. La descrizione del pin di pic 18f2420.……………..13 Propeller display Pagina 2 1.6. Il programma ………………………………………………….15 1.7. La conclusione..…………………………………………………17 1.1 Introduzione 1.1.1 La descrizione generale: Il propeller display si può chiamare anche le parole volano nell’aria, in sostanza si utilizza la persistenza della visione (POV). La persistenza della visione (POV) è nella persistenza dell’immagine a livello retinico. La retina dell’occhio umano ha la capacità di trattenere l’immagine per qualche frazione di secondo (di solito 0.1s-0.4s) anche dopo che l’immagine stessa non era più visibile. Ad esempio, la televisione, la quale le immagini sono scandite ogni 25 volte, così essi sembrano che siano continui. v=3rad/s v=15rad/s v=60rad/s Per realizzare il propeller display, usiamo una fila di led (7 Led) che viene controllata dal PIC 18F2420. Ogni Led è mostrato a ogni pixel, in questo caso, i 7 led possono essere considerati come un piccolo display. Alla fine fissiamo la basetta del circuito a un motore, come la figura seguente: Propeller display Pagina 3 1.1.2 Diagramma dei blocchi IR sensor : È formato da un fototransistor e un fotodiodo. Il fotodiodo emana l’infrarossa. Il fototransistor riceve l’infrarossa e manda il segnale a micro controllo per sincronizzare l’immagine con la posizione giusta. Micro controllore: Abbiamo usato un PIC 18F2420 come il micro controllore. . Il PIC 18F2420 è programmato sia lasciandolo a bordo del target che mediante un corretto programmatore. Il software può essere sviluppato in diversi linguaggi fra i quali ovviamente l'assembly che in linguaggio C. In questo progetto, abbiamo usato il linguaggio C. Motore passo-passo: Per avere una resistenza della visione, ci vuole un oggetto gira a una certa velocità. Quindi il compito del motore viene realizzato con la rotazione circolare di tutta la bassetta. Led display: I 7 led sono fissati al lato dell’asse. Ogni led viene collegato al determinato pin del PIC 18F2420. Alimentatore: Fornisce una tensione di 5V a IR sensor e il circuito, invece per il motore ci vuole una tensione di 6V. Propeller display Pagina 4 1.1.3 La lista materiale: Materiale Quantità Condensatore da 100nF 1 Condensatore da 220µF 1 Fototransistor 1 Fotodiodo 1 Interruttore 1 Led di potenza 7 Led normale 1 Motore passo-passo 1 PIC 18F2420 1 Programmazione e debug header 5 1 Resistenze da 47Ω 7 Resistenze da 10KΩ 13 Switch 1 Transistor BC337 7 1.1.4 Gli strumenti usati: Alimentatore Mplab ICD 3 Multimetro Pinze Spella fili Stagnatore Wrappatore Propeller display Pagina 5 1.2 Lo schema elettrico R1 10k R2 10k R3 10k R4 10k R5 10k D1 LED C1 220uF D2 LED R6 47 D3 LED R7 47 D4 LED R8 47 D5 LED R9 47 D6 LED R10 47 D7 LED R11 47 R12 47 3 Q5A IR sensor 28 27 26 25 24 23 22 21 8 19 1 2 4.5V R14 3 6 3 6 3 6 Q2B 2 Q3A 5 Q3B 2 Q4A BC337 BC337 BC337 BC337 BC337 1 Q2A 5 BC337 4 Q1B 2 1 Q1A 5 BC337 4 2 10k 1 R13 R15 RB7/PGD RB6/PGC RB5/PGM RB4 RB3 RB2/INT2 RB1/INT1 RB0/INT0 VSS VSS 10k 10k R16 10k VDD PIC18F2420 R21 10K 1 2 3 4 5 18 17 16 15 14 13 12 11 4 OSC2 RA5 RA4 RA3 RA2 RA1 RA0 RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 1 10 7 6 5 4 3 2 MCLR/VPP/RE3 OSC1 3 PVN1 1 9 20 R17 R18 R19 D8 10k 10k 10k VCC programmazione e debug HEADER 5 LED SW1 4.5V SW_PB_SPST BT1 1.5V BT2 1.5V BT3 1.5V Title Size B Date: Propeller display propeller display Document Number <Doc> Saturday , April 07, 2012 Pagina 6 Rev <Rev Code> Sheet 1 of 1 1.3 La descrizione dei componenti: 1.3.1 PIC18F2420 Il PIC18F2420 fa parte di una famiglia di microcontrollori. Si tratta di un microcontrollore moderno, allo stato dell’arte, di fascia alta, completo, programmabile in assembly e in C, dotato di moltissime periferiche. L’unica periferica non presente è la periferica USB. L’assenza della periferica USB costituisce certo una limitazione rispetto al PIC18F4550, ma in ambiente didattico essa sarebbe comunque difficilmente introducibile per la sua complessità; riuscire a esaminare tutte le periferiche contenute nel microcontrollore in esame è già un obiettivo più che soddisfacente. Il microcontrollore può essere programmato sia lasciandolo a bordo del target che mediante un corretto programmatore o caricando un bootloader. Il software può essere sviluppato in diversi linguaggi fra i quali ovviamente l'assembly che in linguaggioC. Nel caso di corrente continua, la frequenza operativa del PIC18F2420 è 40MHz. La memoria massima che può programmare è 16384byte. Il pin RA0…RA7, RB0…RB7 e RC0…RC7 può essere l’ingresso digitale oppure l’uscita digitale. Ho scelto il RB0…RB7 come l’ingresso digitale, invece, il RC0…RC7 come l’uscita digitale. A pin RB0/INT0, ho collegato una resistenza e un led per dare un’indicazione, cioè quando passa la corrente, il led accende e viceversa. I pin RB7/PGD, RB6/PGC e MCLR/VPP/RE3 sono collegati insieme con la programmazione e debug header 5 per programmare il circuito. Propeller display Pagina 7 1.3.2 Il transistor BC337 Il transistor (abbreviazione del termine inglese transfer- resistor) detto anche transistore, è un dispositivo a semiconduttore largamente usato sia nell'elettronica analogica che nell'elettronica digitale. Le principali funzioni che gli vengono affidate all'interno di un circuito elettronico sono: 1) L'amplificazione di un segnale in entrata; 2) Il funzionamento da interruttore (switch.) La corrente o la differenza di potenziale in uscita da un transistor possono essere anche molto maggiori delle rispettive grandezze in entrata. I transistor possono lavorare in maniera individuale oppure essere implementati anche in grande numero all'interno dei circuiti integrati. In questo caso, il transistor è utilizzato come un interruttore. Quando il transistor si comporta da interruttore aperto OFF, la Base del transistor non è polarizzata, ovvero non è sottoposta a tensione elettrica. In queste condizioni il transistor non entra in conduzione e tra il Collettore e l'Emettitore non circola corrente;Quando il transistor si comporta da interruttore chiuso ON, la Base del transistor è polarizzata con una tensione superiore a 0 Volt. In queste condizioni il transistor entra in conduzione e tra il Collettore e l'Emettitore circola corrente. 1.3.3 IR sensor (fototransistor + fotodiodo) Propeller display Pagina 8 IR sensor è composto da un fototransistor e un fotodiodo. Un fototransistor in sostanza è un transistor a giunzione bipolare che viene inscatolato in un contenitore trasparente in modo che la luce possa raggiungere la giunzione tra la base ed il collettore. Il fototransistor è simile al fotodiodo, ma con una sensibilità alla luce molto maggiore, grazie al fatto che gli elettroni che sono generati dai fotoni nella giunzione tra la base ed il collettore vengono iniettati nella base e la corrente così prodotta viene successivamente amplificata dal transistor. Un fotodiodo è un particolare tipo di diodo. È in grado di riconoscere una determinata lunghezza d’onda dell’onda elettromagnetica incidente e trasformare questo evento in un segnale elettrico di corrente applicando ai suoi estremi un opportuno potenziale elettrico. Esso è un trasduttore da un segnale ottico a d un segnale elettrico ad segnale elettrico. Nel nostro progetto, usiamo il fototransistor e il fotodiodo come IR sensor per sincronizzare l’immagine con la posizione dell’elica. 1.3.4 Le resistenze La resistenza è una grandezza fisica scalare che misura la tendenza di un corpo ad opporsi al passaggio di una corrente elettrica, quando sottoposto ad una tensione elettrica. La sua opposizione dipende dal materiale con cui è realizzato, dalle sue dimensioni e dalla sua temperatura. La resistenza viene ricavata spesso dalla legge di Ohm: dove : ΔV la tensione a cui è sottoposto il corpo, l’unità di misura è Volt(V); I è l'intensità di corrente che attraversa il corpo, la sua unità di misura è Ampere (A). Propeller display Pagina 9 resistenza Il resistenza con la dilatazione termica: Quindi l’unità di misura della è V/A, invece, nel sistema SI, per ricordare il fisico tedesco Georg Simon Ohm, è stata denominata l’ Ω come l’unità di misura della resistenza. valore della resistenza può essere letto dal colore che si trova sulla resistenza(come indica la figura sinistra). Il valore della varia alla temperatura: viene linearizzata dove 1.3.5 Il condensatore Il condensatore lo possiamo immaginare come una piccola "batteria" cioè può accumulare una carica e viene utilizzato in elettronica per delle funzioni di temporizzazione o come "filtro" per eliminare i disturbi, modificare le forme d'onda, oppure per accumulare la carica necessaria per ottener scariche ad alta energia (solo i condensatori più grandi). Il condensatore(C) si può ricavare da la formula: Q=C*V, la sua unità di misura è F. Nel nostro circuito, ci sono due condensatori che hanno i valori diversi: uno da 100nF che viene collegato tra Pin 8,Pin19 e Pin20 del PIC 18F2420 ,mentre un altro da 220µF che viene messo tra massa e Vcc. Il condensatore da 100nF è usato per filtrare i disturbi ,invece quello da 220µF viene utilizzato per livellare la tensione. Propeller display Pagina 10 1.3.6 I led a partire dalla In elettronica un diodo ad emissione luminosa o LED (acronimo inglese di light emitting diode) è un dispositivo optoelettronico che sfrutta le proprietà ottiche di alcuni materiali semiconduttori per produrre fotoni attraverso il fenomeno dell'emissione spontanea ovvero ricombinazione di coppie elettrone-lacuna. I LED sono un particolare tipo di diodi a giunzione P-N, formati da un sottile strato di materiale semiconduttore. Gli elettroni e le lacune vengono iniettati in una zona di ricombinazione attraverso due regioni del diodo ricoperto con impurità di tipo diverso, e cioè di tipo n per gli elettroni e p per le lacune. Ci sono tanti tipi di led. In questo progetto, abbiamo usato due tipi di led. Uno (come la figura 1) serve per indicare se il circuito passa la corrente o no ,un altro(come la figura 2) che è più potenza funziona come un display. D’altra parte, la tensione applicata alla giunzione dei LED dipende dalla banda proibita del materiale, la quale determina il colore della luce emessa, come la seguente tabella: Tipologia LED tensione di giunzione Vf (volt) Colore infrarosso 1,3 Colore rosso 1,8 Colore giallo 1,9 Colore verde 2,0 Colore arancio 2,0 Flash blu/bianco 3,0 Colore Blu Propeller display 3,5 V Pagina 11 Colore Ultravioletto 4 ÷ 4,5 V 1.4 Le foto Visto dall’alto Visto dal lato 1.5 La descrizione dei pin di PIC 18F2420: Propeller display Pagina 12 Propeller display Pagina 13 Propeller display Pagina 14 1.6 Il programma Il programma è scritto in linguaggio C con il Mplab. Il PIC18F2420 è programmato con il Mplab ICD 3. Grazie al PIC, possiamo modificare le scritte come vogliamo. Il programma può essere suddiviso in tre parti: una per il programma principale, una per IR sensor , un’altra è quella per il font. Praticamente il programma per IR sensor è usato per gestire il tempo, cioè quando accende i led e quando spende i led. Eccolo il flusso chart: Propeller display Pagina 15 Il font è preso dal codice ASCII. Esso è un codice a sette bit utili, con in più un eventuale bit di parità o dispari, e quindi permette la codifica di 128 caratteri, i quali contengono le lettere maiuscole, le lettere minuscole, i numeri ed i segni speciali(: , _ + < > ecc.). Ad esempio, la lettera A è espresso come : 0b01001001, 0b01111001, 0b01000001, 0b00111110, 0b01111110, Nel nostro progetto, i led possono mostrare quattro frasi alternativamente. char StringToDisplay1[]={"Guan Vart/ET"}; char StringToDisplay2[]={"ABCDEFGHILMNOP"}; char StringToDisplay3[]={"abcdefghijlmno"}; char StringToDisplay4[]={"1234567890rstu"}; UCHAR indScritta=0; [……] […..] switch(indScritta) { Propeller display Pagina 16 case 0: l=strlen(StringToDisplay1); p1=StringToDisplay1; break; case 1: l=strlen(StringToDisplay2); p1=StringToDisplay2; break; case 2: l=strlen(StringToDisplay3); p1=StringToDisplay3; break; case 3: l=strlen(StringToDisplay4); p1=StringToDisplay4; break; } Durante la prova del progetto, abbiamo osservato un problema, cioè le parole sono rovesciati. Piuttosto che rovesciare la posizione dei led, aggiungiamo un pezzo di codice per sistemarlo: rom UCHAR tabConv[]={ 0b00000000, // 0 0b10000000, 0b01000000, 0b11000000, 0b00100000, 0b10100000, 0b01100000, 0b11100000, // 4 […] 0b00011111, 0b10011111, 0b01011111, 0b11011111, 0b00111111, 0b10111111, 0b01111111, 0b11111111 // 248 // 252 }; Propeller display Pagina 17 1.7 La conclusione Quando realizziamo il progetto, abbiamo incontrato qualche problema, soprattutto il problema di bilanciamento. Per risolverlo, abbiamo messo dei pesi per bilanciare l’asse di rotazione. Alla fine il circuito funziona correttamente. Ci riesce a vedere le parole che sono impostati da noi, quando il motore gira. Più veloce il motore gira le scritte diventono più grandi. Propeller display Pagina 18