I22 - Como Controlar 2 Micro Servos Motores 9g com Joystick e Arduino
Intermediário - Projeto 22
Controlando servo motores com o módulo Joystic KY-023 e Arduino
Objetivo
Neste tutorial, nosso objetivo é mostrar como controlar dois micros servos motores 9g utilizando um módulo de joystick KY-023 e programação através da plataforma Arduino. Vamos simular um sistema "pan tilt", onde o primeiro servo motor será responsável pelo movimento horizontal de 180º (pan) e o segundo servo motor controlará o movimento vertical de 180º (tilt).
Definições
1. Pan Til: O sistema "pan tilt" é amplamente utilizado em câmeras fotográficas e câmeras de vídeo para controlar os movimentos da lente. Ele consiste em:
1.1. Pan horizontal (Pan): Esse movimento permite que a câmera gire em torno de seu próprio eixo na horizontal.
1.2. Pan vertical (Tilt): Esse movimento permite que a câmera gire em torno de seu próprio eixo na vertical.
Obs.: (Pan) significa visão panorâmica.
2. Módulo Joystick 3 eixos (modelo KY-023): É um módulo eletrônico que trabalha como um direcional analógico para controlar diversos aparelhos, componentes e sistemas robóticos que operam com informações de posicionamento cartesiano nos eixos x e y, e ainda um botão de pressão no eixo z.
3. Micro servo motor 9g: É um micro atuador eletromecânico que apresenta rotação do seu eixo proporcional ao comando emitido por um sinal digital, que pode ser por um microcontrolador, como pela placa Arduino, por exemplo. Portanto, com um micro servo motor é possível controlar a posição e a velocidade de rotação do seu eixo com precisão. Por estas características, os servos motores são muito utilizados em projetos de robótica e mecatrônica.
Referências
I18 - Como usar o micro servo motor 9g SG90 com Arduino
I21 - Como usar o módulo Joystick com Arduino
"refletância", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/reflet%C3%A2ncia [consultado em 04-08-2020]. R
"refletância", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/reflet%C3%A2ncia [consultado em 04-08-2020].
"refletância", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/reflet%C3%A2ncia [consultado em 04-08-2020].
"refletância", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/reflet%C3%A2ncia [consultado em 04-08-2020].
Aplicação
Para fins didáticos e uso com câmeras e projetos para sistemas robóticos.
Componentes necessários
Referência |
Componente |
Quantidade |
Imagem |
Observação |
Protoboard | Protoboard 830 pontos | 1 |
No mínimo utilizar protoboard com 400 pontos |
|
Jumpers | Kit cabos ligação macho / macho | 1 | ||
Micro Servo Motor |
Micro Servo 9g SG90 |
2 |
Voltagem de Operação 3,0 - 7,2V |
|
Módulo Joystick 3 eixos | Módulo JoystickKY-023 | 1 |
- Tensão de Operação: 3,3-5V Sinal de saída (Eixo X e Y): Saída analógica; Datasheet: Módulo Joystick 3 eixos |
|
Suporte Pan Tilt (opcional) |
Suporte Pan Tilt plástico (opcional) |
1 |
Suporte plástico para sistema Pan Tilt |
|
Arduino UNO | Arduino UNO R3 | 1 |
Você poderá utilizar uma placa Arduino UNO original ou similar |
Montagem do Circuito
Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da energia elétrica enquanto você monta o circuito.
Atenção
1. A montagem do módulo micro servo motor 9g SG90 deve seguir a configuração abaixo:
- Cabo marrom (ou preto em algumas marcas) - Deve ser conectado ao pino GND do Arduino ou ao polo negativo de uma fonte de alimentação externa
- Cabo vermelho - Deve ser conectado a um pino 5V do Arduino ou ao polo positivo de uma fonte de alimentação externa
- Cabo laranja - Deve ser conectado a um pino digital do Arduino configurado como saída. No projeto, utilizamos o pino 9 do Arduino para o motor 1 (motor pan - horizontal) e o pino 10 para o motor 2 (motor tilt - vertical).
1.1. Utilize "jumpers" macho-macho para fazer as conexões com o Arduino.
1.2. No projeto usamos as seguintes conexões:
Micro Servo Motor | Pino Digital Arduino |
(Servo 1) base (pan) | 9 |
(Servo 2) inclinação (tilt) | 10 |
2 2. Para a montagem do módulo JoystickKY-023 no circuito faça a conexão como mostra a figura abaixo:
Pinos do Arduino utilizados no projeto
Joystick | Descrição | Arduino |
GND | Conexão com o GND | GND |
Vcc | Conexão com o pino 5V | Vcc (5V) |
VRx | Eixo x - porta analógica (INPUT) | A0 |
VRy | Eixo y - porta analógica (INPUT) | A1 |
SW | Push button - sinal digital (INPUT_PULLUP) | 2 |
2.1. Veja abaixo a montagem do módulo Joystick no Arduino, conforme determinamos neste projeto:
2.2. ATENÇÃO: A figura abaixo mostra o posicionamento dos eixos perpendiculares x, e y, cuja a posição de referência do joystick é com os pinos conexão para baixo. Observe que quando o joystick fica nesta posição de referência, o eixo y irá controlar o movimento horizontal do bastão e o eixo x irá controlar o movimento vertical do bastão.
3. Se desejar utilizar o suporte Pan Tilt para Arduino, acesse o link e veja como montá-lo: S1 - Montagem Suporte Pan Tilt controlado com Arduino e Micro Servos Motores.
4. A montagem do nosso projeto foi realizada em um protoboard 400 pontos:
Testando o módulo Joystick KY-023
1. Para verificarmos se a montagem do circuito está correta e o módulo joystick funcionando, rode o sketch abaixo e verifique:
1.1. Copie o código e cole no IDE do Arduino. Com o Arduino conectado no PC, rode o programa.
1.2. Abra o Monitor Serial do IDE do Arduino.
1.3. Movimente o bastão (botão) do joystick em várias posições: para cima, para baixo, para a esquerda, para a direita e nas diagonais, verificando os valores apresentados no monitor serial.
1.4. Compare os o valores com a imagem abaixo. ATENÇÃO: Tome como referência a posição dos pinos de conexão do módulo joystick.
Código do Projeto (Sketch)
1) Faça o dowload e abra o arquivo projetoI22.ino no IDE do Arduino: DOWNLOAD - projetoI22.ino
Se preferir, copie e cole o código abaixo no IDE do Arduino:
Vídeo
Como o projeto deve funcionar
1. Ao iniciar o programa, os 2 microcontroladores deverão ficar na posição de 90º.
2. Ao movimentar o eixo do joystick no sentido Y da figura abaixo, movimentaremos o servo motor 1 (base - pan).
2.1. Vamos tomar como referência o módulo joystick na posição em que os pinos de conexão fiquem para baixo (como mostra a imagem abaixo)
3. Ao movimentar o eixo do joystick no sentido X, movimentaremos o servo motor 2 (inclinação - tilt).
Desafios
O anúncio abaixo ajuda a manter o Squids Arduino funcionando