Calibrador de projetor de video

De Garoa Hacker Clube
Ir para: navegação, pesquisa

Em sistemas de projeção de imagens, muitas vezes precisa-se ajustar/calibrar o projetor de acordo com a geometria e posição da tela. Por exemplo, quando se precisa alinhar as imagens de diversos projetores, para formar uma única grande imagem.

Outro caso é quando a imagem vai ser projetada numa tela não-plana (Cilíndrica, esférica, isocaédrica :), etc). Ou então, quando o projetor não está posicionado exatamente de frente para a tela. Nestes dois casos, a imagem ficaria distorcida.

Se tivéssemos um sistema que detectasse a posição da tela em relação ao projetor, e a sua geometria, poderíamos calcular a distorção causada por esses fatores e corrigir a imagem antes de ser projetada, de forma que a imagem na tela ficasse correta.

Projetores normais usados em PCs geralmente tem algum tipo de ajuste (tilt, foco, etc), mas estes não são suficientes para resolver esses problemas. Existem projetores mais avançados, que permitem outros tipos de ajustes, incluindo a entrada de enormes tabelas identificando a geometria da tela. Porém, o custo destes aparelhos pode ficar na casa das dezenas de milhares de dólares. Além disso, sua operação pode ser manual e demorada.

Este projeto é uma tentativa inicial de resolver este problema para qualquer tipo de projetor, pois ele não utiliza nenhum recurso destes aparelhos e nem interfere em seu funcionamento. Ele atua, basicamente, através de software rodando em um computador, que distorce a imagem antes de ser enviada ao projetor. Um sensor remoto envia para este software os dados que ele precisa para calcular e ajustar a imagem.

Em 2004 um cara chamado Johnny Chung Lee apresentou um paper e um protótipo de um aparelho que usava sensores presos ao redor da tela para permitir esse tipo de ajuste na imagem. Através da projeção de uma sequência de padrões de imagem, ele conseguia detectar a posição da tela e corrigir a imagem projetada.

Em 2011 eu montei um projeto baseado em Arduino que fazia uma engenharia reversa do trabalho do Johnny.

Este projeto agora é a versão 2 do projeto de 2011. O hardware continua baseado em Arduino, porém com algumas melhorias. E o software foi modificado: Nesta nova versão eu estou mais preocupado com a precisão da detecção, por isso substituí os padrões de imagem por 2 feixes de luz que varrem a imagem. Além de mais precisa, essa nova versão tem um visual mais hollywoodiano! :)

O sensor detecta os sinais enviados pelo projetor através de sensores de luz nas bordas da superfície de projeção. Através da conexão serial do Arduino, o computador recebe estes dados e pode ajustar a imagem projetada antes que ela seja enviada ao projetor.

Calib projector 1.jpg

Links

Video da filmagem feita no Garoa em 25/02/2012

Melhores explicações no blog do Alex