Presentacion_portada

Siempre nos llamo la atención los brazos roboticos entonces dije porque no armar un prototipo del mismo, ¡¡manos a la obra!!, encontramos un diseño en thingverse que nos pareció interesante hacer.Es una idea original de EEZYbotARM nosotros lo hicimos con potenciometros, pero se puede hacer con botones o joystick , el código es simple y lo realizamos por completo nosotros.

Este es un diseño que tiene piezas para realizar con la técnica de impresión 3D. Las piezas están impresas  con el material PLA filamento de 1.75mm.

Archivos de las piezas

EBA_01.00.001.STL

EBA_01.00.002_vertical_drive_arm.STL

3 EBA_01.00.003_link.STL 

EBA_01.00.004_forward_drive_arm.STL 

EBA_01.00.005_horizontal_arm.STL 

EBA_01.00.006_triangular_link.STL 

2 EBA_01.00.009_servo_plate.STL 

EBA_01.00.010_basement.STL 

EBA_01.00.011_round_plate.STL 

EBA_01.00.012_R01_claw_support.STL 

EBA_01.00.013_R01_right_finger.STL 

EBA_01.00.014_R01_left_finger.STL 

EBA_01.00.015_drive_gear.STL 

EBA_01.00.016_R01_driven_gear.STL
 

Enlace a thingverse para descargar las piezas a imprimir.

o lo pueden conseguir impreso  y con tornilleria incluida en el siguiente enlace.

Elementos Electrónicos

Arduino Uno R3

4 Servos Tower Pro MG90S

28 Jumpers macho – macho

Protoboard

4 potenciometros de 5 kohm

Bulonería

16 Tuercas  M3 (opcional  tuercas autobloqueantes)

16 Arandelas M3

2 Tornillo M3 x 30mm (ejes)

8 Tornillos M3 x 15 mm  

5 Tornillos M3 x 10mm 

Segun recomienda el creador utilizar tornillos métrica y tuercas  M3 . En los tornillos lo ideal es utilizar tuercas autoblocantes. Deben apretarse hasta el bloqueo de la articulación,  debe aflojarlos hasta obtener un movimiento suave con un espacio libre bajo entre los componentes. En los dos ejes del brazo principal utilizo “un” eje de tornillo cortada la cabeza (se puede usar  tubo de tefon) de 3 mm de diámetro.

Esquema de Conexiones 

Conexión de  Servomotores con Arduino Uno

Conexión de Potenciometros

Código

Es un sketch sencillo, se necesitan incluir dos librerías.

#include <SoftwareSerial.h>

#include <Servo.h>

se crean 4 objetos del tipo Servo  y 8 variables del tipo entero (integer)

Servo myservo1, myservo2, myservo3, myservo4;
int potenciometro  = A0; // Conectado al pin A0 del Arduino
int potenciometro1 = A1;
int potenciometro2 = A2;
int potenciometro3 = A3;
int valor;
int valor1;
int valor2;
int valor3;

En el setup() declaro donde están conectados los servos en el Arduino Uno

void setup ()
{ 
  myservo1.attach(8);
  myservo2.attach(9);
  myservo3.attach(10); 
  myservo4.attach(11);
 

}

y por último en el bucle repetitivo loop() leo el valor analógico del potenciometro y les asigno a la variable entera valor 

valor = analogRead(potenciometro); 

y relaciono con la función “map” los valores del potenciometro con los angulo de giro en grado del servomotor.

Como loop() es repetitivo cada vez que se acciona un potenciometro la función map() lo relaciona y por medio de la función write(valor) gira el servo el angulo que contiene valor , luego hace un delay de 10ms.

valor = map(valor, 0, 1023, 0, 180);
  myservo1.write(valor);
  delay(10);

Esto es realizado con todos los servos por medio de sus variables enteras valor, valor1, valor2 y valor3  para sus respectivos potenciometros y variando el angulo del servo si el mismo es girado.

En esta sección se detalla el Código Completo.

#include <SoftwareSerial.h>

#include <Servo.h> 
Servo myservo1, myservo2, myservo3, myservo4;
int potenciometro  = A0;
int potenciometro1 = A1;
int potenciometro2 = A2;
int potenciometro3 = A3;
int valor;
int valor1;
int valor2;
int valor3;
void setup() 
{ 
  myservo1.attach(8);
  myservo2.attach(9);
  myservo3.attach(10); 
  myservo4.attach(11);
 } 

void loop() {
//potenciometro conectado al pin Analogico 0
  valor = analogRead(potenciometro); 

  valor = map(valor, 0, 1023, 0, 180);
  myservo1.write(valor);
  delay(10);

//potenciometro conectado al pin Analogico 1

  valor1 = analogRead(potenciometro1); 

  valor1 = map(valor1, 0, 1023, 0, 180);
  myservo2.write(valor1);
  delay(10);

//potenciometro conectado al pin Analogico 2

  valor2 = analogRead(potenciometro2); 

  valor2 = map(valor2, 0, 1023, 0, 180);
  myservo3.write(valor2);
  delay(10);

//potenciometro conectado al pin Analogico 3

  valor3 = analogRead(potenciometro3); 

  valor3 = map(valor3, 0, 1023, 0, 180);
  myservo4.write(valor3);
  delay(10);
  
  }

Para seguir el  armado paso a paso ver siguiente vídeo.

Saludos Makers . Hasta la próxima Ditecno Digital

views
400


ElectroMercado

  • : tutorial_de_proyecto
  • arduino | circuitos | programación
4 Comentarios
  1. peter
    peter 3 meses

    Todo muy claro. Marche un Like.

    1+
  2. Juanjo Autor
    Juanjo 3 meses

    Gracias Peter.

    0
  3. German
    German 3 meses

    Muy buen proyecto. Saludos

    0

Contesta

CONTACTANOS

Esta es su red social de tecnología para compartir tus ideas y proyectos .Puedes enviarnos un correo si tienes dudas.Nos vemos

Enviando

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account