UTEC

UTEC
Catedra: Principios de Robotica

martes, 7 de junio de 2011

Carrito Sigue Linea - Detector de Obstaculos

“Carro sigue línea con detección de obstáculos” es un dispositivo controlado a través del Microcontrolador ATMEGA168 de la familia AVR, en el cual son registrados los estados de los Sensores CNY70, estos  detectan superficies claras (blanca), y obscuras (negro). De esta manera envían un pulso al Microcontrolador o lo mantienen en 0 voltios; con el integrado “L293B”, controlamos los motores del carro, y son agregados leds y buzzer para darle rutinas y hacer más vistoso el dispositivo.


Contenido:

 ☼ - Elaboración y Ensamble

 ☼ - Código del Programa

 ☼ - Diseño del Circuito

 ☼ - Diagrama del Circuito  

 ☼ - Listado de Materiales

 ☼ - Datos Técnicos de los Elementos Principales






Dispositivo



Elaboración y Ensamble










Código del Programa

Programa AVR-BASCON
Para la programación de el Microcontrolador


Digitación del Programa



Código del Programa


'*************************
'Carro Seguidor de Linea / Bigotes (Detector de Obstaculos)
'ATMEGA168
'CNY70
'Principios de Robotica
'Lucia, Rafael, Carmen y Ricardo
'*************************

'//Directivas
$regfile = "m168def.dat"
$crystal = 8000000

'//Configuraciones
 Configurar los pines de entrada y salidas, asi como los manejos de las velocidades de los motores

'//Alias
Asignaciones de Varias

'Sensores Alias Pinc

Big_1 Alias Pind.0
Big_2 Alias Pind.1

Led_centro Alias Portd.2


Giro_izq Alias Pwm1a
Giro_der Alias Pwm1b



Buzzer Alias Portb.5

'//Dimensionamiento

Dimencionamientos de las variables a utilizar


'// Inicializaciones

Sensores = 0 : Portb.6 = 1
Waitms 200 : Portb.6 = 0
Sound Buzzer , 500 , 500


Portd.2 = 1
Waitms 500
Portd.2 = 0
Waitms 500
Portd.2 = 1
Waitms 500
Portd.2 = 0
Waitms 500
Portd.2 = 1
Waitms 500


Portb.6 = 1 : Portb.7 = 1 : Portd.5 = 1 : Portd.6 = 1
Waitms 200
Portb.6 = 1 : Portb.7 = 0 : Portd.5 = 1 : Portd.6 = 1
Waitms 200
Portb.6 = 1 : Portb.7 = 1 : Portd.5 = 0 : Portd.6 = 1
Waitms 200
Portb.6 = 0 : Portb.7 = 1 : Portd.5 = 1 : Portd.6 = 1
Waitms 200
Portb.6 = 0 : Portb.7 = 1 : Portd.5 = 1 : Portd.6 = 0
Waitms 200
Portb.6 = 1 : Portb.7 = 0 : Portd.5 = 0 : Portd.6 = 1
Waitms 200



'//Programa Principal

Inicio:


 If Big_1 = 0 And Big_2 = 1 Then Gosub Obstaculo_d
 If Big_1 = 1 And Big_2 = 0 Then Gosub Obstaculo_i
 If Big_1 = 1 And Big_2 = 1 Then Gosub Obstaculo_frente




If Sen_2 = 0 And Sen_3 = 0 And Sen_4 = 0 And Sen_5 = 0 And Big_1 = 0 And Big_2 = 0 Then Goto Detenido
If Sen_2 = 1 And Sen_3 = 0 And Sen_4 = 0 And Sen_5 = 1 And Big_1 = 0 And Big_2 = 0 Then Goto Adelante


If Sen_2 = 1 And Sen_3 = 0 And Sen_4 = 1 And Sen_5 = 1 And Big_1 = 0 And Big_2 = 0 Then Goto Giro_i_v1
If Sen_2 = 0 And Sen_3 = 0 And Sen_4 = 1 And Sen_5 = 1 And Big_1 = 0 And Big_2 = 0 Then Goto Giro_i_v2
If Sen_2 = 0 And Sen_3 = 1 And Sen_4 = 1 And Sen_5 = 1 And Big_1 = 0 And Big_2 = 0 Then Goto Giro_i_v3

If Sen_2 = 1 And Sen_3 = 1 And Sen_4 = 0 And Sen_5 = 1 And Big_1 = 0 And Big_2 = 0 Then Goto Giro_d_v1
If Sen_2 = 1 And Sen_3 = 1 And Sen_4 = 0 And Sen_5 = 0 And Big_1 = 0 And Big_2 = 0 Then Goto Giro_d_v2
If Sen_2 = 1 And Sen_3 = 1 And Sen_4 = 1 And Sen_5 = 0 And Big_1 = 0 And Big_2 = 0 Then Goto Giro_d_v3


If Sen_2 = 1 And Sen_3 = 1 And Sen_4 = 1 And Sen_5 = 1 And Big_1 = 0 And Big_2 = 0 Then Goto Rutina


Goto Inicio


'//Subrutinas

Obstaculo_d:
Sound Buzzer , 125 , 200
Pwm1a = 0 : Portb.0 = 0 : Portd.7 = 0
Pwm1b = 0 : Portb.4 = 0 : Portb.3 = 0
Waitms 500
Pwm1a = 70 : Portb.0 = 0 : Portd.7 = 1
Pwm1b = 70 : Portb.4 = 0 : Portb.3 = 1
Waitms 750
Pwm1a = 75 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 75 : Portb.4 = 0 : Portb.3 = 1
Waitms 500
Goto Inicio

Obstaculo_i:
Sound Buzzer , 125 , 200
Pwm1a = 0 : Portb.0 = 0 : Portd.7 = 0
Pwm1b = 0 : Portb.4 = 0 : Portb.3 = 0
Waitms 500
Pwm1a = 70 : Portb.0 = 0 : Portd.7 = 1
Pwm1b = 70 : Portb.4 = 0 : Portb.3 = 1
Waitms 750
Pwm1a = 75 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 75 : Portb.4 = 0 : Portb.3 = 1
Waitms 250
Goto Inicio


Obstaculo_frente:
Sound Buzzer , 125 , 200
Pwm1a = 0 : Portb.0 = 0 : Portd.7 = 0
Pwm1b = 0 : Portb.4 = 0 : Portb.3 = 0
Waitms 500
Pwm1a = 70 : Portb.0 = 0 : Portd.7 = 1
Pwm1b = 70 : Portb.4 = 0 : Portb.3 = 1
Waitms 750
Pwm1a = 75 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 75 : Portb.4 = 0 : Portb.3 = 1
Waitms 250
Goto Inicio


Detenido:
Pwm1a = 0 : Portb.0 = 1 : Portd.7 = 1
Pwm1b = 0 : Portb.4 = 1 : Portb.3 = 1
Goto Inicio


Adelante:

Pwm1a = 65 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 65 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio


Atras:
Pwm1a = 65 : Portb.0 = 0 : Portd.7 = 1
Pwm1b = 65 : Portb.4 = 0 : Portb.3 = 1
Goto Inicio

'giro lentisimo
Giro_d_v1:
Pwm1a = 60 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 50 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Giro_d_v2:
Pwm1a = 60 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 40 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Giro_d_v3:
Pwm1a = 60 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 0 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Giro_d_v4:
Pwm1a = 75 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 0 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Giro_d_v5:
Pwm1a = 75 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 0 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio



Giro_i_v1:
Pwm1a = 50 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 60 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Giro_i_v2:
Pwm1a = 40 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 60 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Giro_i_v3:
Pwm1a = 0 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 60 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Giro_i_v4:
Pwm1a = 65 : Portb.0 = 1 : Portd.7 = 1
Pwm1b = 65 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Giro_i_v5:
Pwm1a = 65 : Portb.0 = 0 : Portd.7 = 1
Pwm1b = 65 : Portb.4 = 1 : Portb.3 = 0
Goto Inicio

Rutina:
Pwm1a = 60 : Portb.0 = 1 : Portd.7 = 0
Pwm1b = 60 : Portb.4 = 0 : Portb.3 = 1
Goto Inicio


End

Diseño del Circuito





Diagrama del Circuito

Listado de Materiales

Lista de Materiales

*Microcntrolador ATMEGA168
*Integrado L293
*Sensores CNY70
*Tarjeta de Cobre (de una cara y de doble cara)
*Cable
*Leds
*Resistencias
*Terminales de Tornillos
*Motores
*Engranes para los motores
*Llantas
*Deposito de Baterias
*Baterias (AA)
*Buzzer
*Capacitores
*Micro switch

Datos Técnicos de los Elementos Principales

Datos Técnicos de los Dispositivos Principales

Microcontrolador
El microcontrolador es un circuito integrado de muy alta escala de integración que contiene las partes funcionales de un computador:
CPU = Unidad de Procesamiento Central
Memorias volátiles (RAM), para datos
Memorias no volátiles (ROM, PROM, EPROM) para escribir el programa
Líneas de entrada y salida para comunicarse con el mundo exterior.
Algunos periféricos (comunicación serial, temporizador, convertidor A/D, etc.)
Es decir el microcontrolador es un computador integrado en un solo chip. Integrar todos estos elementos en un solo circuito integrado a significado desarrollar aplicaciones importantes en la industria al economizar materiales, tiempo y espacio.


Integrado L293
Con Unitrode L293 y L293D
Ahora los productos de Texas Instruments
 Amplia gama de la oferta Voltaje: 4,5 V a 36 V
 independiente de suministro de entrada-lógica
 Protección ESD Interior
 térmico apagado
Entradas  alta inmunidad de ruido
 reemplazos funcionales para SGS y L293
SGS L293D
 de salida de corriente 1 A por canal
(600 mA para L293D)
 de pico de salida de corriente 2 A por canal
(1,2 A para L293D)
 Diodos salida Abrazadera para inductivo
Supresión transitoria (L293D)

descripción
El L293 y L293D son cuádruples de alta corriente
H media controladores. El L293 está diseñado para proporcionar
corrientes bidireccionales unidad de hasta 1 A a tensiones
de 4,5 V a 36 V. El L293D está diseñado para
proporcionar las corrientes bidireccionales unidad de hasta
600 mA en los voltajes de 4,5 V a 36 V.


CNY70

Descripción

El CNY70 tiene una construcción compacta, donde la
fuente emisora
​​
de luz y el detector se organizan en
la misma dirección para detectar la presencia de un objeto
mediante el uso de los rayos infrarrojos de reflexión del objeto.
La longitud de onda de funcionamiento es de 950 nm. El detector
consta de un fototransistor.
Aplicaciones
   Optoelectrónicos de exploración y dispositivos de conmutación
es decir, el índice de detección, etc codificados disco de exploración
(asambleas codificador optoelectrónico para
la transmisión de detección).
Características

   No hay ajuste necesario
   Alta salida de la señal
   Bajo coeficiente de temperatura
   Detector provisto de filtro óptico
   Relación actual de transferencia (CTR) de los típicos 5%



Motores






Cotización


Integrantes:

Lucia, Carmen, Rafael y Ricardo.

Principios de Robotica 
UTEC // 01-2011