Propeller display - ITIS in progress

annuncio pubblicitario
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
Scarica