Universidade Estadual de Campinas
Faculdade de Engenharia Mecânica
Engenharia de Controle e Automação
Autor: Raphael de Oliveira Melo 035495 Orientador: Prof. Dr. Luiz Otávio Saraiva Ferreira ,ovembro de 2008
Resumo
! " ! Desenvolvimento de um Projetor de Imagens a partir de
um Scanner Oscilante, # $ % & #
# ' () * # ++, - . () ! / % 0 12 3 % 4 55+ / 6 4 0 2 4 6 4 3 () / 7 8 9 ! 9 : 9 4 ! : 6 () () 6 4 6 9 () 4 , ; ! 9 () () 9 () ! () : () : <= 9 () () () () 6 ! <=# ,$>? # $ 4 : @ ! ++ A4 9 () @ '
> 6 () 4 / /' , / : <= () 9 @ < / B 9 <=
? Lista de Figuras 6 Lista de Tabelas , 13 = () 5 23 " ) C @ 33 : 43 " >? 53 # ) ? Apêndice A ?D Apêndice B ?, Apêndice C ?5 Apêndice D D+ Apêndice E D? " 3 C @ DD
D $ ' 9 + $ 9 () $ E () $ > 1 C 6 = : 0 '"1A' 2 > $ ? = () : ? $ D 1 0! =E ="' $ "" ="'2 F $ F ! 7 () ( , $ , " 5 $ 5 / % scanner 5 $ + # @ (G / <=# ,$>? $ & # ) H' 4 '#+,+, > $ () 4 () D $ # () 6 D $ > # () 6 ) F $ ? 1 / 4 , $ D A I / $ F 1 I 6 $ , @ () > $ 5 @ () 9 () ? $ + 1 J3 6 9 F $ A I 6 9 5
F $ # 8 >+ $ > $ > @ > $ ? A I scanner >> $ D < 1 K () () >D $ F . @ () () >F $ , . @ () () >F $ 5 . @ () () 4 >, $ + C 6 9 6 >5 $ 1 6) 6 ?+ $ = 6 6 9 ?
,
- < () 0 4 2 5
- < % 5
- < % scanner +
5
Capítulo 1
! 9 : / <=# ,$>? 9 6 scanner () : - / () 6 () ! : scanner () ) : 6 () ! : 6 laser 9 () 6 9 6 () () scanner 6 ! 6 / 9 6 / ) 9 ! / () () ) 4 9 J3 () 6 / 9 (G 6 9 ! / () scanner # :/ () / 6 9 laser (G :/ 9 9 ! () : () 9 9 :+ () scanner 9 () @ ' : 4 ' 6 (G $ ' 9
$ 9 () () () 4 : () () ! : () : () 0 : 2 ' ) () 9 ()
1.1 Seleção da tecnologia para o desenvolvimento 3 1 / <=# ,$>? # H' '#+,+, () / 1 () 6 : 1 6 : < 4 ! @ 1 $ () @6 L % 0! =E ="' $ "" ="'2 J3 6 5F ?A4 6 / 1 1 ! $ 9 % 6 / $ 6 < < 9 = '-"!M=# () ?E / $ 6 < 9 < > ?E 6 9 1 () : 4 @ (G scanner
Capítulo 2
!
"
#$
! () ) G () @ ( 4 () : ' () % () : 6 () 8 $ E () * : 6 : 6 : 9 % () () : ' ) 4 ()> 2.1 O Modelo de Ressonante Apresentado por Montagu.
0 '"1A' 2 6 : 4 N N $ > 1 C 6 = : 0 '"1A' 2 ! () : @ ! : : () @ 9 9 ) : () < / ) .
? $ ? = () : ' () : 4 0 42 ' () : ( () () 4 () Equações do Modelo ' : : 0 '"1A' 2 ! 4 : : LR uA IBlr T = : : O : ' : @ () O = : () C : ) : () : () : : : O " : 3 ()
D ' ) B : () () ' ) wt w L AI u dt d BLr E= θ + < : I ' () % :
dt
d
J
dt
d
D
Ks
T
=
θ
+
θ
+
θ
P : : N : : / % () :2.2 O Modelo de Scanner Ressonante (OLIVEIRA, FERREIRA)
* duplo#rotor : 0! =E ="' $ "" ="'2 - / 4 + ? ! : 6 () ' ( : ( ! : @ ( : : 6 / : 6 @ 6) 6 6 lasers
F $ D 1 0! =E ="' $ "" ="'2 ' () : : > ) ) ! : 4 * () scanner : O 4 ' : @ 7 ()
, $ F ! 7 () ( ! O : () ' () : 4 ' () : ) 4 @ ( : : 9 () - ) 6 scanner : 6 9 ()
5 $ , " Modelagem do sistema ' : 6 () () % 9@ () () ! % 0! =E ="' $ "" ="'2 $ 5 / % scanner
+ ' : () 3 6) scanner () ) : () ()
( )
( )
R
J
A
s
+
B
s
+
C
s²
+
D
s
+
E
A
k
B
=
s
v
s
θ
m2 a e a θ3 e⋅
⋅
⋅
⋅
−
> ! B indução de bobina na espiras de número armadura de a resistênci te cons magnético campo B armadura e espelho entre rigidez k estrutura e espelho entre rigidez k estrutura e armadura entre rigidez k espelho rotor sobre nto amortecime f armadura rotor sobre nto amortecime f espelho rotor do inércia J armadura rotor do inércia J k k k = E f k + f k = D k J + f f + k J = C J f + J f = B J J = A armadura de área = A θ2 θ1 1 m2 m1 θ3 θ2 θ1 θ2 θ1 θ2 m2 1 θ2 m1 m1 2 m2 1 m2 m1 a = = = = = = = = = = − ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ M " θ # ) @ ) : 4 4 () (G 8 9@Capítulo 3
%
%&
# 9 : () M ) B / / <=# ,$>? / # /' 8 '#+,+, / / / Scanner / 1 ! / 1 < 9 () = / # ' () 8 / # ' <= J3 () 3.1 O micro3controlador PIC18F452 ! / <=# ,$>? : "=1# clock : >+ A4 : 8 < >+ ' 4 # 8 ## , 9< 'C : 4 : (G ) () (G @ 6 / % 9 (G / () * () () I ' : (G / () clock < () In#Circuit () <=# ,$>? 9@ () ! / datasheet 0 =#"!#A=<2 ' J3 ) clock / ! D : 8 () / =# / $ + # @ (G / <=# ,$>?
' 4 / ) 4 ) 4 () : -= " 4 () (G I 6 * <=# ,$>? : () 6 6 () () 6 () < () / "C+ <!"-C <=# ,$>? (G 6 $ @ () () 6 ! # ## , : ' 3 C * : "C? <!"-C <=# ' 6 4 () 6 : 4 ! Timers 0 4 2 ) / * -= " # % () 4 / () Q RS ## , ! # ## , : 3 # = / Q RS ? 6 + K ! Q S - 9 , ?6 +H, 6 O $ 4/ () - " 8 ! Q- " T S + - " :
> 3.2 O conversor digital3analógico DAC0808
! / 8 '#+,+, : / 8 , ' () : () ) 6 () scanner <=# ,$>? < () / , <!"- <=# ,$>? 0 =#"!#A=<2 ! / 0M'-=!M' 2 1 4 : ()
U
?D
+
,
D>
D
>
,
?
>
D
F
V
>A
A
A
A
A
A
A
A
R
R
Vcc
Vo
PI O OP AMP+
+
+
+
+
+
+
⋅
=
− ! '; ) ' / Q S 8 Q+S 8 6 $ & # ) H' 4 '#+,+,? ! () 6 <=# ,$>? ! () () > W ' : () () J3 : : () ( ! # ## , : ' 3 ' ! ?E 6 ) @6 + ?E ' @ Q S $ % / ) 6 + FA4 J3 6 ++A4 ' @ Q S () ' ) : ) '# : 6 ?E H ?? X + + E ! : P @
D 3.3 O fotodiodo Duplo ! 4 (G ' / @ 6 $ () 4 () # 4 4 () 3 $ # () 6
F 1 B = X 0 2 E X = 6 " V = R x f(L) ! " 6 6 E ( 6 E E 6 3 4 4 ! " X D,K < () / 4 ) % / ! : <=# $ > # () 6 )
, 3.4 O Ressonante Duplo3Rotor ! scanner () : scanner 0! =E ="' $ "" ="'2 M () ) % % () scanner () ! J3 () D>A4 : 6 6 5F ?A4 $ ? 1 / 4
5
Propriedade Valor Unidade
,,++ VK H U 8 Y + V.< U # < + > 8 # > 6 ++ # 6 +/? V U Dimensões - - V U D56>5 V U +6 + ' V U >6 # V U ? () V U + V U + ? ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ Parâmetros Mecânicos = : VP U ? ,F6 +/, = : ' VP U ,6 +/5 " 4 VM H U +6 +/ " 4 VM H U F D6 +/D ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ Performance Parameters $ J3 VA4U D> > $ J3 VA4U D? ? $ B ++ $ B ?+ ' ) % () % % 4 - < () 0 4 2 - < % % ) ) scanner @ () 6 % ! O () 0M 2 () scanner : 5+ ! : 0C 2 6 . + +?- ' () 3 0" 2 : () () ) : E () ? ' 3 , D <
+ Valores remanescentes MO () V U5+ # : V-U+ +? " 3 V U , D ' VM H U + ++ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 0$ "" ="'2 +/ M H : 4 @ 6 3 - < % scanner # 0! =E ="' $ "" ="'2 6 (G @ ) @ / () scanner ) Va x x dt d x dt d x dt d x dt d x D , D > > > D + +F + > > + > + + D + 5 ? −
θ
+ −θ
+ −θ
+ −θ
− −θ
= −3.5 O Sistema Observador ! : 6 % () 9 - / () / () () scanner 9 () 9 () < / 4 9 / ' 6) 6 scanner 9 8 () @ 6) 6 / ) 9 8 6 0! =E ="' $ "" ="'2 ' (G / 9 8 9 () 6 () / ' : @ 6 () J3 scanner 5F ?A4 J3 @ : () 8 J3 () # 9@ / 4 () ) 6 9 / / : ! 6 4 J3 () 6 5F ?A4 J3 / J3 9 / 6 / / ' D,K # (G 8 / I () :
$ D A I / I : / ! 4 () / : 6 5F ?A4 : 6 * / : 4 8 : @ () 6 * () $ ? : 4 ) 8 4 C#?>, 9 + ?E / # () 6 / / +E 1 6 ?E # I : I 6 ' : I 6
$ F 1 I 6 ' () : : 6
2
0
2
0
2
0
2
0
wt
wA
dt
dp
t
v
wt
Asen
t
p
=
=
=
X +B2
+
0
→ →⋅
=
=
=
t
w
d
A
wA
t
d
wA
v
fotodiodo fotodiodos> ! B ' X I X J3 () 0 2 X % 0 2 X / ! 3 9 8 6 4 6 () 4 () 9@ < / I / "C> "C? / # / () () 6 () / @ $ , @ ()
? " 4 () 4 () () : 6 () () 6 ! 9 : () 9 ' @ () () 6 ( <!"-C / 8 6 / 9 8 () () 6 # 6 9 ' 6 ( D 3 9 / < ) 6 @ >++ ' J3 () 5F ?A4 ) : ? D : 4 () ' : @ 9 $ 5 @ () 9 ()
D = >++ 4 () 86 >++ @ @ () 9@ # 86 : 9
F 3.6 O Sistema de Projeção de Imagens
! 9 9 : @ 6 () 6 6 9 9 9 4 ,6 = : J3 ( 6 9 $ + 1 J3 6 9 ' 4 () @ 9@ / + >++ # 6 () @ / : 9 4 () 9 ( 9 8 6 : # 4 (G 6 3 = 9 8 : 3
, - > " () 9 4 () ' () * 1 0 2 4 3 8 4 12 5 16 6 20 7 24 8 29 9 33 10 38 11 43 12 48 13 54 14 60 15 68 16 77 17 100 18 204 19 208 20 212 21 216 22 220 23 224 24 229 25 233 26 238 27 243 28 248 29 254 30 260 31 268 32 277 33 300
5 ! 9 : , 6 9 ! 6 : / 4 , 6 , <!"-# / () I 9 () / ! Q S 4 () Q S () O , ) , 6 9 < 6 () ? Q S D () ? Q S = 9 : 4 () D O 6 9 O ++++++ + @ ! I 9 8 3 / 9 * : :/ 4 () 3 O $ A I 6 9
>+ 3.7 O Controle de Amplitude por Alocação de Pólos
< (G scanner : 6 % % ) : (G < : @ () : 1 0!.'-'2 8 ' : 8 : $ # 8 < scanner () () 8 9 86 6 @ 4 0!.'-'2 < / 0P 2 8 86 6 @ () :/ ! :
> $ : : () : ) : @ 9 6 () / 4
> 3.8 O Controle de Amplitude PI com Freqüência de Oscilação Constante
- / 9 4 () / 4 ' (G ) () / ! @ @ 9 8 : 9 / @ @ (G / : @ 9 @ 6 / : : () # 9@ 4 () : 8 () ' 8 () !M/!$$ / () <= % ' () % () 4 () ' : I
> $ > @ ! / H' J3 6 5F ?A4 ?E () 4 () 9 ( ? D ' + >E + ) 0+ + E 2 ! / :/ P X+ ? P X+ ++ ? - X+ + ' : 6 () ! H' ) 3 6 scanner ' : 9 () ) E : I
>> $ ? A I scanner ! H' / 6 7 ) 8 3 ,F? : +[ 3 3 scanner M 3 ) + $ ) 3 ' 3 4 () I ()
>?
Capítulo 4
@ 8
# () ()
I () () 9
4.1 Simulação de Controle de Amplitude
- ) : () 8 () scanner 4 @ / 4 () : 4 I MatLab < () 4 / toolbox @ MatLab @ Simulink ' : Simulink () () 4
>D $ D < 1 K () () Bloco # @ 9 : Bloco # P E B P X + ++ P X + ++ P X + # Bloco $ () 3 scanner ! / Q () ' S @6 6) Q< . S ' ( 6 () ' () 9 : Q' 9 S <= Q# ' @ . S 4 () 8 P scanner 9 9
>F ' ) () Simulação 1: ' 9 9 + $ F . @ () () Simulação 2: ' 9 9 + F $ , . @ () ()
>,
$ 5 . @ () () 4
4.2 Construção do Projetor de Imagens
# () 4 / 9 6 9 4 4 9 () 6 6 ' 4 8 7 ' 4 6 8 (G / MO 6 B 6 6 / ' 9 () B D @6 ++ / " () J3 ++A4B ?A4 - 4 () 4 () / ' () B \?E \ ?E / ?E .M
>5 / $ 6 ) % $ J3 86 () / - 4 () B ? 6 ! I / <=# ,$>? : 3 I : 3 ' ) $ + C 6 9 6
?+
?
?
Capítulo 5
+
$ 9 () 6 6 6 ) ,6 6 4 scanners 6 ' 9 > 5F ?A4 * 4 / / <=# ,$>? () + A4 J3 K < () () 6 9 4 / ! 9 scanner () ! scanner / 4 @ () () J3 () 6 () / @ 6 () 7 (G 6 () / : 4 : () ' () () 8 % : 4 <=# ,$>? < : () %? ! @ (G 4 3 3 ! / <=# ,$>? / 4 : (G 9 () -@ 4 (G () @ @ / @ / 4 (G () # 9 % ) () $<.' 1< 6 J3 K ' J3 K 4 () + A4 / () ! / 4 / ! I / / () 7 4 < (G (G 9 ! / : () 6 6 J3 % < : : 9 % 4 3 4 ' 9 () 4 / 8 6 ' :/ 4 () / @ J3 ! , 6 9 9 % 9 () 6 () 6 <
?> % : 9 6 () () / 8 ( 9 ) () 6 6 @ @ @ O 9 6
?D
Apêndice A
Programa em linguagem C para compilador MCC18, para a geração
de um sinal senoidal na saída de um conversor D/A acoplado ao
PORTD do PIC18F452.
#include <p18f452.h> #include <delays.h> #include <math.h> #include <float.h> #include <timers.h> #include <portb.h>#pragma config OSC = HS, OSCS=ON #pragma config WDT = OFF
#pragma config LVP = OFF
constint senoide[4] = {0,63,110,127}; int saida;
longint tempo = 133; int sentido=0; int posicao=0; char semiciclo=0; longint contador = 0; int amp = 90; void main (void) { TRISD = 0; TRISB=0b00011000; PORTB=0x00; while (1) { if(semiciclo==0) PORTD=127+senoide[posição]*amp/120; else PORTD=127Dsenoide[posição]*amp/120; while (contador<=tempo) { contador++; } contador = 0; if(sentido==0) { if(posição==3) {
?F sentido = 0x01; posição = posiçãoD0x01; } else posicao = posicao + 0x01; } else { if(posição==0) { semiciclo=!semiciclo; sentido = 0x00; posição = posição + 0x01; } else posição = posição – 0x01; } } }
?,
Apêndice B
Programa em linguagem C para compilador MCC18, para a detecção
de interrupções externas do PIC18F452.
#include <p18f452.h> #include <delays.h> #include <math.h> #include <float.h> #include <timers.h> #include <portb.h>
#pragma config OSC = HS, OSCS=ON #pragma config WDT = OFF
#pragma config LVP = OFF
void high_isr (void);
#pragma code high_vector=0x08 void interrupt(void)
{
_asm GOTO high_isr _endasm }
#pragma code void main (void) { TRISD = 0; TRISB=0b00011000; PORTB=0x00; OpenRB0INT(RISING_EDGE_INT); INTCONbits.GIE = 1; INTCON=INTCON||0b00010000; while (1) { PORTBbits.RB5 = 0; } }
#pragma interrupt high_isr void high_isr (void) {
INTCON = INTCON & 0b11111101; PORTBbits.RB5 = 1; Delay1KTCYx(100); PORTBbits.RB5 = 0; Delay1KTCYx(100); PORTBbits.RB5 = 1; Delay1KTCYx(100); }
?5
Apêndice C
Programa em linguagem C para compilador MCC18, para a
utilização do TIMER1 do PIC18F452.
#include <p18f452.h> #include <delays.h> #include <math.h> #include <float.h> #include <timers.h> #include <portb.h>
#pragma config OSC = HS, OSCS=ON #pragma config WDT = OFF
#pragma config LVP = OFF void main (void)
{ TRISD = 0; TRISB=0b00011000; PORTB=0x00; OpenTimer1 (0b01110000); TMR1H=0; TMR1L=0; T1CONbits.TMR1ON = 1; Delay10TCYx(25); T1CONbits.TMR1ON = 0; if(TMR1L>30) PORTBbits.RB5=1; }
D+
Apêndice D
Programa em linguagem C para compilador MCC18 completo da
aplicação implementado em PIC18F452
! ! " ! #$% & '$( #$%$&#) ! * + & #,, ! -./ & #,, 0)0%0# 1 23425 2 %#)+2) # 6 & 0)0%0#6 & 16 & 716 ! &16 &16 &16 ! &16 & 16 ! & 816 9&16 : & 16 ! ;! 6 ! ; < & 116 6 &16 &16 ; &716 ; &16 &16 =>>?&@1( ( ( ( 7( 1( ( 8(>>(> ( >( ( (71(7 (AA( 11( ( ( ( 7 ( 1( ( 8(>>(> ( >( ( (71(7 (AA( 11B6
D =>>?&@ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( B6 C ; DC E6 ! ;C &1:1 C DC E @ ; ! 3#+# ; ; ! B ! C ! DC E @ +50$ & 16 +50$F&1" 11116 +50$%&16 /#5+F" 5F> & 6 /#5+F" 5F & 16 # + ! D1"1 1 1111E6 # + ! > D1"111 1111E6 +G5 ' & 16 +G5 - & 16 +G5>' & 16 +G5>- & 16 &16 H+%I:D 11E6 0)+%#) & 1"1111 1116 H+%I:D 11E6 0)+%#)" 30J'& 6 +G5>-&16 +G5>'&16 +>%#)" +G5>#) & 6 K D E @ K D+G5>- & E6 D && E @ +G5>-&16 +G5>'&16 +>%#)" +G5>#) & 6 ! &L 6 &16 &16 B ! @ +G5>-&16 +G5>'&16 +>%#)" +G5>#) & 6
D D && 11E @ D &&1E @ /#5+ & A M 6 & 6 B @ /#5+ & A L 6 &16 B & 16 B & M 6 ! & ! M 6 D ! && = ?E @ /#5+%& = ?6 & M 6 B /#5+%&16 D ! && 88E ! &L 6 B B B ! ; C ; DC E @ K D E @ D0)0%0#EN " @ D/#5+F" 5F && OO /#5+F" 5F &&1 E @ &%#)+2) #6 # + %#)" +G5 #) & 6 B B" P6 D%#)+2) #EN " @ D/#5+F" 5F &&1 OO /#5+F" 5F &&1 E @ + %#)" +G5 #) & 16 &0)0%0#6 ! ;! & +G5 -6 $ D+G5 'Q&1E
D ! ;! & 6 D ! ; < ! ;! E @ & ! ; < L ! ;! 6 ; & 6 B @ & ! ;! L ! ; < 6 ; & L 6 B & >6 & 6 % D ; && E : & :L 6 : & :M 6 D : 1E @ D ; 1E ; & ; M 6 : & 16 B D : L 1E @ D ; 1E ; & ; L 6 : & 16 B D ; && E & ; L 6 & ; M 6 D 1E & 16 D 1E & 16 +G5 ' & 16 +G5 - & 16 & & 6 +G5>-& >16 B @ + %#)" +G5 #) & 16 &0)0%0#6 +G5 ' & 16 +G5 - & 16 # D/#5+F" 5F && OO /#5+F" 5F &&1 E @ &%#)+2) #6
D> + %#)" +G5 #) & 6 B B B" P6 B 0)+%#) & 0)+%#) O 1" 16 B
D?
Apêndice E
DD 0$ "" ="' ! A #P 2 + 1 $ 1 K Q'
S Sensors and Actuators # A E F M
0! =E ="'2 # ! < " C ! 1 $ = 8 Q' 1 / / 4 S 0 '"1A' 2. Q C 1 S / KK 5,? 0 =#"!#A=<2 <=# ,;; ++D 0M'-=!M' 2 '#+,+, & , H' M 1 0!.'-'2 P ! Q # S < A >] () 0. " 2 N . Q % S - ++ 0[=P=< ='2III I K 0! =E ="' $ "" ="'2 4 # ! 4 ! 1 $ Q' < 1 4 " 1 ' R = S =1!- ++,