Panzer
Panzer%20Logo.png

PANZER (Robot Sumo)

Autores

  • Julian Bravo
  • Pedro Aguilera
  • Andres Rivera
  • Fabio Bayona

Agradecemos al señor Pastor Aguilera y señor Javier Saenz, que gracias al aporte de sus conocimientos nos permitió avanzar y terminar el robot sumo. Muchas gracias a ellos.

Introducción

Nuestro proyecto se realizó con el fin de realizar un robot sumo para un concurso ;es un pequeño dispositivo que se conduce de forma autónoma a partir de una motores con su respectiva programación debía tener la habilidad de poder moverse sobre la arena de lucha sin salir de sus límites y a su vez poder reconocer a su oponente y pelear solo con fuerza quien queda en pie de la arena , su realización fue para competir en un concurso propuesto por el profesor ; este concurso de robot sumo dictaba una serie de parámetros y reglas que nuestro robot debía seguir , de esta manera a la hora de competir no solo de mostrar quien es el mejor robot no en solo en su mecanismo también la programación debió ser fundamental en su creación

Resumen:

Panzer nació a partir de la idea de competir en el primer concurso de "robot sumo" de la universidad San Buenaventura, adicional a esto quisimos integrar la construcción de Panzer con la mayor cantidad de asignaturas posibles para hacer un mejor desarrollo.
A medida del desarrollo de Panzer nos dimos cuenta de que a Panzer se le podía dar otras aplicaciones, ademas de ser solo un robot de sumo.
Pensamos que Panzer podría llegar a ser un robot de búsqueda y rescate, también podría ser un organizador de cajas para la parte industrial, nosotros pensamos en la posibilidad de integrar a el sistema de tracción y desplazamiento de Panzer para integrarlos en las sillas de ruedas para las personas discapacitadas, permitiendo a ellas llegar a sitios que normalmente una silla de ruedas convencional no se los permite

Desarrollo:

Se usaron los servomotores MG995 y alterados para su uso como rotacion continua.

Para su programación se uso el 16-bit Timer/Counter1 para el uso del FAST PWM y lograr la ecuación para manejar el tiempo requerido.

Por ejemplo en este código de un servo-motor a mayor velocidad:

/*
 * Prueba_servos.c
 
 #define F_CPU 1000000
 #include <avr/io.h>
 #include <util/delay.h>
 
 int main(void)
 {
     void check(void);
     DDRD=0xFF;
     DDRA=0;
     TCCR1A |= 1<<WGM11 | 1<<COM1A1 | 1<<COM1A0 | 1<<COM1B1 | 1<<COM1B0;
     TCCR1B |= 1<<WGM12 | 1<<WGM13 | 1<<CS10;
     ICR1 = 19999;
 
     _delay_ms(5000);            //espera de 5 seg reglamentarios
     while (1)
     {
 
         check();
 
             OCR1A = ICR1-2000; //range 400-2700 derecha
             OCR1B = ICR1-2000; //range 400-2700
             _delay_ms(1000);
 
             check();
              OCR1A = ICR1-1000; //range 400-2700 adelante
              OCR1B = ICR1-2000; //range 400-2700 
              _delay_ms(1000);
 
              check();
              OCR1A = ICR1-1000; //range 400-2700 izquierda
              OCR1B = ICR1-1000; //range 400-2700
              _delay_ms(1000);
 
     }
 
 }
 
 void check (void) {
 
     if (PORTA==0b00000001)
     {
         OCR1A = ICR1-2000; //range 400-2700 derecha
         OCR1B = ICR1-2000; //range 400-2700
     }
 
     else if (PORTA==0b00000010)
     {
         OCR1A = ICR1-1000; //range 400-2700 izquierda
         OCR1B = ICR1-1000; //range 400-2700
     }
 
     else if (PORTA==0b00000100)
     {
         OCR1A = ICR1-1000; //range 400-2700 adelante
         OCR1B = ICR1-2000; //range 400-2700 adelante
     }
 
     else if (PORTA==0b00001000)
     {
         OCR1A = ICR1-1000; //range 400-2700 adelante
         OCR1B = ICR1-2000; //range 400-2700 adelante
     }
 
     else if (PORTA==0b00000011)
     {
         OCR1A = ICR1-2000; //range 400-2700 atras
         OCR1B = ICR1-1000; //range 400-2700 atras
     }
 
     else if (PORTA==0b00001100)
     {
         OCR1A = ICR1-1000; //range 400-2700 adelante
         OCR1B = ICR1-2000; //range 400-2700 adelante
     }
 }
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License