La Garra!

Otra práctica con servomotores, pero esta vez, usando también botones y aplicando todas sus funciones, veamos!

Se trata de una garra, cuyos materiales son: 

  • Placa Arduino UNO
  • Protoboard
  • 2 Joystick
  • 3 Servomotores
  • Materiales de ensamblado
El funcionamiento de esta garra es sencillo, los dos joystick pueden controlar funciones diferentes, así:

  • Joystick D: Controla la dirección de la garra, puede desplazar la garra horizontal y cambiar su ángulo.
  • Joystick G: Controla la apertura de la garra, hace que se abra o cierre.
Aquí se ilustra mejor todo el proceso:
*Nota: todos los movimientos son parciales, es decir, conforme se lleva el joystick a su máximo punto, el ángulo en el servomotor aumenta.


Si se mueve a la derecha o abajo en el joystick G, la garra se cierra.
Si se mueve a la izquierda o arriba en el joystick G, la garra se abre.
Si se mueve a la izquierda o derecha en el joystick D, la garra se mueve en esa dirección 90 grados.
Si se mueve arriba o abajo en el joystick D, la garra se inclina en esa dirección 
Por último, si se presiona el joystick G, la garra cierra totalmente, independientemente de la cantidad de movimiento que tuviera antes.


El código para un programa así es sencillo también, es el siguiente:

#include <Servo.h>
Servo girar;
Servo bajar;
Servo abrir;
bool total = LOW;
void setup() {
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);
  pinMode(2, INPUT_PULLUP);
  girar.attach(3);
  bajar.attach(5);
  abrir.attach(6);
}
void loop() {
  int hor1 = analogRead(A1);
  int ver1 = analogRead(A0);
  int hor2 = analogRead(A3);
  int ver2 = analogRead(A2);
  bajar.write(180 - (0.1757 * ver1));
  if (hor1 > 700) {
    girar.write(180);
  }
  if (hor1 < 300) {
    girar.write(0);
  }
  if (ver2 != 512) abrir.write(180 - (0.1757 * ver2));
  if (hor2 != 512) abrir.write(180 - (0.1757 * hor2));
  if (ver2 == 512 && hor2 == 512) abrir.write(90);
  if (digitalRe
ad(2) == LOW) abrir.write(180);
}

Puedes probar este genial proyecto aquí!. (El servomotor de arriba es el de la garra, los de abajo corresponden al movimiento horizontal y la inclinación, respectivamente).

Comentarios