Após os primeiros testes preliminares, decidimos tentar alguns aprimoramentos para nosso protótipo. A primeira delas envolve a programação do servo. Medimos a distância do eixo do servo em relação ao LDR = 3,9 cm. Como o servo segue um movimento circular, decidimos avaliar o espaço percorrido pelo servo, usando a fórmula de comprimento da circunferência (Cc=2.Pi.r) e, depois, por meio de uma regra de 3, calcular o espaço. Concluímos que o espaço percorrido pelo sensor no orifício era de 3,4 cm, a mesma distância total dos pontos medidos pelo colimador.
Isso nos motivou a refazer o experimento aumentando o ângulo de movimento do servo usando como base as medidas do experimento do led com luz: PI = 0, PC = 2,4 cm e PS = 6 cm, correspondendo a posição do servo inicial em 80º e terminando o movimento em 150º, em apenas um movimento, pois, no teste anterior, o servo ficava indo e voltando, gerando vários números. Para fazer isso mudamos a programação, colocando o movimento do servo no setup. Como toda vez que você liga o Serial Monitor o Arduino reseta, fica mais fácil fazer a curva de leitura. A parte da programação que foi mudada foi em negrito. Não utilizamos amostra neste teste, somente nossa cubeta (tubo de ensaio) vazio.
#include <Servo.h>
Servo myservo;
int pos = 80;
void setup()
{
myservo.attach(9);
Serial.begin (9600) //iniciar a comunicação serial
for(pos = 80; pos <= 175; pos += 1)
{
myservo.write(pos);
delay(15);
//leitura do LDR
int ldr = analogRead (A0);
//envia dados para o serial monitor
Serial.print (pos);
Serial.print ("\t");
Serial.println ("ldr");
}
}
void loop()
{
// Vazio
}
[Gráficos]
Após realizar este experimento e analisar os gráficos, decidimos experimentar realizar os experimentos com as informações que tínhamos sobre a posição dos espectros, gerando o gráfico apenas nos pontos onde se formava o espectro, com 3 leituras - PI, PC e PS.
Por conta disso precisamos calcular as posições onde o servo faria a leitura do sensor de LDR conforme abaixo:
Ponto Inferior (PI) - 0 cm = 80 º até 0,5 cm = 87º
Ponto Central (PC) - 2 cm = 116º até 2,5 cm = 123 º
Ponto Superior (PS) - 4,5 cm = 153º até 5,0 cm = 160º
Segue o programa do experimento realizado;
#include <Servo.h>
Servo myservo;
int pos = 80;
void setup()
{
myservo.attach(9);
Serial.begin (9600) //iniciar a comunicação serial
Serial.println (Ponto Inferior);
for(pos = 80; pos <= 87; pos += 1)
{
myservo.write(pos);
delay(15);
//leitura do LDR
int ldr = analogRead (A0);
//envia dados para o serial monitor
Serial.print (myservo.read ());
Serial.print ("\t");
Serial.println ("ldr");
}
delay (500); // este delay serve para identificar o início da leitura do ldr
Serial.println (Ponto Central);
for(pos = 116; pos <= 123; pos += 1)
{
myservo.write(pos);
delay(15);
//leitura do LDR
int ldr = analogRead (A0);
//envia dados para o serial monitor
Serial.print (myservo.read ());
Serial.print ("\t");
Serial.println ("ldr");
}
delay (500); // este delay serve para identificar o início da leitura do ldr
Serial.println (Ponto Superior);
for(pos = 153; pos <= 160; pos += 1)
{
myservo.write(pos);
delay(15);
//leitura do LDR
int ldr = analogRead (A0);
//envia dados para o serial monitor
Serial.print (myservo.read ());
Serial.print ("\t");
Serial.println ("ldr");
}
delay (500); // este delay serve para identificar o início da leitura do ldr
}
void loop()
{
// Vazio
}
[Colocar os gráficos aqui]
Após 2 semanas de trabalho árduo desenvolvemos nosso primeiro protótipo. Primeiro fizemos um colimador usando um tubo de pvc, um laser de loja de bugiganga e uns parafusos para firmá-lo. O objetivo desse aparelho foi determinar a distância do sensor em relação a nossa "cubeta" (tubo de MM), onde está nossa rede de difração (CD), que foi de 3 cm e a distância.
Após essa determinação, usamos um suporte com uma folha branca para determinar a distância entre os sulcos do CD (d), conforme esta metodologia: http://www.pucsp.br/webduino/experimentos/espectrofotometro-remoto-automatizado/faca-voce-mesmo.html.
Identificamos 3 pontos na superfície: o ponto central (PC), maior marca do laser, o ponto superior (PS) e o ponto inferior (PI). A distância entre o PI e o PC foi igual 1,9 cm e a distância entre o PC e o PS foi de 1,5 cm. A distância entre o PI e o PS é igual, portando, a 3,4 cm. Agora estamos na fase de cálculos do d, conforme a fórmula abaixo:
para N=1.
Fonte: http://www.pucsp.br/webduino/experimentos/espectrofotometro-remoto-automatizado/faca-voce-mesmo.html
Após estes testes não resistimos a tentação de ajustar nosso espectrofotômetro. A primeira coisa que identificamos foi que, nossas distâncias, estavam erradas. Tentamos calcular o ponto focal de nossa lente de 75 mm mas não encontramos um método teórico para isso. Então determinamos o ponto focal da lente usando o método "tabajara": ligamos o led e fomos movendo a lente até achar o ponto focal, o que deu uma distância de 2 metros. Como nosso "equipamento" estava ficando imenso pois estava com quase 3 metros, decidimos tentar usar 2 lentes convergentes, ajustando o foco. Isso fez com que o equipamento ficasse bem menor, 1,5 metros, e resolvesse o problema do tamanho.
Após esse ajuste do ponto focal, decidimos então medir a distância que o espectro formava no anteparo, já sabendo que a distância entre a cubeta e o sensor deveria ser em torno de 3 cm, obtido no experimento do colimador e sulcos do CD. Posicionamos as "partes" do nosso espectro e ajustamos as lentes para o ponto focal ficar sobre a nossa rede de difração (CD) e obtivemos a imagem abaixo:
Como se pode ver, o espectro do PI está meio torto. Mas obtivemos 2 espectros, nas posições encontradas nas posições dos dados obtidos no teste do colimador. Usando a régua, conseguimos obter a posição aproximada do espectro - o espectro inferior está a 1,9 cm do ponto central (PC) e tem cerca de 5 mm, e o espectro superior está a 3,1 cm do PC e tem cerca de 0,5 cm.
Com estes dados resolvemos automatizar nosso sensor do espectro usando um servo-motor turnigy de posição tg9 que, além de barato, fornece sua posição em graus e tínhamos em nosso "estoque":
Especificação - Servo-motor de posição Turnigy TG9
Dimensão: 23x12.1x21.4mm
Torque: 1.5kg/cm (4.8V), 1.7kg/cm (6.0V)
Velocidade de operação: 0.13sec/60 grau (4.8V), 0.12sec/60 grau (6.0V)
Tensão de operação: 4,8 ~ 6.0V
Faixa de temperatura:-20-60C
Largura de banda Dead: 8US
Fonte: http://www.hobbyking.com/hobbyking/store/__9549__Turnigy_TG9e_9g_1_5kg_0_10sec_Eco_Micro_Servo.htmlTorque: 1.5kg/cm (4.8V), 1.7kg/cm (6.0V)
Velocidade de operação: 0.13sec/60 grau (4.8V), 0.12sec/60 grau (6.0V)
Tensão de operação: 4,8 ~ 6.0V
Faixa de temperatura:-20-60C
Largura de banda Dead: 8US
Fixamos o LDR no borne do servo. A ideia é controlar o movimento do servo e assim, ter uma leitura precisa da intensidade da luz sobre o LDR. A primeira fase foi ajustar o servo ao espaço do orifício da cubeta. Para isso, usamos a tentativa e erro. Após esse ajuste, fizemos os sensor se deslocar por todo o espaço do orifício determinando o espaço de abertura como sendo de 50º.
Em relação a programação, usamos como base um dos examples do Arduino, o sweep, usando a biblioteca Servo, como base a adicionamos algumas linhas de comando, que estão em negrito:
/* Sweep
by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.
modified 8 Nov 2013
by Scott Fitzgerald
http://arduino.cc/en/Tutorial/Sweep
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 90; // variable to store the servo position
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
Serial.begin (9600) //iniciar a comunicação serial
}
void loop()
{
for(pos = 90; pos <= 140; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
//leitura do LDR
int ldr = analogRead (A0);
//envia dados para o serial monitor
Serial.print (myservo.read ());
Serial.print ("\t");
Serial.println ("ldr");
}
for(pos = 140; pos>=90; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
//leitura do LDR
int ldr = analogRead (A0);
//envia dados para o serial monitor
Serial.print (myservo.read ());
Serial.print ("\t");
Serial.println ("ldr");
}
}
Duas observações:
1- Colocamos a leitura do LDR após o movimento do servo para que o sensor pudesse ser estabilizado e a leitura ser mais precisa.
2- Os dados gerados pelo serial monitor estão em posição inversa, ou seja, usamos o resistor em pull-down e, quanto mais luz o led receber, menor o valor de leitura no serial monitor. Quanto maior o valor lido, menos luz recebida no sensor.
Neste vídeo a gravação já é de um dos testes que fizemos, usando suco de maracujá. Primeiro "calibramos" nosso espectro com água e fizemos uma leitura. Depois fizemos o mesmo processo com o suco de maracujá para comparar. Os resultados de intensidade luminosa x posição do servo estão no gráfico abaixo, feito em excel (obs: usamos o Ctrl C, Ctrl V para copiar as informações do Serial Monitor, marcando o ponto de início e término)
Após esse primeiro teste decidimos tentar usar o led RGB para tentar obter uma cor mais branca do led pois observamos que o mesmo aparentava, nas imagens, um tom azulado, conforme o vídeo abaixo:
Concluímos que o Led RGB não é eficiente para este processo pois os dados não foram conclusivos - quando usamos o anteparo de papel não formou o espectro na posição que havíamos medido.
Devido a uma demanda de nossa equipe de iniciação científica que precisa de um espectrofotômetro para desenvolver o projeto do sobre os efeitos do som audível sobre leveduras. Inicialmente estudamos a possibilidade de uma parceira com as faculdades da região mas não obtivemos resposta.
Pesquisando na internet encontramos duas boas referências sobre a construção de um espectrofotômetro de baixo custo. A primeira (http://www.abq.org.br/cbq/2013/trabalhos/6/2761-16788.html) mostrava o desenvolvimento de um espectrofotômetro caseiro usando materiais do cotidiano. Demos o estilo "Pequenos Cientistas" usando Arduino e outras peças do nosso estoque e o resultado pode ser visualizado abaixo:
Projeto de um espectrofotômetro
1- Montagem da suporte da cubeta: usando uma embalagem de MM´s cortada fizemos um orifício para a passagem da luz e um espaço para colocar a rede de difração (CD).
2- Montagem da rede difração: retirada do adesivo do cd e corte de uma parte longitudinal para formar a rede de difração.
3- Montagem da rede de difração no suporte da cubeta.
4- Montagem do led emissor de luz branca e do receptor - aqui usamos um fotodiodo com filtro para luz natural.
5- Montagem do suporte para a lente convergente que vai concentrar a luz do led.
6- O espectrofotômetro montado. O fotodiodo foi substituído por um LDR. Ainda sem o ajuste focal.
7- Os espectros obtidos de uma amostra de água.
8- Proteção da luz ambiente do LDR usando um tubo de caneta envolvido com fita isolante.
9- Os primeiros resultados. Ainda sem obter um espectro visível capaz de se fotografar.
10 - Testando um led vermelho e o espectro gerado.
Vídeo da leitura do espectro usando o simplot e movimentando o LDR.
A segunda referência (http://www.pucsp.br/webduino/experimentos/espectrofotometro-remoto-automatizado/faca-voce-mesmo.html) faz uso de um motor de passo e será nossa próxima meta, com a diferença que começaremos com servo-motores. Em breve publicaremos o cronograma do projeto.
Fontes:
http://www.instructables.com/id/A-simple-DIY-spectrophotometer/
http://astro.u-strasbg.fr/~koppen/spectro/experimtse.html
http://en.wikipedia.org/wiki/Absorption_spectroscopy#Absorption_spectrum
Amigo, acredito que em casas de óptica principalmente as de pequeno porte e possível pedir a eles que façam lentes com distâncias focais definidas. Uma certa vez tive interesse em fazer um telescópio tipo Galileu e precisava de um jogo composto por duas lentes, não me recordo os parâmetros das mesmas, mas precisava de uma mono convexa e uma bi convexa com diâmetros de 50mm e 20mm algo do tipo na época pesquisando encontrei a solução de encontrar um optometrista (pessoas que fazem lentes de óculos) encontrei um mas a empresa era grande não deram muita atenção, mas se você conhece algum de uma cidade pequena ele terá interesse em te ajudar.
ResponderExcluirHola que luz artificial me recomiendas para asemejarse a la luz natural y poder descomponer las longitudes de onda en el prisma
ResponderExcluir