Soporte FPV de doble eje DIY: Tutorial con joystick y Arduino
Componentes y suministros
| Arduino UNO | ×1 |
| Servomotor SG90 Micro | ×2 |
Sobre el proyecto
Hola a todos, hoy veremos el tutorial completo para controlar un soporte de cámara FPV de 2 ejes con un módulo joystick. El soporte viene en un paquete pequeño con soportes acrílicos, tornillos y dos servomotores.
Requisitos previos: Si no estás familiarizado con el joystick ni con los servomotores, consulta estos tutoriales:
Usaremos dos métodos de control:
- Modo seguimiento directo: Los servos siguen la posición del joystick en tiempo real.
- Modo movimiento incremental: Los servos se mueven hacia la dirección que apunta el joystick y se mantienen allí hasta que se mueva de nuevo.
En el video tutorial voy paso a paso en el cableado y calibración, pero aquí te doy el cableado completo (no hay interferencia entre módulos).
Nota: En la imagen los ejes del joystick aparecen invertidos respecto a los míos (X arriba, Y lateral), pero mantuve mi cableado; puedes adaptarlo a tu hardware (pines de servo, entradas joystick, direcciones…).
Código
Código 1: Modo seguimiento directo (como en el video)
// Control de soporte FPV 2 ejes con joystick - Modo seguimiento directo
// Los servos siguen los movimientos del joystick
// Referencia: surtrtech.com
#include
Servo myservo1; // Servo inferior (eje X)
Servo myservo2; // Servo superior (eje Y)
int YAxis = 1; // Pin analógico eje Y joystick
int XAxis = 0; // Pin analógico eje X joystick
void setup() {
Serial.begin(9600);
pinMode(XAxis, INPUT);
myservo1.attach(8);
pinMode(YAxis, INPUT);
myservo2.attach(9);
}
void loop() {
int X = analogRead(XAxis); // 0-1023
X = X * 0.1756; // Escalar a 0-180°
X = 180 - X; // Invertir si necesario
myservo1.write(X);
int Y = analogRead(YAxis); // 0-1023
Y = Y * 0.1466; // Escalar a 0-150° (ajusta según tu servo)
myservo2.write(Y);
}
Código 2: Modo movimiento incremental (como en el video)
// Control de soporte FPV 2 ejes con joystick - Modo incremental
// Los servos se mueven hacia donde apunta el joystick y se quedan
// Referencia: surtrtech.com
#include
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(); // Posición actual servo 1
b = myservo2.read(); // Posición actual servo 2
X = analogRead(XAxis);
Y = analogRead(YAxis);
// Joystick en reposo ~512. Umbrales: >550 derecha, <450 izquierda
if (X > 550) { a--; myservo1.write(a); delay(50); }
if (X < 450) { a++; myservo1.write(a); delay(50); }
// Umbrales eje Y: >600 arriba, <450 abajo
if (Y > 600) { b++; myservo2.write(b); delay(50); }
if (Y < 450) { b--; myservo2.write(b); delay(50); }
}
Esquemáticos
Hay un servo superior e inferior, no los confundas.

Proceso de manufactura
- Sistema de control de acceso integrado con QR, RFID y verificación de temperatura
- Instalación de Cámara Raspberry Pi en una Caseta de Pájaros – Guía Paso a Paso
- Cámara de Seguridad con Detección de Movimiento ESP32 para Discord
- Robot de Desinfección UV con Arduino Mega: Sistema Germicida Controlado Remotamente
- Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
- Mando a Distancia TV Personalizado con Arduino UNO: Alimentado por Batería, Carcasa Impresa en 3D
- Robot evasor de obstáculos con servo: Construcción con Arduino y HC-SR04
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
- Millport SmartLathez 1740 CNC – Precisión y potencia
- Torno de bancada inclinada Hurco TM8: diseño compacto, control de precisión y herramientas versátiles