segunda-feira, 30 de março de 2015

Desenvolvimento de espectrofotômetro com Arduino

17/04 - Processo de melhoria
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]


10/04 - Desenvolvimento do primeiro protótipo
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.html

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.

28/03 - Início do projeto
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

segunda-feira, 23 de março de 2015

Reportagem Revista Reagir

Essa reportagem saiu neste fim de semana na revista REAGIR, em comemoração aos 50 anos de nossa cidade...



terça-feira, 16 de dezembro de 2014

Projeto Mais educação: chassis robóticos 2015

16/12/2014
Recebemos a verba do projeto "Mais Educação" e, como sempre, nossa sempre solicita diretora nos deu carta branca para investir como quiséssemos a verba. Analisando a situação e considerando que a verba é destinada a alunos de Ensino Fundamental, decidimos investir em estruturas de chassi pré-prontas da Robocore (RC-FLS V2 - https://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=385). Este kit é limitado mas sua facilidade de operação compensou a falta de torque e as limitações impostas pelo Shield e pelo suporte de pilhas.
Ainda estamos aguardando a entrega dos Arduinos, comprados com nosso fornecedor de sempre, a Webtronico (http://www.webtronico.com/) e as pilhas recarregáveis.
Como estamos acostumados a nos "virar com o que tem" não deu outra - fizemos uma adaptação e ligamos nossas baterias de LiPo nos Arduinos e Shield.  Ainda sim, para brincar de sumô, faltava um sensor de ultrassom. Então surgiu o desafio: O cavaleiro jedi Marcelo quis desafiar seu mestre Alan dizendo que conseguiria colocar o sensor de ultrassom melhor que o mestre. Bom não deu outra: desafio aceito.
Como sempre a ansiedade da juventude em terminar logo e programar perdeu de 7x3 para a frieza e disciplina da idade. Segue os vídeos da brincadeira abaixo:
PS: Prof Alan - robozinho com led e faixa amarela na rampa
       Marcelo: robozinho todo bagunçado sem marcação
Amanhã o desafio continua com o Marcelo vs Roselito e, talvez, uma revanche.

PS2: a gravação foi feita pelo Roselito...

Esses vídeos são anteriores:

Robocore seguindo linha

Teste de motores

Tentando empurrar o Ártemis (que dó...)

quarta-feira, 5 de novembro de 2014

Finalistas da Mostra Paulista de Ciências e Engenharia 2014

16/12/2014
Apesar de não termos conseguido nada, valeu a experiência e as amizades...






05/11
Atenção meninos, somos finalistas na Mostra Paulista de Ciências e Engenharia de 2014:
LISTA DE FINALISTAS DA MOP 2014:
MOSTRA PAULISTA DE CIÊNCIA E ENGENHARIA 2014
Leia as instruções completas para garantir sua participação em: 
http://mostrapaulista.org.br/finalistas_orientacao/
A MOP 2014 acontece nos dia 03, 04 e 05 de Dezembro de 2014
Esta relação de finalistas publicada no dia 05/11/2014 apresenta os finalistas que desenvolveram projetos
selecionados pela submissão direta e também por Feiras Parceiras da MOP 2014.
A lista será atualizada em 17/11 contendo os finalistas selecionados na:
– Dante InCiência - XIX Feira de Ciências e Tecnologia
– II Mostra de Ciências e Tecnologia Instituto 3M
A lista receberá uma última atualização no dia 01/12 contendo os finalistas selecionados na:
– II Mostra de Artes e Ciências ALEF Paraisópolis
– II Feira De Ciencias Do Ensino Integral
Cidade Finalistas Selecionados
Campo Limpo
Paulista
ARTEMIS E ARES - ROBÔS MULTITAREFAS (SUMÔ E RESGATE DE ALTO RISCO)
Paulo Ricardo de Lima da Cruz, Marcelo dos Santos Jubilado Jr., Roselito Ferreira
Gonçalves, Alan Barbosa de Paiva (Orientador)
EE Professora Elza Facca Martins Bonilha, Campo Limpo Paulista - SP
Engenharia - 701 Eletrônica
O USO DO SOM AUDÍVEL PARA GERMINAÇÃO DE SEMENTES DE FEIJÃO CARIOCA
(PHASEOLUS VULGARIS)
Vitor Coutinho Santos, Alan Barbosa de Paiva (Orientador)
E.E. Mário Pereira Pinto, Campo Limpo Paulista - SP
Ciências Biológicas - 203 Botânica

sábado, 1 de novembro de 2014

Finalistas do Desafio de Inovação 3M

29/11 - Parabéns aos alunos
Novamente os alunos demonstraram seu talento e seu comprometimento em produzir conhecimento científico, acima de tudo. Nosso objetivo sempre foi compartilhar nosso trabalho e ajudar no desenvolvimento da Robótica como opção educativa e como forma de aprendizagem.
Este ano decidimos ampliar nosso reportório e trabalhar a Robótica aplicada a pesquisa científica e iniciamos os projetos que estavam guardados por falta de mão de obra. A partir deste ano, com apoio da verba do projeto Mais Educação podemos ampliar nossa capacidade de investigação e pesquisa e aumentar o número de alunos do projeto. Resultado de muito empenho e dedicação. Ainda sofremos com o mal que assola a todos os participantes de feiras e competições: transporte, hospedagem e alimentação. Vamos buscar soluções criativas para minimizar ou solucionar este problema. 
Não há como expressar a felicidade de saber que este trabalho está sendo reconhecido em feiras e exposições, demonstrando nosso caráter investigativo e nossa política de pesquisa, usando como plataforma de homologação de projetos as competições.

O resultado:

2º Lugar - Ares e Ártemis - robôs multitarefas - Categoria Engenharia



3º Lugar - O uso do som audível para germinação de sementes de feijão (P. vulgaris) - Categoria Ciências Agrárias



Mais uma feira este ano, agora na 3M em Campinas....