Kit Expansión.-Robot móvil Seguidor de luz · KIT EXPANSIÓN- ROBOT MÓVIL SEGUIDOR DE LÍNEAS 2...
Transcript of Kit Expansión.-Robot móvil Seguidor de luz · KIT EXPANSIÓN- ROBOT MÓVIL SEGUIDOR DE LÍNEAS 2...
KIT EXPANSIÓN- ROBOT MÓVIL SEGUIDOR DE LÍNEAS WWW.STORE.ROBODACTA.MX 1
Kit Expansión.-Robot móvil
Seguidor de luz
KIT EXPANSIÓN- ROBOT MÓVIL SEGUIDOR DE LÍNEAS WWW.STORE.ROBODACTA.MX 2
Robot seguidor de LUZ
Un robot seguidor de luz es capaz de tomar decisiones dependiendo únicamente de
una fuente luminosa, como su nombre lo indica este robot es capaz de seguir una luz. Los
sensores que se utilizan son sensibles a reaccionar con los cambios de luminosidad del
entorno.
Nota: Para este kit se necesita el Kit Básico Robodacta
Material -Material del robot Movimientos básicos (consultar PDF aquí )
-Mini Protoboard
- 4 cables jumper Macho-Macho
-2 LDR
-2 resistencias de 10K
-cable UTP o de conexión
Paso 1 Ensamblaje
KIT EXPANSIÓN- ROBOT MÓVIL SEGUIDOR DE LÍNEAS WWW.STORE.ROBODACTA.MX 4
Los sensores que se utilizan comúnmente en un robot seguidor de luz son las
fotorresistencias o los LDR como también se conocen. El funcionamiento de una
fotorresistencia es parecido al de un potenciómetro, ambos cambian el valor de su resistencia
solo que a diferencia del potenciómetro que hay que hacerlo manual, este cambia su
resistencia dependiendo de la cantidad de luz que incida en él.
El circuito que observamos es un divisor de voltaje, que está conectado a las entradas
analógicas del arduino, como el voltaje es una señal analógica esta será procesada por medio
de un convertidor analógico digital, que hará una relación entre 0 y 1023 y 0 y 5v permitiendo
hacer uso de esos valores en el programa (en este caso hablando de un convertidor de 10bits)
KIT EXPANSIÓN- ROBOT MÓVIL SEGUIDOR DE LÍNEAS WWW.STORE.ROBODACTA.MX 5
Paso 2 Programación
//Robodacta Robot Expansión Seguidor de Luz
// Declaración de variables
int senD,senI;// terminales de LDR derecho e izquierdo
int ena=9;// terminal 9 y 7 controlan motor 1
int enb=7;
int enaa=10;// terminal 10 y 8 controlan motor 2
int enbb=8;
int sen=0;
/*Declaración de entradas y salidas, en este caso como A0 Y A5 ya están
definidas como entradas analógicas no se pondrán en void setup */
void setup() {
pinMode(ena,OUTPUT);
pinMode(enb,OUTPUT);
pinMode(enaa,OUTPUT);
pinMode(enbb,OUTPUT);}
// comienza void loop
void loop() {
senD=analogRead(A0); // lee el valor del pin A0 y asígnalo a senD
senI=analogRead(A5); // lee el valor del pin A5 y asígnalo a senI
sen= senD-senI; // sen será igual a la resta de ambos valores anteriores
if (sen<26 && sen >-1 && senD>450 && senI>450){ // si está entre 0 y 25 y los
sensores mayor que 450 ejecuta adelante
adelante();
}
if(senD<400 && senI<400){ // si ambos sensores son menores a 400 entonces
ejecuta alto
alto(); }
if (sen>25 && senD>450 ) // si sen es mayor de 25 y el sensor derecho es mayor a
450 ejecuta derecha
{derecha();}
if (sen<0 && senI>450) // si sen es menor que 0 y el sensor izquierdo es mayor a
450 ejecuta izquierda
{izquierda();}
}
// Establecer subrutinas para ejecutar movimientos
KIT EXPANSIÓN- ROBOT MÓVIL SEGUIDOR DE LÍNEAS WWW.STORE.ROBODACTA.MX 6
void atras(){
digitalWrite (ena, LOW);// LOW estado bajo 0
digitalWrite (enb, HIGH);//HIGH estado alto 1
digitalWrite (enaa, LOW);
digitalWrite (enbb, HIGH);}
void adelante(){
digitalWrite (ena, HIGH);
digitalWrite (enb, LOW);
digitalWrite (enaa, HIGH);
digitalWrite (enbb, LOW);}
void derecha(){
digitalWrite (ena, HIGH);
digitalWrite (enb, LOW) ;
digitalWrite (enbb,LOW);
digitalWrite (enbb,HIGH);}
void izquierda (){
digitalWrite (ena,LOW);
digitalWrite (enb,HIGH);
digitalWrite (enaa, HIGH);
digitalWrite (enbb,LOW);}
void alto(){
digitalWrite (ena, LOW);// LOW estado bajo 0
digitalWrite (enb, LOW);//HIGH estado alto 1
digitalWrite (enaa, LOW);
digitalWrite (enbb, LOW);}
Puedes descargar el programa desde este enlace ProgramaSeguidorLuz
Se tiene la declaración de variables en la parte de arriba, y en void setup la declaración
de variables como entrada o como salida. En este programa solo tenemos las salidas que van
hacia el motor y no indicamos las entradas que son analógicas ya que el Arduino IDE ya
reconoce A0 y A5 como entradas analógicas.
La idea principal del robot es que cuando la fotorresistencia de la izquierda capte
mayor cantidad de luz que la derecha este ejecute un movimiento hacia la derecha para
seguir la fuente luminosa, en caso que la fotorresistencia de la derecha capte mayor cantidad
de luz que el de la izquierda entonces ejecute movimiento hacia la derecha.
KIT EXPANSIÓN- ROBOT MÓVIL SEGUIDOR DE LÍNEAS WWW.STORE.ROBODACTA.MX 7
Esto se hace con la variable sen que es la diferencia entre las dos señales, así
tendremos valores negativos y positivos que nos ayudara a saber a qué lado girar.
Hay que tomar en cuenta que los sensores estarán dando valores de 0 1023, el
programa responde ante estas variables del entorno. Cuando se tenga el robot en una área
oscura con poca luz, el robot tendrá valores menores a 400, por eso en ese valor le diremos
que este en alto.
Cuando los sensores tengas valores arriba de los 450 empezará a moverse hacia
adelante siempre y cuando también sen este dentro de 0 a 25. Cuando haya menos luz los
sensores alcanzarán valores menores como 300, 200 y cuando haya más luz estos estarán con
valores más altos como 500, 600, 900 etc.
Paso 3 Poniéndolo en marcha
Abrimos el arduino IDE y cargamos el programa, recordando nuevamente no tener
puesto el conector de barril con la batería de 9v mientras se tiene conectada la tarjeta con la
computadora.
Aquí hay un video donde puedes observar cómo debe de funcionar
https://youtu.be/VkRUIXCdvHk