jueves, 28 de abril de 2016

Código Ejemplo Cinemática Inversa Brazo Robot control con Arduino

Cordial Saludo,

Código de Ejemplo para conexión Matlab con Arduino, para sistema de cinemática inversa para brazo robot de 4GDL.

DESCARGAR CODIGO

INFO DE RECOPILACIÓN PARA ENTENDIMIENTO DE LÓGICA DE SOLUCIÓN DE LABERINTO PARA uC1

Cordial Saludo

Apreciados Alumnos,

La información mínima se encuentra en los siguientes Links.

http://patrickmccabemakes.com/hardware/Maze_Solving_Robot_V3/



Debe saber que no solo los únicos referentes, puede encontrar otros que ayuden en el entendimiento del algoritmo para implementarlo en su proyecto.

viernes, 1 de abril de 2016

Programa Ejemplo para control de 4 Servos por Comunicación Serial

#include <Servo.h>

String trama = "";
String aux = "";
int procesar = 0;
int vs1 = 1500;
int vs2 = 1500;
int vs3 = 1500;
int vs4 = 1500;

int pins1 = 9;
int pins2 = 10;
int pins3 = 11;
int pins4 = 12;

Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;

void setup() {
  servo1.attach(pins1);
  servo2.attach(pins2);
  servo3.attach(pins3);
  servo4.attach(pins4);

  Serial.begin(9600);
  Serial.println("Control del Brazo Robot");
}

void loop() {
  if (Serial.available() > 0) {       //recolecta los datos del puerto serial
    char dato=Serial.read();
    if(((dato >= '0')&&(dato <= '9')) || (dato == '<') || (dato == '>')){
        trama = String(trama + dato);
    }
    if (dato == '>'){                 //reconoce si es el fin de trama
      procesar = 1;
      Serial.print("Trama Total: ");  // se envia la trama complet para visualizarla
      Serial.println(trama);
    }
  }
  if (procesar == 1){
    aux = trama.substring(1,5);
    Serial.print("SubTrama 1: ");     //se envia el valor del primer servo
    vs1 = aux.toInt();
    Serial.println(vs1);
    aux = trama.substring(5,9);
    Serial.print("SubTrama 2: ");     //se envia el valor del segundo servo
    vs2 = aux.toInt();
    Serial.println(vs2);
    aux = trama.substring(9,13);
    Serial.print("SubTrama 3: ");     //se envia el valor del tercer servo
    vs3 = aux.toInt();
    Serial.println(vs3);
    aux = trama.substring(13,17);
    Serial.print("SubTrama 4: ");     //se envia el valor del cuarto servo
    vs4 = aux.toInt();
    Serial.println(vs4);
    procesar = 0;
    trama = "";
  }
  servo1.writeMicroseconds(vs1);
  delay(15);
  servo2.writeMicroseconds(vs2);
  delay(15);
  servo3.writeMicroseconds(vs3);
  delay(15);
  servo4.writeMicroseconds(vs4);
  delay(15);
}