Controle via Arduino de 2 Micros Servos com joystick

Este é mais um projeto destinado aos iniciantes, um tutorial simples mas muito interessante que utilizaremos o Arduino para controlar dois micros servos 9g. A aplicação mais interessante é sua utilização em dispositivo de controle panorâmico e de inclinação (PAN/TILT), capaz de movimentar/direcionar câmeras de circuito fechado ou sensores de montagem em robôs.

 

Montando o Projeto

Então sem mais delongas vamos para a parte mais interessante que é a montagem do projeto \0/

Componentes utilizados:

Há 3 fios saindo do servo. Conecte os fios marrons ao terra e os vermelhos ao 5V de uma fonte externa. Conectar o terra (GND) do Arduino ao GND da fonte externa. Os fios laranjas devem ser conectados nos pinos digitais 5 e 6 do Arduino por meio de resistores de 220 ohm.

Conectar os pinos 5V, GND, VRX e VRY do jostick aos pinos 5V, GND, analógico 3 e analógico 4 do Arduino, respectivamente.

 

O esquemático do projeto pode ser visto na imagem abaixo:

 

A montagem real do projeto ficou assim:

Desenvolvendo o código

O código deste tutorial também é simples,  e pode ser visto abaixo:


 
 

 

 

 

 

 

 
 
 
 
 

Você pode consultar, baixar, modificar e compartilhar o código deste tutorial em nosso repositório do GitHub! E lá você encontra todos os códigos já publicados aqui no blog! Venha compartilhar conhecimento com toda a comunidade maker!

 

Mergulhando no projeto

Software

Carregamos a biblioteca Servo:

Dois objetos são criados e duas variáveis de tipo inteiro armazenam os valores lidos dos dois potenciômetros dentro do jostick:

O loop de inicialização anexa os dois objetos servo aos pinos 5 e 6 e movimenta os servos até que atinjam suas posições iniciais:

No loop principal, os valores analógicos (ligados aos pinos 3 e 4) são lidos a partir dos eixos X e Y do jostick:

Esses valores (de 0 a 1023) são mapeados para que fiquem entre 0 e 180 graus:

Depois, são enviados para os dois servos:

Por fim, aplicamos um delay de 15 ms para reiniciar o loop:

 

Hardware

O servo motor é um dispositivo que pode girar de 0 graus a 180 graus a partir de um comando de controle. O comando de controle é um pulso temporizado. A posição vai depender de quanto tempo o pulso fica em nível lógico alto (geralmente 5V) e quanto tempo fica em nível lógico baixo (geralmente 0V). Por padrão temos que enviar para o servo um pulso a cada 20ms. Internamente o servo possui um circuito capaz de traduzir o pulso de controle em um determinado grau de posicionamento.

É importante sempre alimentar o servo a partir de sua própria fonte de energia. Não o ligue a partir da fonte de 5V do Arduino, pois isso resultará em barulho e pode causar danos ao Arduino. Utilize uma fonte de 5V externa ou uma bateria e lembre-se de conectar o terra (GND) do Arduino ao terra da fonte externa.

Por proteção aos pinos do Arduino, utilize resistores de 220ohm para limitar corrente dos de sinal dos servos.

 

Conclusão

Um projeto básico que mostra como controlar servos de forma simples com a utilização da biblioteca Servo.h. Servos são amplamente utilizados na robótica e sugiro utilizar a imaginação para aplicar esses conceitos na criação de um dispositivo PAN/TILT para movimentar câmeras ou sensores em robôs autônomos.

Fique a vontade para sugestões e questionamentos. Abraços!

 

Referências

McRoberts, Michael Arduino básico / Michael McRoberts; [tradução Rafael Zanolli]. — São Paulo : Novatec Editora, 2011.

Alex da Rocha Mattos
Sobre Alex da Rocha Mattos 4 artigos
Engenheiro de Telecomunicações – Universidade do Estado do Rio de Janeiro UERJ Instagram: https://www.instagram.com/curtoecircuito/ Email:curtoeckt@gmail.com

Seja o primeiro a comentar

Deixe uma resposta

O seu endereço de email não será publicado.


*