Sistema de Controle de Câmera com PAN TILT

Desenvolvido para sanar a dificuldade de fixação de pequenas câmeras em projetos de aeromodelismo e demais projetos robóticos, o PAN TILT é um produto que controla através de micro...

Desenvolvido para sanar a dificuldade de fixação de pequenas câmeras em projetos de aeromodelismo e demais projetos robóticos, o PAN TILT é um produto que controla através de micro servos motores o movimento horizontal e vertical de sua câmera ou sensor.

Em uma parceria com a WR Kits desenvolvemos um exclusivo projeto que visa proporcionar o livre movimento de um sensor com o intuito de realizar uma melhor qualidade na captação de informações de uma determinada área, movimentando-se tanto na horizontal, quanto na vertical.

Bastante utilizado em carrinhos para a captação de imagens, o PAN TILT pode ser facilmente posicionado sobre plataformas robóticas e controlado de modo remoto para poder posicionar a câmera em determinado ângulo, ou seja, o seu carrinho pode estar andando livremente em uma feira, por exemplo, e ao mesmo tempo mandando imagens em tempo real para uma TV.

Produzido em plástico resistente e em dimensões reduzidas, o PAN TILT não ocupa muito espaço em seu projeto e é facilmente montado através de dois micro servos motores, além de acompanhar todos os parafusos e buchas necessárias para a sua montagem.

Lembrando que para a utilização de sensores, o modo de instalação vai depender de uma possível prévia adaptação do sensor para então ser fixado de forma segura no suporte PAN TILT.

TESTE PRÁTICO

O sistema de controle do Suporte PAN TILT foi definido através de dois sensores de luminosidade, ou seja, ele se movimenta de acordo com a luminosidade presente no ambiente. Um dos LDRs controla o movimento horizontal e o outro o movimento vertical, através da simples variação de luz do local em que se encontra.

PRODUTOS UTILIZADOS NO PROJETO

 

MONTAGEM FÍSICA (HARDWARE)

Para fazer a ligação correspondente, basta observar com atenção o esquema abaixo e reproduzir em seu projeto a pinagem utilizada.

montagem1

FUNCIONAMENTO DO PROGRAMA (SOFTWARE)

/*
 Câmera que orienta-se pela luz
 Autor: Eng. Wagner Rambo 
 Patrocínio: Usinainfo (www.usinainfo.com.br)
*/

// --- Bibliotecas Auxiliares ---
#include <Servo.h>

// --- Mapeamento de Hardware ---
#define servo1 9 //servo1 ligado ao pino 9
#define servo2 10 //servo2 ligado ao pino 10
#define ldr1 A1 //sensor de luz 1 ligado em A1
#define ldr2 A2 //sensor de luz 2 ligado em A2

// --- Objetos do Software ---
Servo sv1, sv2; //cria objetos para os servos

// --- Protótipo das Funções ---
void servoControl(); //função para controle dos servos a partir dos sensores

// --- Variáveis Globais ---
int adc1 = 0x00, adc2 = 0x00; //variáveis para armazenamento de adc
unsigned short angulo1 = 90, angulo2 = 90; //angulo dos servos
unsigned short anguloAtual1, anguloAtual2; //auxiliares para armazenar angulo atual


// --- Configurações Iniciais ---
void setup()
{
 pinMode(ldr1, INPUT); //entrada A1
 pinMode(ldr2, INPUT); //entrada A2
 pinMode(servo1, OUTPUT); //saída servo1
 pinMode(servo2, OUTPUT); //saída servo2
 
 sv1.attach(servo1); //pino de sv1
 sv2.attach(servo2); //pino de sv2
 
 sv1.write(angulo1); //centraliza sv1
 sv2.write(angulo2); //centraliza sv2
 
 
} //end setup


// --- Loop Infinito ---
void loop()
{
 
 servoControl(); //chama função para controle do servo
 

} //end loop


// --- Funções Auxiliares ---
void servoControl()
{
 adc1 = analogRead(ldr1);
 adc2 = analogRead(ldr2);
 
 sv1.write(angulo1); //atualiza angulo do servo1
 sv2.write(angulo2); //atualiza angulo do servo2
 
 if(adc1 < 500) //luminosidade baixando?
 {
 angulo1++; //incrementa angulo1
 delay(10);
 if(angulo1 > 180) angulo1 = 180; //fixa em 180
 
 } //end if
 else if(adc1 > 524) //luminosidade subindo?
 {
 angulo1--; //decrementa angulo1
 delay(10);
 if(angulo1 < 1) angulo1 = 1; //fixa em 1
 
 } //end else if
 else angulo1 = 90; //luminosidade em meio termo, mantém em 90 graus
 
 
 if(adc2 < 500) //luminosidade baixando?
 {
 angulo2++; //incrementa angulo2
 delay(10);
 if(angulo2 > 180) angulo2 = 180; //fixa em 180
 
 } //end if
 else if(adc2 > 524) //luminosidade subindo?
 {
 angulo2--; //decrementa angulo1
 delay(10);
 if(angulo2 < 1) angulo2 = 1; //fixa em 1
 
 } //end else if
 else angulo2 = 90; //luminosidade em meio termo, mantém em 90 graus
 

} //end servoControl

Categorias
Projetos
Sem Comentários

Enviar Resposta

*

*

Responda o cálculo abaixo: *

Sobre nós

Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

Sugestões

Artigos Relacionados