Fase- 4 CJ7

 

Fase- 4 CJ7   


Hardwared:

Para esta fase al robot se le implementara un driver que su fin sera manejar los servomotores, dicho controlador sera un circuito integrado con el nombre Puente H l293D, este sera el culpable de regular el comportamiento de los servomotores según los estímulos que le sean entregados por los sensores.

Especificaciones:
  • alta calidad L293D DIP 16-pin IC Stepper Motor Drive Controller
  • Capacidad del canal: corriente / canal de salida de 600 mA
  • Protección contra sobre temperatura
  • Voltaje lógico / 0 / entrada de hasta 1.5V (alta inmunidad al ruido)
  • Diodos de pinza internos
  • Pin No: 16 pi
  • Índices absolutos máximos
  • Vs Tensión de alimentación: 36V
  • Vss Logic Supply Voltage: 36V
  • Vi señales de entrada: 5V
  • Voltaje de habilitación Ven: 5V
  • Corriente de salida máxima de Io (100 mu; s no repetitiva): 1.2A
  • Ptot Disipación de potencia total en Tpi: 90 grados; C, 4 Watts
  • Tstg, Tj Almacenamiento y temperatura de unión: -40 grados; C a 150 grados; C

  • Corriente de salida máxima: 1.2 A / canal (no repetitiva)

Diagrama de bloques:

Diagrama a bloques


El diagrama de bloques se utiliza para describir los componentes y funcionamiento del robot
 y sus conexiones mediante esquema que utiliza figuras geométricas para la fácil comprensión del mismo. En el siguiente diagrama se muestra las evidencias de conexiones y funcionamiento básico.


Parte lateral

Parte frontal



Parte superior



Diagrama de flujo:







Codigo:
En el código lo primero que hacemos es crear la variables, después de eso definiremos en void setap que entradas tendrán nuestros sensores y motores ya sean input o output en el void loop tendremos que leer los valores de nuestros sensores y así mismo con estos resultados evaluaremos si giraran o irán hacia atrás o adelante esto lo hacemos con un múltiple "if" y crearemos varios void cuya funciones son brindarle mas rapidez y mayor coherencia de comprensión  a nuestro código que llamaremos en nuestro void loop que serán "void atrás", "void izquierda", "void derecha", "void parar", "void adelante".


//Establezco variables para leer más fácil el código
int SENSORI=0; // Pin sensor izquierdo
int SENSORD=2; // Pin sensor derecho
int DERECHA1=7; // MOTOR DERECHA FASE 1
int DERECHA2=6; // MOTOR DERECHA FASE 2
int IZQUIERDA1=9; // MOTOR IZQUIERDA FASE 1
int IZQUIERDA2=8; // MOTOR IZQUIERDA FASE 2

int DERE=0; // VALOR A ALMACENAR PARA LECTURA DE LA SEÑAL
int DE=4;
int IZQUI=0; // VALOR A ALMACENAR PARA LA LECTURA DE LA SEÑAL
int IZ=5;
void setup()
{
    //CONFIGURACIÓN DE LOS PUERTOS 
 
    pinMode (DERECHA1, OUTPUT); //SALIDA DE MOTOR PARA LA FASE 1 DERECHA DEL MOTOR
    pinMode (DERECHA2, OUTPUT); //SALIDA DE MOTOR PARA LA FASE 2 DERECHA DEL MOTOR
    pinMode (IZQUIERDA1, OUTPUT); //SALIDA DE MOTOR PARA LA FASE 1 IZQUIERDA DEL MOTOR
    pinMode (IZQUIERDA2, OUTPUT); //SALIDA DE MOTOR PARA LA FASE 1 IZQUIERDA DEL MOTOR
    pinMode (SENSORD, INPUT); //SENSOR DERECHO
    pinMode (SENSORI, INPUT); //SENSOR IZQUIERDO
    pinMode (IZ, OUTPUT); //LED IZQUIERDO PARA VERIFICACION DE SEÑAL
    pinMode (DE, OUTPUT); //LED DERECHO PARA VERIFICACION DE SEÑAL
}

void loop ()
{
          IZQUI = analogRead(SENSORI); //LEE EL ESTADO EN EL QUE SE ENCUENTRA EL SENSOR IZQUIERDO
          DERE = analogRead(SENSORD);  //LEE EL ESTADO EN EL QUE SE ENCUENTRA EL SENSOR DERECHO
          
          if(DERE < IZQUI)
          {
              // SI EL SENSOR DERECHO ESTÁ INACTIVO Y EL IZQUIERDO ESTÁ ACTIVO GIRA A LA IZQUIERDA
              IZQUIERDA ();
              digitalWrite(IZ, HIGH);
              digitalWrite (DE, LOW);
           }
              if(DERE > IZQUI)
                  {
              // SI EL SENSOR DERECHO ESTÁ ACTIVO Y EL IZQUIERDO ESTÁ INACTIVO GIRA A LA DERECHA
                      digitalWrite(IZ, LOW);
                      digitalWrite (DE, HIGH);
                  }
}

              //POR MEDIO DE UNA TABLA REALIZAMOS LOS 4 ESTADOS POSIBLES ENTRE LOS CUALES ESTÁN 
              
              /*  SENSOR IZQUIERDO - SENSOR DERECHO - SENTIDO
                         0                 0          ADELANTE
                         0                 1          DERECHA
                         1                 0          IZQUIERDA
                         1                 1          ATRÁS
               */
              void ATRAS()
              {
                //AMBOS MOTORES EN DIRECCION HACIA ATRÁS
                digitalWrite(IZQUIERDA1, HIGH);
                digitalWrite(IZQUIERDA2, LOW);
                digitalWrite(DERECHA1, HIGH);
                digitalWrite(DERECHA2,LOW);
              }
              void ADELANTE()
              {
                //AMBOS MOTORES EN DIRECCION HACIA ADELANTE
                digitalWrite(IZQUIERDA1, LOW);
                digitalWrite(IZQUIERDA2, HIGH);
                digitalWrite(DERECHA1, LOW);
                digitalWrite(DERECHA2, HIGH);
              }
              void IZQUIERDA ()
              {
                //MOTOR IZQUIERDO HACIA ATRAS Y EL MOTOR DERECHO HACIA ADELANTE
                digitalWrite(IZQUIERDA1, LOW);
                digitalWrite(IZQUIERDA2, LOW);
                digitalWrite(DERECHA1, LOW);
                digitalWrite(DERECHA2, HIGH);
              }
              void DERECHA ()
              {
                //MOTOR DERECHO HACIA ATRÁS Y EL MOTOR IZQUIERDO HACIA DELANTE
                digitalWrite(IZQUIERDA1, HIGH);
                digitalWrite(IZQUIERDA2, LOW);
                digitalWrite(DERECHA1, LOW);
                digitalWrite(DERECHA2, LOW);
              }
              void PARAR()
              {
                //SE DETIENEN AMBOS MOTORES
                digitalWrite(IZQUIERDA1, LOW);
                digitalWrite(IZQUIERDA2, LOW);
                digitalWrite(DERECHA1, LOW);
                digitalWrite(DERECHA2, LOW);
              }




KEVIN JOHAN MARTINEZ PAZ - 202128381
JEISON DAVID ALPALA DAZA – 202042229
SANTIAGO MAYAC SALAZAR - 2129292


Comentarios

Entradas populares de este blog

Robot laberinto Kastelean

Fase 4 Robot seguidor de linea

FASE 2 ROBOT SEGUIDOR DE LINEA