faunos laberinto (robot laberinto) raÚl antona fresno...

68
1 Robot laberinto Raúl Antona Fresno PE21 Ciclo Superior de Desarrollo de Productos Electrónicos I.E.S. Joan miro Promoción 2007-2009 Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO

Upload: others

Post on 24-Jul-2020

11 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

1

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO

Page 2: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

2

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Índice: Página

1 INTRODUCCIÓN DEL PROYECTO. 2

2 DIAGRAMA EN BLOQUES. 6

2.1 EXPLICACIÓN DEL DIAGRAMA EN BLOQUES. 7

3 ESQUEMA ELECTRICO GENERAL. 8

3.1 EXPLICACIÓN DEL ESQUEMA ELECTRICO

GENERAL. 9

4 FUENTE DE ALIMENTACION REGULADA A 9V/5V. 10

4.1 SISTEMA DE PROTECCIÓN. 10

4.2 SISTEMA DE ELIMINACIÓN DE RUIDOS. 11

4.3 REGULADOR DE TENSIÓN. 11

5 ADAPTADOR DE SEÑALES PC-μC. 11

6 SENSORES. 13

6.1ESTUDIO DE LA RECTA DEL GP2D12. 14

6.2 PROGRAMA Y DIAGRAMA DEL DRIVER GP2D12. 16

6.3 PROGRAMA Y DIAGRAMA DE LA REPRESENTA

CIÓN DE DISTACIAS EN EL DISPLAY . 18

7 CONTROL DE POTENCIA. 20

7.1 CONTROL DE GIRO Y VELOCIDAD. 20

7.2 TABLAS DE FUNCIONAMIENTO. 21

7.2.1MOTOR DERECHO. 21

7.2.2MOTOR IZQUIERDO. 21

7.3 PROGRAMAS Y DIAGRAMAS DE CONTROL

DE VELOCIDAD. 22

7.3.1 VELOCIDAD MOTOR IZQUIERDO. 22

7.3.2 VELOCIDAD MOTOR DERECHO. 25

7.3.3 CONTROL DE GIRO DEL MOTOR DERECHO. 28

7.3.4 CONTROL DE GIRO DEL MOTOR IZQUIERDO. 30

8 SISTEMA DE CONTROL: 32

8.1LA PANTALLA LCD HDD44700 32

8.1.1PATILLAJE DEL LDC . 33

8.1.2DIAGRAMA Y PROGRAMA DE PRUEBA DEL LCD. 33

8.2RECEPTOR DE DATOS CEBEK C-0504. 34

8.3 PIC. 34

8.4 OTROS. 34

9 BREVE EXPLICACIÓN DEL PROGRAMA PRINCIPAL. 35

9.1ESQUEMA ELECTRICO DE SIMULACIÓN. 38

9.2DIAGRAMA Y PROGRAMA PRINCIPAL. 39

Page 3: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

3

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

10 FABRICACIÓN DE PLACAS. 59

10.1 FABRICACIÓN PLACAS CARA BOTTOM. 60

10.2 FABRICACIÓN CARA TOP. 61

10.3 FABRICACIÓN CARA COMPONENTES. 62

11 DISEÑO MECÁNICO. 63

12 Lista de Componentes. 64

12.1 Desarrollo del Proyecto. 67

13 REFERENCIAS. 68

14 ANEXOS. 68

Page 4: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

4

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

1 INTRODUCCIÓN DEL PROYECTO:

El proyecto que he realizado a lo largo del segundo curso del módulo de

desarrollos de productos eléctricos, es un robot laberinto.

Este robot tiene la siguiente función: una vez introducido en un laberinto por una

de las cuatro entradas, tiene que ser capaz de salir por la entrada contraria

autónomamente, en el menor tiempo posible. El laberinto tiene unas proporciones de 3,6

x 3,6 y el interior del laberinto está compuesto por calles verticales y horizontales, con

una separación entre paredes de 40 cm. aproximadamente y un espesor de 1,5 cm. Cada

calle tiene una altura de 25 cm. y está dispuesta en ángulo de 90º. El color del material

es blanco.

Ejemplo:

Las medidas están ajustadas entre las máximas determinadas por el consejo

regulador de Madridbot:

“Los robots han de poseer unas dimensiones máximas, durante todo el transcurso de la

prueba,

de 20 cm. de ancho, 30 cm. de largo y 25 cm. de alto, siendo libre el peso que puedan

tener.”

Page 5: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

5

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

El proyecto desde el comienzo ha estado separado en varios bloques, tanto el

robot en si, como la forma de trabajo. Todo el trabajo se ha dividido en tres asignaturas,

las cuales han sido orientadas conjuntamente a la realización del robot.

En la asignatura de “Fabricación y diseño de placas”: en ámbito de diseño,

hemos aprendido ha realizar las placas con unas medidas determinadas y a

distribuir los componentes de forma que estén alineados para que ocupen el

menor espacio sacando el mayor rendimiento posible. En fabricación se han

puesto practica conocimientos teóricos, comprobando en las placas del robot los

distintos métodos; desde los más caseros hasta métodos casi profesionales.

En “Mantenimiento de equipos eléctricos”: hemos realizado gran diversidad de

prácticas, las cuales nos han permitido aprender el funcionamiento de los

equipos de trabajo, comprobando mediante ensayos el funcionamiento de las

partes del robot; desde las situaciones más favorables hasta las condiciones más

desfavorables. Es importante tener en cuenta, que sin los contenidos de las

asignaturas de electrónica digital y analógica del pasado curso (en las que se

impartieron los componentes utilizados en el robot) no habría sido posible

comprender el funcionamiento de dicho proyecto.

“Desarrollo de proyectos”: esta asignatura se ha enfocado al conocimiento de la

programación en pic, para lograr que el robot realice de forma autónoma el

laberinto sirviéndose de un programa adecuado.

Es importante señalar la unión que existe entre ésta asignatura y la asignatura de

“Técnicas de programación”, ya que dicha asignatura trató la programación en

lenguaje C; conocimiento necesario para realizar muchas de las funciones

específicas del pic.

Page 6: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

6

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

2 DIAGRAMA EN BLOQUES

Page 7: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

7

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

2.1 EXPLICACIÓN DEL DIAGRAMA EN BLOQUES:

Con el diagrama en bloques se mantiene una vista ordenada y esquematizada de

las partes que forman el robot. Cada bloque de éste puede ser abierto.

Dentro de cada uno encontramos los esquemas eléctricos de cada parte:

En el bloque de adaptador de señales PC-μC y regulador 9V/5V, se encuentran

los esquemas eléctricos de la alimentación de los circuitos y los componentes

necesarios para realizar la transmisión de datos desde el ordenador al robot.

Dentro del bloque de sensores, encontramos los sensores con los que el robot

detecta las paredes del laberinto y se orientara en cada parte del circuito.

En el bloque de potencia están situados los circuitos con los que manejamos el

control de los motores.

El bloque de sistema de control se encarga de enviar, recibir y administrar las

señales al resto de bloques. Esta compuesto por el microprocesador, encargado

de administrar las señales, y el receptor de señales cebek, por el cual podemos

recibir señales AM desde un emisor externo.

Haciendo una burda comparación con el cuerpo humano, para ver de los avances

tecnológicos y lo que significan estos; podríamos decir que el bloque regulador 9V/5V

correspondería a nuestro corazón que envía la alimentación necesaria al resto de

bloques. El bloque de sensores podrían ser los ojos que envían información al cerebro.

En nuestro caso el bloque de sistema de control, quien administra dicha información y

la envía a las extremidades, el bloque de control de potencia.

Page 8: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

8

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

3 ESQUEMA ELECTRICO GENERAL:

Page 9: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

9

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

3.1 EXPLICACIÓN DEL ESQUEMA ELECTRICO GENERAL:

El esquema eléctrico, representa abiertas cada una de las partes de los bloques con todos

sus componentes. Esta división ha servido para la fabricación de, ya que los componentes

se han dividido en distintas placas, para poder tener algunas placas comunes con otros

compañeros y el robot quede con un tamaño más reducido. Las uniones entre las distintas

partes del robot, por las que alimentaremos los componentes y enviaremos las señales se

han realizado con fajas de diez, excepto la alimentación de los motores que al estar

alimentados con distintas tensiones, se han hecho con cables flexibles.

Page 10: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

10

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

4 FUENTE DE ALIMENTACION REGULADA A 9V/5V:

La fuente de alimentación regulada es necesaria para alimentar las distintas partes

del circuito. Con una batería de 9 voltios y este diseño, he conseguido los 5 voltios

necesarios para alimentar los componentes del robot y obtener aproximadamente 9 voltios

para alimentar los motores.

El LM350, es un regulador ajustable con capsulado TO3 capaz de suministrar 3 A;

este componente debido a la corriente que suministra es recomendable ponerlo con un

disipador o dejar en la placa una superficie de cobre libre, que pueda disipar el calor.

4.1 SISTEMA DE PROTECCIÓN:

D1 es un diodo de protección, que sirve para proteger los componentes, en caso de

conectar erróneamente la batería; este diodo permite el paso de corriente si se polariza en

directa, para ello el positivo de la pila tiene que estar conectado al ánodo del diodo.

D2, se conecta en polarización inversa y sirve para proteger el LM350K en caso de que

haya una diferencia de potencial; esto puede ocurrir en el apagado, que haya una tensión

más positiva en la salida que en la entrada, en este caso el diodo se polariza en directa

evitando que la corriente vaya por el LM350K.

D4 es un diodo que se pone para proteger el LM350K cuando queramos trabajar con

tensiones superiores a 25V o por si tenemos tensiones inversas.

D3 es un diodo tipo led que sirve para informar que la fuente esta encendida, para evitar

fundir el diodo hemos limitado la corriente con el resistencia de 220Ω

Page 11: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

11

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

4.2 SISTEMA DE ELIMINACIÓN DE RUIDOS Y FILTROS.

Los condensadores C2 y C4 son condensadores que sirven para la eliminación de

ruidos, estos condensadores no sirven de filtros de tensión debido a que tienen un valor

muy pequeño, son solamente filtros de ruido. C3 y C1 son condensadores de filtro, que lo

que hacen es que tengamos una tensión continua más pura.

4.3 REGULADOR DE TENSIÓN: La regulación con el LM350K se hace con R38, RV1, y C15; R38 es una resistencia

que sirve para aumentar el suministro de corriente al potenciómetro, con RV1 se consigue

variar la tensión de salida (VDD3) y con C15 con seguimos estabilizar la tensión de salida,

para que no se produzcan saltos.

V12_B es el la conexión donde se obtiene aproximadamente los 9V.

VDD3_B es la conexión de salida

5 ADAPTADOR DE SEÑALES PC-μC.

Para la transmisión de datos del ordenador hasta el μC se utiliza el puerto serie del

ordenador, para ello se han tenido que adaptar las señales que nos envía el ordenador; este

tipo de conversiones son del tipo RS232, se trata de adaptar las señales RS a TTL.

Page 12: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

12

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Para convertir las señales de RS a TTL he utilizado el integrado MAX232, este

integrado necesita cuatro condensadores y una fuente de alimentación de 5V (VDD3_B),

C3 y C2 “adaptan” el nivel de voltaje tomado de la alimentación de +5V a +10V, C1 y C4

invierten los niveles de voltaje para que se puedan obtener -10V, estos niveles de voltaje

son utilizados para realizar la adaptación de los voltajes RS232 y se encuentran dentro de

los rangos permitidos por la norma RS232.

La conversión RS232 trabaja con lógica negativa esto quiere decir: que las conversiones

son como se muestran en la siguiente tabla:

N.L. TTL Tensión N.L. RS Tensión

1 5V 1 -10V

0 0V 0 +10V

Nota:

Las placas de transmisión de datos y la fuente de alimentación se han fabricado las dos

sobre la misma superficie.

Page 13: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

13

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

6 SENSORES:

El sensor que se ha utilizado para detectar las paredes ha sido UN sensor SHARP modelo

GP2D12. El sensor GP2D12 es un sensor de infrarrojos, que trabaja de forma analógica,

esto significa que nos da una tensión con respecto a la distancia a la que se encuentre de la

pared.

Page 14: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

14

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

6.1ESTUDIO DE LA RECTA DEL GP2D12:

Page 15: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

15

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Para poder trabajar correctamente con el sensor GP2D12; se ha tenido que hacer un

estudio previo del voltaje, que nos daba el sensor en función de la distancia a la que se

encontraba de la pared, como no era proporcional se ha tenido que linealizar la curva del

sensor para saber cual es la distancia en un determinado punto; eso se ha realizado

utilizando la ecuación de la recta.

1212

121 YY

YY

XXXL

El sensor GP2D12 tiene un problema, en distancias inferiores a 8CM el rango de tensiones

se repiten para varias distancias, por eso ha resultado imposible linealizar esa parte de la

curva y los rangos comprendido entre 0CM y menores de 8CM han sido capados,

igualándolos a 8CM. En la parte contraria donde el sensor se encuentra a en unas distancias

superiores a 55CM se han capado las distancias superiores, porque en valores superiores a

55CM el sensor es inestable.

Hay que tener en cuenta que todos los valores comprendidos entre 8CM y 55CM, pueden

tener un margen de error, ya que el sensor no tiene la misma eficacia cuando reflecta sobre

un material negro o sobre un material blanco.

Se ha introducido un condensador de 10 μF, el cual lo recomienda el fabricante para

eliminar posibles ruidos.

Después de aprender el funcionamiento del sensor GP2D12, tuve que crear una huella en

PROTEUS, para poder trabajar en ISIS, ARES y crear un DRIVER con la ecuación de la

recta para obtener la distancia a la que se encontraba el robot. Las huellas son las mostradas

en la figura 5 y figura 6.

La huella del ISIS no puede producir tensiones; a si que se ha creado un circuito que

proporciona una tensión, con esta tensión se hace una conversión analógica que es

introducida al micro por el “PUERTO A”, esta tensión

sirve para obtener la distancia en la que se encuentra el

robot, con el DRIVER apropiado.

Con este circuito lo que se ha conseguido es una tensión

variable entre 0,5V y 2,6V.

Page 16: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

16

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

6.2 PROGRAMA Y DIAGRAMA DEL DRIVER GP2D12:

//*****************************DRIVER DE CONTROL DEL SENSOR DE DISTANCIA Gp2d12,

para una recta entre 10 cm. y 55 cm.

//HACE LA CONVERISON DE TENSION PROCEDENTE DEL SENSOR Gp2d12 A UNA //DISTANCIA

(SE OBTIENE UNA DISTANCIA EN FUNCION DE LA TENSIÓN).

//SE INTRODUCE UN VALOR DE TENSIÓN (v) TIPO FLOAT Y DEVUELVE UNA DISTANCIA

//(d)FLOAT.

//****************************** DECLARACIÓN DEFUNCIONES**********************

float Gp2d12_v_d(float);

//******************************FUNCIÓNGp2d12_v_d********************************

float Gp2d12_v_d(float v)

float l; //declaración de la variable l.

l=0;

if(v>2.6) // preguntamos por el valor de v.

l = 8;

if(v<2.6&&v>=1.9) // preguntamos por el valor de v.

l = 13.5 + ((8-13.5)* (v - 1.9) /(2.6-1.9)); //función de la recta.

if(v<1.9&&v>=1.65) // preguntamos por el valor de v.

Page 17: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

17

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

l = 16 + ((13.5-16)* (v- 1.65) / (1.9-1.65)); //función de la recta.

if(v<1.65&&v>=1.38) // preguntamos por el valor de v.

l = 20 + ((16-20)* (v- 1.38) / (1.65-1.38)); //función de la recta.

if(v<1.38&&v>=1.15) // preguntamos por el valor de v.

l = 25 + ((20-25)* (v- 1.15) / (1.38-1.15)); //función de la recta.

if(v<1.15&&v>=0.95) // preguntamos por el valor de v.

l = 30 + ((25-30)* (v- 0.95) / (1.15-0.95)); //función de la recta.

if(v<0.95&&v>=0.75) // preguntamos por el valor de v.

l = 40 + ((30-40)* (v- 0.75) / (0.95-0.75)); //función de la recta.

if(v<0.75&&v>=0.68) // preguntamos por el valor de v.

l = 45 + ((40-45)* (v- 0.68) / (0.75-0.68)); //función de la recta.

if(v<0.68&&v>=0.58) // preguntamos por el valor de v.

l = 55 + ((45-55)* (v- 0.58) / (0.68-0.58)); //función de la recta.

if(v<0.58) // preguntamos por el valor de v.

l=55;

return(l); //devolvemos l.

Page 18: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

18

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

6.3 PROGRAMA Y DIAGRAMA DE LA REPRESENTACIÓN DE DISTACIAS EN

EL DISPLAY .

Una de las pruebas más importantes que se han realizado con el GP2D12 y su DRIVER,

esta es la representación de las distancias y la tensión en la pantalla del LCD.

//*************************Conversión Analógica Digital de la Patilla AN0 *******************

#include <16F876A.h>

#device adc=10 //Conversor Analógico Digital de 10 bit el PIC 16F876A puede trabajar con 8 o 10 bit //de

resolución.

#FUSES XT,NOWDT

#use delay(clock=4000000)

#include <LCD1.c> // Incluimos el driver LCD1.c que contiene las funciones de control del LCD.

#include <driver_gp2d12.c>

//*******************************PROGRAMA PRINCIPAL*****************************

Page 19: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

19

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

void main()

int16 q;

float d,

v;

setup_adc_ports(0); // Seleccionamos el Puerto A como entradas Analógicas. Mirar

//ADCON1.

setup_adc(ADC_CLOCK_INTERNAL); // Fuente de reloj RC interno

lcd_init(); // Inicializamos el LCD.

while(1) // Bucle infinito.

set_adc_channel(0); // HabilitaciOn canal 0 "AN0"

delay_us(20); // Retardo de 20uS necesaria para respetar el tiempo //de

//Adquisición Tad.

q = read_adc(); // Lectura canal 0 "AN0"

v = (5.0 * q) / 1024.0; // Conversion a tensión del código digital "q".

d=Gp2d12_v_d(v); // Cargamos el driver GP2D12 en la variable.

lcd_gotoxy(1,1); // Posicionamos el Cursor en la posición 1, línea 1.

printf(lcd_putc, "voltios = %01.3fV", v); // Saltamos de línea y escribimos en el LCD

//"VOLTAJE =" y 4 dígitos de "P"

// en formato truncado de 4 dígitos con 3 decimales y //el

//carácter "V".

lcd_gotoxy(1,2);

printf(lcd_putc, "d = %01.4fcm",d ); // Saltamos de línea y escribimos en el LCD //"distancia

//=" y 4 dígitos de "P" // en formato //truncado de 4

//dígitos con 3 decimales y el carácter //"V".

Page 20: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

20

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

7 CONTROL DE POTENCIA:

7.1 CONTROL DE GIRO Y VELOCIDAD:

Para el control de giro de los motores se ha utilizado el inversor de giro L298, que

poniendo unas tensiones en las patillas de entradas IN1, IN2, IN3, IN4; se puede controlar

el paro de los motores, el giro de los motores en sentido horario o en contra horario. Los

optoaclopadores se utilizan para independizar el circuito de control con el de potencia.

Ejemplo:

RA4_A= 1(N.L), no hay diferencia de potencial en U3, el fototransistor al corte,

1(N.L.) en In1.

RA4_A=0(N.L), hay diferencia de potencial en U3, el fototransistor saturado,

0(N.L.) en In1.

El circuito compuesto por los optoacopladores U7, U8 y los transistores Q1, Q2,

Q3, Q4, sirven para habilitar las patillas Vsens A y B.

Se ha puesto un condensador para eliminar las señales que puedan producir ruido.

Los diodos son de protección.

Page 21: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

21

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

7.2 TABLAS DE FUNCIONAMIENTO:

7.2.1MOTOR DERECHO:

* Horario: sigue el sentido de las agujas del reloj.

* Contra horario: contra del sentido de las agujas del reloj.

7.2.2MOTOR IZQUIERDO:

* Horario: sigue el sentido de las agujas del reloj.

* Contra horario: contra del sentido de las agujas del reloj.

Entradas Salidas

Giro del motor VsensA ENA In1 In2

OUT1

(N.L.)

OUT2

(N.L.)

0

1

1

1

1

1

X

0

1

1

1

1

X

X

0

0

1

1

X

X

0

1

0

1

0

0

0

0

1

1

0

0

0

1

0

1

Parado

Parado

Parado

*Contra horario

*horario

Parado

Entradas Salidas

Giro del motor VsensA ENA In1 In2

OUT1

(N.L.)

OUT2

(N.L.)

0

1

1

1

1

1

X

0

1

1

1

1

X

X

0

0

1

1

X

X

0

1

0

1

0

0

0

0

1

1

0

0

0

1

0

1

Parado

Parado

Parado

*horario

*Contra horario

Parado

Page 22: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

22

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Para controlar la velocidad de giro de los motores, se ha utilizado PWM (Pulse Width

Modulation), esto quiere decir modulación de la anchura del pulso. La PWM es

generada por el pic e introducida al L298 por las Vsens.

El funcionamiento de la PWM es similar a; como si metiéramos pulsos con un

interruptor, cuanta mas duración tenga el pulso, más velocidad alcanzará en motor.

La PWM ha servido para controlar el robot en las distintas partes del circuito, cuando el

robot se encontraba en una recta dentro de unos rangos determinados, se ha aplicado la

PWM máxima a los dos motores; en caso de que el robot se desplace hacia la izquierda,

se corrige el movimiento disminuyendo la PWM en el motor derecho; si el robot se

desplaza al lado contrario se disminuye la PWM del motor izquierdo. En caso de que el

robot se encuentre en una curva la PWM es mucho menor o incluso se puede invertir el

giro del motor, para que el giro sea mucho más brusco.

7.3 PROGRAMAS Y DIAGRAMAS DE CONTROL DE VELOCIDAD.

7.3.1 VELOCIDAD MOTOR IZQUIERDO.

//*****************************************Laberinto1 *******************************

//*****************************************Directivas de preprocesado*******************

#include <16F876A.h>

#device adc=10 // Conversor Analógico Digital de 10 bit el PIC 16F876A puede trabajar con 8

//o 10 bit de resolución.

Page 23: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

23

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

#FUSES XT,NOWDT

#use delay(clock=4000000)

#include <LCD1.c> // Incluimos el driver LCD1.c que contiene las funciones de control del LCD.

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC EN 07h.

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTA en 05h.

#BIT RB3 = 0x06.3 // DEFINO LA PATILLA 3 DEL PORTB COMO RB3.

#BIT RC0 = 0x07.0 // DEFINO LA PATILLA 0 DEL PORTC COMO RC0.

#BIT RC1 = 0x07.1 // DEFINO LA PATILLA 1 DEL PORTC COMO RC1.

#BIT RC2 = 0x07.2 // DEFINO LA PATILLA 2 DEL PORTC COMO RC2.

#BIT RC3 = 0x07.3 // DEFINO LA PATILLA 3 DEL PORTC COMO RC3.

#BIT RC4 = 0x07.4 // DEFINO LA PATILLA 4 DEL PORTC COMO RC4.

#BIT RC5 = 0x07.5 // DEFINO LA PATILLA 5 DEL PORTC COMO RC5.

#BIT RC6 = 0x07.6 // DEFINO LA PATILLA 6 DEL PORTC COMO RC6.

#BIT RC7 = 0x07.7 // DEFINO LA PATILLA 7 DEL PORTC COMO RC7.

#BIT RA2 = 0x05.2 // DEFINO LA PATILLA 2 DEL PORTA COMO RA2.

#BIT RA4 = 0x05.4 // DEFINO LA PATILLA 4 DEL PORTA COMO RA4.

#BIT RA5 = 0x05.5 // DEFINO LA PATILLA 5 DEL PORTA COMO RA5.

//**************************************Declaración funciones***************************

int16 TH =65535;

//*******************************PROGRAMA PRINCIPAL******************************

void main()

TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos.

TRISA = 0B00001111; // Defines Puerto A como ENTRADA de datos.

//portB = 0B00000000; // Reseteamos el Puerto B

RA2 = 0;

RA4 = 0;

RB3 = 0;

RC0 = 0;

RC5 = 0;

RC6 = 0;

RC7 = 0;

setup_timer_2(T2_DIV_BY_16,249,1); // setup_timer(Prescaler,PR2,Postscaler)

// Configuración timer2. Si el Periodo = 16mS ----> T =

//16000uS

Page 24: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

24

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

// T = [PR2+1] x Tcm x Postscaler x Prescaler

// PR2 puede valer de 0 a 255.

// Tcm es el tiempo de Ciclo Maquina. Tcm = 4/Fosc = 4/1.000.000

//hz = 4uS.

// Prescaler puede valer 1,4,16

// Postscaler puede valer 1.

// 16000uS = [PR2+1] x 4 x 16 x 1

// PR2 =[T/(Tcm x Preescaler x Postscaler)]-1

// PR2 =[16000uS/(4uS x 16 x 1)]-1 = 249 (en C 249)

setup_ccp2(CCP_PWM); // CCP2 en modo PWM (Salida por RC1) motor izquierdo.

setup_ccp1(CCP_PWM); // CCP1 en modo PWM (Salida por RC2) motor derecho.

TH=0;

set_pwm1_duty(TH);

set_pwm2_duty(TH);

TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos.

while(true)

RC5=0; //MOTOR DERECHO HACIA ATRAS

RC0=1;

TH = 1000;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 900;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 800;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 700;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 600;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 500;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 400;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 300;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 200;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 100;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 0;

set_pwm2_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

Page 25: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

25

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

7.3.2 VELOCIDAD MOTOR DERECHO

//*****************************************Laberinto1 *******************************

//*****************************************Directivas de preprocesado*******************

#include <16F876A.h>

#device adc=10 // Conversor Analógico Digital de 10 bit el PIC 16F876A puede trabajar con 8

//o 10 bit de resolución.

#FUSES XT,NOWDT

#use delay(clock=4000000)

#include <LCD1.c> // Incluimos el driver LCD1.c que contiene las funciones de control del LCD.

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC EN 07h.

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTA en 05h.

#BIT RB3 = 0x06.3 // DEFINO LA PATILLA 3 DEL PORTB COMO RB3.

#BIT RC0 = 0x07.0 // DEFINO LA PATILLA 0 DEL PORTC COMO RC0.

#BIT RC1 = 0x07.1 // DEFINO LA PATILLA 1 DEL PORTC COMO RC1.

#BIT RC2 = 0x07.2 // DEFINO LA PATILLA 2 DEL PORTC COMO RC2.

Page 26: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

26

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

#BIT RC3 = 0x07.3 // DEFINO LA PATILLA 3 DEL PORTC COMO RC3.

#BIT RC4 = 0x07.4 // DEFINO LA PATILLA 4 DEL PORTC COMO RC4.

#BIT RC5 = 0x07.5 // DEFINO LA PATILLA 5 DEL PORTC COMO RC5.

#BIT RC6 = 0x07.6 // DEFINO LA PATILLA 6 DEL PORTC COMO RC6.

#BIT RC7 = 0x07.7 // DEFINO LA PATILLA 7 DEL PORTC COMO RC7.

#BIT RA2 = 0x05.2 // DEFINO LA PATILLA 2 DEL PORTA COMO RA2.

#BIT RA4 = 0x05.4 // DEFINO LA PATILLA 4 DEL PORTA COMO RA4.

#BIT RA5 = 0x05.5 // DEFINO LA PATILLA 5 DEL PORTA COMO RA5.

//**************************************Declaración funciones***************************

int16 TH =65535;

//*******************************PROGRAMA PRINCIPAL******************************

void main()

TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos.

TRISA = 0B00001111; // Defines Puerto A como ENTRADA de datos.

//portB = 0B00000000; // Reseteamos el Puerto B

RA2 = 0;

RA4 = 0;

RB3 = 0;

RC0 = 0;

RC5 = 0;

RC6 = 0;

RC7 = 0;

setup_timer_2(T2_DIV_BY_16,249,1); // setup_timer(Prescaler,PR2,Postscaler)

// Configuración timer2. Si el Periodo = 16mS ----> T =

//16000uS

// T = [PR2+1] x Tcm x Postscaler x Prescaler

// PR2 puede valer de 0 a 255.

// Tcm es el tiempo de Ciclo Maquina. Tcm = 4/Fosc = 4/1.000.000

//hz = 4uS.

// Prescaler puede valer 1,4,16

// Postscaler puede valer 1.

// 16000uS = [PR2+1] x 4 x 16 x 1

// PR2 =[T/(Tcm x Preescaler x Postscaler)]-1

// PR2 =[16000uS/(4uS x 16 x 1)]-1 = 249 (en C 249)

setup_ccp2(CCP_PWM); // CCP2 en modo PWM (Salida por RC1) motor izquierdo.

setup_ccp1(CCP_PWM); // CCP1 en modo PWM (Salida por RC2) motor derecho.

TH=0;

set_pwm1_duty(TH);

set_pwm2_duty(TH);

TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos.

Page 27: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

27

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

while(true)

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 1000;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 900;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 800;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 700;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 600;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 500;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 400;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 300;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 200;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 100;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

TH = 0;

set_pwm1_duty(TH); // ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR IZQ

delay_ms(500);

Page 28: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

28

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

7.3.3 CONTROL DE GIRO DEL MOTOR DERECHO:

#include <16F876A.h> // Incluye el fichero 16F876 al programa tiene que estar en la misma

//carpeta del programa define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuarción del microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro guardián Wathdog

#use delay( clock = 4000000 ) // Define la frecuencia del reloj de 4 MHz

#include <LCD1.c> // Incluimos el driver kbd1.c que contiene las funciones de control del

//display.

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC EN 07h.

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTA en 05h.

#BIT RB3 = 0x06.3 // DEFINO LA PATILLA 3 DEL PORTB COMO RB3.

#BIT RC0 = 0x07.0 // DEFINO LA PATILLA 0 DEL PORTC COMO RB3.

#BIT RC1 = 0x07.1 // DEFINO LA PATILLA 1 DEL PORTC COMO RB3.

#BIT RC2 = 0x07.2 // DEFINO LA PATILLA 2 DEL PORTC COMO RB3.

#BIT RC3 = 0x07.3 // DEFINO LA PATILLA 3 DEL PORTC COMO RB3.

#BIT RC4 = 0x07.4 // DEFINO LA PATILLA 4 DEL PORTC COMO RB3.

#BIT RC5 = 0x07.5 // DEFINO LA PATILLA 5 DEL PORTC COMO RB3.

#BIT RC6 = 0x07.6 // DEFINO LA PATILLA 6 DEL PORTC COMO RB3.

#BIT RC7 = 0x07.7 // DEFINO LA PATILLA 7 DEL PORTC COMO RB3.

#BIT RA4 = 0x05.4 // DEFINO LA PATILLA 4 DEL PORTA COMO RB3.

Page 29: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

29

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

void main() // programa principal

TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos.

TRISA = 0B00001111; // Defines Puerto A como ENTRADA de datos.

portB = 0B00000000; // Reseteamos el Puerto B

RA4 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RB3 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC0 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC1 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC2 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC5 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC6 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC7 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

while(1)

RA4=0; //MOTOR PARADO

RB3=0;

delay_ms(100);

RA4=0; //MOTOR HACIA DELANTE

RB3=1;

delay_ms(100);

RA4=1; //MOTOR HACIA ATRAS

RB3=0;

delay_ms(100);

RA4=1; //MOTOR PARADO

RB3=1;

delay_ms(100);

Page 30: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

30

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

7.3.4 CONTROL DE GIRO DEL MOTOR IZQUIERDO:

#include <16F876A.h> // Incluye el fichero 16F876 al programa tiene que estar en la misma

//carpeta del programa define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuarción del microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro guardián Wathdog

#use delay( clock = 4000000 ) // Define la frecuencia del reloj de 4 MHz

#include <LCD1.c> // Incluimos el driver kbd1.c que contiene las funciones de control del

//display.

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC EN 07h.

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTA en 05h.

#BIT RB3 = 0x06.3 // DEFINO LA PATILLA 3 DEL PORTB COMO RB3.

#BIT RC0 = 0x07.0 // DEFINO LA PATILLA 0 DEL PORTC COMO RC0.

#BIT RC1 = 0x07.1 // DEFINO LA PATILLA 1 DEL PORTC COMO RC1.

#BIT RC2 = 0x07.2 // DEFINO LA PATILLA 2 DEL PORTC COMO RB3.

#BIT RC3 = 0x07.3 // DEFINO LA PATILLA 3 DEL PORTC COMO RC3.

#BIT RC4 = 0x07.4 // DEFINO LA PATILLA 4 DEL PORTC COMO RC4.

#BIT RC5 = 0x07.5 // DEFINO LA PATILLA 5 DEL PORTC COMO RC5.

#BIT RC6 = 0x07.6 // DEFINO LA PATILLA 6 DEL PORTC COMO RC6.

#BIT RC7 = 0x07.7 // DEFINO LA PATILLA 7 DEL PORTC COMO RC7.

#BIT RA4 = 0x05.4 // DEFINO LA PATILLA 4 DEL PORTA COMO RA4.

Page 31: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

31

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

void main() // programa principal

TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos.

TRISA = 0B00001111; // Defines Puerto A como ENTRADA de datos.

portB = 0B00000000; // Reseteamos el Puerto B

RA4 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RB3 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC0 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC1 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC2 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC5 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC6 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

RC7 = 0; //RESETEO DE PATILLAS DE FORMA INDIVDUAL

while(1)

RC5=0; //MOTOR PARADO

RC0=0;

delay_ms(100);

RC5=0; //MOTOR HACIA DELANTE

RC0=1;

delay_ms(100);

RC5=1; //MOTOR HACIA ATRAS

RC0=0;

delay_ms(100);

RC5=1; //MOTOR PARADO

RC0=1;

delay_ms(100);

Page 32: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

32

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

8 SISTEMA DE CONTROL:

El sistema de control es el cerebro del robot esta parte del robot se encarga de:

1. Guardar el programa.

2. Activar las distintas partes de robot.

3. Recibir la información del sistema sensorial y del exterior

4. Analizar y administrar dicha información, para que el robot funcione con

respecto al programa.

Las partes que forman el sistema de control son:

8.1LA PANTALLA LCD HDD44700, tiene dos líneas de 16 caracteres cada

una, la pantalla LCD nos ha servido para representar la distancia a la que se encuentra el

robot.

La conexión se ha realizado por el puerto B, porque se ha utilizado una librería

genérica que tenia esta configuración.

Page 33: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

33

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

8.1.1PATILLAJE DEL LDC

8.1.2DIAGRAMA Y PROGRAMA DE PRUEBA DEL LCD.

#include <16F876A.h> // Incluye el fichero 16F876 al programa tiene que estar en la misma

//carpeta del programa

// define funciones, patillas y registros.

#fuses XT,NOWDT // Define la palabra de configuarción del microcontrolador PIC

// Trabaja con un reloj tipo XT y no utiliza perro guardián Wathdog

#use delay( clock = 1000000 ) // Define la frecuencia del reloj de 4 MHz

#include <LCD1.c> // Incluimos el driver kbd1.c que contiene las funciones de control del

//display.

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

Page 34: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

34

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC EN 07h.

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTA en 05h.

void main()

TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

portB = 0B00000000; // Reseteamos el Puerto B

lcd_init(); // Inicializamos el LCD.

while(1)

lcd_gotoxy(1,1); // Posicionamos el Cursor en la posición 1, línea 1.

printf(lcd_putc, "hello word"); // representación en display.

8.2RECEPTOR DE DATOS CEBEK C-0504.

El receptor de datos es un circuito encargado de recibir datos desde el exterior, este

circuito demodula una señal AM obteniendo los datos digitales comprendidos entre 20 Hz < y < 4 KHz, en un futuro servirá para realizar un coche teledirigido.

8.3 PIC.

Es un microcontrolador PIC16F876A, se encarga de almacenar el programa que

controla el robo, recibir y analizar la información de los sensores y con respecto a ellas

enviar señales que controlen la velocidad y el giro de los motores, representar dicha

información en el display y recibir información desde la tarjeta de radio frecuencia.

El trabaja a una frecuencia de 1 MHz y ejecuta una instrucción en 4uS.

8.4 OTROS.

J6M….J11M.

Son conexiones I2C, estas conexiones se realizan a través de dos puertos RC3 y

RC4, y son conexiones series de datos.

INICIO.

El pulsador inicio sirve para dar la orden al μC de que puede comenzar el programa.

RESET.

Este pulsador, sirve para volver a iniciar el programa, en caso de que el robot se quede

bloqueado en alguna pared, y queremos reiniciar el programa activamos el pulsador.

X1M.

X1m es el cristal de cuarzo, y junto con los condensadores sirve para dar la señal de

reloj de 1MHz al μC .

Page 35: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

35

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

J1M, J3M, J5M.

Son los jumper donde se conectan las fajas por las que se envían y reciben las señales de

las otras partes de robot.

J12M.

J12M, sirve para seleccionar un programa, en caso de que tengamos mas de uno.

J13M.

J13M, sirve para poner el robot en modo teledirigido o para poner el robot dirigido por

el programa.

9 BREVE EXPLICACIÓN DEL PROGRAMA PRINCIPAL.

El programa principal consiste en analizar la información, que recibe de los sensores. Si

el robot se encuentra entre 15,5cm y 17cm la PWM de los motores es la misma

(TH=1000).

Page 36: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

36

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Si el robot se aleja 2cm más de la pared, la PWM del motor derecho disminuye muy

poco, pero en cambio si desplaza más de 2cm la PWM de dicho motor se reduce

bastante.

El caso contrario, si el robot está 2cm por debajo del rango inicial, la PWM del motor

izquierdo se reduce muy poco, pero si es superior a dos 2cm la PWM disminuye más

bruscamente.

Page 37: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

37

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

En caso de que el robot de con una curva a derechas, la PWM del motor derecho casi es

nula (TH=150), por el contrario en caso de un giro a la izquierda el motor izquierdo se

invierte con una PWM muy baja (TH=100).

Page 38: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

38

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

9.1ESQUEMA ELECTRICO DE SIMULACIÓN:

Page 39: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

39

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

9.2DIAGRAMA Y PROGRAMA PRINCIPAL.

Page 40: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

40

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Page 41: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

41

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Page 42: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

42

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Page 43: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

43

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

//*******************************Laberinto1 ***************************

//************************Directivas de preprocesado**********************

#include <16F876A.h>

#device adc=10 // Conversor Analógico Digital de 10 bit el PIC 16F876A //puede

trabajar con 8 o 10 bit de resolución.

#FUSES XT,NOWDT

#use delay(clock=4000000)

#include <LCD1.c> // Incluimos el driver LCD1.c que contiene las funciones //de control

del LCD.

#include <driver_gp2d12.c>

#BYTE TRISB = 0x86 // TRISB en 86h.

#BYTE portB = 0x06 // PORTB en 06h.

#BYTE TRISC = 0x87 // TRISC en 87h.

#BYTE portC = 0x07 // PORTC EN 07h.

#BYTE TRISA = 0x85 // TRISA en 85h.

#BYTE portA = 0x05 // PORTA en 05h.

#BIT RB3 = 0x06.3 // DEFINO LA PATILLA 3 DEL PORTB COMO RB3: //MOTOR.

#BIT RC0 = 0x07.0 // DEFINO LA PATILLA 0 DEL PORTC COMO RC0: //MOTOR.

#BIT RC1 = 0x07.1 // DEFINO LA PATILLA 1 DEL PORTC COMO RC1: //VSENS_A.

#BIT RC2 = 0x07.2 // DEFINO LA PATILLA 2 DEL PORTC COMO RC2: //VSENS_B.

#BIT RC3 = 0x07.3 // DEFINO LA PATILLA 3 DEL PORTC COMO RC3: //I2C.

#BIT RC4 = 0x07.4 // DEFINO LA PATILLA 4 DEL PORTC COMO RC4: //I2C.

#BIT RC5 = 0x07.5 // DEFINO LA PATILLA 5 DEL PORTC COMO RC5: //MOTOR.

#BIT RC6 = 0x07.6 // DEFINO LA PATILLA 6 DEL PORTC COMO RC6: //BL.

#BIT RC7 = 0x07.7 // DEFINO LA PATILLA 7 DEL PORTC COMO RC7: //CONTROL

MANDO PROGRAMA.

#BIT RA2 = 0x05.2 // DEFINO LA PATILLA 2 DEL PORTA COMO RA2: //INICIO.

#BIT RA4 = 0x05.4 // DEFINO LA PATILLA 4 DEL PORTA COMO RA4: //MOTOR.

#BIT RA5 = 0x05.5 // DEFINO LA PATILLA 5 DEL PORTA COMO RA5: //CONTROL

DE PROGRAMAS.

#define DisFron 12 // CREO UNA CONSTANTE LLAMADA DISFRON //PARA

HACER LA COMPARATIVA.

#define DisDech 12 // CREO UNA CONSTANTE LLAMADA DISDECH //PARA

HACER LA COMPARATIVA.

#define DisIzqu 12 // CREO UNA CONSTANTE LLAMADA DISIZQU //PARA

HACER LA COMPARATIVA.

//******************************Declaración de funciones*************

float Sensor_Derecho(void);

float Sensor_Izquierdo(void);

float Sensor_Frontal(void);

void Motor_Derecho(void);

void Motor_Derecho1(void);

void Motor_Derecho2(void);

Page 44: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

44

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

void Motor_Derecho3(void);

void Motor_Derecho4(void);

void Motor_Derecho5(void);

void Motor_Derecho6(void);

void Motor_Derecho7(void);

void Motor_Derecho8(void);

void Motor_Derecho9(void);

void Motor_Derecho10(void);

void Motor_Derecho11(void);

void Motor_Derecho12(void);

void Motor_Derecho13(void);

void Motor_Derecho14(void);

void Motor_Derecho15(void);

void Motor_Derecho16(void);

void Motor_Derecho17(void);

void Motor_Derecho18(void);

void Motor_Derecho19(void);

void Motor_Derecho_Parado(void);

void Motor_Izquierdo(void);

void Motor_Izquierdo1(void);

void Motor_Izquierdo2(void);

void Motor_Izquierdo3(void);

void Motor_Izquierdo4(void);

void Motor_Izquierdo5(void);

void Motor_Izquierdo6(void);

void Motor_Izquierdo7(void);

void Motor_Izquierdo8(void);

void Motor_Izquierdo9(void);

void Motor_Izquierdo10(void);

void Motor_Izquierdo11(void);

void Motor_Izquierdo12(void);

void Motor_Izquierdo13(void);

void Motor_Izquierdo14(void);

void Motor_Izquierdo15(void);

void Motor_Izquierdo16(void);

void Motor_Izquierdo17(void);

void Motor_Izquierdo18(void);

void Motor_Izquierdo19(void);

void Motor_Izquierdo_Atras(void);

int16 TH =65535;

//*********************PROGRAMA PRINCIPAL*********************

void main()

int giro= 0;

float sf=0;

float sd=0;

setup_adc(ADC_CLOCK_INTERNAL); // Fuente de reloj RC interno.

setup_adc_ports(0); // Seleccionamos el Puerto A como

//entradas Analógicas. Mirar //ADCON1.

TRISB = 0B00000000; // Defines Puerto B como SALIDA //de

datos.

Page 45: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

45

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

TRISC = 0B00000000; // Defines Puerto C como SALIDA //de

//datos.

TRISA = 0B00001111; // Defines Puerto A como //ENTRADA de

//datos.

portB = 0B00000000; // Reseteamos el Puerto B

RA2 = 0; //Reseteo de patillas individuales

RA4 = 0; //Reseteo de patillas individuales

RB3 = 0; //Reseteo de patillas individuales

RC0 = 0; //Reseteo de patillas individuales

RC5 = 0; //Reseteo de patillas individuales

RC6 = 0; //Reseteo de patillas individuales

RC7 = 0; //Reseteo de patillas individuales

lcd_init(); // Inicializamos el LCD.

setup_timer_2(T2_DIV_BY_16,249,1); // setup_timer(Prescaler,PR2,Postscaler)

// Configuración timer2. Si el Periodo = 16mS ---->

//T = 16000uS

// T = [PR2+1] x Tcm x Postscaler x Prescaler

// PR2 puede valer de 0 a 255.

// Tcm es el tiempo de Ciclo Maquina. Tcm =

//4/Fosc = 4/1.000.000 hz = 4uS.

// Prescaler puede valer 1,4,16

// Postscaler puede valer 1.

// 16000uS = [PR2+1] x 4 x 16 x 1

// PR2 =[T/(Tcm x Preescaler x Postscaler)]-1

// PR2 =[16000uS/(4uS x 16 x 1)]-1 = 249 (en C

//249)

setup_ccp2(CCP_PWM); // CCP2 en modo PWM (Salida por RC1) motor

//izquierdo.

setup_ccp1(CCP_PWM); // CCP1 en modo PWM (Salida por RC2) motor

//derecho.

set_pwm1_duty(TH);

set_pwm2_duty(TH);

TRISC = 0B00000000; // Defines Puerto C como SALIDA de datos.

do

sf=Sensor_Frontal();

sd=Sensor_Derecho();

lcd_gotoxy(1,2);

printf(lcd_putc, "Sd= %01.1f cm",sd); // Saltamos de línea y escribimos en el LCD

//"VOLTAJE =" y 4 dígitos de "P"

// en formato truncado de 4 dígitos con 3

//decimales y el carácter "V".

lcd_gotoxy(1,1); //colocamos en el primer carácter de la primera línea

printf(lcd_putc, "Sf= %01.1f cm",sf); //representamos por pantalla

while(RA2==1);

while (1) // Bucle infinito.

Page 46: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

46

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

sf=Sensor_Frontal();

sd=Sensor_Derecho();

lcd_gotoxy(1,2);

printf(lcd_putc, "Sd= %01.1f cm",sd); // Saltamos de línea y escribimos en el LCD

//"VOLTAJE =" y 4 dígitos de "P"

// en formato truncado de 4 dígitos con 3 decimales y

//el carácter "V".

lcd_gotoxy(1,1); //colocamos en el primer carácter de la primera línea

printf(lcd_putc, "Sf= %01.1f cm",sf); // Saltamos de línea y escribimos en el LCD

//"VOLTAJE =" y 4 dígitos de "P"

// en formato truncado de 4 dígitos con 3 decimales y

// carácter "V".

if(giro==1||sf<20) //programa de giros a la izquierda.

giro=1;

Motor_Izquierdo_Atras();

Motor_Derecho();

if(sf>=8)

giro=0;

else

if(sd>15.5&&sd<=17)

Motor_Derecho();

Motor_Izquierdo();

//***************************control motor derecho*************************************

if(sd>17&&sd<=17.3) //controles en recta

Motor_Derecho1();

Motor_Izquierdo();

if(sd>17.3&&sd<=17.6)

Motor_Derecho2();

Motor_Izquierdo();

if(sd>17.6&&sd<=17.9)

Motor_Derecho3();

Motor_Izquierdo();

if(sd>17.9&&sd<=18.2)

Motor_Derecho4();

Motor_Izquierdo();

if(sd>18.2&&sd<=18.5) //controles en recta

Motor_Derecho5();

Motor_Izquierdo();

if(sd>18.5&&sd<=18.8)

Motor_Derecho6();

Page 47: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

47

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Motor_Izquierdo();

if(sd>18.8&&sd<=19.1)

Motor_Derecho7();

Motor_Izquierdo();

if(sd>19.1&&sd<=19.4)

Motor_Derecho8();

Motor_Izquierdo();

if(sd>19.4&&sd<=19.7)

Motor_Derecho9();

Motor_Izquierdo();

if(sd>19.7&&sd<=20)

Motor_Derecho10();

Motor_Izquierdo();

if(sd>20&&sd<=20.3)

Motor_Derecho11();

Motor_Izquierdo();

if(sd>20.3&&sd<=20.6)

Motor_Derecho12();

Motor_Izquierdo();

if(sd>20.6&&sd<=20.9)

Motor_Derecho13();

Motor_Izquierdo();

/* if(sd>20.9&&sd<=21.2)

Motor_Derecho14();

Motor_Izquierdo();

if(sd>21.2&&sd<=21.5)

Motor_Derecho15();

Motor_Izquierdo();

if(sd>21.5&&sd<=22.5)

Motor_Derecho16();

Motor_Izquierdo();

if(sd>22.5&&sd<=23)

Motor_Derecho17();

Motor_Izquierdo();

if(sd>23&&sd<=24.5)

Motor_Derecho18();

Motor_Izquierdo();

if(sd>24.5&&sd<=25)

Motor_Derecho19();

Motor_Izquierdo();

*/

if(sd>25) //cuando se queda sin pared, giros a la derecha

Motor_Derecho_Parado();

Motor_Izquierdo();

Page 48: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

48

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

//***************************control motor izq************************************

if(sd<15.5&&sd>=15.2) //controles en recta

Motor_Izquierdo1();

Motor_Derecho();

if(sd<15.2&&sd>=14.9)

Motor_Izquierdo2();

Motor_Derecho();

if(sd<14.9&&sd>=14.6)

Motor_Izquierdo3();

Motor_Derecho();

if(sd<14.6&&sd>=14)

Motor_Izquierdo4();

Motor_Derecho();

if(sd<14&&sd>=13.7)

Motor_Izquierdo5();

Motor_Derecho();

if(sd<13.7&&sd>=13.4)

Motor_Izquierdo6();

Motor_Derecho();

if(sd<13.4&&sd>=13.1)

Motor_Izquierdo7();

Motor_Derecho();

if(sd<13.1&&sd>=12.8)

Motor_Izquierdo8();

Motor_Derecho();

if(sd<12.8&&sd>=12.5)

Motor_Izquierdo9();

Motor_Derecho();

if(sd<12.5&&sd>=12.2)

Motor_Izquierdo10();

Motor_Derecho();

if(sd<12.2&&sd>=11.9)

Motor_Izquierdo11();

Motor_Derecho();

if(sd<11.9&&sd>=11.6)

Motor_Izquierdo12();

Motor_Derecho();

if(sd<11.6&&sd>=11)

Motor_Izquierdo13();

Motor_Derecho();

if(sd<11&&sd>=10.7)

Page 49: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

49

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Motor_Izquierdo14();

Motor_Derecho();

if(sd<10.7&&sd>=10.4)

Motor_Izquierdo15();

Motor_Derecho();

if(sd<10.4&&sd>=9.6)

Motor_Izquierdo16();

Motor_Derecho();

if(sd<9.6&&sd>=9)

Motor_Izquierdo17();

Motor_Derecho();

if(sd<9&&sd>=8.5)

Motor_Izquierdo18();

Motor_Derecho();

if(sd<8.5&&sd>=8)

Motor_Izquierdo19();

Motor_Derecho();

//******************************* Función Sensor_Derecho *******************************

float Sensor_Derecho()

int16 q; // variable de lectura de puerto

float dech, //variable de resultado de la conversión de tensión a centímetros

v; // variable donde guardamos la tensión recogida de la conversión

//analógica

set_adc_channel(3); // Habilitación canal 3 "AN3" sensor derecho

delay_us(20); // Retardo de 20uS necesaria para respetar el tiempo de Adquisición

//Tad.

q = read_adc(); // Lectura canal 0 "AN3"

v = (5.0 * q) / 1024.0; // conversión a tensión del código digital "q".

dech=Gp2d12_v_d(v); //driver del Gp2d12 para conversión de voltios a cemtimetos,

//guardado en variable dech.

return(dech); // el resultado que devuelvo llamada.

//******************************* Función Sensor_Izquierdo ******************************

float Sensor_Izquierdo()

int16 q; // variable de lectura de puerto

float izqu, // variable de resultado de la conversión de tensión a centímetros

v; // variable donde guardamos la tensión recogida de la conversión

//analógica

set_adc_channel(0); // Habilitación canal 0 "AN0" sensor izquierdo

delay_us(20); // Retardo de 20uS necesaria para respetar el tiempo de Adquisición

//Tad.

q = read_adc(); // Lectura canal 0 "AN0"

Page 50: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

50

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

v = (5.0 * q) / 1024.0; // conversión a tensión del código digital "q".

izqu=Gp2d12_v_d(v); //driver del Gp2d12 para conversión de voltios a cemtimetos,

//guardado en variable izqu.

return(izqu); // el resultado que devuelvo llamada.

//******************************* Función Sensor_Frontal***************************

float Sensor_Frontal()

int16 q; // variable de lectura de puerto

float fron, // variable de resultado de la conversión de tensión a centímetros

v; // variable donde guardamos la tensión recogida de la conversión

//analógica

set_adc_channel(1); // Habilitación canal 1 "AN1" sensor derecho

delay_us(20); // Retardo de 20uS necesaria para respetar el tiempo de Adquisición

//Tad.

q = read_adc(); // Lectura canal 0 "AN1"

v = (5.0 * q) / 1024.0; // conversión a tensión del código digital "q".

fron=Gp2d12_v_d(v); //driver del Gp2d12 para conversión de voltios a cemtimetos,

//guardado en variable fron.

return(fron); // el resultado que devuelvo llamada.

//*********************************************************************************

//*********************************CONTROL DEMOTORES***************************

//***********************************************************************************

//*********************************Controles del Motor Derecho**************************

//***********************************Función Motor_Derecho****************************

void Motor_Derecho()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 1000;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_ Derecho 1**************************

void Motor_Derecho1()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 990;

Page 51: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

51

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL

//MOTOR DERECHO(ojo tengo que cambiar los cables de la

//placa)

//***********************************Función Motor_ Derecho 2*************************

void Motor_Derecho2()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 970;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho 3**************************

void Motor_Derecho3()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 950;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_ Derecho 4*************************

void Motor_Derecho4()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 930;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho5*************************

void Motor_Derecho5()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 910;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho6***********************

void Motor_Derecho6()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 890;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

Page 52: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

52

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

//***********************************Función Motor_ Derecho 7********************

void Motor_Derecho7()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 800;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor8*******************************

void Motor_Derecho8()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 770;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO(ojo tengo que cambiar los cables de la placa)

//***********************************Función Motor9*******************************

void Motor_Derecho9()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 740;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho10************************

void Motor_Derecho10()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 710;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho11**************************

void Motor_Derecho11()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 680;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

Page 53: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

53

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

//***********************************Función Motor_Derecho12***************************

void Motor_Derecho12()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 650;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho13***************************

void Motor_Derecho13()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 620;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho14***************************

void Motor_Derecho14()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 590;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho15***************************

void Motor_Derecho15()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 500;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho16**************************

void Motor_Derecho16()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 450;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

Page 54: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

54

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

//***********************************Función Motor_Derecho17***************************

void Motor_Derecho17()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 400;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho18*************************

void Motor_Derecho18()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 350;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//***********************************Función Motor_Derecho19*************************

void Motor_Derecho19()

RA4=0; //MOTOR DERECHO HACIA ATRAS

RB3=1;

TH = 300;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO

//

//***********************************FuncionMotor_Derecho_Parado***********************

void Motor_Derecho_Parado()

RA4=0; //MOTOR DERECHO HACIA DELANTE

RB3=1;

TH = 150;

set_pwm2_duty(TH); //ATACA A LA PATILLA RC1, Y CONTROLAMOS EL MOTOR

//DERECHO(ojo tengo que cambiar los cables de la placa)

//*********************************Controles del Motor

Izquierdo***************************

//*********************************Función Motor_Izquierdo*****************************

void Motor_Izquierdo()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 1000;

Page 55: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

55

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo_Parado*********************

void Motor_Izquierdo1()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 990;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo2***********************

void Motor_Izquierdo2()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 970;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo3***************************

void Motor_Izquierdo3()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 950;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo4 **********************

void Motor_Izquierdo4()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 930;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo3************************

void Motor_Izquierdo5()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 910;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

Page 56: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

56

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

//*********************************Función Motor_Izquierdo6**********************

void Motor_Izquierdo6()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 890;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo7**************************

void Motor_Izquierdo7()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 800;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo8***************************

void Motor_Izquierdo8()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 770;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo9***************************

void Motor_Izquierdo9()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 740;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo10*********************

void Motor_Izquierdo10()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 710;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo11************************

void Motor_Izquierdo11()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

Page 57: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

57

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

TH = 680;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo12*******************

void Motor_Izquierdo12()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 650;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo13*********************

void Motor_Izquierdo13()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 620;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo14************************

void Motor_Izquierdo14()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 590;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo15*********************

void Motor_Izquierdo15()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 500;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo16**************************

void Motor_Izquierdo16()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 450;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

Page 58: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

58

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

//*********************************Función Motor_Izquierdo17************************

void Motor_Izquierdo17()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 400;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo18***********************

void Motor_Izquierdo18()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 350;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo19**************************

void Motor_Izquierdo19()

RC5=1; //MOTOR HACIA DELANTE

RC0=0;

TH = 300;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

//*********************************Función Motor_Izquierdo_Atras********************

void Motor_Izquierdo_Atras()

RC5=0; //MOTOR HACIA ATRAS

RC0=1;

TH = 200;

set_pwm1_duty(TH); //ATACA A LA PATILLA RC2, Y CONTROLAMOS EL MOTOR

//IZQUIERDO

Page 59: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

59

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

10 FABRICACIÓN DE PLACAS.

El proceso que se ha seguido a la hora de fabricar las placas ha sido el siguiente:

1. Estudio del esquema eléctrico.

2. Reconocimiento de los componentes.

3. Alineación de los componentes en el PCB.

4. Tirar pistas entre los componentes, en función del esquema eléctrico.

5. Engordar pistas y pacs.

6. Obtención de las coordenadas, necesarias para el CNC.

7. Taladrado de los agujeros en el CNC.

8. Aplicar positive en las placas.

9. Meter las placas en el horno.

10. Impresión de la cara de pistas, en papel cebolla.

11. Grabado de pistas en las placas, (mediante la insolación).

12. Revelado con sosa.

13. Comprobar las uniones de las pistas y corregir con un rotulador indeleble.

14. Eliminación del cobre con acido.

15. Volver a comprobar las uniones entres pistas.

16. Colocar y soldar los componentes.

Page 60: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

60

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

10.1 FABRICACIÓN PLACAS CARA BOTTOM.

Page 61: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

61

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

10.2 FABRICACIÓN CARA TOP.

Page 62: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

62

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

10.3 FABRICACIÓN CARA COMPONENTES.

Page 63: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

63

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

11 DISEÑO MECÁNICO.

El diseño mecánico es el resultado de varias pruebas, al principio el robot se colocó

sobre una superficie redonda, quedando las ruedas fuera de la superficie. Los sensores

se atornillaron con unos mástiles a la misma superficie, pero al quedar dentro de esta el

robot chocaba contra las paredes y no podía girar en curvas cerradas, por lo que se

tuvieron que hacer unas ampliaciones a la superficie para poder trabajar con el. Todo

esto provocaba que el robot tuviera demasiados salientes; sensores, ruedas, LCD, por lo

que el robot podría chocarse contra cualquier obstáculo y quedar bloqueado.

Para el diseño final, se tuvieron en cuenta los problemas anteriores por lo que se decidió

hacer una superficie redonda, que con unas ventanas fresadas para poder introducir las

ruedas. Como el lugar de posicionamiento no podía ser fijo, se fabrico la superficie con

una media luna con tiras verticales, a modo de carril, por la cual se puedan desplazar

los sensores.

Page 64: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

64

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

12 LISTA DE COMPONENTES.

Factura de materiales de potencia y control

Titulo : potencia y control

Autor : Raúl Antona Fresno

Revisión :

Diseño Creado : martes, 11 de noviembre de 2008

Design Last Modified : lunes, 16 de marzo de 2009

Total componentes : 68

18 Resistors

Cantidad Referencias Valor Precio Coste

9 R1M, R2, R4-R6, R6M, R8, R10, R12 10k 0.05 0.45

1 R2M 100 0.05 0.05

6 R3, R5, R7, R9, R11, R13 220 0.05 0.3

2 R3M, R4M 4.7k 0.05 0.1

5 Capacitors

Cantidad Referencias Valor Precio Coste

2 C1M, C2M 15pF 0.05 0.1

3 C3M, C10, C11 100nF 0.05 0.15

8 Integrated Circuits

Cantidad Referencias Valor Precio Coste

6 U3-U8 OPTOCOUPLER-NPN 0.35 2.1

1 U9 L298 3.5 3.5

1 U10M PIC16F876_JOAN 4.5 4.5

4 Transistors

Cantidad Referencias Valor Precio Coste

4 Q1-Q4 BD139_JOAN 0.35 1.4

8 Diodes

Cantidad Referencias Valor Precio Coste

8 D5-D9, D11, D12, D18 1N4007_JOAN 0.2 1.6

25 Miscellaneous

Page 65: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

65

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Cantidad Referencias Valor Precio Coste

1 ANTENA

2 INICIO, RESET PULSADOR_JOAN 0.4 0.8

3 J1M, J3, J3M CONN-SIL10 0.30 0.9

1 J5M CONN-SIL10_JOAN 0.30 0.3

6 J6M-J11M CONN-SIL4 0.15 0.9

3 J12M, JUMPER1, JUMPER2 CONN_SIL3 0.15 0.45

1 J13M CONN-SIL3 0.15 0.15

1 JP21 BORNIER 2 0.3 0.3

1 LCD1M LCD-16 X 2_JOAN 12 12

2 MASA4, MASA_M BORNIER 1 0.15 0.30

2 MOTOR DECH, MOTOR IZQ 12V 10 20

1 RF1M CEBEK-C-0504_JOAN 7 7

1 X1M CRYSTAL 0.45 0.45

2 Placa de fibra de vidrio Potencia, control 6 12

6 Separadores metálicos Macho-Hembra Métrica 3 0.5 3

6 Tuercas Métrica 3 0.1 0.6

6 Tornillos Métrica 3 0.4 2.4

1 Rl Rueda loca 1.6 1.6

2 Rg Ruedas gomas espuma 2.5 5

1 Soporte de plástico 15x15 1.2 1.2

Total placa de potencia y control 83.6

Page 66: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

66

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

Bill Of Materials For Fabricacion memoria.DSN

Design Title : Fuente de alimentación+trasmisión de datos+sensores

Author : Raúl Antona Fresno

Revision :

Design Created : martes, 11 de noviembre de 2008

Design Last Modified : lunes, 16 de marzo de 2009

Total Parts In Design : 36

2 Resistors

Cantidad Referencias Valor Precio Coste

1 R1 220 0.05 0.05

1 R38 240 0.05 0.05

13 Capacitors

Cantidad Referencias Valor Precio Coste

1 C1 2200uF 0.5 0.5

3 C2, C4, C9 100nF 0.05 0.15

1 C3 220uF 0.2 0.2

4 C5-C8 1uF 0.1 0.4

3

C12, C14,

C15

10uF 0.15 0.45

1 C13 10ufF 0.15 0.15

2 Integrated Circuits

Cantidad Referencias Valor Precio Coste

1 U1 LM350K_JOAN 1 1

1 U2 MAX232 1.5 1.5

4 Diodes

Cantidad Referencias Valor Precio Coste

3 D1, D2, D4 1N4007_JOAN 0.2 0.6

1 D3 LED-RED_JOAN 0.3 0.3

15 Miscellaneous

Cantidad Referencias Valor Precio Coste

1 BAT1 9V 12 12

3

INFR1-

INFR3

GP2D12_JOAN 16 48

1 J1A CONN-SIL10 0.5 0.5

Page 67: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

67

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

1 J5C CONN-SIL10_JOAN 0.5 0.5

1 J11 CONN-D9M 2.5 2.5

1 JP1 BORNIER 2_JOAN 0.2 0.2

1 MASA3 BORNIER 1 0.2 0.2

2

MASA_C,

ON-OFF

0.1 0.1

1 RV1 1k 0.2 0.2

3

ULTR1-

ULTR3

SRF08_JOAN 35 105

2 Placas 70x75 6 12

Total 186.45

TOTAL MATERIAL DE

COMPONENTES 270.05€

lunes, 16 de marzo de 2009 1:06:19

12.1 DESARROLLO DEL PROYECTO.

Coste 20 € / Hora.

10 Horas de desarrollo Hardware.

.................................................................. 200 €

30 Horas de desarrollo Software.

................................................................... 600 €

10 Horas de montaje del Prototipo.

................................................................ 200 €

10 Horas de realización de la Memoria.

........................................................ 200 €

5 Horas de búsqueda de materiales.

.............................................................. 100 €

10 Horas de Pruebas.

...................................................................................... 200 €

______

1500 €

TOTAL PROYECTO 1770.05€

Page 68: Faunos Laberinto (Robot laberinto) RAÚL ANTONA FRESNO ...pedrojoanmiro.webcindario.com/Desarrollo_de... · 6.2 programa y diagrama del driver gp2d12. 16 6.3 programa y diagrama de

68

Robot laberinto Raúl Antona Fresno PE21

Ciclo Superior de Desarrollo de Productos Electrónicos

I.E.S. Joan miro

Promoción 2007-2009

13 REFERENCIAS.

[1] Libros: Título: Microcontroladores PIC16F84. Desarrollo de proyectos (2ª

Edición)

Autores: Enrique Palacios, Fernando Remiro, Lucas J. López.

Editorial: Ra_Ma

Título: Compilador C CCS y simulador proteus para

MICROCONTROLADOES PIC.

AUTOR: Eduardo García Breijo.

Editorial: Marcombo

Título: Tecnología de circuitos impresos

Autor: Claudio Fernández González.

Editorial: UAH

[2] Empresa suministradora de materiales:

Diotronic S.A. C/Juan Bravo 58. Pagina Web: www.ditronic.com

14 ANEXOS.

CaracterísticasdelL298: http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXrqqxz.pdf

LM350K: http://www.datasheetcatalog.org/datasheets/480/49869_DS.pdf

Sensores GP2D12: http://pdf1.alldatasheet.com/datasheet-pdf/view/84019/SHARP/GP2D12.html

Pic 16f876A: http://www.datasheetcatalog.org/datasheets2/44/4474925_1.pdf

Max 232: http://www.datasheetcatalog.org/datasheet/texasinstruments/max232.pdf