PRÁCTICA No 1 micros II

4
   Abst rac t     The line follower is a robot that is designed to follow the black line, which it can mediate the use of basic electronic components such as sensors, motors, pic, resistors, diodes, LEDs, logic gates and their respective programming in this case we use the microcode program, although this practice only present with pulsed diodes. Í nd ices    Motors,  pic, p rogram m ing, rob o t , fol low e r, se nso rs. I. OBJETIVOS a) Refrescar los conocimientos obtenidos en sistemas microprocesados I.  b) Comprender el funcionamiento de algunos componentes necesarios en esta práctica. c) Crear un código que se lo pueda aplicar fácilmente a cualquier seguidor de línea. II. I  NTRODUCCIÓ N A continuación vamos a realizar la simulación de un robot seguidor de línea, con los pasos más básicos, aunque en la  práctica tan s olo nos limitaremos al funcionamiento del mismo mediante el uso de pulsantes y leds. Cumpliendo con el objetivo que el código a realizar sea eficiente y cumpla con la tabla planteada. Para la realización del mismo el primer paso fue conocer el funcionamiento de cada componente que constituye al robot aunque no se utilizaron sensores ni motores, hay que saber correctamente como tiene que re sponder a cada una de las instrucciones, y así de esta manera poder entender el código que se nos dio en clase y este mismo pasarlo a microcode. III. MATERIALES a) CNY70: Se podría decir que es uno de los sensores más utilizados por su utilidad y costo más económico, el mismo que consta de un emisor (led) y un receptor (fototransistor ) [1][2] Fig. 1. Aspecto físico y descripci ón de pines [2]  Funcionamiento:  Al ser polarizado el led emite rayos infrarrojos los cuales no pueden ser vistos por el ojo humano, el único que lo puede detectar es el fototransistor, cuando los rayos emitidos cubren una sección negra estos son absorbidos  por lo que el fototransistor no recibe rayos infrarrojos y por lo tanto se encuentra en corte, caso contrario sucede cuando los rayos revotan sobre un superficie blanca lo cual hace que el receptor pase a conducir corriente. Los valores que darán dependiendo su conexión serán valores de voltajes variables en función de la luz reflejada, además de que el sensor debe estar ubicado a pocos milímetros de la superficie. [1][2] Los valores típicos de las resistencias para la polarización son, para el emisor 220 ohmios y para el receptor 10K o hmios. [2] Fig. 2. Principio de f uncionamiento [ 3] Fig. 3. Posibles conexiones [1] Pues ahora de los sensores tenemos una señal de analógica la cual debemos digitalizarla por medio del schmitt trigger (74HC14 o equivalente). Para acondicionarla para el micro [2]  b) Trigger-Schmitt: Cada circuito funciona como un inversor, pero debido a la acción de Schmitt, tiene diferentes niveles de umbral de señales entrada para  positiva continua (VT +) y negativo en curso (VT-). Estos circuitos son con compensación de temperatura y  puede ser disparado desde el más lento de las rampas de entrada y todavía dar limpios y libre de vibraciones en las señales de salida.[3] Fig. 4. Distribució n del encapsulado y entradas y salidas de las señales [3] PRÁCTICA No 1: Seguidor de línea Carmen Valeria Cabrera Brito  e-mail: [email protected] Jorge Leonardo Ñauta Minchala e-mail: j [email protected]. ec

Transcript of PRÁCTICA No 1 micros II

Page 1: PRÁCTICA No 1 micros II

5/17/2018 PRÁCTICA No 1 micros II - slidepdf.com

http://slidepdf.com/reader/full/practica-no-1-micros-ii 1/4

 

 

  Abstract  –  The line follower is a robot that is designed to

follow the black line, which it can mediate the use of basic

electronic components such as sensors, motors, pic, resistors,

diodes, LEDs, logic gates and their respective programming in

this case we use the microcode program, although this practice

only present with pulsed diodes.

 Índices  –  Motors,  pic, programming, robot, follower, sensors.

I. OBJETIVOS 

a)  Refrescar los conocimientos obtenidos en sistemas

microprocesados I.b)  Comprender el funcionamiento de algunoscomponentes necesarios en esta práctica.

c)  Crear un código que se lo pueda aplicar fácilmente acualquier seguidor de línea.

II. INTRODUCCIÓN 

A continuación vamos a realizar la simulación de un robotseguidor de línea, con los pasos más básicos, aunque en lapráctica tan solo nos limitaremos al funcionamiento del mismomediante el uso de pulsantes y leds. Cumpliendo con elobjetivo que el código a realizar sea eficiente y cumpla con latabla planteada.

Para la realización del mismo el primer paso fue conocer elfuncionamiento de cada componente que constituye al robotaunque no se utilizaron sensores ni motores, hay que sabercorrectamente como tiene que responder a cada una de lasinstrucciones, y así de esta manera poder entender el códigoque se nos dio en clase y este mismo pasarlo a microcode.

III. MATERIALES 

a)  CNY70: Se podría decir que es uno de los sensoresmás utilizados por su utilidad y costo más económico,el mismo que consta de un emisor (led) y un receptor(fototransistor) [1][2]

Fig. 1. Aspecto físico y descripción de pines [2]

Funcionamiento: Al ser polarizado el led emite rayoinfrarrojos los cuales no pueden ser vistos por el ojo humanoel único que lo puede detectar es el fototransistor, cuando lorayos emitidos cubren una sección negra estos son absorbidopor lo que el fototransistor no recibe rayos infrarrojos y por lotanto se encuentra en corte, caso contrario sucede cuando lorayos revotan sobre un superficie blanca lo cual hace que ereceptor pase a conducir corriente. Los valores que darádependiendo su conexión serán valores de voltajes variableen función de la luz reflejada, además de que el sensor debestar ubicado a pocos milímetros de la superficie. [1][2]

Los valores típicos de las resistencias para la polarizació

son, para el emisor 220 ohmios y para el receptor 10K ohmios[2]

Fig. 2. Principio de funcionamiento [3]

Fig. 3. Posibles conexiones [1]

Pues ahora de los sensores tenemos una señal de analógicla cual debemos digitalizarla por medio del schmitt trigge(74HC14 o equivalente). Para acondicionarla para el micro [2

b)  Trigger-Schmitt: Cada circuito funciona como uinversor, pero debido a la acción de Schmitt, tiendiferentes niveles de umbral de señales entrada parpositiva continua (VT +) y negativo en curso (VT-)Estos circuitos son con compensación de temperatura puede ser disparado desde el más lento de las rampa

de entrada y todavía dar limpios y libre de vibracioneen las señales de salida.[3]

Fig. 4. Distribución del encapsulado y entradas y salidas de lasseñales [3]

PRÁCTICA No 1: Seguidor de línea Carmen Valeria Cabrera Brito 

e-mail: [email protected] Leonardo Ñauta Minchalae-mail: [email protected]

Page 2: PRÁCTICA No 1 micros II

5/17/2018 PRÁCTICA No 1 micros II - slidepdf.com

http://slidepdf.com/reader/full/practica-no-1-micros-ii 2/4

 

 

Funcionamiento: La señal que sale de los sensores entra alschmitt trigger estas señales que entran no son valores de 0v o5v, pero el schmitt trigger toma los rangos de estos como 0 o 1y los invierte.

Fig. 5. Señal de entrada y salida.[3]

c)  L293d: Este integrado, es un puente H con un diodo.Con el cual podemos controlar el sentido de giro dehasta 4 motores sin problemas, pero con el mismo sepuede formar dos puentes H completos, con los que sepuede realizar el manejo de dos motores.Este integrado está diseñado para proporcionarcorrientes bidireccionales de accionamiento de hasta600 mA con tensiones de 4,5 V a 36 V.Este dispositivo es adecuado para su uso enaplicaciones de conmutación a frecuencias dehasta 5 kHz y está diseñado para manejar cargasinductivas tales como relés, solenoides, motores (DC ypaso a paso bipolar) , así como otros dispositivos dealtas corrientes y altos voltajes.[4][5][6][7].

Fig. 5. Encapsulado [7]

Fig. 6. Diagrama de pines, con su conexión de puente h a losmotores en un sentido y con inversión de giro. [5]

d)  Servomotores: Un servomotor es un dispositivo quetiene la capacidad de ubicarse en cualquier posicióndentro de su rango de operación, y de mantenerseestable en una posición dada. Está formado por unmotor de corriente continua el cual le da elmovimiento, una caja reductora que posee engranajes,sensor de desplazamiento que se utiliza para conocer laposición angular del motor, y un circuito de control. Ysu margen de funcionamiento generalmente es demenos de una vuelta completa. A pesar de esto hay unaforma para que se comporte como motor de giro continuopero con fuerza para ello hay que conseguir servomotorestrucados. [8] 

Fig. 7. Aspecto físico Servomotor y desarmado. [8]

Funcionamiento: Al trucar los motores servo podemohacer que estos giren 360 grados pero sin embargo estos seconvierten motores de corriente continua normales, ya que stiene que modificar el engranaje, pero sin embargo estomotores siguen teniendo la misma fuerza y velocidad que teníel servo inicial, y con la ventaja de que estos tienen menoinercia que los motores de corriente continua lo que les hacmás precisos y muy útiles para nuestra aplicación en eseguidor de línea.

IV. MÉTODOS 

El robot debería detectar la línea negra y seguirla, percomo solo utilizamos pulsantes nos tiene que dar un 0 apresionar una de ellos.

Los tres pulsantes implementados en la práctica simulan los sensores (derecha, centro, izquierda) y 4 leds que noindicara los movimientos de los servo motores (adelantderecha, atrás derecha, adelante izquierda o atrás izquierda).

Esta tendrá que seguir la siguiente lógica:

TABLA ISEÑALES DE ENTRADA Y SALIDA 

Señales de entrada Señales de salida

   I  z  q  u   i  e  r   d  a

   C  e  n   t  r  o

   D  e  r  e  c   h

  a

   A   d  e   l  a  n

   t  e

   i  z  q  u   i  e  r   d  a

   A   t  r   á  s

   i  z  q  u   i  e  r   d  a

   A   t  r   á  s

   d  e  r  e  c   h  a

   A   d  e   l  a  n

   t  e

   d  e  r  e  c   h  a

0 0 0 1 0 0 10 0 1 1 0 0 00 1 0 0 1 1 00 1 1 1 0 0 01 0 0 0 0 0 11 0 1 1 0 0 11 1 0 0 0 0 11 1 1 1 0 0 1

De acuerdo a la tabla planteada anteriormente el seguidode línea deberá seguir las siguientes especificaciones:

Si los sensores cumplen las condiciones establecidas de 00el seguidor deberá seguir para adelante, en la condición 001 eseguidor deberá virar a la izquierda, en la condición 010 eseguidor debe dar error y por lo tanto retrocederá, en lacondición 011 deberá virar a la izquierda, en la condición 100debe virar a la izquierda, en la condición 101 deberá seguiadelante, en la condición 110 debe virar a la izquierda, en lcondición 111 deberá seguir adelante.

Page 3: PRÁCTICA No 1 micros II

5/17/2018 PRÁCTICA No 1 micros II - slidepdf.com

http://slidepdf.com/reader/full/practica-no-1-micros-ii 3/4

 

 

V. RESULTADOS Y ANÁLISIS DE RESULTADOS 

 A. Resultados:

La práctica realizada cumple con las expectativasplanteadas las cuales son:

Recordamos algunas sentencias utilizadas en el código quehabíamos olvidado.

Llegamos a tener una clara compresión de los elementos autilizar en el robot.

Y por último pudimos obtener un código lo bastante básicopero eficiente para la tabla que nos planteamos al principio.

 B. Análisis de resultados:

Se podría mejorar los resultados teniendo en cuenta lacomplejidad de la pista que se va a seguir ya sea aumentandosensores o modificando el código fuente.

Debido a que el código que se nos dio es demasiadosencillo intentamos subir un poco su complejidad en algunasde las sentencias que creímos conveniente.

VI. CONCLUSIONES Y RECOMENDACIONES 

 A. Conclusiones:

Teóricamente el robot tendría que funcionar a la perfeccióncon la tabla planteada, aunque físicamente no se lo puedecomprobar. Porque esta práctica fue más teórica para entenderel código que se nos dio en clase y refrescar los conceptos dela materia.

Aunque también creímos conveniente analizar y conocer elfuncionamiento de los servos motores, puente H, trigger smith,y de los sensores. Para que cuando se los quiera utilizartengamos los conocimientos básicos de los mismos y sea másfácil su manipulación y aplicación.

 B. Recomendaciones:

Se recomienda que para implementar este seguidor de líneaen la práctica y ya como un robot táctil y visible, se entiendabien el código y todas las posibles opciones que puede tener elmismo, también sugiriéramos que sea analizada la partemecánica a fondo para evitar posibles errores en el futuro.

VI. BIBLIOGRAFIA[1]  http://roboticayelectronica.blogspot.com/2009/01/sensor-cny70.html[2]  http://www.comohacerturobot.com/Taller/taller-sensorOptico.htm[3]  Texas Instruments, “datasheet 74ls14”. [4]  Texas Instruments, “datasheet L293D”. 

[5] 

http://www.datasheetcatalog.org/datasheet/stmicroelectronics/1330.pdf [6]  http://www.robotica.com.uy/forum/topic70-integrado-l293d--control-de-giro-de-motores.aspx

[7]  http://picaxe.electronicasimple.com/2008/10/l293d-controlando-motores-dc_13.html

[8]  Candelas Francisco A., Publicación interna “Servomotores”.Universidad de Alicante, 2007.

VII. ANEXOS 

define osc 4sensorIzq var porta.1 'Sensor IzquierdasensorDer var porta.2 'Sensor derechaSensorCen var porta.3 'Sensor del centro

ledizq var portc.1 'led de la izquierdaledcen var portc.3 'led del centroledder var portc.6 'led de la derecha'Declarando variablesmover var byte 'para mover al robotx var byte'*************************************************' Configuración de puertos'*************************************************Inicio:ADCON1 = 7 'digitaliza el puerto ATRISA = %11111111 'Configura el puerto A como ingresTRISC = %00000000 'Configura el puerto C como salidaTRISB = %00000000 'Configura el puerto B como salida'*************************************************' PROGRAMA'*************************************************sensar:if SensorCen = 1 and sensorIzq = 1 and sensorDer = 1 theerror 'se ha salido de la pistaif sensorIzq = 0 and sensorDer = 0 then halt

'ambos sensores estan activados

if sensorCen = 0 then center'se encuentra en el centro

if sensorIzq = 0 then izquierda'si se encuentra activado el sensor'de la Izq. tiene que ir a la izq.

if sensorDer = 0 then derecha'si se encuentra activado el sensor'de la Der. tiene que ir a la der.

goto sensar 'retorna para sensar de nuevo'*************************************************' RUTINAS'*************************************************Candelas Francisco A., Publicación interna “Servomotores”

Universidad de Alicante, 2007. center:high ledcen 'enciende el led del centrolow ledder 'apaga el led de la derechalow ledizq 'apaga el led de la izquierdamover = 5 'carga la variable mover con el #5gosub fwd 'salta a la subrrutina FWDgoto sensar 'regresa a la parte del sensado'*************************************************izquierda: 'Rutina para girar a la izquierdahigh ledizq 'enciende led de la izquierdalow ledcen 'apaga el led del centrolow ledder 'apaga el led de la derechamover = 5 'carga la variable mover con el #5gosub lfwd 'salta a la subrrutina LFWDgoto sensar 'regresa a la parte del sensado'*************************************************derecha: 'Rutina para girar a la deerechahigh ledder 'enciende el led de la derechalow ledcen 'apaga el led del centrolow ledizq 'apaga el led del izquierdamover = 5 'carga la variable mover con el #5gosub rfwd 'salta a la subrrutina RFWDgoto sensar 'regresa a la parte del sensado'*************************************************

Page 4: PRÁCTICA No 1 micros II

5/17/2018 PRÁCTICA No 1 micros II - slidepdf.com

http://slidepdf.com/reader/full/practica-no-1-micros-ii 4/4

 

 

error: 'Rutina errorhigh ledder 'enciende el led de la derechahigh ledizq 'enciende el led de la izquierdahigh ledcen 'enciende el led del centromovr = 1 'carga la variable mover con el #1gosub fwd 'salta a la subrrutina FWDgoto sensar 'regresa a la parte del sensado' *** Elementos exteriores de la línea negrahalt:high ledder 'enciende el led de la derechahigh ledizq 'enciende el led de la derechalow ledcen 'apaga en led del centropause 10goto sensar 'regresa a la parte del sensado' *** Subrrutina que mueve el robot hacia adelateFWD:For x = 1 to mover 'for para que repita n número de

'veces que contenga moverpulsout portb.2, 100 '(motor derecho)con 100 tenemos 1

'milisegundo, gira a la derechapulsout portb.7, 200 '(motor izquierdo)Con 200 tenemos

'22 ms, gira a la izquierda

pause 10 'tiempo de espera para que reaccione'el servo

next 'repite el buclereturn 'retorna'„ *** Subrrutina que mueve el robot a la izquierda revrs:For x = 1 to mover 'for para que repita n número de veces

'que contenga moverpulsout 2, 200 '(motor derecho) gira a la izquierdapulsout 7, 100 '(motor derecho) gira a la derechapause 10 'tiempo de espera para que reaccione

'el servoNext 'Repite el bucle

Return 'Retorna' *** Subrrutina que mueve al robot a la izquierdaLfwd:For x = 1 to mover 'Bucle forpulsout 2,100 '(motor derecho) gira a la derechapause 10 'tiempo de espera para que reaccione el

'servonext 'Repite el buclereturn 'retorna' *** Subrrutina que mueve al robot a la derechaRfwd:For x = 1 to mover 'bucle forpulsout 7, 200 '(motor izquierdo) gira a la izquierda

pause 10 'tiempo de espera para que'reaccione el servonext 'repite el buclereturn 'retornaend 'fin de programa