Sunteți pe pagina 1din 18

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA (UNTECS)

INGIENERIA DE ELECTRONICA Y TELECOMUNICACIONES

Informe de Robot Seguidor de Lnea

Ingeniera Bsica

ALUMNO: CICLO: CDIGO:

Caballero Moreno Marco Antonio Quinto 2011200025

PROFESOR:

Elmer Cordova

LIMA PER

2013

ROBOT SEGUIDOR DE LINEAS FK-BOT v3.0

Introduccin

FK-BOT v.3.0 es un robot seguidor de lneas diseado Para las diferentes competencias Nacionales de robtica .El robot FK-BOT v3.0 fue creado el ( 18-09-13 ) con motivo del concurso Coneimera de ese mismo ao. Tuvo una primera versin, el cual compiti en el II Untecstronics (2012). Luego de varias versiones y mejoras se ha llegado hasta esta versin (v3.0) la cual es la ms estable de todas encuanto a desempeo y competitividad quedando en muy buenos puestos . Actualmente este robot esta Operativo y ha competido oficialmente en los eventos de este ao representando a la Universidad Nacional Tecnolgica del cono sur de Lima (en conjunto con el grupo de robtica de la UNTECS). Cuenta como principal caracterstica la utilizacin de un microcontrolador Pic 18f2550, y con un booloader pre programado, para la comunicacin usb principalmente utilizado para la carga de la programacin del robot. La competencia de seguidores de lnea (rastreadores) es la competencia de robtica mas conocidas en el Per, no existe algn evento en que falte esta categora, por lo que los competidores de diferentes universidades son numerosos, por ello es muy importante que la elaboracin del robot sea buena, pues es muy exigente esta competicin. La programacin se hace por lenguaje C++ cada pista es pre programada por los competidores.

Objetivos: Describir el funcionamiento electrnico, mecnico y lgico del Robot FK-BOT Describir las competencias de Robtica en la categora seguidores de lnea en el Per Servir de motivacin a estudiantes de la carrera de ingeniera electrnica, y ramas afines para incentivar la investigacin en las reas de robtica y automatizacin.

Esquema del Robot Seguidor de Lnea

Etapa de Sensado (sensores)

Los sensores utilizados son los cny 70, que son sensores de luz uv de corto alcance.

Acondicionamiento de seal

Las seales analgicas de los sensores son convertidas a digitales.

Etapa de Control

Es la parte lgica , compuesto por el microcontrolador, y la parte de potencia ( driver )

Programacion
Actuadores

Es el que le dar movimiento mecnico al robot, compuesto por los motores.

Etapa de Sensado Se utilizan los sensores infrarrojos Cny70, Cuando los sensores estn sobre una superficie blanca, la luz ultravioleta que emiten estos sensores rebotara hacia el fototransistor haciendo que este se sature. Cuando el el sensor esta sobre una superficie negra, esta absorber toda la radiacin, haciendo que no rebote nada de luz hacia el fototransistor, al no rebotar nada de luz UV el fototransistor no saturara, haciendo que este en corto (abierto). Asi es el funcionamiento de este sensor, y se puede utilizar para sensar partes blancas y las oscuras , segn la configuracin que tenga el foto transistor se pueden obtener estas seales analgicas ( pues esta variara si el color de superficie es clara, poco clara u oscura), que luego se enviara a la etapa de acondicionamiento.

El CNY70 tiene cuatro pines de conexin. Dos de ellos se corresponden con el nado y ctodo del emisor, y las otras dos se corresponde con el colector y el emisor del receptor. Los valores de las resistencias son tpicamente 10K ohmios para el receptor y 220 ohmios para el emisor.

La configuracin que se puede utilizar es cualquiera de estas dos, pues sabemos que cuando se detecte superficie blanca esta rebotara hacia el fototransistor y este saturara, enviando un 1 logico ( es el caso de la figura A), este el caso que utiliza el el robot Fk-bot.. La salida de este dispositivo es analgica y viene determinada por la cantidad de luz reflejada .el Umbral de deteccin de este sensor esta entre los 0.3mm a 5mm de distancia

ACONDICIONAMIENTO DE SEAL Se utiliza el amplificador operacional LM358 configurado como comparador, es de doble canal, fcil de usar. Los Amplificadores operacionales tienen tantas aplicaciones que no debera faltar entre nuestros recursos. Las aplicaciones del LM358 incluyen amplificadores de transductor, DC bloques de ganancia y todos los circuitos de amplificador operacional convencional. Este opamp lo utilizamos como comparador para acondicionar las seales analgicas de los sensores cny70 a valores discretos (digitales), se tomara el valor de referencia de los potencimetros para variar la esta referencia y obtener valores adecuados digitales que luego el microntrolador los leer y procesara.

Como se sabe el sensor cny 70 nos da valores analgicos, es aqu donde el opamp configurado como comparador convertra estas seales en digitales ya luego el microcontrolador los leera y en el programa se podrn procesar.

El robot seguidor de lneas utilizara 8 sensores, por lo cual es necesario contar con con 4 opamp.

Etapa de Control Pic 18f2550: Es un microcontrolador de gama alta de los pic arquitectura RISC de 8bits, 2 modulos de captura/comparcion/pwm,ccp, convertidor adc, opera a 40Mhz velocidad
reloj, 16Kwords de memoria FLASH, cuenta con un puerto usb 2.0 opera a 5 voltios, entre sus principales caracteristicas La principal funcin ser la de ser el cerebro del robot, adquirir las seales de los sensores, tomara las deciciones, de movimientos del robot, control de velocidad, contralara los led de estado, entradas de botones, vera por la comunicacin usb, vera el estado de batera y hara otras funciones mas.

Driver de motor L293B El L293B es un driver de 4 canales capaz de proporcionar una corriente de salidade hasta 1A por canal. Cada canal es controlado por seales de entrada compatibles TTL y cada pareja de canales dispone de una seal de habilitacin que desconecta las salidas de los mismos. Dispone de una patilla para la alimentacin de las cargas que se estn controlando, de forma que dicha alimentacin es independiente de la lgica de control.componente el que dara la fuerza necesaria para poder mover a los motores del robot Corriente de salida de 1 A por canal. Principales carateristicas: Corriente de salida de pico de 2 A por canal Seal para la habilitacin de las salidas

Alta inmunidad al ruido Alimentacin para las cargas separada de la alimentacin de control. Proteccin contra sobre - temperaturas.

Otros Componentes de la etapa de control: Transistor 2n2222: para switcheo de botloader Resistencias de 5k, 10k Leds Capacitores de 100uf, 0.01uf, 200uf: desacoplo Diodos de 1 amperio: proteccin contra corriente pico de reversa de motores Botones pulsadores , switch , espadines macho.

Motores Los motores que se utilizan son dos motorreductores, un motorreductor es un motor q tiene incorporados engranajes que reducirn la revoluciones de este pero ala vez aumentara su fuerza en el torque.

Programacion La Programacion de robot se hace en lenguaje c con el compilador ccs c este tipo de programcion es denominado por caso, consiste en que el robot al recorrer las pistas se le presentan diferentes situaciones y es asi que debe tomar deciciones para cada tramo, esquina o bifurcacin que se presente , etc. Ademas en esta programacin se incluye el espacio para el bootloader

#include <18F2550.h> #device adc=10 #fuses HS,NOWDT,MCLR,NOSTVREN,NOBROWNOUT,NOPUT,NOPROTECT,NOLVP,NODEBUG,USBDIV, PLL5,CPUDIV1,VREGEN #use delay( clock = 48000000 ) //////////////////////////////bootloader//////////////////////////////////// #build (reset=0x1000,interrupt=0x1008)//espacio para la carga del bootloader #org 0x0000,0x0FFF{}//// vector inicio de la memoria //////////////////////////////////////////////////////////////////////// #USE STANDARD_IO(b) #USE STANDARD_IO(A) #USE STANDARD_IO(C) int16 mi,md; int s1,s2,s3,s4,s5,s6,s7,s8,btn1,btn2; int s=0; //variable para configurar tipo de sensado 0 para normal, //1 para sensado invertido y 2 para desactivar sensado #int_timer0 //la lectura de sensores se hace cada 1ms void timer0(){ //funcion de timer0 se vuelve a repetir interrupcion cada 1 ms, if(s==0){ //sensado normal s1=~input(pin_b0); s2=~input(pin_b1); s3=~input(pin_b2); s4=~input(pin_b3); s5=~input(pin_b4); s6=~input(pin_b5); s7=~input(pin_b6); s8=~input(pin_b7);} if(s==1){ //sensado invertido s1=input(pin_b0); s2=input(pin_b1); s3=input(pin_b2); s4=input(pin_b3); s5=input(pin_b4); s6=input(pin_b5); s7=input(pin_b6); s8=input(pin_b7);} if(s==2){} //si s es 2 no hay sensado set_pwm1_duty(mi); //se cargan los valores de pwm set_pwm2_duty(md); output_toggle(pin_c0); //indicador led del timer set_timer0(6); }/// se vuelve a cargar ////////////////////////////FUNCIONES //////////////////////////////// void r_flancos();//rastreo por flancos utilizando 2 sensores void r_borde_d();// rastreo borde siempre dobla a izquierda

void r_borde_i();//rastreo borde siempre dobla a derecha void luz(); //encendido de led naranja por parpadeo al inicio void botones();//entrada de botones //funciones para la programacion por casos void f0(); void f1(); void f2(); void f3(); void f4(); void f5(); /////////////ACCIONES////////////// void mov_avanzar (void); void mov_izquierda1 (void); void mov_izquierda2 (void); void mov_derecha1 (void); void mov_derecha2 (void); void parar (void); ///////////////////////////configuraciones/////////////////////// void main(){ mi=800; //valores para la velocidad del robot (pwm) md=800; setup_timer_2(T2_DIV_BY_1,255,1); //conf de pwm setup_ccp1(CCP_PWM); setup_ccp2(CCP_PWM); set_pwm1_duty(mi); /// pwm1 motor izquierdo set_pwm2_duty(md); ///pwm2 motor derecho set_tris_B(0xff); setup_adc_ports(an0); //lectura analogica para ver estado de bateria setup_adc(adc_clock_internal); f0();} void f0(){ while(true){ int16 q; botones(); output_high(pin_c7); set_adc_channel(0); delay_us(30); q=read_adc(); if(q<680){//si el valor de la batateriaes menora 680 descargado while(true){ //para baterias de 12v output_toggle(pin_c0); //led palpitaran y no arranca seguidor output_toggle(pin_c7); delay_ms(100); }} if(btn1==0){ //si se pulsa boton empieza a funcionar seguidor luz(); //indicador led f1(); //llama a funcion f1 para la programacion por casos }}} //////////////////////////////sensados////////////////////////////////////// //tipos de rastreos con sus respectivas condiciones void r_flancos(){

if(s3==0 && s6==0) mov_avanzar(); if(s3==1 && s6==0) mov_izquierda1(); if(s3==0 && s6==1) mov_derecha1();} void r_borde_d(){ if(s5==1 && s6==0) mov_avanzar(); if(s5==0 && s6==0) mov_izquierda1(); if(s5==1 && s6==1) mov_derecha1();} void r_borde_i(){ if(s3==0 && s4==1) mov_avanzar(); if(s3==1 && s4==1) mov_izquierda1(); if(s3==0 && s4==0) mov_derecha1();} ///////////////////////////////// INICIO programacion /////////////////////////// //ejemplo de programacion por casos void f1(){ while(true){ r_borde_i(); //escojo tipo de rastreo if(s1==0 && s8==1) // si sensor 1 no toca linea y 2 toca linea //a la siguiente funcion f2();}} //se llama a siguiente funciona void f2(){ s=1; //invierto lectura de sensores mi=950; //aumento velocidad, se puede cambier en cualquier momento md=950; while(true){ r_flancos(); if(s1==1 && s8==1) // si el sensor1 toca linea y sensor 8 toca linea negra f3(); //llama a siguiente funcion }} void f3(){ //mueve a la derecha hasta que encuentre siguiente linea s=0; //cambio otraves a sensado normal while(true){ r_borde_d(); if(s7==1&& s2==1) f4(); }} void f4(){ while(true){ parar(); //robot llego a la meta luz(); }}

///////////////////////funciones de los leds y botones/////////////////////////////////////////// void luz(){ output_toggle(pin_c0); output_toggle(pin_c7); delay_ms(100);} void botones(){

btn1=input(pin_a5); btn2=input(pin_c6);} ///////////////////////////////////////////MOVIMIENTOS/////////////////////////////////// void mov_avanzar(){ output_high(pin_a1); output_low(pin_a2); output_low(pin_a3); output_high(pin_a4);} void mov_izquierda1(){ output_high(pin_a1); output_low(pin_a2); output_high(pin_a3); output_low(pin_a4);} void mov_izquierda2(){ output_high(pin_a1); output_low(pin_a2); output_low(pin_a3); output_low(pin_a4);} void mov_derecha1(){ output_low(pin_a1); output_high(pin_a2); output_low(pin_a3); output_high(pin_a4);} void mov_derecha2(){ output_low(pin_a1); output_low(pin_a2); output_low(pin_a3); output_high(pin_a4);} void parar(){ output_high(pin_a1); output_high(pin_a2); output_high(pin_a3); output_high(pin_a4);}

Bootloader Un BootLoader es un pequeo conjunto de instrucciones que forman un programa y se graban, en este caso en un microcontrolador, para permitir un posterior manejo y actualizacin de sus programas internos (firmware) sin necesidad de utilizar programadores (hardware) especficos. Es decir, utilizas un programador (o quemador) de microcontroladores una nica vez para cargarle el mencionado BootLoader al microcontrolador y luego te bastar con una sencilla aplicacin en tu ordenador para cambiar a tu antojo el funcionamiento de tus sistemas. Todo mediante una vulgar conexin al puerto USB. En este Caso se Se esta utilizando el bootloader de la pagina neoteo , este archivo hexagesimal es el se programara antes en el pic , ya luego de estar programado , y luego de estar hecha las conexiones necesarias del usb, se conecta mediante el cable usb ala pc olaptop y se habre el cargador del hex, en este caso utilizamos el del propio microchip. Para mas informacin ver La pagina de neoteo : http://www.neoteo.com/19871-bootloader-para-18f2550-entrenador-neoteo/3/

Planos de Fk-bot Control:

Descripcion de la competencia Ratreadores de Linea Consiste en la creacin de un robot autnomo capaz de recorrer una Lnea negra sobre un fondo blanco, o viceversa, en el menor tiempo posible. Estos robots se caracterizan por poseer un alto grado de algoritmos (programacin) que le permiten predecir y pasar las pruebas ms inesperadas como: curvas, ngulos rectos y mayores de 90, lneas discontinuadas, puentes o rampas con pequeas pendientes, etc. CARACTERSTICAS DEL ROBOT PARTICIPANTE: El robot Seguidor de Lneas debe ser AUTNOMO, es decir que no puede ser manipulado o conectado con ningn aparato externo como mandos a Radio Control o Bluetooth, Fuentes de Alimentacin, Computadoras o algn otro dispositivo externo. No est permitido el uso de robots comerciales (LEGO u otro) para el diseo y construccin del robot. El robot deber tener un interruptor de encendido visible que pueda ser apreciado por los jurados y el pblico. Las dimensiones y el peso del robot no estar limitado (LIBRE). El robot deber estar preparado para operar en condiciones de luz variables REA Y CARACTERISTICA DE LA COMPETENCIA: La competencia se realizar en 2 pistas con un rea de 2 x 2 metros cada una, las cuales presentarn diferentes recorridos Las Pistas tendrn una superficie de fondo color blanco con una lnea de color negra y algunas partes con una lnea blanca y fondo negro, las cuales tendr las siguientes caractersticas: Tamao de la Lnea: 2.1 cm. (+/- 0.5) ngulos: Existirn ngulos cerrados no menores de 35. Discontinuidades: No mayores de 3 cm. (en curvas). Bifurcaciones: Habrn desvos en donde el robot tendr que decidir el camino correcto. Rampas: las medidas se indicarn en el Blog del evento.

Para indicar la Partida o Inicio del recorrido, existir un cuadrado de color negro ubicada en una esquina y adems existir un segundo cuadrado de color negro que nos indicar la Meta

Ejemplo de una pista de competencia Para seguidores de linea

PUNTAJES DE CALIFICACIN: En la competencia se calificar a cada robot segn los siguientes puntos: Diseo y Originalidad: Se calificar con mayor puntuacin al uso de materiales que permitan mejorar la presentacin y el buen funcionamiento del robot. Movimientos precisos en el recorrido: Se calificar con mayor puntuacin al robot que no presente muchas vibraciones o desviaciones en sus movimientos durante su recorrido. Recorrido completo: Aquellos robots que completen todo el recorrido de una determinada pista, obtendrn el mayor puntaje en este punto. Tiempo total del recorrido: Es el tiempo que tarde el robot en completar el recorrido de determinada pista.

Conclusiones

Es muy importante tener en cuenta el diseo, electrnico y mecnico que debe tener el robot ya que de esta depende que tan estable sea. En la parte del chasis del robot se debe tener en cuenta el peso y la dimensin, pues la inercia del robot es un factor que puede jugar en contra de la competencia, pues tendera a salirse de las lneas, o en el caso de ser poco pesado, el robot tendr poco equilibrio, se debe busca un punto medio entre peso , dimensin , fuerza y velocidad. Uno de los problemas que se tuvo en la etapa del diseo electrnico del robot fue que se infiltraba baste ruido elctrico al microcontrolador, haciendo que se reinicie varias veces, por ello se tuve que investigar acerca de porque se produca, llegando a la conclusin que los motores inducan este ruido y a la ves creaban picos de corriente , los microcontroladores pic son muy sensibles a estos. La solucin que se tubo fue de colocar condensadores de desacoplo de 0.01uf y 100,uf en paralelos a la fuente de tensin, y colocarlos lo ms cerca posible a los integrados. El propsito de construir un robot seguidor de lnea es poner en prctica los conocimientos adquiridos de los estudiantes de ingeniera y electrnica y que este conocimiento no quede solo en la teora, sino ponerlo en la prctica y a la ves desarrollar el habito de investigar, pues este ingrediente es el que ms hace falta en los estudiantes . Tambin de difundir al pblico en general el grado de desarrollo de la robtica en nuestro pas. La programacin del robot es por si se puede decir el alma del robot, pues este es que har que el robot , adquiera la autonoma para su desplazamiento, es muy importante que la programacin sea lo mas robusta posible para que en el momento del concurso no presente fallas en el recorrido Un robot seguidor de lnea de competencia tiene por objetivo recorrer una pista dada en el menor tiempo posible.

Anexos

Biliografia

Libros: Compilador c ccs y simulador proteus para microcontroladores pic Autor: Eduardo Garcia Breijo

De internet: http://www.infoab.uclm.es/labelec/solar/otros/infrarrojos/sensor_cny70.htmhttp://pavdre.bl ogspot.com/p/robot-seguidor-de-lineas.html http://pavdre.blogspot.com/p/robot-seguidor-de-lineas.html http://www.neoteo.com/19871-bootloader-para-18f2550-entrenador-neoteo/ http://www.microrobotica.net/recursos/bootloader-hid/ http://microembebidos.com/

S-ar putea să vă placă și