5.4 Software Embarcado
5.4.4 Calibra¸c˜ ao do condicionamento anal´ ogico
Foi desenvolvido um algoritmo para auto-calibra¸c˜ao do condicionamento anal´ogico da cˆamera. Este algoritmo envolve o acionamento externo da fonte de luz, este chaveamento pode ser feito por interm´edio da ativa¸c˜ao do pino 1 da sa´ıda de potˆencia. O algoritmo foi baseado nas indica¸c˜oes do datasheet do chip que possu´ı o circuito de condicionamento. O fluxograma utilizado para desenvolver este c´odigo pode ser visto na Figura 5.22.
Figura 5.22: Algoritmo desenvolvido para calibra¸c˜ao de ganhos e offsets do condicionamento anal´ogico
Por outro lado ´e poss´ıvel ajustar manualmente os parˆametros de ganho e offset da cˆamera. ´E importante lembrar que muitos fatores influenciam os resultados de uma medi¸c˜ao, a intensidade da fonte de luz utilizada, o tempo de integra¸c˜ao e outros parˆametros mal configurados podem tornar o ajuste manual ou a auto-calibra¸c˜ao imposs´ıvel. O sensor CCD utilizado ´e muito sens´ıvel e pequenas quantidades de luz podem saturar sua sa´ıda, exibindo um resultado de fundo de escala constante. Da mesma forma, grandes tempos de integra¸c˜ao levam ao mesmo tipo de problema.
Cap´ıtulo 6
Conectividade
106 CAP´ITULO 6. CONECTIVIDADE
A
CONEX ˜AO da camera digital pode ser feita com o PC atrav´es de uma conexao USB ou uma conex˜ao serial, essas duas modalidades est˜ao previstas e em funcionamento no hardware atual. Para conex˜ao USB foi utilizado um chip de mercado, do fabricante FTDI, o Circuito integrado FT232BL que funciona como um conversor Serial-USB,O outro modo de conex˜ao pode ser feita atrav´es da interface serial RS-232. para esta integra¸c˜ao foi utilizado o chip MAX232 que converte os sinais com n´ıvel TTL/CMOS para os n´ıveis exigidos por uma porta serial de um PC e vice-versa.
6.1
USB
A interface RS-232 atualmente n˜ao ´e a porta mais comumente encontrada em computa- dores pessoais. Muitas aplica¸c˜oes embarcadas s˜ao dependentes deste tipo de comunica¸c˜ao, o que gera um certo inconveniente no desenvolvimento e na manuten¸c˜ao de sistemas antigos. A migra¸c˜ao da comunica¸c˜ao para a interface USB ´e uma solu¸c˜ao cada vez mais comum, pois, atualmente qualquer PC possui esse tipo de porta de comunica¸c˜ao.
Existem alguns meios de converter uma aplica¸c˜ao puramente RS-232 para a interface USB. Com certeza o m´etodo mais simples e que foi implementado neste projeto ´e a emula¸c˜ao da interface RS-232 em uma porta USB. A principal vantagem deste m´etodo ´e que o PC trata a conex˜ao USB como uma simples porta COM RS-232, desta maneira pode-se desenvolver um mesmo software para comunica¸c˜ao RS-232 real e a USB emulada [44].
Aplica¸c˜oes do Microsoft Windows, tratam uma conex˜ao RS-232 f´ısica como uma porta COM e se comunicam com este dispositivo atrav´es das fun¸c˜oes CreateFile, ReadFile e Write- File. Quando emulamos uma porta COM atrav´es de uma interface USB, teremos exatamente a mesma interface de comunica¸c˜ao com o hardware sem haver necessidade de mudan¸cas no Software de comunica¸c˜ao.
Para este projeto temos a op¸c˜ao de utilizar a porta serial ou a porta USB. O hardware embarcado ´e composto de um chip respons´avel por converter os sinais emulados recebidos da interface USB e converte-los em formato serial com n´ıveis TTL. este sinais s˜ao recebidos e processados pelo micro-controlador. Como dito anteriormente, por optar pela emula¸c˜ao de uma porta COM, n˜ao h´a mudan¸cas tanto no software utilizado no PC quanto no Firmware do microcontrolador para utiliza¸c˜ao destes dois tipos de conex˜ao.
6.2. RS-232 107
6.2
RS-232
Popularmente conhecida como RS-232 (Recomended Standard), a comunica¸c˜ao pela especifica¸c˜ao EIA/TIA-232-E ´e a mais comum em sistemas embarcados. Originalmente foi introduzida em 1962 pela EIA/TIA (Eletronics Industries Association / Telecommunications Industry Association) com a proposta simples de interconectar terminais e posteriormente utilizada para conectar terminais em modems. Devido sua simplicidade de hardware se comparada a outras interfaces, o RS-232 vem sendo usada exaustivamente pela industria eletrˆonica. Desde sua introdu¸c˜ao no mercado, o RS-232 vem passando por atualiza¸c˜oes, atualmente se encontra na quinta vers˜ao, denotado pela letra ”E”encontrada no final da denomina¸c˜ao [45, 46].
RS-232 ´e um padr˜ao que visa assegurar a compatibilidade entre os sinais trocados entre m´aquinas. N´ıveis de tens˜ao, posicionamento de pinos e a quantidade m´ınima de in- forma¸c˜ao trocada entre os dispositivos sao regidos por esse padr˜ao. Diferente de outros padr˜oes que simplesmente especificam somente as caracter´ısticas el´etricas. O RS-232 especi- fica os crit´erios funcionais, mecˆanicos e el´etricos.
As caracter´ısticas el´etricas especificam os n´ıveis de tens˜ao, Taxa de mudan¸ca de n´ıvel de sinal e a impedˆancia da linha de transmiss˜ao. Os n´ıveis de tens˜ao, j´a com tolerˆancia de ru´ıdo de 2V s˜ao definidos entre +3V e +15V para o n´ıvel alto e entre -3V e -15V para n´ıveis baixos. L´ogicamente o n´ıvel de tens˜ao alto ´e processado como ”0”e o n´ıvel de tens˜ao baixo ´
e processado como ”1”.
A taxa de varia¸c˜ao de n´ıvel de sinal (Slew Rate) ´e limitada tamb´em pela norma. Os drivers devem ter tempos de subida e descida do sinal de no m´aximo 30V/ms e taxa m´axima de transferˆencia de 20kbps. Essas duas regras s˜ao utilizadas para que se atenue a chance de haver o crosstalk. A impedˆancia da interface entre entre o transmissor e o receptor deve estar entre 3KΩ e 7KΩ. Na revis˜ao ”E”n˜ao se limita o tamanho do cabo da linha de transmiss˜ao e sim sua capacitˆancia em 2500pF tornando poss´ıvel o uso de v´arios tipos de cabos [45].
A especifica¸c˜ao RS-232 define a fun¸c˜ao das quatro categorias de sinais utilizados na sua interface: Comum, dados, controle e temporiza¸c˜ao. Apesar de existir uma grande quantidade de sinais, para a maioria das aplica¸c˜oes geralmente s˜ao utilizados poucos destes sinais. A parte mecˆanica definida pelo padr˜ao se refere aos conectores utilizados, para comportar todos os sinais existentes no padr˜ao ´e necess´ario um conector de 25 pinos, por´em, pela simplicidade da maioria das aplica¸c˜oes, geralmente ´e utilizado um conector com 9 pinos que provˆe comunica¸c˜ao suficiente para por exemplo um modem.
Os chips transmissores/receptores encontrados no mercado simplificam bastante o hard- ware utilizado para interligar PCs e equipamentos micro-controlados. Os n´ıveis positivos e
108 CAP´ITULO 6. CONECTIVIDADE
negativos de tens˜ao requeridos s˜ao gerados internamente a partir da alimenta¸c˜ao positiva em chips como o MAX232, utilizado neste projeto.
6.3
Configura¸c˜ao utilizada
A cˆamera deve ser configurada para comunica¸c˜ao conforme valores descritos na Tabela 6.1.
Parˆametro Configura¸c˜ao
Bits por segundo 19200
Bits de dados 8
Paridade Nenhum
Bits de parada 1
Controle de Fluxo Nenhum
Tabela 6.1: Configura¸c˜oes para porta de comunica¸c˜ao da cˆamera
6.4
Protocolo
6.4.1
Vis˜ao geral
O protocolo desenvolvido comunica-se utilizando a t´ecnica mestre-escravo, o que sig- nifica que a cˆamera digital (escravo) somente envia algum tipo de resposta quando requisi- tado por um mestre, neste caso um computador. As mensagens enviadas pelo mestre s˜ao geralmente tarefas que devem ser executadas pela cˆamera e confirmadas atrav´es de uma mensagem de volta. O formato das mensagens (pacote) para grande parte das fun¸c˜oes ´e fixo e ser´a mostrado na pr´oxima se¸c˜ao. Caso haja algum problema na transmiss˜ao do pacote, ex- iste uma rotina de estouro de tempo para tratar este erro, conforme ilustrado no fluxograma da Figura 6.1.
Foi implementado no protocolo uma fun¸c˜ao para detectar se a cˆamera esta em perfeito funcionamento e conectada corretamente, de tempos em tempos ´e enviado um pacote con- tendo a fun¸c˜ao TIC!, caso o software embarcado esteja desocupado e rodando normalmente ´
e enviado de volta a fun¸c˜ao TAC!. Pelo intervalo de tempo entre os TIC-TACs serem conhecidos, pode-se determinar quantitativamente o tempo que a cˆamera esta inoperante utilizando o relat´orio do sistema. Qualitativamente pode-se consultar uma barra gr´afica no software do PC que cresce conforme n˜ao h´a resposta. Pode-se visualizar o fluxograma deste algoritmo na Figura 6.2.
6.4. PROTOCOLO 109
Figura 6.1: Algoritmo utilizado para detec¸c˜ao de estouro de tempo
Figura 6.2: Algoritmo utilizado para detec¸c˜ao de conex˜ao e aviso de mal- funcionamento
Al´em da comunica¸c˜ao por pacotes, foi implementado um modo de transferˆencia de dados por batelada. atrav´es de mensagens trocadas por pacotes entre o mestre e o escravo habilita-se este modo e o conte´udo da mem´oria RAM onde ficam armazenados os dados adquiridos dos pixels ´e enviado. Para prevenir a grava¸c˜ao de dados corrompidos ´e anexado periodicamente em trechos deste pacote a checagem por CRC . Este processo ´e necess´ario para diminui¸c˜ao do tempo de transmiss˜ao pela quantidade de dados a ser transferido. Uti- lizando a velocidade de 19200 bits por segundo, leva-se aproximadamente 2 segundos para a transferˆencia dos dados, caso fosse por pacotes esse tempo aumentaria aproximadamente 16 vezes.
6.4.2
Formato do pacote
As mensagens trocadas entre mestre e escravo s˜ao escritas em forma de pacotes de dados, estes pacotes tem tamanho fixo de 16 Bytes e s˜ao formados por setores mostrados e discriminados na ilustra¸c˜ao abaixo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
110 CAP´ITULO 6. CONECTIVIDADE
6.4.2.1 Byte de inicio
O pacote inicia-se com o caractere #.
6.4.2.2 Origem do Pacote
Este byte indica quem est´a enviando o pacote, ser´a enviado o caractere ”U”caso seja a cˆamera e ”P”caso seja o Computador.
6.4.2.3 Destino do Pacote
Este byte indica quem deve receber o pacote, ser´a enviado o caractere ”U”caso seja a cˆamera e ”P”caso seja o Computador.
6.4.2.4 Fun¸c˜ao
Conjunto de quatro bytes em forma de mnemˆonico que indica qual fun¸c˜ao dever´a ser executada pela cˆamera ou computador, a lista de mnem´onicos esta dispon´ıvel na Tabela 6.2.
6.4.2.5 Argumento da Fun¸c˜ao
Conjunto de quatro bytes dependentes da fun¸c˜ao, este valor ´e o argumento ou comple- mento da fun¸c˜ao.
6.4.2.6 CRC
Cyclic Redundancy Check, ´e calculado e anexado ao pacote um valor de CRC para cada envio.
6.4.2.7 Byte de fim
O caractere % indica fim do pacote.
Os pacotes s˜ao mistos, escritos utilizando caracteres ASCII imprim´ıveis e n´umeros em hexadecimal conforme ilustra¸c˜ao abaixo. A escolha desta forma se deve a possibilidade do uso do protocolo por um software de Terminal e a facilidade de depura¸c˜ao.
6.4. PROTOCOLO 111
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# Origem Destino Fun¸c˜ao Argumento CRC %
ASCII HEXADECIMAL ASCII
O recebimento e envio destes pacotes s˜ao cercados de rotinas de checagem de erros, conforme visto na Figura 6.3, estes algoritmos para checagem est˜ao implementados tanto na maquina mestre quanto na cˆamera digital.
112 CAP´ITULO 6. CONECTIVIDADE
6.4.3
Dados por batelada
Conforme visto anteriormente, pela necessidade de redu¸c˜ao no tempo de transmiss˜ao serial de todos os dados contidos na mem´oria RAM do microcontrolador foi criado um modo de transmiss˜ao por batelada. o formato geral utilizado ´e mostrado na ilustra¸c˜ao logo abaixo:
[ Dados ]
Os dados s˜ao divididos em agrupamentos de 208 Bytes e desse agrupamento ´e feito o calculo do CRC [47]. O valor encontrado ´e anexado a este bloco entre parˆenteses e em formato hexadecimal. Este processo ´e feito at´e o esgotamento da mem´oria RAM. Os valores de pixel adquiridos pela cˆamera s˜ao armazenados em vari´aveis de 16 bit, portanto para cada pixel enviado via serial s˜ao utilizados dois bytes, primeiro o mais significativo depois o menos significativo. O formato final dos dados por batelada ´e do tipo:
[ agrupamento1 (CRC) · · · agrupamenton (CRC) ]
1 byte 208 bytes 6 bytes · · · 208 bytes 6 bytes 1 byte
Onde o tamanho do agrupamentox ´e de 208 Bytes, o que equivale a informa¸c˜ao de 104
6.4. PROTOCOLO 113
6.4.4
Fun¸c˜oes Dispon´ıveis
O protocolo desenvolvido possui uma s´erie de mnemˆonicos dispon´ıveis. As fun¸c˜oes implementadas at´e o momento bem como suas descri¸c˜oes est˜ao discriminadas na Tabela 6.2.
Mnemˆonico Descri¸c˜ao
PIXN Lˆe Pixel n da mem´oria RAM e transfere pela Serial/USB
TEMP Lˆe temperatura do microcontrolador e transfere pela Serial/USB
GANZ Zera os ganhos dos canais R,G e B
GANR Ajusta o ganho do canal R para o valor do argumento enviado
GANG Ajusta o ganho do canal G para o valor do argumento enviado
GANB Ajusta o ganho do canal B para o valor do argumento enviado
OFFZ Zera os offsets dos canais R,G e B
OFFR Ajusta o offset do canal R para o valor do argumento enviado
OFFG Ajusta o offset do canal G para o valor do argumento enviado
OFFB Ajusta o offset do canal B para o valor do argumento enviado
RPTR Envia ´ultimo pacote transmitido via USB/serial
ERRO Envio/recep¸c˜ao de mensagem de erro
INTT Ajusta tempo de integra¸c˜ao de cargas
MEMD Apaga todos os valores dos pixels da mem´oria RAM
CALI Inicia rotina de calibra¸c˜ao de ganho e offset autom´atico
PIXH Ajusta n´umero total de pixels horizontais do CCD
PIXV Ajusta n´umero total de pixels verticais do CCD
TEST Testa a mem´oria RAM do sistema
PRTA Envia byte para sa´ıda de potˆencia da cˆamera
PRTB Envia byte para sa´ıda digital da cˆamera
I2CD Envia argumento pelo protocolo I2C
PXHE Ajusta n´umero de pixels chanfrados horizontais
PXHL Ajusta n´umero de pixels optical black horizontais
PXVE Ajusta n´umero de pixels chanfrados verticais
PXVL Ajusta n´umero de pixels optical black verticais
PXBT Requisi¸c˜ao de envio de pixels por batelada
CRC? Liga ou desliga CRC do pacote
CLMP Liga ou desliga grampeamento durante condicionamento
LEIA Inicia medi¸c˜ao com a cˆamera
REPT Requisi¸c˜ao de repeti¸c˜ao de envio do ´ultimo pacote
PMTO Envia configura¸c˜oes gravadas na RAM do uC via serial/USB
APRE Envia apresenta¸c˜ao da cˆamera pela serial/USB
HELP Envia comandos dispon´ıveis pela serial/USB
AJGA Ajusta ganho automaticamente
AJOF Ajusta offset automaticamente
ACKN Mensagem de entendimento
TIC! Requisi¸c˜ao de presen¸ca de hardware
TAC! Resposta esperada ap´os receber TIC!
114 CAP´ITULO 6. CONECTIVIDADE
6.4.5
Parˆametros Esperados
Cada ordem enviada pelo mestre, al´em de conter um argumento complementar a fun¸c˜ao, recebe algum tipo de resposta do escravo. As respostas e argumentos esperados para cada fun¸c˜ao est˜ao descritas na Tabela 6.3.
Fun¸c˜ao Argumento Esperado Resposta Esperada
PIXN Posi¸c˜ao do pixel do CCD, Valor de 0000h a 0800h Valor do Pixel entre 0 e FFFFh
TEMP Qualquer valor Temperatura do microcontrolador
GANZ Qualquer valor #UPGANZ0000....%
GANR Faixa entre 00h e 3Fh, onde 00h=1x e 3Fh=4.8x ? Mesmo valor enviado
GANG Faixa entre 00h e 3Fh, onde 00h=1x e 3Fh=4.8x ? Mesmo valor enviado
GANB Faixa entre 00h e 3Fh, onde 00h=1x e 3Fh=4.8x ? Mesmo valor enviado
OFFZ Qualquer valor #UPOFFZ0000....%
OFFR Entre 000h e 3FFh, 000h=-0.5V, 200h=0V e 3FFh=+0.5V Mesmo valor enviado
OFFG Entre 000h e 3FFh, 000h=-0.5V, 200h=0V e 3FFh=+0.5V Mesmo valor enviado
OFFB Entre 000h e 3FFh, 000h=-0.5V, 200h=0V e 3FFh=+0.5V Mesmo valor enviado
RPTR Qualquer valor Ultimo pacote enviado´
ERRO Qualquer valor #UPERRO0000....%
INTT Faixa entre 0000h e FFFFh Mesmo valor enviado
MEMD Qualquer valor #UPMEMD0000....%
CALI Qualquer valor #UPCALI0000....%
PIXH Faixa entre 0000h e FFFFh Mesmo valor enviado
PIXV Faixa entre 0000h e FFFFh Mesmo valor enviado
TEST Qualquer valor #UPTEST0000....%
PRTA Faixa entre FF00h e FFFFh - porta negada Mesmo valor enviado
PRTB Faixa entre FF00h e FFFFh - porta negada Mesmo valor enviado
I2CD Valor entre 0000h e FFFFh #UPACKNI2CD....%
PXHE Faixa entre 0000h e FFFFh Mesmo valor enviado
PXHL Faixa entre 0000h e FFFFh Mesmo valor enviado
PXVE Faixa entre 0000h e FFFFh Mesmo valor enviado
PXVL Faixa entre 0000h e FFFFh Mesmo valor enviado
PXBT Qualquer valor Todos os pixels da RAM
CRC? #UPCRC?00003F7B% para desligar 1111 ou 0000
CLMP 1111h para ligar, 0000h para desligar Mesmo valor enviado
LEIA Qualquer valor #UPLEIA0000....%
REPT Qualquer valor Ultimo pacote enviado´
PMTO Qualquer valor Envia v´arios pacotes de configura¸c˜ao
APRE Qualquer valor Envia tela de apresenta¸c˜ao da cˆamera
HELP Qualquer valor Envia comandos dispon´ıveis
AJGA Qualquer valor #UPAJGA0000....%
AJOF Qualquer valor #UPAJOF0000....%
ACKN Qualquer valor #UPACKN0000....%
TIC! Qualquer valor #UPTAC!0000....%
TAC! Qualquer valor Nada
Cap´ıtulo 7
Experimento
116 CAP´ITULO 7. EXPERIMENTO
7.1
Primeiros sinais
Ap´os t´ermino da montagem mecˆanica, eletrˆonica e programa¸c˜ao do software foram executados testes de funcionamento da cˆamera digital no laborat´orio de eletrˆonica. O sensor CCD conforme esperado possu´ı uma eficiˆencia quˆantica muito grande, o que torna invi´avel a medi¸c˜ao de espectros nas condi¸c˜oes comuns de ilumina¸c˜ao. Portanto, para um primeiro teste efetuou-se uma medi¸c˜ao com o CCD exposto a luz ambiente e o resultado foi a satura¸c˜ao de todos os pixels. A cˆamera foi ent˜ao alojada em uma caixa que n˜ao permitia a entrada de f´otons e o resultado foi apenas um ru´ıdo de fundo com um baixo n´ıvel DC. Todos estes procedimentos foram acompanhados da monitora¸c˜ao do sinal anal´ogico de sa´ıda do CCD por meio de um oscil´osc´opio e ocorreu conforme o esperado.
Visto estes primeiros sinais e a confirma¸c˜ao do funcionamento eletrˆonico, executou-se ent˜ao outro teste, utilizando uma fita preta, cobriu-se toda a ´area sens´ıvel do CCD. Efetuou- se uma medi¸c˜ao e foi encontrado um resultado semelhante ao medido dentro da caixa selada. Ent˜ao foram feitos cortes na fita preta formando pequenas fendas, permitindo a passagem de m´ınimas quantidades de luz em diminutas ´areas do CCD. O resultado obtido foi um sinal composto de picos e vales, com picos exatamente sobre as fendas que permitiam a passagem de luz, conforme pode ser visto na Figura 7.1.
Figura 7.1: Exemplo de aquisi¸c˜ao com fenda na fita preta
Esses testes foram importantes para perceber fisicamente o n´ıvel de sensibilidade `a luz do sistema montado e planejar como seria a montagem da cˆamera no espectrofotˆometro do LaPO-IF-UFBA.
7.2. CONFIGURAC¸ ˜AO DO EXPERIMENTO 117
7.2
Configura¸c˜ao do Experimento
Para montagem do experimento de leitura de espectros foi utilizada uma parte da es- trutura do espectrometro ´otico fabricado no Laborat´orio de Propriedades ´Oticas do Instituto de F´ısica da Universidade Federal da Bahia (LaPO-UFBA). O trecho do equipamento em- pregado para este experimento consiste em uma fonte de luz, uma rede de difra¸c˜ao e uma lente convergente conforme visto na Figura 7.2.
Figura 7.2: Configura¸c˜ao utilizada pelo espectrofotˆometro montado
A fonte de luz ´e composta de uma lˆampada halo´ogena de 250 W alimentada por uma tens˜ao vari´avel at´e 24 V. A varia¸c˜ao de tens˜ao permite atingir diferentes n´ıveis de intensidade luminosa, o que ´e fundamental para o ajuste do sistema f´ısico e calibra¸c˜ao eletrˆonica da cˆamera digital. Al´em da lˆampada, o conjunto da fonte de luz possu´ı ainda um espelho concavo que projeta a imagem do filamento em um conjunto fenda-lente convergente de um colimador, com objetivo de gerar um feixe paralelo de luz policrom´atica. O feixe paralelo de luz branca ´
e ent˜ao enviado a rede de difra¸c˜ao onde ´e separado em seus diferentes comprimentos de onda. A rede de difra¸c˜ao utilizada ´e plana e possu´ı 590 linhas por mil´ımetro. Ap´os a difra¸c˜ao, o espectro ´e encaminhado a uma lente convergente e ent˜ao incide sobre a cˆamera desenvolvida.
118 CAP´ITULO 7. EXPERIMENTO
Figura 7.3: Estrutura de uma rede de difra¸c˜ao
A rede de difra¸c˜ao utilizada neste equipamento foi produzida de maneira mecˆanica (n˜ao hologr´afica) pela Edmund Optics CO. A estrutura de uma rede de difra¸c˜ao pode ser vista na figura Figura 7.3, nesta ´e poss´ıvel perceber a sua distribui¸c˜ao de camadas e respectivas nomenclaturas. O ˆAngulo de Blaze ´e respons´avel por determinar um parˆametro denominado comprimento de onda de Blaze, que indica qual comprimento de onda de luz render´a a maior eficiˆencia da rede de difra¸c˜ao. A luz com este comprimento de onda ter´a como ˆangulo de difra¸c˜ao o ˆangulo de Blaze, isto se o ˆangulo da luz incidente for igual ao ˆangulo de Blaze. A rede de difra¸c˜ao utilizada ´e regida por uma equa¸c˜ao que permite o calculo do ˆangulo de