DIY двухосевая кремальера FPV-камеры: Управление джойстиком на Arduino
Компоненты и материалы
| Arduino UNO | 1 |
| Сервопривод SG90 (микро) | 2 |
О проекте
Полное руководство по управлению двухосевой кремальерой FPV-камеры с джойстиком. Кремальера поставляется в наборе: акриловые детали, винты, два сервопривода.
Предварительные знания:
Два режима управления:
- Прямое следование: сервоприводы повторяют положение стика в реальном времени.
- Пошаговое перемещение: сервоприводы движутся в направлении наклона стика и фиксируются до следующего команды.
Демонстрация в видео. Сборка пошаговая, но здесь приведена полная схема — модули не влияют друг на друга.
Оси джойстика могут отличаться (X/Y перепутаны). Проводку адаптируйте под свой модуль (пины серв, входы джойстика, направления).
В видео использовалось несколько скетчей, но они базовые. Здесь выложены только два итоговых варианта.
Код
Вариант 1: Прямое следование за джойстиком
// Двухосевая кремальера FPV + джойстик
// Сервоприводы следуют за положением стика
// surtrtech.com
#include
Servo myservo1; // Верхний серво
Servo myservo2; // Нижний серво
int YAxis = 1; // Пин оси Y джойстика
int XAxis = 0; // Пин оси X джойстика
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; // → 0-180
X = 180 - X; // Инверсия при необходимости
myservo1.write(X);
int Y = analogRead(YAxis);
Y = Y * 0.1466; // → 0-150 (под ограничения сервы)
myservo2.write(Y);
}
Вариант 2: Пошаговое перемещение в направлении стика
// Кремальера FPV + джойстик
// Сервоприводы движутся в направлении наклона стика и держат позицию
// 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(); // Текущая позиция
b = myservo2.read();
X = analogRead(XAxis);
Y = analogRead(YAxis);
// Мёртвая зона ~450-550 (центр)
if (X > 550) { a = a - 1; myservo1.write(a); delay(50); } // Вправо
if (X < 450) { a = a + 1; myservo1.write(a); delay(50); } // Влево
if (Y > 600) { b = b + 1; myservo2.write(b); delay(50); } // Вверх
if (Y < 450) { b = b - 1; myservo2.write(b); delay(50); } // Вниз
}
Схемы
Есть верхний и нижний сервопривод — не перепутайте.

Производственный процесс
- Интегрированная система контроля доступа с QR, RFID и верификацией температуры
- Установка камеры Raspberry Pi в скворечнике — пошаговое руководство
- Камера охраны с детектором движения на ESP32-CAM и отправкой фото в Discord
- Робот УФ-дезинфекции на Arduino Mega: дистанционно управляемая гермицидная система
- Умная копилка: управление монетоприёмником на Arduino Nano
- Самодельный пульт от ТВ на Arduino с 3D-корпусом и питанием от батарейки
- Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- ЧПУ-точарный станок Millport SmartLathez 1740 — точность и мощь
- Hurco TM8: компактный косогорелый токарный станок с точным управлением и универсальным оснащением