Pinza Robótica con Arduino

Pinza robótica con Arduino

Hola amigos técnologos, en nuestra entrada de hoy, montaremos un curioso proyecto en el que con la ayuda de dos servos y un Arduino, moveremos la »muñeca» y los »dedos» de una pinza robótica. La práctica consistirá en programar los servos que dan el movimiento a la pinza de modo que obedezcan el movimiento de dos potenciómetros.

Materiales necesarios

pinza robotica arduino leantecPinza robótica
Servos
Arduino UNO R3
Protoboard
Potenciómetros
Cables

Conozcamos mejor la pinza robótica y los servos

Pinza robótica:

La pinza robótica es un mecanismo formado por dos piezas moviles las cuales pueden cerrarse y abrirse ejerciendo cierta presión, para así poder sujetar objetos.

Esta compuesta por piezas de aluminio y estas a su vez ensambladas con tornillos de métrica 3.

Dimensiones de la pinza robótica:

Dimensiones pinza robotica arduino leantec

Servos:

Un servomotor es un actuador electrónico, compuesto básicamente por un motor de corriente continua, unos engranajes reductores y una electrónica de control.

Gracias a esta electrónica podemos hacer que el motor tome una posición concreta y ademas se oponga al cambio mecanico de esa posición.

Para ampliar información sobre los servomotores, puede descargarte la siguiente hoja de datos:

Conexion del servo

Conector servomotor

Práctica con pinza robótica:

En la práctica de hoy moveremos la muñeca y los dedos de una pinza robótica girando dos potenciometros.

Esquema de montaje

Conexion pinza robotica arduino

Código de control

#include <Servo.h> 

Servo servomuneca;  //Creamos el servo de la muñeca
Servo servopinza;  // Creamos el servo de la pinza

int angulomuneca = 0;//Creamos la variable angulomuneca
int angulopinza = 0;//Creamos la variable angulopinza

int valorPotenciometro1 = 0;//Creamos la variable valorPotenciometro1
int valorPotenciometro2 = 0;//Creamos la variable valorPotenciometro2
 
void setup() 
{ 
  Serial.begin(9600);//Inicializamos el puerto serie
  servomuneca.attach(8);//Definimos el pin de servomuneca
  servomuneca.write(90);//Ponemos el servo a 90 grados  
  servopinza.attach(9);//Definimos el pin de servopinza
  servopinza.write(90);//Ponemos el servo a 90 grados  
  delay(2000);//Esperamos 2 segundos  
} 
 
void loop() 
{ 
  //Lee el valor del potenciometro
  valorPotenciometro1 = analogRead (0);//Leemos el valor del poten. 1
  valorPotenciometro2 = analogRead (1);//Leemos el valor del poten. 2
  
  /*Mapeamos el valor de los potenciometros para que el valor leido
  siempre este entre 10 y 180 grados y lo guardamos en la variables 
  declaradas para almacenar los ángulos*/
  angulomuneca = map (valorPotenciometro1, 0, 1023, 10, 180);
  angulopinza = map (valorPotenciometro2, 0, 1023, 10, 180);
  
  
  servomuneca.write(angulomuneca);//Damos al servo el ángulo resultante 
  servopinza.write(angulopinza);//Damos al servo el ángulo resultante                   
  

 } 

Esperamos que les sea de utilidad y no olviden que en nuestro blog encontrará muchos otros post de su interes.

Etiquetas: , , ,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *