Cílem tohoto projektu je vytvoření jednoduchého ovládacího systému, který umožňuje naklápění dvou servomotorů pomocí analogového joysticku. Platforma řízená servomotory může simulovat pohyb například v ose X a Y — tedy naklánění doleva/doprava a dopředu/dozadu. Tento systém může sloužit jako základ pro různé aplikace:
- Manuální ovládání kamery nebo senzoru (např. na pohyblivé konstrukci nebo robotovi)
- Interaktivní ovládací panel pro školní projekty nebo herní ovladač
Schéma zapojení:
Joystick: | |
VCC | 5V na Arduinu |
GND | GND na Arduinu |
VRx (Osa X) | Analogový pin A0 |
VRy (Osa Y) | Analogový pin A1 |
Servomotory: | |
Servo X (například osa doleva/doprava) | |
Signální kabel | Digitální pin 9 |
VCC | 5V na Arduinu |
GND | GND na Arduinu |
Servo Y (například osa dopředu/dozadu) | |
Signální kabel | Digitální pin 10 |
VCC | 5V na Arduinu |
GND | GND na Arduinu |
Kód pro arduino:
#include <Arduino.h> #include <Servo.h> Servo servoX; // Servo motor for the X axis (e.g. left/right) Servo servoY; // Servo motor for the Y axis (e.g. forward/backward) int joyPinX = A0; // Analog pin for the joystick's X axis int joyPinY = A1; // Analog pin for the joystick's Y axis void setup() { servoX.attach(9); // Attach servo X to pin 9 servoY.attach(10); // Attach servo Y to pin 10 } void loop() { // Read joystick values int valX = analogRead(joyPinX); int valY = analogRead(joyPinY); // Convert joystick values to servo angle range (0–180°) int angleX = map(valX, 0, 1023, 0, 180); int angleY = map(valY, 0, 1023, 0, 180); // Set the servo positions according to calculated angles servoX.write(angleX); servoY.write(angleY); delay(15); // Short delay for smoother movement }