Suporte FPV de Câmera Duplo Eixo DIY: Tutorial com Joystick Controlado por Arduino
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino UNO | 1 |
| Servomotor Micro SG90 | 2 |
Sobre o Projeto
Olá a todos,
Hoje veremos o tutorial completo de como controlar um suporte de câmera FPV de 2 eixos com módulo joystick. O suporte vem em um pequeno pacote contendo suportes de acrílico, peças, parafusos e dois servomotores.
Pré-requisitos: Antes de prosseguir, se você não está familiarizado com o joystick nem com servomotores, confira estes tutoriais:
- Como interligar o módulo Joystick com Arduino
- Usar servomotores com Arduino
Usaremos dois métodos para controlar os servos:
- Modo Seguimento: Os servos seguem a posição do joystick e movem-se enquanto movemos o manche.
- Modo Direção: Os servos movem-se na direção para onde o joystick aponta e permanecem lá até movermos o manche novamente ou mudarmos a direção.
No vídeo do tutorial, fui passo a passo na fiação e calibração, e também passo a passo na codificação. Aqui fornecerei a fiação completa, que não é problema pois nenhum módulo ou servo afeta os outros.
Para não confundir com os eixos do joystick (meu joystick tem eixo X no topo e eixo Y), na imagem eles estão invertidos e nomeados de forma diferente, mas mantive a fiação como usei; você pode alterar conforme preferir (pinos dos servos, entradas do joystick, direções...).
Como usei vários códigos no vídeo, mas todos são básicos (posicionamento de servo, leitura de valor analógico do joystick...), fiz isso antes, você pode conferir meus outros tutoriais. Aqui carreguei apenas os dois códigos das versões finais como visto no vídeo.
Se precisar de algo sobre isso, pode me contatar.
Código
Código 1 – Modo Seguimento (como no vídeo)
// Para usar com suporte FPV de câmera de duplo eixo que usa dois servos, adicionando módulo joystick
// Controlamos a posição do suporte movendo o manche analógico, o suporte segue os movimentos do joystick
// Consulte surtrtech.com para mais informações
#include <Servo.h>
Servo myservo1;
Servo myservo2;
int YAxis = 1; // Pinos onde os eixos X e Y do joystick estão ligados
int XAxis = 0; // Entradas analógicas
void setup() {
Serial.begin(9600);
pinMode(XAxis, INPUT);
myservo1.attach(8);
pinMode(YAxis, INPUT);
myservo2.attach(9);
}
void loop() {
int X = analogRead(XAxis);
X = X * 0.1756; // Converter 0-1023 para 0-180 (limites do servo)
X = 180 - X; // Inverter para posição correta
myservo1.write(X);
int Y = analogRead(YAxis);
Y = Y * 0.1466; // Converter 0-1023 para 0-150 (limites deste servo)
myservo2.write(Y);
}
Código 2 – Modo Direção (como no vídeo)
// Para usar com suporte FPV de câmera de duplo eixo que usa dois servos, adicionando módulo joystick
// Controlamos a posição do suporte movendo o manche analógico, o suporte move-se na direção onde o manche aponta
// até os limites e permanece lá
// Consulte surtrtech.com para mais informações
#include <Servo.h>
Servo myservo1;
Servo myservo2;
int a, b, X, Y;
int YAxis = 1;
int XAxis = 0;
void setup() {
Serial.begin(9600);
pinMode(XAxis, INPUT);
myservo1.attach(8);
pinMode(YAxis, INPUT);
myservo2.attach(9);
}
void loop() {
a = myservo1.read(); // Ler posições anteriores dos servos
b = myservo2.read();
X = analogRead(XAxis);
Y = analogRead(YAxis);
if (X > 550) { // Joystick tem 3 posições: Esquerda | Repouso | Direita
a = a - 1;
myservo1.write(a);
delay(50);
}
if (X < 450) {
a = a + 1;
myservo1.write(a);
delay(50);
}
if (Y > 600) { // Joystick: Cima | Repouso | Baixo
b = b + 1;
myservo2.write(b);
delay(50);
}
if (Y < 450) {
b = b - 1;
myservo2.write(b);
delay(50);
}
}
Esquemáticos
Existe um servo superior e um inferior, não os confunda.
Processo de manufatura
- Sistema Integrado de Controle de Acesso com QR, RFID e Verificação de Temperatura
- Instalando uma Câmera Raspberry Pi em uma Casinha de Pássaros – Guia Passo a Passo
- Câmera de Segurança com Detecção de Movimento ESP32-CAM para Discord
- Robô de Desinfecção UV com Arduino Mega: Sistema Germicida Controlado Remotamente
- Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
- Controle Remoto TV Personalizado com Arduino – Bateria e Gabinete 3D
- Robô Desviador de Obstáculos com Servo: Construa com Arduino e HC-SR04
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- Torno CNC Millport SmartLathez 1740 – Precisão e Potência
- Torno de Mesa Inclinada Hurco TM8 – Design Compacto, Controle de Precisão e Ferramentas Versáteis