martes, 13 de septiembre de 2016

CÓDIGO EJEMPLO CINEMÁTICA INVERSA PARA ROBOT TIPO SERPIENTE CON LOCOMOCIÓN 2D

Cordial Saludo,

Apreciados estudiantes,

Este es el codigo para ser implementado en guide, realizar comunicacion entre matlab y arduino.

DESCARGAR

lunes, 5 de septiembre de 2016

TRABAJO EN SOFTWARE MATLAB PARA ASIGNATURA SEMINARIO MATLAB.

Cordial Saludo,

Apreciados estudiantes,

El trabajo para la asignatura seminario Matlab sera entregado en formato IEEE, para la clase del día 09 de septiembre del presente año, tener presente que este mismo día es parcial.

Descargar Aqui

sábado, 20 de agosto de 2016

CODIGO EJEMPLO PARA VALIDACION DE BIFURCACION EN ROBOT LABERINTO

Cordial Saludo,




Apreciados estudiantes, expongo código para lo mencionado en la Asignatura Microcontroladores II.





Tener en cuenta los comentarios allí expuestos:








/*
Seguidor de Linea con sesores QTR-8RC o digitales
      0= NEGRO
      1= BLANCO
      IMPORTANTE LEER LINEAS 52 Y 61
*/
#include <QTRSensors.h>
#define NUM_SENSORS   6     // Numero de Sensores a Usar
#define TIMEOUT       2000
#define EMITTER_PIN   38    // Pin de LEDON
#define HIST  300          // Valor de fluctuacion de sensores
QTRSensorsRC qtrrc((unsigned char[]) {2,3,4,5,6,7}, //Pines donde van conectados los sensores
 NUM_SENSORS, TIMEOUT, EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];

unsigned int sensores = 0;
unsigned int estado1=0;
unsigned int estado2=0;

void setup(){
  Serial.begin(9600);
  delay(2000);
}
void loop(){
  leersensores();
  //Determinar dependiendo de las posibilidades
  switch (sensores) {
    case B110011:    //adelante
      adelante();
      break;
    case B100111:    //izquierda
    case B001111:
    case B110111:
    case B101111:
    case B011111:
      izquierda();
      break;
    case B111001:    //derecha
    case B111100:
    case B111011:
    case B111101:
    case B111110:
      derecha();
      break;
    case B000111:    //llego a bifurcacion que usted programa Aca delimita el codigo para el antes
    case B000011:
      bifurcacion();
      imprime();
      break;
  }
}
void imprime(){
  Serial.println("La medicion para la viburcacion (aqui describen en tipo) es:");
  Serial.print("Antes:    ");
  Serial.println(estado1,BIN);
  Serial.print("Despues:  ");
  Serial.println(estado2,BIN);
}
void bifurcacion(){
  estado1 = sensores;
  adelante();
  delay(100);
  leersensores();
  estado2 = sensores;
  parar();
}
void parar(){
  analogWrite(5,0);
  analogWrite(3,0);
  analogWrite(9,0);
  analogWrite(6,0);
}
void adelante(){
  analogWrite(5,0);
  analogWrite(3,200);
  analogWrite(9,0);
  analogWrite(6,200);
}
void izquierda(){
  analogWrite(9,0);
  analogWrite(6,200);
  analogWrite(5,0);
  analogWrite(3,50);
}
void derecha(){
  analogWrite(9,0);
  analogWrite(6,50);
  analogWrite(5,0);
  analogWrite(3,200);
}
void leersensores(){    //Determinar dependiendo de cuantos sensores utiliza
  qtrrc.read(sensorValues);
  sensores = 0;
  for (int i=0;i<=7;i++){
    if (sensorValues[i]<HIST)
      bitClear(sensores,i);
    else
      bitSet(sensores,i);
  }
    //Serial.println(sensores,BIN);
}



miércoles, 18 de mayo de 2016

EJEMPLO CONVERSOR BINARIO A BCD SIN UTILIZAR 74XX185

Cordial Saludo,

Apreciados Estudiantes,

Teniendo en cuenta la poca localización del elemento 74xx185, coloco a disposición una solución practica frente a este trabajo.

Tener en cuenta que este vídeo o generación de conversión no es de mi propiedad intelectual, comparto según reglamentos de youtube y dejo link a su origen para conocer el autor.



Link: https://www.youtube.com/watch?v=-5D89pz2hoU

Ante cualquier inquietud referir al correo: cbarrios1@udi.edu.co

lunes, 9 de mayo de 2016

Programa Prueba Seguidor de Linea Para Estado Básico de Robot Laberinto

Cordial Saludo,

Expongo el código Base para el control del seguidor de linea para Robot Laberinto con tarjeta Arduino que poseen sensores QTR.

Seguir Las instrucciones para la instalación de la librería.

DESCARGAR



lunes, 2 de mayo de 2016

CÓDIGO DE EJEMPLO PARA SOLUCIÓN ALGORITMO DE LABERINTO POR MANO IZQUIERDA MÉTODO POR INTRODUCCIÓN DE DATOS SERIAL

Cordial Saludo,

Adjunto código de ejemplo para la asignatura Microcontroladores 1.


Código:


/* Solucion ALgoritmo Robot Laberinto tipo seguidor de linea con tipologia de mano izquierda
 *  
 *  Estas son las tres secuencias a determinar:
    LBR = B
    LBS = R
    RBL = B
    SBL = R
    SBS = B
    LBL = S
 *  
 */
char c;
int pos=0;
char letras[200];
int imp = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  recogerdatos();
  procesardatosaltiempo();
  imprimirdatos();
}

void recogerdatos(){
  if (Serial.available()>0){
    c = Serial.read();
    if ((c == 'R')||(c == 'L')||(c == 'S')||(c == 'B')){
      letras[pos] = c;
      Serial.print(c);
      pos++;
    }else if (c == 'F'){
      imp = 1;
    }else{
      Serial.print(c);
      Serial.println(" No es un Dato Permitido");  
    }
  }  
}

void imprimirdatos(){
  if (imp == 1){
    Serial.println();
    Serial.println(letras);
    imp = 0;
    for (int i=0;i<pos;i++){
      letras[i] = ' ';
    }
    pos = 0;
  }
 }

void procesardatosaltiempo(){
  if (pos>=3){
    if (letras[pos-2]=='B'){
      if (((letras[pos-3]=='L')&&(letras[pos-1]=='R'))||
          ((letras[pos-3]=='R')&&(letras[pos-1]=='L'))||
          ((letras[pos-3]=='S')&&(letras[pos-1]=='S'))){
        letras[pos-3] = 'B';
        letras[pos-2] = ' ';
        letras[pos-1] = ' ';
        pos = pos - 2;
      }
      if (((letras[pos-3]=='L')&&(letras[pos-1]=='S'))||
          ((letras[pos-3]=='S')&&(letras[pos-1]=='L'))){
        letras[pos-3] = 'R';
        letras[pos-2] = ' ';
        letras[pos-1] = ' ';
        pos = pos - 2;
      }
      if ((letras[pos-3]=='L')&&(letras[pos-1]=='L')){
        letras[pos-3] = 'S';
        letras[pos-2] = ' ';
        letras[pos-1] = ' ';
        pos = pos - 2;
      }
    }
  }
}