Szervomotor vezérlése Joystick-kal



5. Projekt --Szervomotor vezérlése Joystick-kal --V1.1

  by Roboworld Hobbielektronika

Rövid leírás:
Ebben a rövid projektben bemutatjuk neked, hogyan tudsz vezérelni több szervomotort 1 db joystick segítségével. Esetünkben 2 db szervomotort vezérlünk, azonban csak rajtad múlik, hogy hányat használsz. A mintakódot kiegészítve akár 3 vagy 4 is lehet.

Hardware:
1 db Arduino Uno
2 db Tower Pro MG90S vagy Towerpro SG90 micro szervo
1 db Joystick modul
Breadboard + vezeték

Kapcsolási rajz:
 
A Towerpro szervók csatlakozása, amelyeket a projektben használunk a következőek:

Joystick modulról:
2db 5kΩ-os potenciométer helyezkedik el a modulban mindazért, hogy olvasni lehessen az X és az Y pozíciókat. Továbbá 1 db normál nyomógomb. A nyomógombot úgy tudjuk használni, hogy középen megnyomjuk a joystickot.

A modulon 5 pin található:
                                             +5 VCC
                                             –GND
                                             –VRx (néhány modulon H-val jelölik, mint Horizontal)
                                             –VRy (néhány modulon V-vel jelölik, mint Vertical)
                                             –SW ( Nyomógomb/ Switch)
A kapcsolás megépítése után következzen a programozás.

Programozás, mintakód:
A mintakódot megtalálod a következő linken vagy az oldalunkon „Arduino projektek” fül alatt.


Miután betöltötted a mintakódot (Servo_Control_with_Joystick.ino) az Arduino IDE fejlesztőkörnyezetbe, nincs más dolgod, mint feltölteni azt az Arduinodra.
/* Project 5 - Szervo vezérlés Joystick-kal 
by Roboworld Hobbielektronika 
www.hobbielektronikabolt.hu 
*/ 
// Szervó libary használata 
#include <Servo.h> 

// Szervók definiálása 

Servo servo1; 
Servo servo2; 

//Joystick analog pinjeinek definiálása 
int joyX=0; 
int joyY=1; 

//joyVal változó létrehozása, hogy az analog pinről az értéket letudjuk olvasni 

int joyVal; 

//Program kezdete 

void setup() { 

//Szervók PWM pinjeinek meghatározása. 3. pin és az 5. pin 
servo1.attach(3); 
servo2.attach(5); 
} 

void loop() { 

//Olvasni a Joystick X értékét 0 -1023 között 

joyVal=analogRead(joyX);          // joyX analog pinjének olvasása 
joyVal=map(joyVal,0,1023,0,180);  // joyVal(0-1023) váltózó értékét felosztja 0-180-as szakaszra (egyenes arányosság) 
servo1.write(joyVal);             // 1. Servomotor mozgatása 
                                  //Olvasni a Joystick Y értékét 0 -1023 között 
joyVal=analogRead(joyY);          // joyY analog pinjének olvasása 
joyVal=map(joyVal,0,1023,0,180);  // joyVal(0-1023) váltózó értékét felosztja 0-180-as szakaszra (egyenes arányosság) 
servo2.write(joyVal);             // 2. Servomotor mozgatása 
delay(15); 
} 
}
Megvalósítás 

Letöltés
A projekthez tartozó linkek alább találhatóak.
A leírás PDF-ben : Itt található
Mintakód: Itt található



Megjegyzések