Kit experimental de polarização da luz com múltiplos polarizadores

From wwwelab
Jump to navigation Jump to search

Descrição do kit experimental

Vista explodida do kit experimental.
Vista explodida do kit experimental.

A montagem do kit experimental de polarização da luz com múltiplos polarizadores é composta por três componentes principais: (i) a componente mecânica composta por peças de plástico impressas em 3D, cujos desenhos técnicos estão disponíveis aqui, (ii) um raspberry Pi que executa o software de controlo através da internet e ainda realiza o streaming do vídeo, e (iii) a componente eletrónica do controlador escravo de baixo nível que está responsável pela deteção e motorização do kit experimental.

Montagem Mecânica

Vista de cima do kit experimental
Vista frontal do kit experimental

Nesta parte, a montagem mecânica do kit experimental é explicada em detalhe para poder ser corretamente montada.

Ordem de Montagem

1. Verificar se todas as peças necessárias à montagem estão disponíveis.

Peças necessárias para a montagem

2. Retirar os suportes de impressão das polias com a ajuda de pinças ou de um X-Acto.

Retirar os suportes
Retirar os suportes

3. Colocar as correias nas polias.

Correia na polia

4. Ligar as polias aos suportes dos polarizadores. Ouvir um “click” para saber que estão bem ligados. Adicionalmente, colocar os polarizadores nos suportes. (Não esquecer de retirar as películas protetoras dos polarizadores, caso seja necessário)

Posição de ligação das polias com os polarizadores
Polia e polarizador ligados

5. Repetir os passos 2, 3 e 4 até ter a corrente de polias e polarizadores completa. (Não esquecer de ter as correias nas polias, que não estão representadas na figura.)

Corrente de polias e polarizadores

6. Cortar as camadas finas de suporte que tapam os furos das placas principais da estrutura.

Corte das finas camadas de suporte
Placas principais depois de cortadas

7. Juntar dois dos quatro pilares e colocar as porcas nos buracos específicos no topo dos pilares.

Porcas colocadas nos pilares

8. Ligar os dois pilares colocando os parafusos nos furos específicos.

Parafusos colocados
Pilares ligados

9. Juntar as placas principais nesta posição.

Posicionamento das placas principais (igual ao posicionamento da imagem do passo 1

10. Colocar os pilares ligados no canto da junção das placas principais.

Posicionamento dos pilares ligados na junção

11. Colocar os suportes da corrente no outro lado das placas principais, de modo a que fiquem em lados opostos. Verificar se o suporte da corrente está colocado em cima dos furos hexagonais.

Posicionamento do suporte da corrente
Posicionamento do suporte da corrente

12. Colocar as porcas nas "caixas" mais próximas da "parede" do suporte da corrente.

Posicionamento das porcas

13. Colocar os parafusos nos pilares ligados para aparafusar os pilares às placas e ao suporte da corrente.

Colocar os parafusos nos furos destacados

14. Colocar as porcas no resto das "caixas" do suporte da corrente.

15. Colocar os parafusos através das placas principais para aparafusar o suporte da corrente às placas.

Aparafusar os pilares às placas principais e ao suporte da corrente

16. Repetir os passos 7 e 8.

17. Ir para o lado oposto das placas principais e colocar os pilares aparafusados debaixo dos furos circulares.

18. Colocar as porcas dentro das "caixas" superiores dos pilares aparafusados.

19. Colocar o parafuso através das placas principais de modo a aparafusá-las aos pilares aparafusados.

Aparafusar os outros pilares

20. Ligar a corrente aos suportes da corrente, tanto ao aparafusado como ao solto.

Posição da estrutura (corrente + suportes)

21. Colocar as porcas dentro das "caixas" próprias do suporte da corrente que está solto.

22. Colocar os parafusos através dos furos das placas principais para ligar o suporte da corrente solto às placas principais.

Estrutura da corrente aparafusada

23. Escolher um dos pilares ainda não usados e colocar uma porca na "caixa" do meio.

Porca na "caixa" do meio

24. Colocar o pilar debaixo das placas principais num dos cantos.

25. Colocar um parafuso através do furo nas placas principais para juntá-las ao pilar.

Posicionamento do pilar no canto

26. Repetir os passos 23, 24 e 25 até que os quatro cantos da estrutura estejam suportados.

27. Remover os pequenos pilares que tapam a entrada das porcas nas "caixas" da superfície inferior das placas principais.

Remoção dos pequenos pilares
Remoção dos pequenos pilares

28. Colocar as porcas dentro dessas "caixas".

Colocação das porcas na placa principal
Colocação das porcas na placa principal

29. Colocar o suporte do motor de passo por cima dos furos da placa principal onde se puseram as porcas.

30. Colocar os parafusos através dos furos do suporte do motor de passo de modo a ligá-lo à placa principal.

Colocação do suporte do motor de passo na placa principal

31. Repetir os passos 28, 29 e 30 para os outros quatro suportes do motor de passo.

32. Colocar o motor de passo no suporte do motor de passo, pondo primeiro os cabos através do furo superior e inferior do suporte. Depois, apertar/colocar o motor de passo até se ouvir um click para garantir que este está fixo na posição correta. NOTA: a ligação dos cabos depende do driver, não é confiável usar as cores dos cabos.

Posição de entrada dos cabos

33. Repetir o passo 32 para os outros quatro motor de passo.

Posicionamento do motor de passo

34. Colocar a correia na polia.

35. Ligar a polia (com a correia) ao motor de passo.

Colocação do motor de passo com a correia

36. Apertar a polia do motor de passo.

Apertamento da polia

37. Ajustar a posição do suporte do motor de passo de modo a garantir que a correia está à tensão.

Suporte do motor de passo demasiado perto da corrente (correia está com folga)

38. Apertar os parafusos do suporte do motor de passo de modo a fixá-lo.

Segurador do motor de passo na posição correta

39. Repetir os passos 34, 35, 36, 37 e 38 para os outros quatro suportes dos motores de passo.

40. Montagem Completa.

Circuito Eletrónico

Este kit experimental tem duas componentes eletrónicas principais, (i) os drivers para os motores do motor de passo e (ii) a fonte de luz e deteção.

Montagem da Componente Eletrónica

1. Verificar se todas as peças necessárias à montagem da componente eletrónica estão disponíveis.

Peças necessárias para a montagem da componente eletrónica.

2. Pegar na base esquerda da componente eletrónica (verificar a imagem abaixo) e usar um ferro de solda para inserir os insertos roscados nos furos da base, através do processo de inserção térmica.

Base esquerda da componente eletrónica.
Inserção térmica.

3. Pegar na caixa do Arduino Mega (verificar a imagem abaixo) e aparafusá-la à base da componente eletrónica.

Caixa do Arduino Mega.

4. Usar um ferro de solda para inserir os insertos roscados nos furos da caixa, através do processo de inserção térmica.

Furos da caixa do Arduino Mega.

5. Pegar num dissipador de calor.

Dissipador de Calor.

6. Retirar a película de papel.

Retirar a película de papel.
Retirar a película de papel.

7. Colar o dissipador de calor ao driver do motor de passo.

Colagem do dissipador de calor.
Colocação do dissipador de calor.

8. Repetir os passos 1, 2 e 3 para os cinco drivers.

9. Colocar o driver do motor de passo na placa RAMPS 1.4 (RepRap Arduino Mega Pololu Shield)

Placa RAMPS 1.4.
Placa RAMPS 1.4 (vista do software).

10. Certificar que o driver fica bem colocado, ou seja que a ligação ao ground está como indicado na imagem e que o parafuso (potenciómetro) se encontra do lado oposto à fonte de alimentação (no caso dos drivers verdes ou encarnados) ou do lado da fonte de alimentação (no caso dos drivers roxos).

Modelos de drivers.
Colocação do driver roxo (vista do software).
Colocação do driver verde e roxo.

11. Repetir os passos 5 e 6 para os cinco drivers.

RAMPS 1.4 com os drivers colocados.

12. Ligar os interruptores de curso aos cabos.

Ligação dos interruptores de curso aos cabos.

13. Colocar os interruptores de curso no segurador dos interruptores. Garantir que se houve um "click".

Posicionamento dos interruptores no segurador.

14. Ligar os cabos dos motores de passo e dos interruptores de curso aos drivers através da placa RAMPS 1.4. Verificar a ligação dos cabos aos pinos da placa de acordo com a informação presente na subsecção Drivers dos motores de passo.

Colocação dos cabos na placa RAMPS 1.4.
Colocação dos cabos na placa RAMPS 1.4 (vista do software).
Cabos dos interruptores de curso (verde) e cabos dos motores de passo (azul) (vista do software).

15. Montar o circuito elétrico do fotodiodo e do detetor.

File:Photodiode circuit.jpg
Esquema do circuito elétrico do fotodiodo e do detetor.

16. Colocar o circuito elétrico no canto da caixa, posicionando-a de acordo com os furos, e aparafusá-la.

Posicionamento dos interruptores no segurador.

17. Pegar na parte de cima da caixa do Arduino Mega e aparafusá-la à parte de baixo (ter atenção aos cabos ao fechar a caixa).

Parte de cima da caixa do Arduino Mega.

18. Repetir o passo 2 para a base direita.

Base direita da componente eletrónica.

19. Colocar a fonte de alimentação na base direita e aparafusá-la.

Fonte de alimentação.
Vista de cima da fonte de alimentação.

20. Pegar na parte de baixo da caixa do Raspberry Pi e repetir o passo 4.

Caixa do Raspberry Pi.

21. Aparafusar o Raspberry Pi à caixa.

Raspberry Pi.

22. Prender a parte do meio da caixa do Raspberry Pi à parte de baixo.

23. Colocar a tampa para fechar a caixa.

Drivers dos motores de passo

Numeração das ligações a cabo do motor de passo

Os drivers dos motores de passo podem ter múltiplos designs de output de acordo com cada produtor. Os pinos dos motores de passo estão numerados de 1 a 6, da esquerda para a direita da vista frontal (eixo do montor de frente e conector virado para baixo). A posição dos drivers no arduino relaciona-se com os motores de passo de acordo com o seguinte esquema:

Ligação do driver para o motor de passo
5 3 N/A
1 2 4

Usando um cabo próprio, as ligações devem seguir as indicações da tabela em baixo:

Ligações do driver para o motor de passo
Pinos da motherboard Cor dos cabos Pino do motor de passo (A4988) Pino do motor de passo (DRV8825)
2B Encarnado 6
2A Verde
1A Preto
1B  Azul 4

Fonte de luz e deteção

Esquema para a ligação LED PWM com o pino A4 da placa de controlo e do filtro.

O LED encarnado é alimentado por um pino de output PMW (A4) da placa de controlo principal, o que permite uma intensidade da luz variável. O PWM padrão da placa tem uma modulação de 490Hz em passos de 1/256, permitindo uma resolução inferior a 0.5%.

Após passar pela cascata de polarizadores, o sinal é detetado por um fotodiodo. Este fotodiodo é polarizado inversamente com um resistor ligado ao ground para gerar um sinal nulo quando não há luz presente.

Esta frequência tem de ser filtrada por um filtro RC de primeira ordem passa-baixo. Como a constante do tempo é ~1s, é necessário adiar a primeira aquisição para a configuração das tensões do circuito. Assim sendo, o sinal varia suave e lentamente devido à rotação dos polarizadores, e a sobreamostragem está em vigor, é necessário um tempo de estabilização muito menor.

Caminho Óptico

Caminho óptico mostrando o sistema de colimação que permite que a luz passe através da cascata de polarizadores em raios paralelos.

O caminho óptico consiste numa fonte de luz (1) (LED encarnado) colocado no ponto focal de uma lente semiesférica (2) onde os raios de luz são colimados num feixe de luz paralelo.

Depois a luz é polarizada por um polarizador fixo (3) antes de entrar na cascata de polarizadores com inclinação variável (4). Esta cadeia escurece a luz de acordo com cada ângulo do polarizador e, em seguida, passa pela segunda lente para focalizar no detetor, um fotodiodo (6).

Antes de chegar ao fotodiodo, a luz pode passar por um filtro encarnado (5) para diminuir a largura de banda e limitar o ruído externo. Este filtro não é totalmente necessário e pode ser substituído por um papel celofane encarnado ou simplesmente retirado no caso de uma estrutura plástica totalmente opaca.

Alinhamento do Caminho Óptico

A estrutura principal do kit experimental tem a luz a propagar-se em raios paralelos através da cascata de polarizadores. Estes raios, posteriomente, são centralizados no sensor (fotodiodo). Para obter uma boa leitura da relação sinal-ruído é crucial ter esta estrutura perfeitamente alinhada. Assim sendo, a posição linear do LED emissor e do fotodiodo deve ser ajustada de acordo com o seguinte procedimento:

  1. Primeiramente, montar a fonte de luz (LED) e as lentes da estrutura;
  2. Alimentar o LED e seguir a imagem circular emergente do output, ex. projetá-la numa parede afastada um par de metros;
  3. Mover a posição do LED de modo a obter uma imagem de output o mais próxima do tamanho do círculo de saída possível (~30mm);
  4. Instalar a estrutura para a cascata de polarizadores sem colocar as lentes ou películas polarizadoras;
  5. Para focar a luz no fotodiodo, colocar a segunda lente de colimação;
  6. Usando um voltímetro para ler a intensidade da luz recebida pelos terminais do fotodiodo, mover para trás e para a frente a posição do fotodiodo a fim de maximizar o sinal;
  7. Colar firmemente a fonte de luz e o fotodiodo nas suas posições finais.

Calibração do Caminho Óptico

Assim que a montagem mecânica estiver completa, é necessário calibrar a posição absoluta de cada polarizador; efetivamente todos os polarizadores vão ter um pequeno offset, resultando num erro sistemático. Deste modo, é importante anotar os valores dos ângulos que maximizam a transmissividade.

O primeiro polarizador é fixo e deve ser posicionado com um pequeno offset com o intuito de evitar começar a experiência a partir de um máximo, permitindo uma fácil observação de tal máximo. Aconselha-se colocá-lo entre os 15 e os 30 graus e prendê-lo eficazmente, se necessário usando até cola. Depois, começar o procedimento de calibração inserindo o segundo polarizador e rodando-o até que os máximos serem detetados e medidos (normalmente são dois). Anotar o seu valor e deixar o segundo polarizador nessa posição. De seguida, inserir o terceiro polarizador e repetir o procedimento de deteção e anotação dos máximos. Repetir este passo para todos os restantes polarizadores. Todas as vezes que lentes ou películas polarizadoras são instaladas precisam de ser bem fixas ou coladas. No caso do uso da cola, garantir que não danifica as lentes/películas polarizadoras.

No final, uma tabela com os máximos ângulos de transmissão é obtida, indicando o valor de referência para a intensidade máxima na cascata de polarizadores.

Posteriormente, ao realizar experiências, os valores de offset devem ser tidos em conta de modo a eliminar o erro sistemático do sistema.

Software

Para utilizar corretamente a experiência, é necessário que os comandos e a recolha de dados estejam devidamente configurados. Isto pode ser feito de duas formas através da ligação série ao Arduino Mega.

O firmware existente no Arduino é capaz de (i) configurar a experiência (ii) executar e recolher os dados gerados e (iii) executar algumas funções especializadas para testar, calibrar e manter a experiência. Para interagir com o firmware, pode-se usar (i) um código proxy em Python (camada de software de alto nível) capaz de interoperar com o servidor FREE ou (ii) um emulador de terminal como o Minicom, disponível para Linux, que permite enviar e receber dados através da ligação série.

Proxy FREE do Raspberry

O Raspberry Pi é responsável por transmitir o vídeo da experiência e estabelecer comunicação com o Servidor FREE utilizando uma interface proxy. O FREE aloja a interface gráfica do utilizador (GUI) para os clientes. Esta secção fornece uma visão geral do procedimento utilizado para controlar todos os componentes eletrónicos via Arduino, bem como dos protocolos de comunicação entre o Arduino e o Servidor FREE.

Modelo de comunicação entre o Servidor FREE e o Raspberry Pi

A comunicação entre o servidor e a experiência segue o protocolo estruturado do elab, que permite interação em tempo real e troca de dados. O servidor central, Exp Server, atua como intermediário entre os utilizadores e o equipamento experimental (RPi Server). Os utilizadores interagem com o Exp Server através de uma interface web feita com Django, um framework web de alto nível em Python, para configurar e controlar os parâmetros da experiência, enquanto o Exp Server transmite diretamente esses comandos para o sistema experimental. A comunicação entre o Exp Server e o RPi Server ocorre via internet, usando mensagens no formato JSON, garantindo flexibilidade entre diferentes configurações experimentais. A autenticação é realizada na fase de ligação, onde o RPi Server transmite um ID e uma chave secreta para verificação. Após a autenticação, o Exp Server envia um ficheiro de configuração específico da experiência para o RPi Server, que depois estabelece comunicação com o controlador local utilizando o protocolo pré-definido [7]. Ao longo da experiência, o RPi Server troca continuamente atualizações de estado, resultados experimentais e mensagens de erro com o servidor XP, assegurando uma operação sincronizada e acessibilidade em tempo real dos dados para os utilizadores.

Modelo de comunicação entre o Raspberry Pi e o Arduino Mega

Para permitir uma comunicação fluída entre o Arduino e o Raspberry Pi 4, foi implementado o protocolo ReC Generic Drive 11, permitindo ao utilizador externo ter controlo total sobre a experiência e o seu estado através de um conjunto de comandos. O ReC Generic Drive é um protocolo de comunicação genérico desenvolvido para laboratórios remotos, facilitando a interação entre um driver de software e o hardware experimental. Permite uma comunicação eficaz via portas série (RS232), usando mensagens estruturadas onde os comandos do driver são em minúsculas e as respostas do hardware em maiúsculas.

O protocolo garante sincronização através de um sistema de handshaking de mensagens e controlo de tempo limite, suportando funções como identificação, configuração, transmissão de dados, configuração da experiência e reporte de erros.

Fig. 11: Diagrama da máquina de estados do driver ReC Generic Drive [7]

Ao ler a porta série do Arduino a uma taxa de transmissão de 115200 bits por segundo, o utilizador envia uma cadeia de bits (terminando com o carácter ‘\r’). A mensagem de configuração está definida como:

cfg p0 p1 p2 p3 p4 p5 p6 p7\r

Onde p0 define o estado do LED (ligado ou desligado), p1 p2 p3 p4 e p5 definem o ângulo (em passos de 0,36º) no qual a experiência começará a varredura, p6 define qual polarizador será varrido (se não for fazer varredura, então p6 é 0) e p7 define o ângulo limite do polarizador a ser varrido (também em passos de 0,36º) no qual a experiência terminará.

Firmware

A programação foi feita utilizando a linguagem C++ sem quaisquer bibliotecas externas. Para declarar um componente no código, basta fornecer o pino de entrada correspondente e aceder à função enable para o inicializar, bem como à função isTrigger para verificar se o valor lógico lido corresponde ao estado de ativação do componente. Neste caso específico, o interruptor está ativo com um sinal LOW. Como todos os objetos e respetivos componentes precisam de ser inicializados e desligados, cada um tem funções enable/disable correspondentes. Os componentes ligados a pinos de leitura única, declarados com pinMode (como interruptores e fotodíodos), não requerem uma função disable, uma vez que o pinMode não impede a leitura dos pinos, mas sim ajuda a definir o tipo de entrada que está a ser processada.

Para rodar os motores de passos, a operação consiste em enviar um impulso sempre que se deseja uma rotação de 1,8º (0,36º efetivo). Como diferentes valores de RPM requerem diferentes intervalos entre impulsos, a frequência dos impulsos enviados deve ser calculada em conformidade. Para executar uma sequência discreta de passos com base num ângulo em graus, foi implementada a função rotate. O motor roda para o múltiplo inferior mais próximo de 1,8º do ângulo fornecido.

O intervalo de aquisição de dados é crucial para a experiência, uma vez que o objetivo é otimizar a experiência do utilizador minimizando o tempo de espera ao recolher os dados de intensidade da luz e do ângulo de varrimento. Para isso, foi utilizada uma velocidade global de 600 rotações por minuto. Com um limite de varrimento de 324º (como referido anteriormente na Secção III), o tempo de aquisição de dados medido experimentalmente para varrer um ou mais polarizadores em simultâneo foi de aproximadamente 40 segundos.

Para refinar ainda mais as leituras de tensão do fotodíodo, foi implementada uma média aritmética de N pontos na função de leitura da tensão. Ao calcular a média aritmética de 13 pontos do valor medido, o desvio padrão dessa média reduz o desvio padrão original em ≈ 27,14%. Esta redução foi considerada aceitável para a experiência, uma vez que o ajuste dos dados foi bem-sucedido, como será observado na Secção V).

Links