Go Down

Topic: Ayuda!! Como controlar dos servos con Joystick (Read 2828 times) previous topic - next topic

favio-mdp

Necesito ayuda. deseo controlar desde mi placa arduino dos servos mediante un joystick, alquien me puede orientar como hacerlo o pasarme un sketch.
gracias
Favio
;)

Outl4w

Un joystick al fin y al cabo no es mas que un conjunto de interruptores que abren y cierran un circuito según muevas la palanca en una dirección u otra.

Tendrás que programar el funcionamiento de los servos de forma tradicional y luego indicandole mediante un if, while o lo que se te ocurra que funcione o deje de funcionar el servo cuando determinado interruptor accionado por el movimiento de la palanca de tu joystick esté abierto o cerrado.

No sé si lo has entendido, si tienes alguna duda pregunta pero el concepto es ese.

Un saludo.

Pofenas

Hace eones que no toco un Joystick, pero recuerdo que los habia digitales (como el que ha descrito Outl4w) y analógicos, en los cuales tenias dos potenciómetros que giraban con ambos ejes. La ventaja de los analógicos es que, además te obtener una dirección en el plano, podias tener tambien la intensidad de la misma (o si lo prefieres, podias definir un vector con modulo y dirección).

favio-mdp

he cargado la placa con un skecth para joystick y me reulta inestable, dando valores salteados no mantiene una coerencia para poder comandar el servo.

Comprobador de un Gamepad/Joystick para PC con
un conector DB-15

Configuraci?n de los pines del puerto de joystick

(male connector on joystick cable)

       .-----------------------.
       \ 8 7  6  5  4  3  2  1 /
        \ 15 14 13 12 11 10 9 /
          ~~~~~~~~~~~~~~~~~~~

 1  XY1 (+5v)
 2  Switch 1
 3  X1
 4  Ground (for switch 1)
 5  Ground (for switch 2)
 6  Y1
 7  Switch 2
 8  N.C.
 9  XY2 (+5v)
10  Switch 3
11  X2
12  Ground (for switch 3&4) *
13  Y2
14  Switch 4
15  N.C. *

         Joystick B             ____      Joystick A
                               /    |
                             /      |
                           /        |
                         /       1  |
                        |        O------- 5 Volt
             5 Volt -------O        |
                        |  9     2  |
                        |        O------- Button
             Button -------O        |
                        |  10    3  |
                        |        O------- Resistor X-axis
    Resistor X-axis -------O        |
                        |  11    4  |
                        |        O------- Ground
           MIDI TXD -------O        |
                        |  12    5  |
                        |        O------- Ground
    Resistor Y-axis -------O        |
                        |  13    6  |
                        |        O------- Resistor Y-axis
             Button -------O        |
                        |  14    7  |
                        |        O------- Button
           MIDI RXD -------O        |
                        |  15    8  |
                        |        O------- 5 Volt
                         \          |
                           \        |
                             \      |
                               \    |
                                 \__|

 Pin  Joystick Fucntion              Paddle Function       Din6  MIDI

  1   +5.0 VDC                                              L5    -
  2   Joystick A Fire Button 1       Paddle #1 Fire Button  L4    -
  3   Joystick A X Position (Roll)   Paddle #1 Position     L1    -
  4   Ground                                                L3    -

  5   Ground                                                L3   GND
  6   Joystick A Y Postion (Pitch)   Paddle #2 Position     L2    -
  7   Joystick A Fire Button 2       Paddle #2 Fire Button  L6    -
  8   +5.0VDC                                               L3   +5V

  9   +5.0VDC                                               R3    -
 10   Joystick B Fire Button 1       Paddle #3 Fire Button  R4    -
 11   Joystick B X Postion           Paddle #3 Position     R1    -
 12   Ground                                                R3   DOut

 13   Joystick B Y Position          Paddle #4 Postion      R2    -
 14   Joystick B Fire Button 2       Paddle #4 Fire Button  R6    -
 15   +5.0 VDC                                              R5   DIn    

Igor Gonz?lez Mart?n. 18-03-2007
igor.gonzalez.martin@gmail.com

*/

int joyX = 0;      // Eje X del joystick
int joyY = 1;      // Eje Y del joystick
int boton1= 4;     // Bot?n 1 del joystick
int boton2= 5;     // Bot?n 2 del joystick
int boton3= 6;     // Bot?n 3 del joystick
int boton4= 7;     // Bot?n 4 del joystick
int valX=0;
int valY=0;
int bot1Val=0;
int bot2Val=0;
int bot3Val=0;
int bot4Val=0;

void setup(){
  Serial.begin(9600);
  pinMode (boton1,INPUT);
  pinMode (boton2,INPUT);
  pinMode (boton3,INPUT);
  pinMode (boton4,INPUT);
}

void loop () {
  valX=analogRead(joyX);    
  valY=analogRead(joyY);
  bot1Val=digitalRead(boton1);    
  bot2Val=digitalRead(boton2);    
  bot3Val=digitalRead(boton3);    
  bot4Val=digitalRead(boton4);
  Serial.println("--------------------------");  
  Serial.print("X: ");
  Serial.print(valX);
  Serial.print(" - Y: ");
  Serial.println(valY);
  Serial.print("Boton1: ");
  Serial.println(bot1Val);    
  Serial.print("Boton2: ");
  Serial.println(bot2Val);    
  Serial.print("Boton3: ");
  Serial.println(bot3Val);    
  Serial.print("Boton4: ");
  Serial.println(bot4Val);      
  delay (1000);
}

esto por lo visto no me resulto.

Go Up