Technical Manual

Manual Técnico

Brazo Robótico - Sistemas Embebidos

-----------------

  1. Diagrama De Flujo - Funcionamiento General Brazo Robótico
  2. Planos Brazo
  3. Componentes Electrónicos
  4. Componentes Mecánicos
  5. Conexiones
  6. Comandos
  7. Configuración Terminal
  8. Limites de Movimiento

1. Diagrama De Flujo - Funcionamiento General Brazo Robótico

/media/uploads/andriuxone/diagrama_de_flujo.jpeg

2. Planos Brazo

El brazo cuenta con 4 eslabones contando la pinza. Las medidas estan dadas para corete en material con un grosor de 3 mm Se utilizan tornillos de 1 cm de largo para acoplar las piezas y arandelas para disminuir el rodamiento de los tornillos. . /media/uploads/andriuxone/brazo1.jpg /media/uploads/andriuxone/brazo2.jpg /media/uploads/andriuxone/brazo3.jpg /media/uploads/andriuxone/brazo4.jpg /media/uploads/andriuxone/brazo5.jpg /media/uploads/andriuxone/brazo6.jpg /media/uploads/andriuxone/brazo7.jpg

Planos para Corte Laser /media/uploads/andriuxone/brazo_robotico_con_servos_gs995-laser_a2.pdf

3. Componentes Electrónicos

Tarjeta Para Adquisición de Datos -> STM32 Núcleo F446re - Mbed /media/uploads/andriuxone/f446re.jpg /media/uploads/andriuxone/nucleo-f030r8-973950-_datasheet.pdf

Joystick para control manual /media/uploads/andriuxone/joystick.jpg /media/uploads/andriuxone/joystick_module-datasheet.pdf

Sensor de Color TC3200 /media/uploads/andriuxone/sensortc3200.jpg /media/uploads/andriuxone/tcs3200-e11-datasheet.pdf/media/uploads/andriuxone/motor-datasheet.pdf

4. Componentes Mecánicos

Motor SG-5010 /media/uploads/andriuxone/motor.jpg

5. Conexiones

/media/uploads/andriuxone/conexiones.jpg

6. Comandos

/media/uploads/andriuxone/comandos.jpg

7. Configuración Terminal

/media/uploads/andriuxone/terminal.jpg

8. Limites de Movimiento

/media/uploads/andriuxone/limite0.jpg /media/uploads/andriuxone/limite1.jpg

9. Codigo

Movimientos A posiciones Automaticas

if(telecomando == AUTOMATIC) {

lcd.printf(" ");

lcd.printf("AUTOMATIC MOVE\n");

pc.printf("Validando Parametro: ");

pc.printf("%02x",parametro);

switch (parametro) {

case HOME:

pc.printf("\nHOME..\n");

mover_home();

NVIC_SystemReset();

break;

case MATERIAL:

pc.printf("\nMATERIAL.\n");

mover_material();

NVIC_SystemReset();

break;

case CELDA1:

pc.printf("\nCELDA1.\n");

mover_celda1();

NVIC_SystemReset();

break;

case CELDA2:

pc.printf("\nCELDA2.\n");

mover_celda2();

NVIC_SystemReset();

break;

case CELDA3:

pc.printf("\nCELDA3.\n");

mover_celda3();

NVIC_SystemReset();

break;

case CELDA4:

pc.printf("\nCELDA4.\n");

mover_celda4();

NVIC_SystemReset();

break;

default:

pc.printf("No se encontro parametro valido.\n");

break ;

}Fin Switch

Movimientos de la Pinza

}else if(telecomando == PINZA){

pc.printf("Validando Parametro: ");

pc.printf("%02x",parametro);

switch (parametro) {

case ABRIR_PINZA:

lcd.printf(" ");

lcd.printf("ABRE PINZA\n");

abrir_pinza();

break;

case CERRAR_PINZA:

lcd.printf(" ");

lcd.printf("CIERRA PINZA\n");

cerrar_pinza();

break;

LECTURA DE COLOR

void leer_color(){

float red ;

float green ;

float blue ;

float clear ;

red = scolor.ReadRed();

green = scolor.ReadGreen();

blue = scolor.ReadBlue();

clear = scolor.ReadClear();

printf("\nTIEMPO EN ALTO: red: %f green: %f blue: %f clear: %f \t" ,red,green,blue,clear);

float frecuenciaclear=(1/clear);

float porcentajeC= (frecuenciaclear*100)/(frecuenciaclear);

float frecuenciaR= (1/red);

float porcentajeR= (frecuenciaR*100)/(frecuenciaclear);

float frecuenciaG= (1/green);

float porcentajeG= (frecuenciaG*100)/(frecuenciaclear);

float frecuenciaB= (1/blue);

float porcentajeB= (frecuenciaB*100)/(frecuenciaclear);

printf("\nPORCENTAJE: p_red: %0.4f p_green: %0.4f p_blue: %0.4f \t" ,porcentajeR,porcentajeG,porcentajeB);

if (porcentajeR>porcentajeG && porcentajeR>porcentajeB){

pc.putc(ANSCOLOR);

pc.putc(RED); } else if (porcentajeG>porcentajeB && porcentajeG>porcentajeR){

pc.putc(ANSCOLOR);

pc.putc(GREEN); } else if (porcentajeB>porcentajeR && porcentajeB>porcentajeG){

pc.putc(ANSCOLOR);

pc.putc(BLUE); } else if (porcentajeC>porcentajeR && porcentajeC>porcentajeG && porcentajeC>porcentajeB){

pc.putc(ANSCOLOR);

pc.putc(CLEAR); } else{

pc.putc(ANSCOLOR);

pc.putc(NO_COLOR); } }Fin color


Please log in to post comments.