Difference between revisions of "Montagem do Pêndulo de Precisão: Calibração"
Line 186: | Line 186: | ||
===Acesso à gravidade local=== | ===Acesso à gravidade local=== | ||
− | A gravidade local nas grandes cidades é, em geral, bem conhecida e documentada pelas entidades geológicas nacionais, representando, normalmente, o valor mais exato. No entanto, pode realizar-se uma boa comparação recorrendo a harmónicas espaciais calculadas online por algumas calculadoras como esta [https://www.sensorsone.com/local-gravity-calculator/ Calculadora da Gravidade Local] | + | A gravidade local nas grandes cidades é, em geral, bem conhecida e documentada pelas entidades geológicas nacionais, representando, normalmente, o valor mais exato. No entanto, pode realizar-se uma boa comparação recorrendo a harmónicas espaciais calculadas online por algumas calculadoras como esta [https://www.sensorsone.com/local-gravity-calculator/ Calculadora da Gravidade Local]. |
{| | {| |
Revision as of 16:01, 26 August 2021
Contents
Calibração
Medição do cabo
A precisão do pêndulo depende fortemente da medição rigorosa do seu comprimento (~2,8 m) com menos de 0,5 mm de erro. De facto, este é o fator que é crucial para alcançar a precisão desejada de 0,02%. Para isso, é sugerida a utilização de uma fita métrica bem calibrada. Se este método for adotado, há que ter especial atenção para evitar erros de paralaxe. Métodos alternativos, como a medição ultrasónica com mira laser, são os melhores. Nesse caso, é utilizado um plano metálico ou de pedra de mármore, colocado tangencialmente ao peso (permitindo-lhe rolar tocando o plano). Com este método, devem ser feitas algumas medições e o seu valor médio será considerado o comprimento de referência do pêndulo.
A recalibração do comprimento do pêndulo deve ser realizada a cada mês de forma a garantir uma precisão razoável.
A primeira figura demonstra como corrigir o erro inicial da fita métrica eliminando cuidadosamente o erro sistemático que resulta do contacto com a esfera. Depois, a fita passa pelo orifício do suporte do fulcro até chegar à superfície da bola. Devem ser realizadas algumas medições para se obter uma média adequada.
Plano de oscilação
O plano de oscilação tem de ser rigorosamente definido de forma a evitar que, devido a um momento elíptico em vez de plano, ocorram erros de segunda ordem na determinação do período. A força de Coriolis não pode ser evitada mas esta só influenciará significativamente o movimento se este ocorrer por períodos muito longos (>15 min).
De forma a conseguir estabelecer corretamente o plano, qualquer força tangencial durante o lançamento deve ser evitada. Para tal, tem de existir um alinhamento perfeito da pá com o plano de oscilação.
Paralelismo do piso com os triângulos superior e inferior
A primeira calibração consiste em conseguir um paralelismo aproximado entre os triângulos estruturais superior e inferior. Para tal, e estrutura deve ser colocada num piso liso e deve realizar-se um aperto final dos parafusos que confira rigidez à estrutura.
Depois, nivela-se o triângulo superior usando o próprio pêndulo, deixando-o na posição central do triângulo inferior e a ~10-12 cm da face posterior; para uma primeira aproximação, deve ser usado um nivelador de bolha de ar na direção ortogonal do plano oscilatório. Mais tarde, deve realizar-se uma afinação mais fina do pêndulo de acordo com a posição do sensor fotoelétrico. Assim, é garantido que o pêndulo viaja exatamente pelo meio do sensor.
Movimento do pêndulo pela excitação no fulcro
Depois de posicionar definitivamente a estrutura e de ter o pêndulo em repouso, inicie uma oscilação suave (movimento lento), excitando o pêndulo no fulcro, no topo, a fim de definir o plano de oscilação.
- Em primeiro lugar, assegure que esta oscilação é mais ou menos paralela ao lançador/parede, rodando o suporte do fulcro.
- Com a ajuda de uma lanterna (i) na frente da pá/pêndulo e (ii) colocando um papel branco com uma linha preta vertical central no topo da pá, na origem (iii) ajuste os parafusos de inclinação horizontal do lançador até que a plataforma do lançador esteja perfeitamente alinhada com o plano de oscilação. Isto pode ser verificado facilmente se o centro da sombra do pêndulo não se mover na horizontal e se a sombra do cabo não se desviar da linha preta do papel.
Consola da interface para o microcontrolador
O microcontrolador fornece um menu que permite ao utilizador definir os parâmetros da experiência e executar funções predefinidas para configuração e testes. A interface entre o utilizador e o microcontrolador é realizada através da ligação em série RS-232, com os seguintes parâmetros:
• Baud-rate: 115200 bps • Parity: No • Data bits: 8 • Stop bits: 1
Verifique se tem outra aplicação que utiliza o dispositivo correspondente. Pode ter o daemon JAVA a funcionar, impedindo o acesso à porta-série. Em caso afirmativo, este deve ser parado (executando o comando com a bandeira STOP) antes de executar a aplicação de minicom, como no exemplo seguinte (adapte à sua localização):
elab@WP-RAI:~ $ /home/wpa/rec-deployment/wpunicvrai/wpunicvraiDaemon.sh Stop
Depois de alguma manutenção onde foi necessário parar este daemon, este deve ser reiniciado através do comando recíproco:
elab@WP-RAI:~ $ /home/wpa/rec-deployment/wpunicvrai/wpunicvraiDaemon.sh Stop
Como exemplo, a consola "minicom" pode ser utilizada para comunicar com o microcontrolador. No RaspberryPi, esta interface pode ser chamada a partir do seguinte comando:
minicom -D /dev/ttyS0
ou
minicom -D /dev/ttyAMA0
O "/dev/ttyS0" ou "/dev/ttyAMA0" representa a localização do dispositivo (microcontrolador). O programa minicom criará uma ligação em série com os parâmetros-padrão que, em princípio, são os mesmos que os mencionados acima. Caso contrário, recorra à página de ajuda do programa minicom (escreva "man minicom") para ver como definir esses parâmetros. Depois de iniciar o programa, não se esqueça de adicionar uma quebra de linha para que as mensagens enviadas pelo microcontrolador surjam em novas linhas. No minicom, a quebra de linha é ativada/desativada premindo Ctrl+a seguido de a'. Uma vez estabelecida a comunicação (ligação), é possível aceder ao menu do microcontrolador através do envio:
? (question mark followed by an enter hit)
ou
help (“help” followed by an enter hit)
O output será semelhante ao que é mostrado na figura seguinte:
Cada comando deve ser seguido por uma quebra de linha - "\r" (premir ‘Enter’) para que o microcontrolador processe a cadeia enviada. A tecla ‘Enter’ também limpa o buffer de entrada do microcontrolador, de forma a que também possa ser utilizado para esse fim. As palavras nos comandos são separadas por um único caracter de espaço, exceto para o comando "cfg deltaX[...] N[...]" onde as palavras/inputs são separadas por um único caracter ‘tab’ "\t". Se o comando enviado for sucessivamente recebido, o microcontrolador responderá devolvendo o comando em maiúsculas. Se o comando for executado sucessivamente, o microcontrolador responderá com um OK.
Os "[ ]" (parêntesis retos) nos comandos definem o intervalo de valores de entrada aceites. A representação numérica destes limites indica o tipo de valor aceite, isto é, inteiro ou flutuante. Se o valor limite contiver uma casa decimal, os valores aceites para esse parâmetro são flutuantes. Se o valor limite não possuir uma casa decimal, os valores aceites são apenas números inteiros. Ver os seguintes exemplos:
cfg deltaX[5:25] N[10:1000] -> cfg 15 30 set maximum position %lf [40.0 60.0] (cm) -> set maximum position 47.7 set catch ball delay %d [1 2000] (ms) -> set catch ball delay 300 set pulley diameter %lf [1.0 4.0] (cm) -> set pulley diameter 2.356 set ID string %s [maximum length of 32 characters] -> set ID string WORLD_PENDULUM_LISBON cur -> cur go to origin speed[1.0:50.0] acceleration[1.0:150.0] -> go to origin 11.5 41.1 move forward deltaX[1:50.0] speed[1.0:50.0] acceleration[1.0:150.0] -> move forward 4.5 2.2 2.0
Antes de ligar o microcontrolador, é importante realizar duas medições de posição (máxima e vertical). O procedimento para a medição destas posições é descrito em Definição de parâmetros específicos para a experiência.
Comandos relacionados com o autómato e comunicação com o driver do e-lab (programa Java a correr no RaspberryPi):
- cur: Pede a configuração atual ao microcontrolador. O microcontrolador responde com o seguinte:
- str: Altera o estado do microcontrolador para STARTED e inicia uma experiência, isto se tiver sido previamente configurado usando um comando "cfg". Uma vez iniciada a experiência, o microcontrolador emitirá os dados no seguinte formato: 1ª coluna - ordem/nº dos dados, 2ª coluna - período (s), 3ª coluna - g (m/s²), 4ª coluna - velocidade na localização do laser (cm/s), 5ª coluna - temperatura ambiente (ºC). Ver a figura abaixo para ilustração:
- stp: Interrompe uma experiência e remete o microcontrolador para o estado STOPED
- rst: Reinicia o microcontrolador e remete o mesmo para o estado RESET
- ids: Pede ao microcontrolador para enviar as suas identificações. Por exemplo: IDS WP_LIS STOPED
- cfg: Envia a configuração para uma nova experiência. Este comando aceita dois parâmetros inteiros: 1º - deslocamento inicial em cm, 2º - número de oscilações
Comandos para executar funções predefinidas, úteis para calibrações e testes:
- stop ball: Este comando é utilizado para parar a oscilação da bola. Depois de parar a bola, a pá está na posição de repouso no fotodiodo.
- prepare launch: Este comando aceita um número inteiro que corresponde ao deslocamento inicial (amplitude máxima) antes de soltar a bola. O comando desloca a pá para a posição pedida e repousa nessa posição.
- launch ball: Este comando liberta a bola enviando a pá para a origem na sua velocidade máxima.
- test laser: Esta função é utilizada para testar simultaneamente o laser e o fotodíodo. Em Teste do laser e do sensor fotoelétrico pode encontrar uma descrição mais detalhada deste comando, bem como procedimentos a verificar no caso de um teste falhado.
- go to origin: Este comando aceita duas entradas: 1º - velocidade em cm/s (duplo) e 2º - aceleração em cm/s² (duplo). Envia a pá para a origem (até chegar ao microinterruptor).
- move forward: Este comando aceita três entradas: 1º - deslocamento horizontal em cm (duplo), 2º - velocidade em cm/s (duplo) e 3º - aceleração em cm/s² (duplo). Desloca a pá em frente (para longe da origem).
- move backward: Este comando aceita três entradas: 1º - deslocamento horizontal em cm (duplo), 2º - velocidade em cm/s (duplo) e 3º - aceleração em cm/s² (duplo). Desloca a pá no sentido inverso do comando anterior (em direção à origem).
- move to photodiode: Este comando aceita duas entradas: 1º - velocidade em cm/s (duplo) e 2º - aceleração em cm/s² (duplo). Envia a pá para o fotodíodo se a pá estiver para além deste, na direção da frente. Se a pá estiver entre o fotodíodo e a origem, o comando envia a pá para a origem (até chegar ao microinterruptor).
- light bulb on: Acende a lâmpada para iluminar a experiência.
- light bulb off: Apaga a lâmpada.
- laser on: Acende o laser.
- laser off: Apaga o laser.
- reboot: Executa um reset do software para o microcontrolador. Antes de reiniciar, o microcontrolador armazena o número atual de oscilações na memória flash.
Comandos para definir os parâmetros específicos da experiência (ver secção Definição de parâmetros específicos para a experiência para mais detalhes). São guardados na memória flash, para que não se percam no caso de falha de energia:
- set maximum position: Guarda a posição máxima absoluta permitida da pá em cm (posição que é mecanicamente impossível de ultrapassar na direção da frente).
- set sphere diameter: Guarda o diâmetro da esfera em cm, medido no plano equatorial.
- set pendulum length: Guarda o comprimento do pêndulo. Ver Medição do fio para detalhes sobre como medir o comprimento do fio. IMPORTANTE: o comprimento do pêndulo deve incluir o raio da bola.
- set origin position: Guarda a posição da pá quando localizada na origem, ou seja, quando a pá é parada pressionando o microinterruptor.
- set vertical position: Guarda a posição da pá quando o pêndulo (bola + corda) está perfeitamente vertical.
- set photodiode position: Guarda a posição da pá quando localizada no local do fotodíodo.
- set catch ball delay: Guarda o atraso utilizado para apanhar (parar) a bola quando esta oscila com uma amplitude relativamente grande. NOTA: Este parâmetro já não é utilizado nas versões recentes de firmware porque o microcontrolador já é capaz de apanhar automaticamente a bola com base na sua velocidade. Para que a captura da bola funcione corretamente, assegure-se de que o alinhamento desta é definido como especificado nos esquemas de Ordem da montagem e enchimento com areia.
- set pulley diameter: Guarda o diâmetro da roldana presa ao motor de passo. Este valor é utilizado para calibrar o deslocamento da pá.
- set display intensity: Guarda a intensidade luminosa do monitor. Este valor deve ser definido de forma a que os números sejam visíveis/legíveis na transmissão de vídeo quando a experiência está a decorrer, ou seja, quando a lâmpada está ligada. 0 é a intensidade mínima e 15 é a máxima.
- set global oscillation counter: Guarda o número total de oscilações. Também é utilizado para anular/reiniciar o contador.
- set ID string: Guarda a cadeia de identificação da experiência (nome da experiência). A cadeia de caracteres é limitada a um máximo de 32 caracteres.
Valores/parâmetros atuais para informação:
- expected period: Mostra o período de oscilação esperado, em segundos. Este valor é calculado com o comprimento do pêndulo e é essencial para o bom funcionamento do aparelho experimental.
- uptime: Mostra o tempo, em segundos, desde o momento em que o microcontrolador foi ligado.
- shovel is at origin: Indica se a pá se encontra na origem (yes/no).
- shovel is at photodiode: Indica se a pá se encontra no fotodíodo (yes/no)
- laser is on: Indica se o laser está ligado (yes/no).
- photodiode is on: Indica se o fotodíodo está acesso (a conduzir) ou apagado (a não conduzir). A saída será, yes/no, respetivamente.
- temperature: Indica a temperatura em graus Celsius. O sensor de temperatura está localizado na caixa DB25, ligado à placa do microcontrolador.
- ERR 1: Indica que existe um problema com o laser ou com o sensor fotoelétrico. Ver Teste do laser e do sensor fotoelétrico para mais detalhes e procedimentos de resolução.
- ERR 2: Indica que existe um problema com o microinterruptor. Ver |Conexões para verificar se o microinterruptor está devidamente ligado.
Teste do laser e do sensor fotoelétrico
O microcontrolador tem uma função dedicada (acessível a partir do menu da consola) para testar simultaneamente o laser e o sensor fotoelétrico. Esta função consiste em piscar o laser 5 vezes com um período completo de 100 ms (500 ms no total). Se o sensor detetar corretamente o estado do laser, o teste será bem sucedido. Para executar manualmente este teste, basta digitar o comando "test laser" na consola. No seu início, o microcontrolador executa a função de teste do laser e do sensor fotoelétrico para assegurar que ambos os componentes estão a funcionar corretamente. Se o teste falhar, o microcontrolador devolve o código de erro "ERR1". Este erro pode estar associado a um ou mais dos seguintes problemas:
- Ligações elétricas erradas: verifique a secção Conexões para assegurar que tanto o laser como o sensor estão devidamente ligados ao microcontrolador.
- Alinhamento incorreto do laser com o sensor: verifique se a luz laser está devidamente apontada para o furo da estrutura do sensor e, se necessário, ajuste como descrito na secção #Alinhamento do laser e sensor fotoelétrico.
- O sensor fotoelétrico está em condução permanente: se a luz ambiente for demasiado intensa ou se alguma outra fonte de luz que não o laser estiver a atravessar o orifício da estrutura com intensidade suficiente, pode acontecer que este esteja sempre a conduzir tornando impossível ao microcontrolador distinguir entre os estados ON e OFF do laser. Neste caso, a solução é reduzir a luz ambiente ou mudar a orientação da experiência para que o sensor receba menos luz.
- Laser desfocado: se o laser não estiver devidamente focado, a intensidade da luz pode não ser suficiente para ativar o sensor. O laser pode ser focado rodando ligeiramente a sua lente (para um lado ou para o outro): rodar até que o ponto vermelho seja o mais pequeno possível, abaixo de 1mm, a uma distância de ~150mm. Para rodar a lente, é necessário retirar o laser do seu suporte. O laser é fixado apenas por pressão e, em alguns casos, com uma gota de cola ou verniz. IMPORTANTE: Não desaparafuse completamente a lente do corpo, pois isso danificará o laser. Nunca segure a ‘Parte A’ do laser pela pequena placa de circuito impresso.
Depois de tentar corrigir o erro, volte a executar o teste para verificar se o problema está resolvido.
Definição de parâmetros específicos para a experiência
Alguns dos parâmetros reguláveis são essenciais para o funcionamento correto e seguro do lançador e da experiência na sua globalidade. Esta subsecção descreve como medir e definir cada um dos parâmetros. Os seguintes parâmetros reguláveis devem ser medidos com o microcontrolador desligado. Estes parâmetros são:
- maximum position: A posição máxima da pá é medida deslocando lentamente a pá com a mão para a extremidade da estrutura deslizante (até que o deslizador esteja totalmente estendido). Quando a pá atinge a posição final (quando não se consegue mover mais), registe a sua posição absoluta lendo o valor na escala fixada no lançador, com a ajuda do indicador acoplado à pá.
- vertical position: Esta posição é obtida quando o pêndulo (bola + corda) está perfeitamente vertical. Para isso, mova lentamente a pá no sentido inverso (em direção à origem ou microinterruptor), até que tenha passado a posição vertical do pêndulo. Espere que a bola pare totalmente. A partir daí, aproxime a pá em direção à bola até tocar na mesma, sem a deslocar. Registe a posição absoluta da pá lendo o valor na escala métrica fixada no lançador, com a ajuda do indicador acoplado à pá.
Uma vez medidos os parâmetros acima, ligue o microcontrolador, ligando o Raspberry Pi. Durante o arranque, o microcontrolador efetua alguns testes iniciais. Antes de tentar enviar comandos para o controlador, aguarde até que estes testes estejam concluídos. Entretanto, configure a ligação da consola para receber mensagens do controlador. Assim que o controlador estiver a enviar a sua cadeia de identificação ou um código de erro, este termina o arranque e já é possível definir os parâmetros específicos para a experiência.
Para isso, utilize os comandos acima descritos. Segue-se um exemplo:
set maximum position 47.7
Se o comando foi enviado e interpretado com sucesso, o microcontrolador deve responder da seguinte forma:
Realize o mesmo procedimento para a posição vertical.
- sphere diameter: O diâmetro da esfera deve ser medido no plano equatorial da bola, onde o laser aponta para a mesma. Se não for mencionado ou impossível de medir, considere 8 cm, que deve ser uma medida suficientemente próxima das esferas normalmente utilizadas. Esta medição é utilizada principalmente para a determinação da velocidade do pêndulo no local do laser. Uma vez medido o diâmetro da esfera, guarde o valor na memória flash do microcontrolador, utilizando o comando "set sphere diameter". Realize "múltiplas leituras equatoriais" em diferentes posições e considere o seu valor médio porque a esfera é muito provavelmente uma elipsóide!
- pendulum length: O procedimento para medir o fio é descrito em Medição do fio. Depois, o raio da esfera/bola (na direção vertical, ou seja, ao longo da direção do fio) deve ser adicionado ao comprimento da corda, resultando no comprimento do pêndulo. A unidade deste comprimento é o metro (ao contrário das outras que são centimétricas). Uma vez medido o comprimento do pêndulo, guarde o valor na memória flash do microcontrolador, utilizando o comando "set pendulum length".
- origin position: Esta é a localização da pá quando esta é parada pelo microinterruptor (ver figura abaixo). Para medir esta posição:
- envie a pá para a origem utilizando o seguinte comando:
go to origin 2 2
- uma vez parada a pá, registe a posição absoluta da pá lendo o valor na escala métrica fixada no lançador, com a ajuda do indicador acoplado à pá.
- guarde o valor medido (xx.xx) na memória flash do microcontrolador, usando o comando "set origin position".
- pulley diameter: O diâmetro da roldana que está ligada ao motor de passo é utilizado para calibrar o deslocamento da pá. Um bom palpite inicial pode ser obtido medindo diretamente o seu diâmetro, como mostra a figura abaixo. Após guardar este parâmetro no microcontrolador, deve ser efetuada uma calibração mais precisa, descrita abaixo:
- mova a pá para a origem utilizando o comando "go to origin 2 2"
- utilize o comando "move forward" pedindo um deslocamento de 40 cm, por exemplo "move forward 40 2 2" (uma velocidade de 2 cm/s é suficientemente lenta para garantir uma boa calibração)
- verifique quanto foi o deslocamento real: posição alcançada - posição de origem
- se o deslocamento real for diferente do pedido (por mais de 1 mm) escale linearmente o diâmetro da roldana para que estes passem a corresponder. Utilize a fórmula:
[math] New\;pulley\;diameter = Old \; pulley \; diameter \cdot \frac{Actual \; displacement}{Requested \;displacement} [/math]
- guarde o novo "diâmetro da roldana" no microcontrolador utilizando o comando "set pulley diameter"
- reenvie a pá para a origem usando o comando "go to origin 2 2"
- verifique a correção feita utilizando novamente o comando "move forward" e pedindo um deslocamento de 40 cm. Desta vez, a posição alcançada deve corresponder a um deslocamento de 40 cm.
- photodiode position: A posição do fotodíodo corresponde à localização da pá quando esta é parada no fotodíodo, como está ilustrado na figura abaixo. O procedimento para obter esta posição é o seguinte:
- posicione a pá para além do fotodíodo e do laser (na direção da frente). Isto pode ser conseguido utilizando o comando "move forward", como anteriormente.
- envie a pá para o fotodíodo usando o comando "move to photodiode", por exemplo, "move to photodiode 2 2" (de forma a usar uma velocidade pequena de 2 cm/s)
- uma vez parada a pá, registe a posição na escala métrica e guarde-a no microcontrolador usando o comando "set photodiode position"
- [[File:photodiode_position.png|x100px|Posição do fotodíodo]
Após definir todos os parâmetros, verifique se foram devidamente guardados no microcontrolador, escrevendo "?" ou "ajuda" na consola:
- [[File:setting_parameters_check.png|200px|Set de parâmetros]
Acesso à gravidade local
A gravidade local nas grandes cidades é, em geral, bem conhecida e documentada pelas entidades geológicas nacionais, representando, normalmente, o valor mais exato. No entanto, pode realizar-se uma boa comparação recorrendo a harmónicas espaciais calculadas online por algumas calculadoras como esta Calculadora da Gravidade Local.
Página anterior (Gestão de Software)