sábado, 24 de noviembre de 2007

BIBLIRAFIAS

I.DIRECCIONES DE INTERNET
www.x-robotics.com
Información sobre sensores, motores,
mecanismos, microcontroladores, etc.
www.eurobotics.org
Muestra la construcción de un móvil seguidor
de línea.
II. LIBROS
Robots Móviles estudio y construcción, Frederic
Giamarchi, Ed. Paraninfo. Disponible en
Biblioteca.
Microcontrolador PIC16F84 desarrollo de
proyectos, F. R. Domínguez, E. Palacios, L. J.
López, Ed. Alfaomega. Tiene un capitulo sobre
la construcción de un microbot seguidor de
línea.
III. REFERENCIAS
[1] Frederic Giamarchi, Robots Móviles estudio
y construcción, Ed. Paraninfo.

italiguido@yahoo.es
sandrasofia_16@yooh.es
morochorodrigo@yahoo.es

PROGRAMA

Para emitirle la información al pic se utilizo un programa llamado MPLAB IDE v7.61que nos configura por medio de un motor de cruce el circuito realalt donde nos da la opción de que es trasferible.
El programa es:
MPLAB IDE V7.61

#INCLUDE p16f84a.inc
#INCLUDE bancos.inc
;----------------------------------------------------------------------------------------
;EL SENSOR CNY_70 ENTREGA UN UNO 1 CUANDO SENSA LA LINEA NEGRA Y CERO 0
;CUANDO SENSA LA SUPERFICIE BLANCA
;SENSOR 3 ENTREGA 5V (1) CUANDO DETECTAA UN OBJETO CON SUPERFICIE NEGRA Y CERO (0) CUANDO
;CAMINO ESTA LIBRE.


;S1 SENSOR PARA DETECCION DE OBSTACULOS CONECTADO A LA ENTRADA RB0
;S2 SENSOR IZQUIERDA CONECTADO A LA ENTRADA RB1
;S3 SENSOR DERECHA CONECTADO A LA ENTRADA RB2
;COMBINACIONES COMBINACIONES
; DE ENTRADA DE SALIDA
; S1 S2 S3
; RB2 RB1 RB0 (PUERTOS) RA2 RA1 RA0
; 0 0 0 EL ROBOT ESTA FUERA DE LINEA ----------------- 0 0 0 NO SE ACTIVA NINGUN MOTOR
; 0 0 1 EL ROBOT HAY OBSTACULO PER NO ESTA SOBRE LA LI. 0 0 0 SE ACTIVA EL MOTOR DE
; 0 1 0 EL ROBOT SE DESVIO HACIA LA DERECHA---------- 1 0 0
; 0 1 1 EL ROBOT ESTA SOBRE LA LINEA NEGRA----------- 1 1 0
; 1 0 0 SE DETECTA OBSTACULO SIN LINEA NEGRA------- 0 0 0
; 1 0 1 SE DETECTA OBSTACULO CON DESVIO A LA DER--- 0 0 PULSOS
; 1 1 0 SE DETECTA OBSTACULO CON DESVIO A LA IZQ --- 0 0 PULSOS
; 1 1 1 SE DETECTA OBSTACULO SIN DESVIO --- 0 0 PULSOS
;LAS PRIMERAS 4 COMBINACIONES
; HACEN QUE EL ROBOT FUNCIONE SI OBSTACULOS
;LA SALIDA RA0 CONTROLA EL MOTOR DEDERECHA
;LA SALIDA RA1 CONTROLA EL MOTOR IZAQUIERDA
; LOS MOTORES SE ACTIVAN CON 1 Y SE DESACTIVAN CON 0

;----------------------------------------------------------------------------------------
CBLOCK 0X20
DATO, VAR1
ENDC
;----------------------------------------------------------------------------
org 00
goto inicio
org 05
goto inicio
;-----------------------------------------------------------------------------
inicio
banco1
CLRF TRISA;LIMPIA EL CONTENIDO DEL REGISTRO TRISA PARA CONFIGURAR RA0,RA,1,RA2, COMO DE SALIDA
MOVLW B'00000111' ;
MOVWF TRISB ; CONFIGURA RB0,RB1,RB2 COMO PINES DE SALIDA
banco0 ;REGRESO AL BANCO 0 PARA PODER MENEJAR LOS PUERTOS

CLRF PORTA;BORRA PUERTO A Y PUERTO B
CLRF PORTB
LEE MOVFW PORTB; LEE EL PUERTO B PARA LA SEÑAL DE LOS SENSORES
ANDLW 0X07 ;
MOVWF DATO; 00000XXX INFORMACION DE LOS SENSORES
;------------------------LECTURA E INTERPRETACION DE SENSORES=-------------
;------------------------------------------------------------------------------------------------
MOVLW .0
SUBWF DATO,W ;RESTA PARA COMPARAR
BTFSC STATUS,Z;PREGUNTA SI EL RESULTADO ES CERO
GOTO OFF
;------------------------------------------------------------------------------------------------
MOVLW .1
SUBWF DATO,W
BTFSC STATUS,Z
GOTO OFF
;------------------------------------------------------------------------------------------------
MOVLW .2
SUBWF DATO,W
BTFSC STATUS,Z
GOTO OBJET
;------------------------------------------------------------------------------------------------
MOVLW .3
SUBWF DATO,W
BTFSC STATUS,Z
GOTO CR_IZ
;------------------------------------------------------------------------------------------------
MOVLW .4
SUBWF DATO,W
BTFSC STATUS,Z
GOTO OBJET
;------------------------------------------------------------------------------------------------
MOVLW .5
SUBWF DATO,W
BTFSC STATUS,Z
GOTO CR_DR
;------------------------------------------------------------------------------------------------
MOVLW .6
SUBWF DATO,W
BTFSC STATUS,Z
GOTO OBJET
;------------------------------------------------------------------------------------------------
MOVLW .7
SUBWF DATO,W
BTFSC STATUS,Z
GOTO AVAN
GOTO LEE
;------------------------------------------------------------------------------------------------
;------------------------RUTINAS DE CONTROL---------------------------------------------
;----------------------APAGADO DE MORORES NO ACCION ---------------------------
OFF MOVLW .0
MOVWF PORTA
BSF PORTB,7
GOTO LEE
;----------------------CORRECCION CUANDO DESVIO A LA IZQUIERDA -----------
CR_IZ MOVLW .2
MOVWF PORTA
BCF PORTB,7
GOTO LEE
;----------------------CORRECCION CUANDO DESVIO A LA DERECHA--------------
CR_DR MOVLW .1
MOVWF PORTA
BCF PORTB,7
GOTO LEE
;----------------------AVANCE EN CONDICIONES NORMALES--------------------------
AVAN MOVLW .3
MOVWF PORTA
BCF PORTB,7
GOTO LEE
;---------------------CUANDO SE DETECTA UN OBJETO---------------------------------
OBJET MOVLW .4
MOVWF PORTA
BCF PORTB,7
GOTO LEE

end

MICROCONTROLADOR (microcontroladores)


DESCRIPCIÓN GENERAL
El PIC16F628A son de 18 pines basados en Flash miembros de la versátil PIC1628A amily de bajo costo, de alto rendimiento, CMOS, fullystatic, 8 bits de microcontroladores.
Todos los microcontroladores PIC ® emplean una avanzada arquitectura RISC. El PIC16F628A han mejorado las características básicas, un nivel profundo de ocho pila, y varios internos y externos de las fuentes de interrupción. El eparate instrucción y buses de datos de la arquitectura de Harvard permitir que un niño de 14 bits de ancho con la palabra instrucción separada de 8 bits de datos a escala. Las dos etapas de instrucción oleoducto permite ejecutar todas las instrucciones en un singlecycle, con la excepción de las ramas del programa (que requieren dos ciclos). Un total de 35 instrucciones (conjunto de instrucciones reducido) están disponibles, con el complemento de un amplio registro establecidos.
PIC16F627A/628A/648A microcontroladores suele lograr un 2:1 código de compresión y un 4:1 velocidad a las otras de tipo 8 bits de microcontroladores en su clase.
PIC16F627A/628A/648A dispositivos han integrado características de reducir los componentes externos, reduciendo así los costos del sistema, la mejora de la fiabilidad del sistema y la reducción de consumo de energía.
El PIC16F627A/628A/648A tiene 8 oscilador configuraciones. El único patillas oscilador RC proporciona una solución de bajo costo. El oscilador LP minimiza el consumo de energía, XT es un estándar de cristal, y INTOSC es una figura legítima de precisión de dos velocidades oscilador interno.

El SA es el modo de Alta Velocidad cristales. La CE es el modo de fuente de un reloj externo.
The Sleep (Power abajo) le ofrece ahorros de energía.
Los usuarios pueden wake-up el chip del Sueño a través de varias interrupciones externas, internas y Restablece interrupciones.
Un gran fiabilidad Watchdog Timer con sus propios en el propio chip
Oscilador RC proporciona protección contra el software de bloqueo.
Tabla 1-1 muestra las características de la PIC16F627A/628A / 648A gama media microcontrolador familia.
Un diagrama de bloques simplificado de la PIC16F627A/628A / 648A se muestra en la Figura 3-1. El PIC16F627A/628A/648A serie encaja en aplicaciones que van desde cargadores de baterías de baja potencia para sensores remotos. La tecnología Flash hace que la personalización de programas de aplicación (detección de los niveles, de impulsos, temporizadores, etc) extremadamente rápido y conveniente. El
Pequeña huella paquetes microcontrolador hace que esta serie ideal para todas las aplicaciones con limitaciones de espacio.
Bajo coste, baja potencia, alto rendimiento, facilidad de uso
Y de I / O flexibilidad que la PIC16F627A/628A/648A muy versátil.
1,1 Apoyo al Desarrollo
El PIC16F628A familia cuenta con el apoyo de afull equipado macro ensamblador, un software simulador, un emulador en circuito, un bajo coste en el depurador en circuito, un bajo coste de desarrollo y un programador con todas las funciones, programador. A Tercero "C", compilador de herramienta de apoyo también está disponible.


Maximum Frequency
of Operation (MHz)
20

Flash Program
Memory (words)
2048
RAM Data Memory
(bytes)
224
EEPROM Data
Memory (bytes)
128
Serial Communications
USART

Voltage Range (Volts)
3.0-5.5

El driver controlador de los motores es un ULN2003 con lo que se controla el encendido de los dos motores independientemente, al usar el ULN2003 no se dispone de control de dirección de giro y las ruedas en ningún caso correrán hacia atrás Para controlar los motores usaremos un circuito integrado driver especifico para motores modelo ULN2003 que es suficiente para pequeños motores de juguetería. Bien ahora lo tenemos asi; el motor tiene 2 cables, uno de ellos lo llevamos a Vcc y el otro lo hacemos pasar por el driver que actuara como un interruptor y activara o no el motor, ahora tenemos 2 cables para el control de los 2 motores, 2 cables son 4 posibles estados; Adelante, Giro derecha, Giro izquierda, Parado, de esta manera tenemos un control simple de todas las posibles acciones del robot.

DISEÑO

El diseño propuesto es una forma sencilla de abordar el problema de seguimiento de una línea.
Pero se pueden utilizar diseños con lógica combi nacional y secuencial, en este ejemplo,Para corregir la trayectoria del móvil, se hizo uso de la lógica programable, por ejemplo el manejo de microcontroladores siendo estos los más utilizados en proyectos de robótica. Fuente de alimentación Para energizar los circuitos del móvil se
recomienda utilizar baterías recargables pues estas proporcionan mayores corrientes que las baterías no recargables. Se puede utilizar un arreglo de baterías recargables en formato AA ya que presentan una buena capacidad en
tamaño reducido y además se consiguen en le mercado fácilmente, otra buena opción es hacer uso de baterías recargables que se utilizan en
diferentes artículos electrónicos que proporcionan las cantidades de corriente
(1000mAH) y voltaje (6V – 12V) necesarias.

NIVEL DE CONTROL

El circuito de control es el que proporciona las señales hacia los actuadores dependiendo de las señales obtenidas en los sensores.
Esta conformado básicamente por las etapas visualizadas en la figura a continuación.

Figura 6 – Etapas del circuito de control.
Circuito sensor (Sd, Si)

Figura 7 – Circuito sensor, conformado por el circuito
emisor (R1, D1), y por el circuito receptor (Q1, R2, D2).

El emisor del circuito sensor esta compuesto por un diodo emisor infrarrojo (D1), y una resistencia R1.
El receptor del circuito sensor esta compuesto por el Fotodiodo receptor de infrarrojos (D2), el transistor Q1, y la resistencia R2. Para R2 se
recomienda valores de resistencia superiores a 100K . En el punto a se obtienen dos valores de voltaje, dependiendo de la reflexión. Estos
dos valores ser cambiados por 0v y 5v a través del circuito comparador.
Circuito comparador y etapa de potencia
Este circuito se encarga de normalizar los niveles entregados por el circuito sensor. La etapa de potencia (M1, Q1) se encarga de
proporcionar la corriente necesaria al motor. La etapa de potencia propuesta, es una sencilla forma de activar un motor, pero se podría
cambiar por; un puente H, que permite el cambio de dirección del motor; Relés, los cuales manejan mayores corrientes; Drivers para
motores (L293, L298) que permiten cambio de dirección, frenado y manejo de mayores corrientes.

Figura 8 – Circuito comparador y etapa de potencia.

El circuito comparador (R3, IC1) entrega 0V o 5V a la base de 5 voltios dependiendo de si el valor de voltaje en el punto a es menor o mayor
al valor de voltaje en el punto b, respectivamente. Para este caso el valor de el punto b se debe ajustar en un punto intermedio
entre los dos valores entregados por el circuito sensor (punto a). Algoritmo de seguimiento Aquí se relacionan las señales de los sensores
con las señales de control sobre los motores.
 

tabla de posibles estados de sensores
Donde, Sx = 0, indica que el sensor no esta sobre la línea. Y Sx=1, indica que el sensor se encuentra sobre la línea
Estado A: En este estado ambos sensores se encuentran fuera de la trayectoria. En este caso ambos motores se detienen y el móvil debe ser
colocado a su trayectoria de forma manual. Debido a la sencillez de este control el móvil no es capaz de retomar la trayectoria. Pero se puede
implementar un algoritmo de corrección de trayectoria con una lógica programable(microcontroladores).
Estado B: En este caso el móvil se ha desviado levemente hacia el lado izquierdo respecto a la línea, como tal, solamente el sensor derecho (Sd)
se encuentra sobre la línea de trayectoria. La acción correctiva es desenergizar el motor derecho para que el motor izquierdo aun activo
corrija la trayectoria.

Estado C: En este caso el móvil se ha desviado levemente hacia el lado derecho respecto a la línea, como tal, solamente el sensor izquierdo
(Si) se encuentra sobre la línea de trayectoria. La acción correctiva es desenergizar el motor izquierdo para que el motor derecho aun activo
corrija la trayectoria.

Estado D: En este caso ambos sensores se encuentra sobre la línea negra, por consiguiente el móvil no debe hacer ninguna corrección de su
dirección, o sea ambos motores deben seguir activos, idealmente en una trayectoria recta y larga si el móvil esta alineado y tiene igual
velocidad en sus llantas este no debe hacer ninguna corrección hasta que encuentre una curva.

Pruebas y correcciones
- Se debe probar que cada uno de los sensores conmute entre dos voltajes cuando pase de la superficie blanca a la línea negra. Si la señal
medida en el punto a (figura 7) no varia o su variación es muy pequeña se recomienda intentar balancear con diferentes valores de R2
(figura 7,ciruito sensor).
- Se debe ajustar el voltaje de referencia en el punto b (Figura 8) con la resistencia variable R3 de tal forma que el motor se active y se
desactive dependiendo del cambio de superficie que observen los sensores.

NIVEL SENSORIAL

La percepción de este robot es de tipo visual, aunque no debemos pensar que el robot va a ver. Su captación visual consiste en diferenciar entre dos colores. Para este caso, la línea de color negro sobre una superficie blanca. Aprovechando la propiedad física de la reflexión, el diodo emite una luz infrarroja dirigida hacia el suelo, y el fototransistor recibe los fotones generados por la reflexión que se produce sobre el suelo. Figura 4.
Figura 4 – Sensor Infrarrojo

Para nuestro caso, se debe disponer dos sensores ubicados en los bordes de la línea negra. Los sensores adecuados para este tipo de
aplicaciones son CNY70, pero debido a que estos no se encuentran en el mercado regional, se recomienda construir con un fotodiodo y un
transistor (2N3904) como muestra la figura 5. Restando solamente el diodo emisor.

Figura 5 – Fototransistor a partir de un fotodiodo y un
transistor.

Cuando el diodo LED infrarrojo emite un haz de luz, en el punto a. se obtiene una señal de nivel alto o bajo dependiente de la superficie en la que refleje, si el sensor se encuentra en la línea negra el voltaje sube, cuando esta sobre la
superficie blanca el voltaje baja. Se deben realizar pruebas sobre la ubicación de los sensores para que el móvil se desplace adecuadamente, porque puede suceder que aun cuando los sensores reconozcan la línea negra y el circuito de control realice la corrección de trayectoria, el móvil se salga de curso por la
velocidad y masa del mismo (cantidad de movimiento). De esta forma los casos a tener en cuenta es: distancia entre el eje de las llantas y los sensores, distancia entre los mismos sensores con respecto al ancho de la línea negra
y su alineación.

Descripción: El CNY70 es un pequeño dispositivo con forma de cubo y cuatro patitas que aloja en su interior un diodo emisor de infrarrojos que trabaja a una longitud de onda de 950 nm. y un fototransistor (recetor) estando ambos dispuestos en paralelo y apuntando ambos en la misma dirección, la distancia entre emisor y receptor es de 2.8 mm. y están separados del frontal del encapsulado por 1 mm.
El la siguiente figura vemos la disposición interna del CNY70 mirando el encapsulado desde arriba, así pues tenemos el diodo emisor de infrarrojos a la izquierda y el fototransistor a la derecha.

Funcionamiento: El fototransistor conducirá mas, contra mas luz reflejada del emisor capte por su base. La salida de este dispositivo es analógica y viene determinada por la cantidad de luz reflejada, así pues para tener una salida digital se podría poner un disparador Trigger Schmitt y así obtener la salida digital pero esto tiene un problema, y es que no es ajustable la sensibilidad del dispositivo y los puntos de activación de histerisis distan algunos milivoltios uno del otro (ver explicación en el esquema de la LDR ) . Para solventar este problema muestro el siguiente circuito basado en un amplificador operacional configurado en modo comparador, en la salida del circuito obtendremos una señal cuadrada lista para su interconexión con la entrada de cualquier µControlador.

La sensibilidad del circuito es ajustable mediante la resistencia variable de 10k (aconsejo poner una resistencia multivuelta). Para comprobar y visualizar la señal de salida es posible montar un diodo led en la salida con su resistencia de polarización a masa, si así lo hacemos veremos que cuando el sensor detecta una superficie blanca o reflectante el led se ilumina ya que la salida del LM 358 pasa a nivel alto y por lo tanto alimenta al led que tiene su ánodo conectado directamente .
La salida del LM358 varia de 0V para nivel lógico 0 a unos 3,3V para nivel lógico 1, con lo que puede ser llevada directamente a un disparador trigger schmitt (p.ej. 74LS14) para conformar pulsos de niveles TTL de 0 a 5V si fuese necesario.
Usos: Comúnmente utilizado en los robots rastreadores (Sniffers) para detección de líneas pintadas sobre el suelo, debido principalmente a su baja distancia de detección.

viernes, 23 de noviembre de 2007

NIVEL FISICO



A. Estructura
La estructura de un robot seguidor de línea puede ser elaborada de una lamina de acrílico, aluminio o madera, que se pueden conseguir fácilmente en el mercado. Esta proporciona apoyo para los motores, el circuito impreso y larueda libre.Figura 1 – Chasis del seguidor de línea
Las llantas del móvil se encuentra en configuración diferencial, debido a que ladirección que tome depende de la diferencia de velocidad entre sus dos llantas, es por eso que cada llanta es independiente de la otra.Figura 3 – Fijación de un motor a una estructura plana.
Los motores se pueden fijar al chasis como seindica en la figura 1.Figura 2 – Rueda libre
La rueda libre es la que aporta el apoyo en la parte posterior, esta debe exhibir la característica de rodar y pivotar sobre si misma con un movimiento lo mas suave posible para no dificultar la rotación del robot.B. Motores, Llantas y caja reductoraLa mayor parte de los motores que se utilizan en un robot giran demasiado rápido y no tiene el torque suficiente, es por eso que es recomendable o casi imprescindible utilizar una caja de piñones reductora. Esta permitetransformar un pequeño motor rápido, pero poco potente, en un motor mas lento pero con mejor torque. Estas cajas reductoras se pueden extraerde juguetes pequeños disponibles en el mercado. Para impulsar el robot se pueden utilizar motores DC que posean la característica degirar a igual velocidad en los dos sentidos. Se recomienda utilizar motores de unidades de CD o de secador.
Nota: Se recomienda utilizar motores de juguetes, ya que debido a su baja impedancia se dejan controlar por un puente H o Driver.La llantas deben ser de caucho o de un plástico blando para que no patinen.

INTRODUCCION

La robótica es una de las aplicaciones más apasionantes de la electrónica. Un robot seguidor de línea se clasifica en el campo de la robótica móvil un grupo de la rama de robótica.
La tarea fundamental de un robot móvil es el desplazamiento en un entorno conocido o desconocido, por tanto es necesario que posea tres funciones fundamentales, la locomoción (nivel físico), la percepción (nivel sensorial) y la decisión (nivel de control). Entre las aplicaciones de robots móviles se encuentra el transporte de carga en la industria, robots desactivadores de explosivos, exploración de terrenos no aptos para el hombre entre este ultimo podemos destacar los robots Spirit y Oportunity desarrollados por la NASA.
Otra aplicación destacable se encuentra en un sofisticado puerto de descarga en Inglaterra, en donde la carga proveniente de los barcos se transporta en robots móviles del tamaño de un autobús, siendo esta operación totalmente controlada.