TECPRO COLEGIO CACERES

 El sistema Tecpro acoge diferentes metodologías activas que permiten a los docentes asumir tareas de manera más efectiva, con el fin de que a los estudiantes les faciliten los logros de aprendizaje significativo, siendo constructores de su propio conocimiento y gestores de aprendizaje. Estas metodologías permiten considerar las necesidades y ritmos de aprendizaje de los estudiantes.

chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.lem.edu.co/pdf/TECPRO.pdf

  



https://www.youtube.com/watch?v=_byOiiP-A5s

https://sites.google.com/iegp.edu.co/sistema-tecpro/

https://www.tdrobotica.co/tecpro/

https://www.reddeapoyodigital.com/normalab/files/clic/normapack/flipbook_tecpro/61091721_npr_i_bitest_4x4/    BITACORA TECPRO NIVEL L

  


https://sites.google.com/iegp.edu.co/sistema-tecpro/fase-2/laboratorio

https://co.edicionesnorma.com/tecpro/ 

LINK ACCESO A PLATAFORMA:  

https://edu-norma-co.stn-neds.com/ts/view/access

https://norma.ingeniat.com/login/tipo

https://edu-norma-co.stn-neds.com/home/

https://aprender.tdrobotica.co/profile/



GRADO 10° Y 11°        PROGRAMACIÓN URFI SOLO MOTORES:

// Declaración de constantes enteras globales para nombrar los pines:
// 1. Así no tener que recordar sus números más adelante
// 2. Así cambiar rápido de número de pin, en caso de haber conectado mal

const int pinMotorIzqRetro = 5;
const int pinMotorIzqAvance = 6;
const int pinMotorDerRetro = 3;
const int pinMotorDerAvance = 11;
const int pinPulsador = 13;
const int pinLED = 10;

// Declaración de constantes enteras globales para poner nombre a velocidad y tiempos que se repetirán mucho más adelante:
// 1. Así, poder variar desde aquí una sola vez los valores de pruebas mientras se programa y se ajusta

const int velocidad = 70;
const int tiempoGiro = 300;
const int tiempoLineal = 700;

void setup() {
  // Código de configuración que se ejecuta una sola vez:
 
  // Configurar los pines como entradas o como salidas
  pinMode(pinMotorIzqRetro, OUTPUT);
  pinMode(pinMotorIzqAvance, OUTPUT);
  pinMode(pinMotorDerRetro, OUTPUT);
  pinMode(pinMotorDerAvance, OUTPUT);
  pinMode(pinLED, OUTPUT);
  delay(6000); // Tiempo para acomodar el robot en el piso
}

void loop() {
  // Código que se ejecuta de manera repetida:

  // Avance del robot durante el tiempo lineal
  // Ambos motores avanzan  
  analogWrite(pinMotorIzqAvance,velocidad);
  analogWrite(pinMotorDerAvance,velocidad);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoLineal);

  // Giro del robot a la derecha durante el tiempo de giro.
  // Motor izquierdo avanza, motor derecho retrocede
  analogWrite(pinMotorIzqAvance,velocidad);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,velocidad);
  delay(tiempoGiro);

  // Retroceso del robot durante el tiempo lineal
  // Ambos motores retroceden
  analogWrite(pinMotorIzqAvance,0);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,velocidad);
  analogWrite(pinMotorDerRetro,velocidad);
  delay(tiempoLineal);

  //Giro del robot a la izquierda durante el tiempo de giro
  // Motor derecho avanza, motor izquierdo retrocede
  analogWrite(pinMotorIzqAvance,0);
  analogWrite(pinMotorDerAvance,velocidad);
  analogWrite(pinMotorIzqRetro,velocidad);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoGiro);

  // Retroceso del robot durante el tiempo lineal
  // Ambos motores retroceden
  analogWrite(pinMotorIzqAvance,0);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,velocidad);
  analogWrite(pinMotorDerRetro,velocidad);
  delay(tiempoLineal);

  // Giro del robot a la derecha durante el tiempo de giro.
  // Motor izquierdo avanza, motor derecho retrocede
  analogWrite(pinMotorIzqAvance,velocidad);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,velocidad);
  delay(tiempoGiro);

  // Avance del robot durante el tiempo lineal
  // Ambos motores avanzan  
  analogWrite(pinMotorIzqAvance,velocidad);
  analogWrite(pinMotorDerAvance,velocidad);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoLineal);  

  //Giro del robot a la izquierda durante el tiempo de giro
  // Motor derecho avanza, motor izquierdo retrocede
  analogWrite(pinMotorIzqAvance,0);
  analogWrite(pinMotorDerAvance,velocidad);
  analogWrite(pinMotorIzqRetro,velocidad);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoGiro);

  // Detenimiento del robot
  // Ambos motores se quedan quietos y se enciende LED durante el tiempo lineal. Después se apaga el LED
  digitalWrite(pinLED,HIGH);
  analogWrite(pinMotorIzqAvance,0);
  analogWrite(pinMotorDerAvance,0);
  analogWrite(pinMotorIzqRetro,0);
  analogWrite(pinMotorDerRetro,0);
  delay(tiempoLineal);
  digitalWrite(pinLED,LOW);
}
EJERCICIO EN CLASE: 

GRADO 10° Y 11°        PROGRAMACIÓN URFI 

QUINTA PRACTICA PROGRAMACION URFI Prueba_Seguidor_LineaPista

Primero: descargar DRIVER en :   https://drive.google.com/file/d/1CgJjINU-bn5aS8CjgRHzIA23CJz871cW/view        

ver video: https://www.youtube.com/watch?v=NAaWn0sA21U

#include <DRV8833.h> // Esta instrucción incluye un fichero que nos permite manejar el DRIVER del motor con instrucciones fáciles

DRV8833 driver = DRV8833(); // Esta instrucción indica la creación del DRIVER virtual dentro del programa

 // Declaración de variables enteras globales para nombrar los pines:

 int sensorIzquierdo = 10; //Pin de conexión sensor seguidor de línea Izquierdo

int sensorDerecho = 2; //Pin de conexión sensor seguidor de línea Derecha

 int valorIzquierdo;

int valorDerecho;

 int motorA1 = 5 ; //Pin de conexión de los motores.

int motorA2 = 6;

int motorB1 = 11;

int motorB2 = 3;

 

int velocidadMotorA =110; //Se define la velocidad para los motores A y B

int velocidadMotorB = 100;

 

void setup() {

  // Código de configuración que se ejecuta una sola vez:

   // Configurar los pines como entradas o como salidas

   pinMode (sensorIzquierdo, INPUT);   //Pin de salida seguidor de línea izquierda

  pinMode (sensorDerecho, INPUT); //Pin de salida seguidor de línea derecha

  driver.attachMotorA(motorA1, motorA2); // Esta instrucción especial ya configura los pines del motor A como salidas

 driver.attachMotorB(motorB1, motorB2); // Esta instrucción especial ya configura los pines del motor B como salidas

  Serial.begin(9600); // Inicia la comunicación con el puerto serial del computador a 9600 baudios

}

 void loop() {

  // Código que se ejecuta de manera repetida:

 valorIzquierdo = digitalRead(sensorIzquierdo);

valorDerecho = digitalRead(sensorDerecho);

 if (valorIzquierdo == HIGH && valorDerecho == HIGH) { // Estado 1-1

  robotAdelante();

}  

if (valorIzquierdo == LOW && valorDerecho == LOW) { //Estado 0-0

  robotRetrocede();

  }

 if (valorIzquierdo == LOW && valorDerecho == HIGH) { //Estado 0-1

  robotIzquierda();

  }

 if (valorIzquierdo == HIGH && valorDerecho == LOW) { //Estado 1-0

  robotDerecha();

  }

 Serial.print("Sensor izquierdo: ");

Serial.print(valorIzquierdo);

Serial.print("\t");

Serial.print("Sensor derecho: ");

Serial.println(valorDerecho);

 }

 void robotAdelante(){                    //Función que permite al robot moverse hacia adelante

  driver.motorAForward(velocidadMotorA);

  driver.motorBForward(velocidadMotorB);

  }

 void robotFrena() {                      //Función que permite al robot detenerse

  driver.motorAStop();

  driver.motorBStop();

  }

 void robotRetrocede(){                    //Función que permite al robotretroceder

  driver.motorAReverse(velocidadMotorA);

  driver.motorBReverse(velocidadMotorB);

  }  

 void robotIzquierda(){                    //Función que permite al robot moverse hacia la izquierda

  driver.motorAStop();

  driver.motorBForward(velocidadMotorB);

  }

 void robotDerecha(){                      //Función que permite al robot moverse hacia la derecha

  driver.motorAForward(velocidadMotorA);

  driver.motorBStop();  

}



SEXTA PRÁCTICA PROGRAMACIÓN URFI EJERCICIO EVALUACIÓN CON MOTORES, ZUMBADOR Y LED

#include <DRV8833.h>
DRV8833 driver = DRV8833();

int motorA1 = 5 ;
int motorA2 = 6;
int motorB1 = 11;
int motorB2 = 3;

int velocidadMotorA = 100;
int velocidadMotorB = 100;

int zumbador=10;
int LED= 9;

void setup() {

  driver.attachMotorA(motorA1, motorA2);
  driver.attachMotorB(motorB1, motorB2);
  pinMode(zumbador,OUTPUT);
  pinMode(LED,OUTPUT);
   
}

void loop() {

  robotAdelante();
  digitalWrite(LED,HIGH);
  noTone(zumbador);
  delay(1000);
  robotFrena();
  tone(zumbador,500);
  digitalWrite(LED,LOW);
  delay(1000);
  robotDerecha();
  digitalWrite(LED,LOW);
  noTone(zumbador);
  delay(650);
   
}

void robotAdelante(){
  driver.motorAForward(velocidadMotorA);
  driver.motorBForward(velocidadMotorB);
  }

void robotFrena() {
  driver.motorAStop();
  driver.motorBStop();
  }

void robotDerecha(){
  driver.motorAForward(velocidadMotorA);
  driver.motorBStop();
  }

Copien y completen el código del algoritmo para que URFI realice las siguientes tareas.

  1. Con su trayectoria, trazar un cuadrado usando la secuencia de acciones: avanzar, frenar y girar. 
  2. Encender la luz led azul cuando esté avanzando en línea recta.
  3. Emitir un sonido con una frecuencia de 500 Hz con el Buzzer cuando se encuentra detenido.
  4. Observen la imagen de referencia:

Tengan en cuenta los siguientes ítems:

  1. Recuerden importar la librería del motor Driver.
  2. Verifiquen que la batería está bien conectada.
  3. Ajusten los parámetros de acuerdo con sus necesidades.
  4. Sean cuidadosos con URFI: estén listos por si deben levantarlo antes de que choque o se enrede con algo.
  5. Analicen el código resultante.
  6. Discutan con sus compañeros sobre cómo se podría usar URFI para mejorar la economía.