Brazo Robótico
Enviado por silviacarolinach • 17 de Noviembre de 2014 • 511 Palabras (3 Páginas) • 260 Visitas
Planos y diagramas.
En las siguientes imágenes se muestra la estructura del brazo robótico, como puede apreciarse el brazo constara de 7 servomotores, uno de 360° grados para la base, 2 mini servos de 180° para la pinza y otro para la muñeca, y los demás serán servomotores comunes de 180° grados.
Figura 2. Brazo robótico armado
Figura 3. Piezas del brazo robótico sin armar
Circuito esquemático.
En la siguiente imagen se muestra el diagrama esquemático del circuito a utilizar para el funcionamiento del brazo, es importante destacar que la fuente de los servomotores será externa al arduino para así evitar quemarlo.
Figura 1. Circuito en Proteus
Como puede apreciarse cada servomotor está conectado a su respectivo pin de control y a tierra, que en la práctica será externo, puesto que los servomotores serán conectados a un banco de baterías en paralelo a 6 V.
De la misma manera cada potenciómetro ha sido conectado a la fuente de 5 volts y a una entrada del arduino mediante la cual se pretende medir el valor de corriente de entrada, dependiendo de este valor se escribirá un valor en cada servo, como se explicara en el código.
Código del arduino:
#include <Servo.h> // Se abre la librería de servo incluida por arduino.
Servo servo1; // Se crean 7 objetos para controlar así los 7 servos.
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
Servo servo6;
Servo servo7;
int potpin1 = 0; // Se crean las variables y se liga cada una a un pin de control para luego escribir (mediante write) valores en ellos.
int potpin2 = 1;
int potpin3 = 2;
int potpin4 = 3;
int potpin5 = 4;
int potpin6 = 5;
int val_1; // Variables temporales en las que se guardan los valores de corriente por los potenciómetros.
int val_2;
int val_3;
int val_4;
int val_5;
int val_6;
void setup()
{
servo1.attach(3); // Ligamos cada servo al pin de control.
servo2.attach(4);
servo3.attach(5);
servo4.attach(6);
servo5.attach(7);
servo6.attach(8);
servo7.attach(9);
}
void loop()
{
val_1 = analogRead(potpin1); // Se lee el valor de corriente pasando por cada potenciómetro y se guarda en la variable val_n respectiva (el valor es un valor entero entre 0 y 1023 )
val_2 = analogRead(potpin2);
val_3 = analogRead(potpin3);
val_4 = analogRead(potpin4);
val_5 = analogRead(potpin5);
val_6 = analogRead(potpin6);
val_1 = map(val_1, 0, 1023, 0, 179); // Cada valor se traduce proporcionalmente a un rango entre
...