Introduction: RobotKit - Seguidor De Luz

Armar y programar un RobotKit seguidor de Luz

Step 1: Objetivo Del Robot

El objetivo para este uso del RobotKit, es lograr que mediante dos sensores de luz el robot siga los movimientos que se le indiquen.

Por lo anterior se dice que si se coloca una luz en el sensor del lado izquierdo el robot va a tener esa luz como guía y la va a seguir, así mismo si la luz es colocada en el sensor del lado derecho esta será la dirección que tome el robot. Finalmente si no se detecta ninguna luz este tendrá dirección hacia adelante.

Step 2: Armado Del Robot

1. Colocar los motores a cada extremo del chasis y fijar con bandas plásticas para asegurarlos.

a. Conectorizar los cables (rojo y negro - positivo y negativo)) hacia el microcontrolador en los pines que estan paralelos al capacitor, esto para cada motor.

2. Fijar y atornillar el microcontrolador en la parte central del chasis.

3. FIjar con bandas plásticas el receptor infrarojo.

a. Conectorizar las tres patillas hacia el pin digital 7 del microcontrolador.

4. Fijar con bandas plásticas los sensores de luz, teniendo en cuenta que deben estar direccionados hacia extremos opuestos del chasis para que cumpla su objetivo de seguir la luz.

a. Conectorizar las patillas A0, GND y VCC del sensor hacia el pin analógico A0 del microcontrolador.

b. Conectoriza las patillas A0, GND y VCC del sensor hacia el pin analógico A1 del microcontrolador.

5. Colocar el portabartería en la parte baja del chasis.

a. Conectorizar los cables (rojo y negro - positivo y negativo) en las patillas señaladas como + y -.

6. Calzar al lado de cada motor las piezas con aspecto de aspas que funcionan como rueda del robot.

7. Calzar a cada extremo del chasis las piezas planas con extremo tipo gancho.

Step 3: Programación

1. Se incluye la librería RobotKit:

#include

2. Se "levantan" los motore y se programan los mismos según los pines que fueron conectorizados físicamente:

void setup()

{

setMotors();
pinMode(A0, INPUT); // se indica que se trabajará con los pines analógicos A0 y A1

pinMode(A1, INPUT);

Serial.begin(9600); // se indica que se debe comenzar en la velocidad de transferencia de datos 9600

}

3. Se hace el "loop"o ciclo para que que el sensor de luz programe lo que debe hacer cuando tenga o no la luz guía:

void loop() //ciclo que se repite tantas veces como se programe
{

int l = analogRead(A0); // variable l para el pin anagólico A0

int r = analogRead(A1); // variable r para el pin analógico A1

Serial.print(l);

Serial.print("-------");

Serial.println(r);

if (r - l > 80) { // si r menos l es menor que 80 el robot se mueve hacia la izquierda

moveLeft();

}

else if (l - r > 80) { // si l menos r es menor que 80 el robot se mueve hacia la derecha

moveRight();

}

foward(); // si no detecta luz va hacia adelante

}

4. Se programan las funciones básicas de movimiento del robot, es decir; detenerse, adelante, derecha e izquierda.

void moveLeft() {

pivotLeft(100, 250); // movimiento hacia la izquierda con los motores en 100 de potencia a 250 de tiempo

Serial.println("Left"); }

void foward() {

forward(100, 250); // movimiento hacia adelante con los motores en 100 de potencia a 250 de tiempo

Serial.println("Foward"); }

void moveRight() {

pivotRight(100, 250); // movimiento hacia la derecha con los motores en 100 de potencia a 250 de tiempo Serial.println("Right"); }

void stopServo() { // detiene los movimientos del robot

stopMotors();

Serial.println("Stop");

}

Step 4: Competencia

Para comprobar las funciones del robot y divertirse un poco, se promueve una competencia que consiste en un inicio y una meta que tendrán durante el recorrido óbstaculos que evadir.

Quien guiando a su robot con una luz y evadiendo los obtáculos del camino llegue a meta en el menor tiempo será el o la ganadora de la competencia.

A jugar!