lunes, 22 de octubre de 2018

NORBA JOINT 1: nuestro primer brazo robot

Durante el curso pasado, los alumnos de 4º de ESO Guillermo Rebollo González y Miguel Escudero Rodríguez comenzaron el desarrollo del brazo robot de primera generación que incluimos hoy dentro del proyecto NorbaSKY para el estudio de sistemas con movimiento articulado mediante servomotores controlados por Arduino. Es muy importante conocer cómo funcionan los servomotores, ya que estos pueden ser utilizados en todo tipo de proyectos. Pueden formar parte de aviones, usándose para mover alerones, flags, timones... También pueden mover la dirección de cualquier tipo de vehículo, abrir compuertas, expulsar paracaídas,...
En particular, este brazo dispone de tres articulaciones (codo, muñeca y pinza) controlados cada uno mediante un motor independiente manejados bien por un par de interruptores o bien por una resistencia variable. En el desarrollo del mismo se han empleado más de dos meses, incluyendo el estudio inicial del controlador, conceptos básicos de programación, uso de interruptores, leds, y un largo etcétera de componentes hasta llegar a un diseño cuyo esquema hardware, realizado usando Tinkercad, se muestra a continuación:
Circuito de control de los tres servomotores del brazo robot.
Para la interacción entre los distintos componentes, se ha utilizado el siguiente código de control.

#include <Servo.h>
//Patillas control servos
#define PinSERVO1 6
#define PinSERVO2 5
#define PinSERVO3 3 
//Interruptores de control 
#define BotonSube1 13
#define BotonBaja1 7
#define BotonSube2 12
#define BotonBaja2 8
#define BotonANALOG3 0 
 //Angulos máximos y minimos de cada servo
#define MAX1 150
#define MIN1 0
#define MAX2 135
#define MIN2 45
#define MAX3 40
#define MIN3 0 
Servo Servo1, Servo2, Servo3; //3 objetos servo, uno por motor
int angulo1=MIN1, angulo2=MIN2, angulo3=MIN3; 
void setup() {
  Servo1.attach(PinSERVO1);  // Asocia patilla S1 a motor Servo1
  Servo2.attach(PinSERVO2);  // Asocia patilla S2 a motor Servo2
  Servo3.attach(PinSERVO3);  // Asocia patilla S3 a motor Servo3
  pinMode(BotonSube1,INPUT);
  pinMode(BotonBaja1,INPUT);
  pinMode(BotonSube2,INPUT);
  pinMode(BotonBaja2,INPUT);
  pinMode(BotonANALOG3,INPUT);
} 
void loop() {
  if (digitalRead(BotonSube1)&&(angulo1<MAX1)){angulo1++; delay(20);}
  if (digitalRead(BotonSube2)&&(angulo2<MAX2)){angulo2++; delay(20);}
  if (digitalRead(BotonBaja1)&&(angulo1>MIN1)){angulo1--; delay(20);}
  if (digitalRead(BotonBaja2)&&(angulo2>MIN2)){angulo2--; delay(20);} 
  //El valor leído en BotonANALOG3 (de 0 a 1023) lo transforma
  //proporcionalmente en grados (de MIN3 a MAX3).
  angulo3=map(analogRead(BotonANALOG3),0,1023,MIN3,MAX3);
  Servo1.write(angulo1); 
  Servo2.write(angulo2); 
  Servo3.write(angulo3); 
}

Versión alfa del brazo robot Norba Joint 1.
La primera versión de este prototipo, junto a una memoria asociada al mismo, se envió durante el curso 2017-18 a la "Segunda edición del Certamen de Ciencias" que organiza conjuntamente la Fundación Caja de Extremadura, el Ateneo de Cáceres y MENSA España, obteniendo un segundo premio.
Presentación de Norba Joint 1 en Certamen de Ciencias de Cáceres.
Como anécdota, comentar que durante los últimos momentos del desarrollo de este proyecto, previos a la presentación del mismo en el concurso, surgieron numerosos problemas de última hora, entre ellos el fallo del potenciómetro o resistencia variable que controlaba el movimiento del "codo" del brazo articulado.
No daba tiempo a adquirir un nuevo potenciómetro y hubo que improvisar la modificación del software para realizar dicho movimiento mediante una combinación de pulsaciones simultáneas de los interruptores existentes. Esta situación expresa claramente el potencial del uso de un microcontrolador programable para realizar este tipo de proyectos, permitiendo que con un mismo hardware (incluso defectuoso) puedan realizarse actualizaciones y correcciones de funcionamiento de una forma sencilla y económica.
Recientemente Miguel Escudero ha tenido que marcharse de Cáceres a un instituto de Madrid. Le invitamos a que nos siga desde allí por esta vía y que continúe realizando proyectos de este tipo con sus nuevos compañeros. Aquí tiene un espacio para mostrarlos al mundo y compartir conocimiento.

No hay comentarios: