Capture the flag


Capture the flag







ESTRATEGIA 5. Programación del reto: Capture the flag
• En este momento, los alumnos deberán organizarse para llevar a cabo la programación del reto y el armado del
circuito para que éste funcione.
• ¿Qué se requiere hacer? Se deberá realizar una programación que realice lo siguiente:
• La conversión analógica – digital de las tres fotorresistencias.
• Se verificará, con ayuda del condicional IF – ELSE IF – ELSE el estado de las tres fotorresistencias al mismo
tiempo. Es necesario usar los operadores lógicos AND (&&) para comprobar varias condiciones al mismo
tiempo.
• Si se cumple el caso en el que la fotorresistencia de en medio recibe poca luz y las otras dos de los extremos
siguen recibiéndola, el robot avanzará hacia adelante. Y así con los demás casos que generan los giros a la
derecha, izquierda y el modo inmóvil, cuatro casos en total.
• Los equipos deberán organizarse para que puedan armar el circuito y programar al mismo tiempo, es decir, se
deberán de poner de acuerdo para delegar cada actividad y asimismo, ahorrar tiempo. El circuito a armar se
muestra en la siguiente diapositiva.


//  _ ___ _______     ___ ___ ___  ___ _   _ ___ _____ ___
// / |_  )__ /   \   / __|_ _| _ \/ __| | | |_ _|_   _/ __|
// | |/ / |_ \ |) | | (__ | ||   / (__| |_| || |  | | \__ \
// |_/___|___/___/   \___|___|_|_\\___|\___/|___| |_| |___/
//
// Práctica: CaptureTheFlag

//
// Made by Eduardo Rafael Ramírez Camarillo
// License: CC-BY-SA 3.0

/* ****************************** CAPTURE THE FLAG **********************************
************ Conversión analógica - digital del valor de TRES fotoresistencias *******
Se utilizan tres LDR para controlar el movimiento del Frogduino; si se tapa una fotorresistencia
se genera un movimiento diferente.

ADELANTE: --- LUZ --- OSCURO --- LUZ ---
DERECHA: --- OSCURO --- LUZ --- LUZ ---
IZQUIERDA: --- LUZ --- LUZ --- OSCURO ---
DETENIDO: --- LUZ --- LUZ --- LUZ ---
***************** IMPLEMENTACIÓN DE LA ESTRUCTURA IF ELSE *********************
***************** el resultado lo mostramos en la TERMINAL **************************
*/
#include <Servo.h>
int ldr1 = 0, ldr2 = 1, ldr3 = 2; // Pines donde conectaremos los LDR
int val1, val2, val3; // Variables para almacenar los resultados de las conversión Analog-Dig
int valMax = 200;

Servo ruedaIzq, ruedaDer;

void setup ()
{
  Serial.begin (9600); // Inicialización de la comunicación serial
  ruedaIzq.attach (13);
  ruedaDer.attach(10);
}

void loop ()
{
  val1 = analogRead (ldr1); // Conversión Analog-Dig y lo alamacena en "val1"
  val2 = analogRead (ldr2); // Conversión Analog-Dig y lo alamacena en "val2"
  val3 = analogRead (ldr3); // Conversión Analog-Dig y lo alamacena en "val3"

  // map (variable, val min, val max, adaptacion min, adaptacion max);

  Serial.print (val1);
  Serial.print("\t");       // Código de impresión de un tabulador horizontal
  Serial.print (val2);
  Serial.print("\t");
  Serial.println (val3);

  Serial.print ("AVANCE = ");

  if (val1 <= valMax && val2 >= valMax && val3 >= valMax)
  {
    Serial.println ("Izquierda");
    ruedaIzq.write (90);
    ruedaDer.write (0);
  }

  else if (val1 >= valMax && val2 <= valMax && val3 >= valMax)
  {
    Serial.println ("Adelante");
    ruedaIzq.write (180);
    ruedaDer.write (0);
  }

  else if (val1 >= valMax && val2 >= valMax && val3 <= valMax)
  {
    Serial.println ("Derecha");
    ruedaIzq.write (180);
    ruedaDer.write (90);
  }

  else
  {
    Serial.println ("Detenido");
    ruedaIzq.write (90);
    ruedaDer.write (90);
  }  
  delay (200); // Pausa para poder visualizar el resultado
} // FIN

2 comentarios:

  1. http://construyasuvideorockola.com/d_fuente_sim_reg.php

    compañeros este es el link de la fuente de voltaje hay dos modelos

    ResponderEliminar
  2. int QRD = A0;
    int var;
    const int zumbador = 7; // Zumbador conectado al pin 6
    const int led = 6; // LED conectado al pin 6

    void setup()
    {
    Serial.begin(9600);
    pinMode(zumbador, OUTPUT);
    pinMode(led, OUTPUT);

    }

    void loop()
    {
    var=analogRead(QRD);
    Serial.println (var);
    delay(500);
    if(var > 1000)
    {
    digitalWrite(led, LOW);
    digitalWrite(zumbador, HIGH);
    delay(2);
    }
    else
    {
    if (var < 1000)
    {
    digitalWrite(zumbador, LOW);
    digitalWrite(led, HIGH);
    delay(2);
    }
    }
    }

    ResponderEliminar