Depois que montei o projeto do potenciômetro controlando o servo motor na semana passada fiquei curioso para testar o servo com outros elementos. Quem nunca pensou em controlar o ponto de foco de uma webcam? Bom, neste projeto iremos montar uma base para colocar uma webcam e ligaremos a base ao motor e o motor a placa Arduino.
Como gosto de trabalhar com sucata (objetos que parecem já sem utilidade mas que podem ser retrabalhados e reutilizados) pensei neste projeto.
Para este projeto precisaremos de:
- 1 Servo motor;
- 1 WebCam (qq modelo simples serve);
- Alguns jumpers ou fios (neste projeto usei o fios de um cabo par trançado que não tinha mais utilidade);
- Pedaços de chapas de acrílico ou plástico;
- Alguns parafusos;
- Chave de fenda ou philips;
- Estilete;
- Pistola de cola quente;
- Alicate pequena;
O que faremos?
O objetivo do projeto é usar a placa Arduino para controlar o movimento de um servo motor que tem seu eixo acoplado a uma webcam.
Como ligar os acessórios?
Esse projeto é mais simples do que o anterior, basta ligar o cabo USB na placa Arduino e depois no computador. O servo motor possui três fio, VCC, GND e Signal. Ligue cada um deles como foi feito no exemplo anterior.
Montagem:
Para começar peguei um pedaço de acrílico que estava sobrando, fiz dois furos e parafusei na roda ligada ao eixo do servo.

Mais uma foto mostra como ficou a base.

Fiz mais 2 novos furos e parafusei a base da webcam na base de acrílico, foi fácil pois havia dois parafursos na base da webcam que substitui por maiores.

Visão da base da webcam conectada a base de acrílico.

Mais uma. :)

Agora preciso fixar o servo motor em alguma coisa pesada. Como estou trabalhando com sucata, usei um pedaço de uma caixa de acrílico que não seria mais utilizada. Removi um retângulo do mesmo tamanho do servo e coloquei o servo ali. Para fixar bem coloquei um pouco de cola quente. Pronto, ficou bem preso.

Aqui esta o resultado final!

Mais uma, agora lateralmente.

Agora uma imagem que mostra a conexão dos fios do servo na placa Arduino. Como não tinha um fio preto usei o verde para simbolizar o GND ou Terra. O branco com azul é o VCC ou Força e o branco com marrom é o fio que envia o sinal para o servo.

Na outra ponta, temos os fios conectados nos conectores GND (fio verde), VCC 5V (fio branco com azul) e I/O PWM 9 (fio branco com marrom)

É muito fácil mesmo.
Programação:
Para controlar o servo precisamos programar o Arduino, peguei como exemplo o código para controle de servo chamado Sweep. Neste código o servo vai para a posição 0 e depois vai se movemndo lentamente até 180. Depois volta para o 0 lentamente, isso num laço infinito. A única diferença no meu código foi que aumentei o tempo de delay, troquei para 40ms assim o eixo do servo motor se moverá um pouco mais devagar. No site do Arduino você pode encontrar o original http://arduino.cc/en/Tutorial/Sweep.
// Sweep
// by BARRAGAN
#include
Servo myservo; // cria um objeto servo
// um máximo de 8 objetos servo podem ser criados.
int pos = 0; // variável para guardar a posição do servo
void setup()
{
myservo.attach(9); // anexa o servo ao pino 9. Isso diz para o objeto servo
// onde o pino de sinal do servo esta conectado
}
void loop()
{
for(pos = 0; pos < 180; pos += 1) // vai de 0 até 180 graus em passos de 1 grau.
{
myservo.write(pos); // envia para o servo a posição contida na
// variável 'pos'
delay(40); // espera 40ms para que o servo chegue na posição
}
for(pos = 180; pos>=1; pos-=1) // vai de 180 até 0 graus
{
myservo.write(pos); // envia para o servo a posição contida na
// variável 'pos'
delay(40); // espera 40ms para que o servo chegue na posição
}
}
Baixe o código para a sua placa Arduino e pronto, o servo motor deve ir para a posição 0 e depois vai girando o eixo com intervalo de tempo de 40ms e incrementos de 1 grau.
Fiz um pequeno video que demonstra este exemplo clique aqui.
Dúvidas, comentários e sugestões são bem vindos.
Abraço, Diego
Tá se divertindo hein, interessante, mas como controlar o foco da web cam?
ResponderExcluirBuenas SparrowChe!
ResponderExcluirBem, ai a coisa fica um pouco mais complexa, você teria que ter um SW para verificar o foco e então implementar um 2 motor para controlar o foco da lente da webcam girando em sentido horário ou anti horário até atingir o nível desejado.
Foge dos meus poucos conhecimentos de processamento de imagens, o que pra ti não deve ser difícil.
Agradeço pelo comentário.
Diego