Gerando uma imagem microscópica - Uma brincadeirinha divertida =)
Fala galera, como meu primeiro post aqui no TabNews gostaria de ensinar uma coisa muito divertida para vocês, que é como vocês podem fazer para criar um microscópio confocal de varredura a laser, onde com a luz de um laser refletida, após incidir sobre uma amostra, vocês possam gerar uma imagem em grayscale e claro, olhar pra ela com um belo sorriso no rosto 😃
Como amostra utilizei uma lâmina de silício com a litrografia de um microchip exposta. Onde foram capturadas imagens mostrando os pontos de contato do microchip.
O truque aqui é compreender o conceito de CLSM e entender que as coisas refletem luz, e que podemos capturar essa luz e com ela montar uma imagem.
:bulb: O Conceito
Para conseguir realizar essa brincadeirinha divertida vamos ter que reproduzir o conceito de (CLSM) Confocal Laser Scanning Microscope.
Portanto, resumindo tudo, a luz que sai de nosso laser é refletida pelo Beam Splitter, depois atravessa nossa lente objetiva responsável por realizar o foco em nossa amostra. Após a luz incidir sobre nossa amostra, a mesma é refletida para cima, atravessando nossa lente objetiva e atingindo novamente nosso Beam Spliter. Se tratando nosso Beam Splitter de um simples vidro transparente, parte da luz irá atravessá-lo, passando posteriormente por nosso obstáculo (Pinhole) e atingindo nosso sensor de luminosidade.
Desta maneira, utilizando algo como um sensor LDR, teremos no máximo um ponto focalizado em nossa amostra, mas o que queremos é uma imagem. Logo, temos que ter algum mecanismo que nos permita realizar uma varredura nos eixos X,Y. Sendo este o nosso tão querido Scanner.
Desta maneira é possível realizar a varreruda nos eixos X,Y de alguma amostra, e a cada ponto focalizado do laser, capturamos a intensidade luminosa com um sensor de luminosidade. Vamos então armazenando esses valores em algum software, para posteriormente gerar uma imagem com base nesses dados.
Estando claro o conceito descrito acima, vamos para a parte prática :star_struck:
:hammer: Materiais
Materiais comprados em lojas online:
- Uma protoboard e jumpers
- Arduino UNO
- Capacitores de 10k uf
- Resistores 330 ohms, 1k ohms, 10k ohms
- Sensor de luz LDR
- Transistores MOSFET (NPN)
- Um laser potente
Materiais comprados no ferro-velho:
- Drivers de DVD (eu usei 4, mas 2 servem)
Para este projeto é necessário um bom laser, o que utilizei eu comprei no Mercado Livre.
🟦 O Scanner
Para o Scanner usaremos as bobinas de foco das lentes dos próprios drivers de DVD.
Em seguida vamos precisar criar algumas perninhas para sustentar nosso dispositivo, ficando como nas imagens abaixo.
Note que os fios utilizados nas perninhas são na verdade fios de cabo de rede (os famosos RJ45). Desta maneira é possível movimentar toda nossa "mesinha" (sim, vamos chamar ela de mesinha daqui pra frente) com o controlador do eixo Y. Tendo assim o controle dos eixos X e Y.
🟪 Controle do eixo Z
Para que consigamos focar a luz do laser devidamente sobre nossa amostra é necessário termos controle do eixo Z, para regulá-lo corretamente, de modo que após estar focado, comecemos nossa varredura.
🔶 O Sensor LDR
🔘 O Pinhole
🔲 O anteparo
:hamburger: Juntando tudo
Pegando tudo dito acima e juntando em uma caixa, fica mais ou menos como nessa imagem abaixo.
Note que nesta segunda imagem, fiz um suporte para o laser incidir de cima para baixo, onde ele atingirá a peça de DVD da nossa "mesinha". Tendo isto em mente, você já deve ter percebido que o projeto está com uma diferença. No caso a única diferença em relação ao conceito do CLSM abordado anteriormente, é que trocamos os lugares do laser e do sensor. Ficando nosso laser incidindo de cima pra baixo, e nosso sensor capturando a luz refletida pela lateral.
:space_invader: O controle do dispositivo
Antes de tudo tenhamos em mente que estamos controlando exatamente estas coisas:
- A bobina do eixo Y
- A bobina do eixo X
- O sinal lido pelo sensor LDR
É bem sabido que para variar um sinal no Arduino basta fazer uso da função analogWrite, e utilizar algum pino para enviar o sinal. Logo, tudo que precisamos é de um simples circuito eletrônico para realizar amplificação de sinal, coisa que fazemos com o uso de transistores, resistores e capacitores (existem muitos tutoriais na internet a respeito disso). Tendo isto em mente, tudo que você precisa fazer é criar um circuito que controle (e varie) o sinal enviado para suas bobinas, para assim fazê-las movimentar.
No Arduino teremos o código arduino.c.
Tenha em mente que o código acima recebe uma entrada de dados pelo cabo USB, no caso o texto "read:Y-", onde o valor de Y equivale a linha que está sendo processada. Em seguida o mesmo faz a bobina movimentar-se para a devida posição, para em seguida começar a leitura. Ou seja, a bobina do eixo X irá movimentar-se de 0 a 256, onde a cada incremento é realizada a leitura do sensor de luminosidade. Tudo é enviado para o programa que está recebendo estes dados.
No computador executamos o programa read-data.php, onde o papel dele é simplesmente realizar essa comunicaçao com o Arduino, iniciar e controlar a leitura, armazenar os dados localmente para com eles gerar uma imagem em grayscale.
:white_check_mark: Esclarecendo alguns pontos
Na imagem abaixo você pode ver um protótipo operando. Observe que a luz do quarto está desligada, pois como todo o dispositivo está exposto, não é legal que exista interferência luminosa.
:gem: Amostra
Para utilizar como amostra eu dei um jeito de retirar uma lâmina de silício de dentro de um microchip convencional (isso deu trabalho). Dê uma olhada nas imagens abaixo.
Utilizando lentes ópticas eu consegui um zoom grande para assim ter uma fotografia optica de minha amostra, para que eu pudesse ver como são meus microchip.
Os itens 1 e 2 são apenas para dar uma noção de proporção e tamanho.
O item 3 é a fotografia óptica que consegui (para ela usei uma lente também de driver de DVD, mas acoplada na câmera do celular). O bom de termos uma fotografia óptica é para confirmar se nossa imagem gerada pelo dispositivo está correta.
:wrench: Complicações e ajustes
Em resumo, você deve ir ajustando seu dispositivo para ficar o melhor possível, pois qualquer coisinha torta, ruído nas leituras, interferências luminosas, travamentos das peças (caso os driver de DVD forem velhos demais), tremores (um carro passando lá na esquina da sua casa irá afetar os seus resultados), e coisas semelhantes afetam em seu resultado final.
:bar_chart: Resultados
Observe que na parte de cima das imagens geradas há sempre uma distorção, pelo que entendi isso se deve ao meu mecanismo estar meio duro no começo da leitura. Depois ele fica normal e segue até o fim. Como eu disse, qualquer coisinha torta já afeta no seu resultado. No entanto já começam a aparecer imagens legais.
Retirando a parte distorcida de nossa leitura, as imagens ficam assim:
Colocando nossa lâmina de silício ao lado das nossas imagens, conseguimos ter melhor uma noção de proporção. Se fosse encontrar um número para nos dar uma aproximação satisfatória do tamanho da imagem que conseguimos capturar, chegaremos ao valor de mais ou menos 200 micrômetros.
:heavy_check_mark: Finalização
Como você pode notar, tudo isso é apenas uma diversão. Logo, é claro que há pontos e coisas que podem ser melhoradas (sempre há). Em todo caso, espero que tenha gostado 😀
Há, e claro, se você gostou deste texto, me segue lá no meu Github xD
Github aqui: melchisedech333
É isso galera, até a próxima, um abraço, fique com Jesus e nossa Mãe Maria Santíssima :purple_heart:
E que todas as coisas boas aconteçam com a gente, para que possamos criar coisas cada vez mais legais e divertidas, e assim tornar o mundo um lugar cada vez mais massa 🥰🥰🥰
Fui!
Fantastico conteúdo e dedicação!
Obrigado por compartilhar seu conhecimento conosco, logo mais adicionarei essa aula no Obsidian.
Forte abraço MoonHawlk.
nossa muito bom