08 novembro 2018

Controlando Servomotor com Arduino e Joystick

Neste texto farei o controle de um servomotor utilizando um joystick retirado de sucata, ou seja, reciclado de um antigo controle de PS2.

O joystick que será utilizado foi obtido de um antigo controle de PS2 que estava guardado em minha bagunça particular, de onde pude escrever o texto "Reciclando Controle de PS2 [O Que Reaproveitar?]".


Meu objetivo neste texto é apresentar o controle do servomotor com joystick utilizando a biblioteca Servo.h do Arduino. Futuramente estas ideias serão utilizadas para implementar um pequeno protótipo de braço manipulador.

O Servomotor

O servomotor utilizado é o modelo SG90 da Tower Pro, um micro servomotor 9g. De fácil aquisição e baixo custo. A Figura 1 apresenta uma imagem do modelo e as dimensões do mesmo.
Figura 1 - Imagem do servomotor e suas dimensões. Fonte: datasheet.
Este servomotor possui três fios para ligação, sendo o fio marrom e vermelho responsáveis pela alimentação e o fio laranja por receber o sinal de controle. Segundo o datasheet, a alimentação deve ser de 4,8 a 5,0 Vcc.

O Joystick de PS2

O joystick que será utilizado foi reaproveitado de sucata, porém, seu funcionamento é bastante simples. Ele consiste basicamente em um eixo vertical acoplado a dois potenciômetros, onde tem-se a possibilidade de fazer uma varredura angular no plano 2D. Isso é possível graças a variação da resistência do potenciômetro para diferentes ângulos de entrada.

Você pode ler um pouco mais sobre o joystick no Wikipédia. O modelo que utilizado pode ser visto na Figura 2.
Figura 2 - Foto tirada do joystick utilizado.
Perceba na Figura X que alguns cabinhos foram soldados para ajudar na ligação com o Arduino. Cabe destacar que a qualidade da placa de circuito impresso não é das melhores, por isso utilizei cola quente para ajudar a fixar os cabinhos, como podemos ver também na Figura 3.
Figura 3 - Foto tirada apresentando detalhes do joystick utilizado.
Com o joystick pronto e preparado para os testes em bancada, podemos finalmente elaborar um esquema de montagem.

Materiais Necessários Para o Teste

Para realizar esta montagem, os seguintes materiais foram utilizados:

➤ Arduino Uno;
➤ 2 Servomotores SG90 de 9g;
➤ Fios e jumper's para as ligações;
➤ Joystick de PS2;
➤ Cabo USB A/B.

Os materiais utilizados podem ser adquiridos facilmente na internet, você também pode adquirir esses componentes com a Silvatrônics, loja parceira do blog Eletrônica de Garagem.

Esquema de Conexão da Montagem

Elaborei um esquema de montagem utilizando o software Fritzing, porém utilizei um modelo de joystick convencional, encontrado para aquisição no comércio online de componentes eletrônicos.
Figura 4 - Esquema da montagem desenhado no software Fritzing.
Para utilizar um joystick de PS2, basta com o multímetro identificar os terminais que possuem variação de resistência com o movimento do eixo.

Com o esquema de montagem apresentado na Figura 4, podemos agora prosseguir e elaborar o programa para controlar os servomotores.

Programa Desenvolvido para Controle da Posição do Servomotor com Joystick

O objetivo do programa é controlar a posição dos servomotores. Para isso, no programa é feito a leitura das entradas analógicas, que possuem informação do deslocamento do joystick. Com o valor obtido da leitura analógica os servomotores são posicionados no ângulo correspondente àquela da variação analógica do joystick.

Abaixo você pode conferir o programa. Perceba que o uso da biblioteca poupa muitas linhas de código.


Agora que temos um programa, verificado e compilado na placa Arduino, podemos testá-lo e verificar se o funcionamento corresponde ao que pretendemos. Você também pode baixar este programa diretamente do nosso GitHub.


Resultados Práticos da Montagem


Após montagem seguindo o esquemático elaborado e a gravação da placa Arduino, podemos testar o funcionamento do protótipo. A seguir você pode conferir algumas fotos da minha montagem.

Figura 5 - Montagem do protótipo em bancada.
Figura 6 - Montagem do protótipo em bancada.
Figura 7 - Montagem do protótipo em bancada.
Podemos perceber que a montagem é muito simples e não há nada de extraordinário. No entanto, exige atenção para não danificarmos os servomotores.

Finalizando os resultados, gravei um pequeno vídeo da montagem e testes em bancada.




Considerações Finais

Neste texto apresentei uma forma simples de controlar dois micro servomotores utilizando o Arduino e a biblioteca Servo.h. No entanto, este é o primeiro programa de onde tenho interesse em construir futuramente um pequeno braço manipulador. 

As melhorias que podem ser feitas neste programa base são inúmeras, desde armazenar um posição de referência, inserir um botão para setar um posição específica. Utilizar outros modos de controle, ao invés de joystick podemos utilizar simples potenciômetros ou botões.

De modo geral, as possibilidade são inúmeras. Porém, ao aumentar o leque de ação do manipulador, tenha em mente que o programa utilizará mais memória e talvez exija o uso de outra placa Arduino, como a MEGA por exemplo.

Este foi um texto base para o futuro projeto de um simples manipulador, em breve trarei um protótipo de estrutura do manipulador, e é claro de baixo custo.

Espero que tenha gostado deste texto, dúvidas ou sugestões deixe nos comentários que será respondido. Ajude-nos compartilhando este texto com seus amigos em suas redes sociais, curtindo nossa página no Facebook ou seguindo nosso Instagram.

Obrigado pela leitura e até a próxima!

1 comentários

muito bom ate add outro programa.
obrigado


EmoticonEmoticon