Está en la página 1de 6

Nuestro robot de dos eslabones puede graficarse en Matlab usando el siguiente

cdigo:

En el cual definimos las variables posibles otorgando valores de grados


consecutivos iniciando en 0, aumentando de .1 hasta llegar a 180.
Para ambos eslabones se aumento igual, entrando en un ciclo que va
graficando cada punto que la punta del brazo del robot va tocando, sacando la
posicin exacta con la formula de la cinemtica directa para dos eslabones en
plano (x, y) formando una figura como la siguiente:

Observando cmo es que la figura va de 20 a -20 en valores de X


pero de 20 a -10 en Y.
Ahora podemos observar como el modelo fsico con los mismos valores
responde a las mismas posiciones que observamos en Matlab:

El las imgenes anteriores pudimos observar las posiciones ms relevantes


dentro de las limitaciones de nuestro robot, y comprobamos que lo programado
en Matlab es bastante parecido, solo algunas diferencias debido a la
inexactitud de los potencimetros y los servomotores al mostrar el valor
deseado en la programacin.

#include <Servo.h>
#include <LiquidCrystal.h>
Servo Servojara;
Servo Servojara2;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
double x;
double y;
double a1=10;
double a2=10;
void setup()
{
lcd.begin(16, 2);
lcd.print("grados th1, th2");
Serial.begin(9600);
Servojara.attach(9);
Servojara2.attach(10);
}
void loop() {
lcd.setCursor(0, 1);
int th1 = analogRead(A15);
th1 = map(th1, 0 ,1018, 0, 180);
Servojara.write(th1);
int th2 = analogRead(A0);
th2 = map(th2, 0 ,1023, 0, 180);

Servojara2.write(th2);
x=((a1*(cos(th1)))+(a2*(cos(th1+th2))));
y=((a1*(sin(th1)))+(a2*(sin(th1+th2))));
Serial.print ("valor de x,y: (");
Serial.print (x);
Serial.print (", ");
Serial.print (y);
Serial.print (")");
Serial.print ("valor de pot1,pot2: (");
Serial.print (th1);
Serial.print (", ");
Serial.print (th2);
Serial.println (")");
delay(500);
lcd.print(th1);
lcd.print(",");
lcd.println(th2);
}

En la programacion podemos destacar que tiene datos de entrada analgicas


con las que controlamos los potenciometros dando asi los grados de entrada y
mostrandolos en la pantalla LSD para de esta manera poder usa una fuente
externa con la tarjeta arduino sin necesidad de ocupar el monitor serial dela
PC; dentro del programa tambin es de importancia la formula para obtener la
cinematica directa y asi saber las posiciones de (x,y).

También podría gustarte