velocista

download velocista

of 87

Transcript of velocista

  • 8/14/2019 velocista

    1/87

    PROYECTO:

    Velocista y coche teledirigido

    Departamento de Electricidad y Electrnica

    Ciclo Formativo de Grado Superior:

    Desarrollo de Productos Electrnicos

    Alumno: Daniel Garca Bravo

    Profesores: Pedro Alonso Sanz

    Juan Dongil Garca

    Alfonso Garca Gallego

    Instituto: I.E.S. Joan Mir

    Localidad: San Sebastin de los Reyes

    Curso: 2008 / 2009

  • 8/14/2019 velocista

    2/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    2

    ndice de contenido:

    1.- Introduccin 5

    2.- Diagrama en bloques del robot 7

    3.- Esquema elctrico del robot 8

    4.- Anlisis de los Bloques 9

    4.1.- Placa de alimentacin-adaptador de seales PC-UC 7 9

    4.1.1.- Fuente de alimentacin 9

    4.1.1.1.- Esquema elctrico de la fuente de alimentacin 10

    4.1.2.- Adaptador de seales PC-UC 10

    4.1.2.1.- Esquema elctrico del adaptador de seales PC-UC 11

    4.2.- Placa de control 124.2.1.- Esquema elctrico de la placa de control 13

    4.3.- Placa de potencia 14

    4.3.1.- Esquema elctrico de la placa de potencia 17

    4.4.- Placa de sensores 18

    4.4.1.- Esquema elctrico de la placa de sensores 19

    4.5.- Mando 20

    4.5.1.- Esquema elctrico del mando 21

    5.- Esquema elctrico de simulacin conProteus 22

    5.1.- Simulacin del robot velocista 22

    5.2.- Simulacin del robot teledirigido 23

    6.- Programas 24

    6.1.- Programas de prueba 24

    6.1.2.- Programas de prueba de los leds 24

    6.1.2.1.- Diagrama de flujo 246.1.2.2.- Programa 25

    6.1.3.- Programas de prueba de los sensores 26

    6.1.3.1.- Programas de prueba de los sensores OP1 Y OP2 26

    6.1.3.1.1.- Diagrama de flujo 26

    6.1.3.1.2.- Programa 27

    6.1.3.2.- Programas de prueba de los sensores Op3 y Op4 29

    6.1.3.2.1.- Diagrama de flujo 29

    6.1.3.2.2.- Programa 29

    6.1.3.3.- Programas de prueba de los sensores Op5 y Op6 31

    6.1.3.3.1.- Diagrama de flujo 316.1.3.3.2.- Programa 31

  • 8/14/2019 velocista

    3/87

  • 8/14/2019 velocista

    4/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    4

    7.4.3.- Componentes 75

    7.4.4.- Cara de componentes y de pistas top copper 75

    7.4.5.- Cara de pistas bottom copper 76

    7. 5.- Fabricacin del mando a distancia 77

    7.5.1.- Esquema elctrico 777.5.2.- Medidas 77

    7.5.3.- Componentes 78

    7.5.4.- Cara de componentes y de pistas top copper 78

    7.5.5.- Cara de pistas bottom copper 79

    8.- Carrocera 80

    9.- Lista de Componentes y coste econmico 81

    10.- Coste econmico total 85

    11.- Referencias 86

    12.- Anexos tcnicos 87

  • 8/14/2019 velocista

    5/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    5

    1.-Introduccin

    El proyecto consiste en disear y fabricar un robot velocista, de tal forma que sea

    capaz de seguir una lnea negra lo ms rpidamente sin salirse de ella, y adems que

    tenga la posibilidad de ser controlado con un mando a distancia, por medio de va

    radiofrecuencia.

    El robot consta de una placa con la fuente de alimentacin y el adaptador de seales

    PC-UP, de la placa de control, la placa que controla los motores y la placa de sensores.

    Todas las placas, a excepcin de esta ltima, tienen las mismas medidas: 75 x 70.

    Se busca que tanto la fuente de alimentacin y el adaptador de seales PC-UP y la

    placa de potencia, sean comunes para todos los proyectos, haciendo que, en caso de que

    una placa se avere, sea posible sustiturila por otra de otro robot, sin tener que hacer una

    nueva. Las placas de control, donde se sita el PIC, y la placa de sensores, son

    diferentes en cada proyecto.

    El robot se controla por un PIC16F876A, en el cual se ubica el programa que hace que

    el robot funcione como un velocista. Por medio del cambio de un jumper,el robot pasa

    a funcionar como coche teledirigido.

    El robot consta de dos motores que son controlados por la placa de potencia, que a su

    vez son dependientes de la placa de control, dnde est situado el PIC. Mediante una

    seal de PWM hacemos que a nuestro robot le sea posible ir ms rpido o ms lento,segn las circunstancias que deseemos. Esto lo hacemos segn la velocidad que

    imprimamos a los dos motores. Si la velocidad es igual en ambos motores, el robot ir

    recto, si un motor gira ms rpido que otro, har que nuestro robot gire. Tambinconseguiremos determinar la direccin del coche, hacia delante o hacia atrs.

    Para poder hacer que nuestro robot sea velocista le instalaremos 8 sensores CNY70,

    para localizar la lnea o evitarla, segn deseemos con nuestro programa. Tambin

    corregiremos la posicin, por medio de la variacin de velocidad en los motores.

  • 8/14/2019 velocista

    6/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    6

    Para hacer que nuestro robot sea teledirigido, tenemos que crear una comunicacin

    entre el PIC y el mando, con el que controlamos nuestro robot. Dado que lo hacemos

    va radiofrecuencia, le instalamos un receptor y un mando a distancia que ser elemisor. Esto lo conseguimos por medio de dos mdulos: un emisor CEBEK C-0503 y

    un receptor CEBEC C-0504. Ambos trabajan en modulacin AM con una frecuencia

    portadora de 433,92 MHz que poseen un ancho de banda de 4 KHz.

    El lenguaje de programacin para los programas del robot se realiza mediante el

    lenguaje C.

    El software, utilizado para el desarrollo y fabricacin de nuestro robot, ha sido el

    programaProteus,que nos permite simular elsoftwarey el hardwareal mismo tiempo.

    A su vez nos es posible trabajar con C y desarrollar las placas de nuestro robot, con la

    posibilidad de realizar tambin la carrocera.

    Para cargar los programas desde el ordenador al PIC, se ha utilizado el grabador

    PICdownloader

    En todas las placas que se realizan, y a modo de facilitar la toma de medidas, se pone

    un conector de masa, este nos ayuda en la toma de medidas, colocando la punta de masa

    de nuestro, por ejemplo, polmetro; y la otra punta, para tomar medidas, y as poder

    trabajar solo con una mano.

  • 8/14/2019 velocista

    7/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    7

    2.- Diagrama en bloques del robot

  • 8/14/2019 velocista

    8/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    8

    3.- Esquema elctrico del robot

  • 8/14/2019 velocista

    9/87

  • 8/14/2019 velocista

    10/87

  • 8/14/2019 velocista

    11/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    11

    4.1.2.1.- Esquema elctrico del adaptador de seales PC-UC

    VP: 9 voltios

    VDD3: 5 voltios

    VCC: alimentacin del integrado MAX232

    RC61: comunicacin PICPI

    RC71: comunicacin PC - PIC

  • 8/14/2019 velocista

    12/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    12

    4.2.- Placa de control

    En esta placa est situado el microcontrolador PIC16F876A, que es el encargado del

    control del robot por medio de los programas que realicemos y que le carguemos.

    En nuestra placa de control el componente principal es el PIC. Este nos sirve paraleer los datos que lleguen de los sensores por el conector J2 y, dependiendo de nuestro

    programa, actuar sobre los motores en el sentido de giro y su control de velocidad.

    Nuestro PIC trabaja a 1Mhz, esto se consigue mediante el cristal de cuarzo X1, que

    genera la frecuencia de trabajo actuando conjuntamente con los condensadores C12 y

    C13, variando la capacidad de estos ltimos consigue modificar la frecuencia de trabajo

    del PIC.

    Las resistencias R18 y R19, el condensador C14 y el pulsador de RESET, hacen que

    el PIC se resetee y empiece con el programa desde el principio.

    ElJUMPER3nos sirve para cargar el programa en el PIC a travs de un PC. Si se le

    cambia de posicin nos hace recibir los datos del receptor de radio frecuencia. En la

    posicin del jumper en RC7(BL) nos permite cargar programas y en la posicin de

    RC7(RF) hace que el PIC obedezca a las instrucciones que lleguen de la tarjeta de

    radiofrecuencia.

    El JUMPER4 nos ayuda a elegir el modo de funcionamiento, de acuerdo con la

    eleccin: si queremos que nuestro robot se comporte como un velocista o como un

    coche teledirigido. Este jumper posee un diodo led, RA; con su correspondiente

    resistencia limitadora de corriente, R17; que nos indica el modo de funcionamiento de

    nuestro robot. De tal modo que si el diodo se enciende en nuestro robot, es un coche

    teledirigido y si el ledest apagado quiere decir que nuestro robot funciona como un

    velocista.

    En esta placa hay dos diodos leds: D13 y D15, que sirven para indicar la direccin

    del coche en modo coche teledirigido, aunque dependiendo de lo que queremos hacer

    podremos poner otras utilidades a los leds, como sealizar cuando lea lneas negras en

    modo velocista. Estos dos diodos van acompaados por sus respectivas resistenciaslimitadoras de corriente: R14 y R15.

    Tambin disponemos de un botn de inicio. Su funcin se basa en que, una vezsituado el robot en modo velocista correctamente sobre la pista, pulsemos dicho botn y

    el robot empiece a funcionar. Pero tambin puede tener otras funciones, dependiendo

    del programa cargado en el PIC.

    Disponemos tambin de varios conectoresBUS I2C:J4, J5, J6 y J7. Las patillas del

    PIC: RC3 y RC4, son las que utiliza para controlarlo. A la salida de estas dos patillas

    del PIC hay dos resistencias de 4.7K necesarias para el funcionamiento del BUS I2C.

    El receptor de datos AM, CEBEK-C-0504, es un circuito hbrido necesario para

    poder controlar el robot a travs de un mando a distancia. Es el encargado de recibir, va

    radiofrecuencia, los datos que llegan del mando a distancia.

  • 8/14/2019 velocista

    13/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    13

    El conector J1 es el que trae de la placa, de la fuente de alimentacin, los 5 voltios,

    la masa y las dos conexiones necesarias para poder comunicar el PIC con un PC.

    El conector J2 es el encargado de comunicar los sensores con el PIC y tambin lleva

    la alimentacin de 5 voltios y su masa.

    Y el conector J3 es el que comunica el PIC con la placa de potencia, que hace que el

    PIC controle el giro y la velocidad de los motores, este conector lleva su masa y sus 5

    voltios.

    4.2.1.- Esquema elctrico de la placa de control

    VDD: 5 voltios

    RA0: conexin sensor - PICRA1: conexin sensor - PIC

    RA2: conexin sensor - PIC

    RA3: conexin sensor - PIC

    RA4: conexin sensor - PIC

    RA5: conexin sensor - PIC

    RB0:jumper modo de funcionamiento

    RB1: inicio

    RB2: conexin PIC - diodoledD15

    RB3: conexin PIC - diodoledD13

    RB4: conexin PIC - optoacoplador U3RB5: conexin PIC - optoacoplador U4

    RB6: conexin PIC - optoacoplador U5

    RB7: conexin PIC - optoacoplador U6

    RC0: conexin sensor - PIC

    RC1: conexin PIC - optoacoplador U8

    RC2: conexin PIC - optoacoplador U7

    RC3: conexinBUS I2C

    RC5: conexin sensor - PIC

    RC4: conexinBUS I2C

    RC61: comunicacin PIC - PI

    RC7 (BL): comunicacin PC - PIC

    RC7 (RF): comunicacin PIC - Cebek

    Antena: receptor de los datos emitidos

    por el mando.

  • 8/14/2019 velocista

    14/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    14

    4.3.- Placa de potencia

    Esta placa se encarga de hacer posible el control de velocidad de los motores y de su

    correspondiente sentido de giro.

    Con el integrado L298 controlamos el sentido de giro y la velocidad de los motores.Las patillas 5 y 7, IN1 e IN2, se ocupan del sentido de giro del motor izquierdo. Los

    pines de entrada 10 y 12, IN3 e IN4, se encargan de controlar el giro del motor derecho.

    Los terminales 1 y 15, SENSA y SENSB, son las masas de la patilla 9. Las patillas 6 y

    11, ENA y ENB, son activaciones para las salidas 2, 3, 13 y 14, OUT1, OUT2, OUT3 y

    OUT4; la patilla 9 VCC, es la alimentacin del integrado; la patilla 4, VS, es la

    alimentacin de los motores, y la patilla 8, es la masa.

    Los optoacopladores U3, U4, U5, U6, U7 y U8, sirven para separar la parte de

    potencia de la parte de control. Lo que separa la potencia de las seales es un haz de luz

    del diodo interno de los optoacopladores. Haciendo que en caso de avera en la parte de

    potencia no afecte a las partes encargadas de las seales.

    Por medio de los optoacopladores U3, U4, U5 e U6, controlamos el sentido de giro

    de los motores, U3 y U4 para el motor izquierdo; U5 y U6 para el control del motor

    derecho.

    Para el control de velocidad utilizamos los transistores Q1, Q2, Q3 y Q4, y los

    optoacopladores U7 y U8. Los transistores solo funcionan en corte y saturacin. U7, Q1

    y Q4 controlan el motor izquierdo y U8, Q2 y Q3 controlan el motor derecho.

    Los motores son de corriente continua. Cada motor se protege por medio de cuatro

    diodos. Cuando los motores se paren, dichos diodos alivian la fuerza

    contraelectromotriz que puedan generar.

    Los condensadores C10 y C11, que estn situados en cada extremo de los motores,

    sirven para filtrar posibles ruidos que los motores produzcan. Son filtros paso bajo para

    rechazar el ruido. El filtro atena los ruidos generados por el motor a frecuencias

    superiores a 50 Hz.

    Para atacar a los transistores Q1, Q2, Q3 y Q4, dado que no sabemos con seguridad

    cual es la tensin necesaria para hacer que estos trabajen en corte o saturacin, con los

    JUMPER1 y JUMPER2, llevaremos 5 9 voltios. Tras realizar las pruebas defuncionamiento, los jumpers tienen que estar a 5 voltios para que el par Darlington

    funcione correctamente.

    Los motores giran siempre y cuando se haya activado las entradas y salidas del

    L298, y que exista una diferencia de potencial en los extremos de estos, suficiente para

    que giren. En caso de que las tensiones en los extremos del motor sean iguales este no

    gira.

    Se recomienda poner los chasis de los motores a masa para filtrar los ruidos que

    generan los motores en el espectro de radiofrecuencia, creando una Jaula de Faraday.

    As evitaremos que se produzcan ruidos en los cables o en las pistas prximas denuestros circuitos.

  • 8/14/2019 velocista

    15/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    15

    Para controlar la velocidad de los motores lo hacemos con la PWM. La PWM

    consiste en hacer que el ciclo de trabajo de una seal cuadrada sea mas o menos ancho,

    podemos hacer que el ciclo de trabajo sea de un 90% para ir a mucha velocidad o de un

    5% para ir lentos.

    Para explicar el control de giro de los motores, nos ayudaremos del esquemainferior. Estamos controlando el sentido de giro del motor izquierdo por medio de los

    optoacopladores U3 y U4.

    A GIRO1 le llevamos un 1 lgico por medio del PIC, as hacemos que el diodo del

    optoacoplador no luzca, el fototransistor trabaja en corte. Como el fototransistor est en

    corte, la tensin que proviene de R2 no pasa del colector al emisor para ir a masa, y por

    lo tanto va hacia el terminal de entrada del L298, que se introduce un 1 lgico, lo que

    supone que por la patilla OUT1 salgan 9 voltios.

    Por GIRO2, introducimos un 0 lgico, el diodo emisor de infrarrojos luce y ataca la

    base del fototransistor de U4, este empieza a trabajar en saturacin y lleva la tensinVDD, la que procede de R4, en vez de a la patilla 7 del L298, la lleva a masa por medio

    del transistor interno del integrado U4. Hemos llevado un 0 lgico a la patilla 7 del

    L298.

    Ya tenemos un 1 en la patilla 5 y un 0 en la 7 del L298, esto hace que en la patilla de

    salida 2 haya 9 voltios y en la patilla de salida 3 haya 0. Lo cual significa que, en los

    extremos del motor, haya una diferencia de potencial y el motor gira a un lado.

    El control de giro del motor derecho tiene la misma filosofa que el control de giro

    del motor izquierdo, hacemos que los transistores de los integrados U5 y U6 trabajen en

    corte y saturacin para llevar un 0 1 lgico a las patillas correspondientes del L298.

    Demostracin del giro del motor.

    http://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/Giromotor.DSNhttp://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/Giromotor.DSN
  • 8/14/2019 velocista

    16/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    16

    Para controlar la velocidad de los motores, actuaremos sobre las patillas 1 y 15 del

    integrado L298.

    En el esquema inferior se explica el control de velocidad. La entrada Velocidad es la

    conexin que lleva la PWM generada por el PIC. Cuando por Velocidad hay un nivel

    bajo de la seal de PWM; el diodo emisor del optoacoplador U8; lucir, atacando labase del fototransistor, este se satura y hace que la tensin de base de Q2 vaya a masa.

    Q2 se pone en corte y Q4 tambin y la patilla 1 del L298, no se pone a masa. Por lo

    tanto el motor no puede girar, al no existir circulacin de corriente. Si la patilla 1 y 15

    del L298 no esta a masa, el motor no puede realizar ningn giro.

    Si por el contrario por la entrada Velocidad llega un nivel alto de la seal de PWM;

    el diodo de U8 no luce, el fototransistor interno de U8 trabaja en corte y por lo tanto la

    tensin de base del transistor Q2 no va a masa por el optoacoplador, sino que ataca la

    base de Q2, trabajando en saturacin, inmediatamente despus se ataca la base del

    transistor Q4 haciendo que tambin trabaje en saturacin, por lo tanto la patilla 1 y 15

    del L298 esta a masa, haciendo posible el giro del motor.

    En la siguiente tabla se hace un resumen del control de giro y del control de

    velocidad.

    Demostracin del control de velocidad de un motor.

    Explicacin de la PWM en la pagina 109.

    Entradas al Inversor L298NSalidas del Inversor

    L298NMotor

    Velocidad SENSA GIRO1 GIRO2 OUT1 OUT2

    0 alta impedancia X X - - Parado

    1 0v 0 0 1v 1v Parado

    1 0v 0 1 1v 9vSentido

    antihorario

    1 0v 1 0 9v 1vSentido

    horario

    1 0v 1 1 1v 1v Parado

    http://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/velomotor.DSNhttp://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/velomotor.DSNhttp://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/velomotor.DSNhttp://localhost/var/www/apps/conversion/tmp/scratch_6/ISIS/velomotor.DSN
  • 8/14/2019 velocista

    17/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    17

    4.3.1.- Esquema elctrico de la placa de potencia

    VDD: 5 voltios

    VP: 9 voltios

    U3: patilla RB4 del PIC

    U4: patilla RB5 del PIC

    U5: patilla RB6 del PIC

    U6: patilla RB7 del PIC

    U8: patilla RC1 del PIC

    U7: patilla RC2 del PIC

  • 8/14/2019 velocista

    18/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    18

    4.4.- Placa de sensores

    En esta placa estn situados lo sensores del robot velocista. Los sensores utilizados

    son los CNY70. Las seales que salen de los sensores, llegan a nuestro PIC, para poder

    controlar el robot mediante el programa que nosotros previamente hayamos cargado en

    el PIC.

    Otros componentes que se encuentran en esta placa son los integrados 74HC14,

    inversores de seales; si a la entrada tenemos un 0 lgico, a la salida tendremos un 1

    lgico. Tambin son conocidos como Trigger Smith, ya que a su vez es un circuito

    comparador, ya que nos vale para asegurarnos de que una superficie gris clara pase a

    blanca y una superficie gris oscura sea negra. Podemos decir que los utilizamos para

    acondicionar la seal del sensor.

    Las resistencias R23, R25, R27, R29, R31, R33, R35, R37; se encargan de dar

    tolerancia al sensor. Variando el valor de estas resistencias se puede separar ms o

    menos los sensores de la superficie. El valor de las resistencias puede variar desde 10khasta 47k. En los esquemas elctricos se ha puesto el valor de estas resistencias de 10k,

    pero hay que ir probando que valor es el definitivo.

    Los sensores CNY70 tienen en su interior un diodo emisor de infrarrojos y un

    fototransistor. Cuando el diodo emita ms luz hacia la base del fototransistor este, a su

    vez, conducir ms.

    El funcionamiento de este sensor es parecido al funcionamiento de los

    optoacopladores. Se basa en atacar la base de un fototransistor por medio de un emisor

    de luz, al hacer que el fototransistor trabaje en corte o saturacin. El emisor emite un

    haz de luz, si esta luz se refleja, rebota sobre una superficie, se ataca a la base del

    fototransistor y hace que el transistor trabaje en saturacin. A medida que la superficie

    refleje mas la luz, se producir una mayor corriente en la base del fototransistor, y as se

    obtiene una mayor tensin a la salida. Esto nos es muy til para digitalizar las seales

    que obtengamos de los sensores, para diferenciar la superficie oscura de una clara.

  • 8/14/2019 velocista

    19/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    19

    Cuando la superficie es blanca, el haz de luz se refleja y ataca a la base del

    fototransistor, este se satura, llevando la tensin del colector a masa, e introduciendo un

    0 lgico a la entrada del 74HC14, y a la salida tenemos un 1 lgico, que es lo que le

    llega al PIC. Cuando la superficie es negra, la luz es absorbida por la superficie, y hace

    que el transistor trabaje en corte. Esto nos har tener 1 a la entrada del 74HC14, o sea,

    que a la salida hay un 0 lgico.

    Superficie Estado lgico antes de la

    Trigger Smith

    Estado lgico despus de la

    Trigger Smith

    Negra 1 0

    Blanca 0 1

    4.4.1.- Esquema elctrico de la placa de sensores

    VDD: 5 voltios

    OP1: conexin sensor - PIC

    OP2: conexin sensor - PICOP3: conexin sensor - PIC

    OP4: conexin sensor - PIC

    OP5: conexin sensor - PIC

    OP6: conexin sensor - PIC

    OP7: conexin sensor - PICOP8: conexin sensor - PIC

  • 8/14/2019 velocista

    20/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    20

    4.5.- Mando

    El mando no forma parte del proyecto por falta de tiempo, aunque se deja abierta la

    esta posibilidad para que en cualquier momento se pueda adjuntar.

    El mando se fabrica aparte de las placas de nuestro robot, ya que este es uncomplemento del proyecto.

    El mando tiene la misin de transmitir un cdigo asociado a cada pulsador, para

    poder controlar el robot.

    El microcontrolador PIC16F876A lee los pulsadores y transmite los cdigos va

    serie a la tarjeta transmisora de radiofrecuencia, a una velocidad de 1562,5 baudios por

    segundo. Es una transmisin asncrona: 1 bit de comienzo, 8 bit de datos, 1 bit de

    parada sin bitde paridad.

    El microcontrolador PIC16F876A trabaja a una frecuencia de 4 MHz y ejecuta unainstruccin en 1uS.

    La alimentacin procede de un regulador 7805 que suministra 5 voltios continuos a

    todos los circuitos.

    El transistor Q1E tiene la misin de deshabilitar la tarjeta de radiofrecuencia cuando

    esta no transmite datos.

    La tarjeta emisora CEBEK C-0503 es un circuito hbrido encargado de transmitir

    va radiofrecuencia, los datos digitales procedentes del microprocesador. Se modula en

    AM cuya frecuencia portadora es de 433,92 MHz. Estas seales salen por la patilla 11

    del emisor de datos CEBEK C-0503.

    El diodo ledD7E nos indica que el mando est encendido, tiene su correspondiente

    resistencia limitadora de corriente.

    El resto de los ledsse iluminan cuando activamos su pulsador correspondiente.

    El diodo D6E tiene la misin de proteger el circuito en cado de invertir la batera.

    Los condensadores C1 y C2 son filtros.

  • 8/14/2019 velocista

    21/87

  • 8/14/2019 velocista

    22/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    22

    5.- Esquema elctrico de simulacin con Proteus

    5.1.- Simulacin del robot velocista

  • 8/14/2019 velocista

    23/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    23

    5.2.- Simulacin del robot teledirigido

  • 8/14/2019 velocista

    24/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    24

    6.- Programas

    La programacin tiene una parte importante en nuestro robot, ya que, por muy bien

    diseado que est, sin programas no haremos nada.

    Los programas primero se simulan en elISISy tienen el primer objetivo de ver que,las diferentes partes del robot, funcionan adecuadamente. Una vez que se haya visto que

    funciona correctamente, se podr pasar a programar ya el funcionamiento del robot.

    6.1.- Programas de prueba

    Por medio de estos programas se puede averiguar si hay fallos en los componentes

    que monta nuestro robot o en las conexiones electrnicas.

    6.1.2.- Programas de prueba de los leds

    Este programa tiene como funcin probar el correcto funcionamiento de los dosdiodos ledsque hay en la placa de control.

    Para encender los diodos ledsnecesitaremos sacar, por la patilla del PIC que est

    conectado, al diodo ledun 0 lgico. Para apagar el diodo lednecesitaremos un 1 lgico.

    6.1.2.1.- Diagrama de flujo

  • 8/14/2019 velocista

    25/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    25

    6.1.2.2.- Programa

    // Pruebas de los leds

    // ************************ Directivas de procesado ************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F876A.h al programa tiene

    // que estar en la misma carpeta del programa

    // define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del

    // microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro

    // guardin Wathdog

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

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

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

    #BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

    #BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

    // ****************** Funcin principal o programa principal ******************

    void main()

    {

    TRISB = 0B00000000; // Defines Puerto B como salida

    // de datos.

    while(1){ // Bucle infinito

    rb2 = 0 ; // Enciendo el led D14

    rb3 =0; // Enciendo el led D13

    delay_ms(500); // Retardo de 500 ms

    rb2 = 1 ; // Apago el led D14

    rb3 =1; // Apago el led D13

    delay_ms(500); // Retardo de 500 ms

    } // Cierro el While

    } // Cierro el programa

  • 8/14/2019 velocista

    26/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    26

    6.1.3.- Programas de prueba de los sensores

    Estos programas tienen la funcin de comprobar el correcto funcionamiento de

    todos los sensores de nuestro robot. Tambin comprobaremos que la comunicacin

    entre el PIC y los sensores son las correctas y que no hay fallos de comunicacin.

    Comprobaremos los sensores de dos en dos y nos ayudaremos de los diodos ledque

    hay en la placa de control, para controlar si los sensores y sus respectivas

    comunicaciones son correctas.

    Cuando el sensor lea una superficie blanca llegar un 0 lgico al PIC, despus del

    integrado Trigger Smith. Cuando el sensor lea una superficie negra llegar un 1 lgico

    al PIC.

    Superficie Estado lgico que llega al PIC

    Negra 0

    Blanca 1

    6.1.3.1.- Programas de prueba de los sensores OP1 Y OP2

    Este programa tiene la funcin de comprobar el correcto comportamiento de los

    sensores OP1 y OP2.

    6.1.3.1.1.- Diagrama de flujo

  • 8/14/2019 velocista

    27/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    27

    6.1.3.1.2.- Programa

    // Pruebas de los sensores OP1 y OP2

    // ************************ Directivas de procesado ************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F876A.h al programa tiene

    // que estar en la misma carpeta del programa

    // define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del

    // microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro

    // guardin Wathdog

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

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

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

    #BIT ra0 = 0x05.0 // RA0 en 0x05 patilla 0

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

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

    #BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

    #BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

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

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

    #BIT rc0 = 0x07.0 // RC0 en 0x07 patilla 0

    // ****************** Funcin principal o programa principal ******************

    void main()

    {

    TRISA = 0B11111111; // Defines Puerto A como entrada de datos

    TRISB = 0B00000000; // Defines Puerto B como salida

    // de datos.

    TRISC = 0B10110001; // Defines rc6, rc2 y rc1 como salidas y rc7,

    // rc5 y rc0 como entradas; rc4 y rc3 no

    // tocar

  • 8/14/2019 velocista

    28/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    28

    while(1){ // Bucle infinito

    if (rc0 == 1) // Si el sensor lee blanco ejecuta la

    // siguiente instruccin

    rb2 = 0; // Enciende el led D14

    else { // Si el sensor lee negro, ejecuta la siguiente

    // instruccin

    rb2 = 1; // Apaga el led D14

    } // Cierro el else

    if (ra0 == 1) // Si el sensor lee blanco ejecuta la

    // siguiente instruccin

    rb3 = 0; // Enciende el led D13

    else { // Si el sensor lee negro, ejecuta la siguiente

    // instruccin

    rb3 = 1; // Apaga el led D13

    } // Cierro el else

    } // Cierro el while

    } // Cierro el programa

  • 8/14/2019 velocista

    29/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    29

    6.1.3.2- Programas de prueba de los sensores OP3 y OP4

    Este programa tiene la funcin de comprobar el correcto comportamiento de los

    sensores OP3 y OP4.

    6.1.3.2.1.- Diagrama de flujo

    6.1.3.2.2.- Programa

    // Pruebas de los sensores OP3 y OP4

    // ************************ Directivas de procesado ************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F876A.h al programa tiene

    // que estar en la misma carpeta del programa

    // define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del

    // microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro

    // guardin Wathdog

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

  • 8/14/2019 velocista

    30/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    30

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

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

    #BIT ra1 = 0x05.1 // RA1 en 0x05 patilla 1

    #BIT ra2 = 0x05.2 // RA2 en 0x05 patilla 2

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

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

    #BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

    #BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

    // ****************** Funcin principal o programa principal ******************

    void main()

    {

    TRISA = 0B11111111; // Defines Puerto A como entrada de datos

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

    while(1){ // Bucle infinito

    if (ra1 == 1) // Si el sensor lee blanco ejecuta la

    // siguiente instruccin

    rb2 = 0; // Enciende el led D14

    else { // Si el sensor lee negro, ejecuta la siguiente

    // instruccin

    rb2 = 1; // Apaga el led D14

    } // Cierro el else

    if (ra2 == 1) // Si el sensor lee blanco ejecuta la// siguiente instruccin

    rb3 = 0; // Enciende el led D13

    else { // Si el sensor lee negro, ejecuta la siguiente

    // instruccin

    rb3 = 1; // Apaga el led D13

    } // Cierro el else

    } // Cierro el while

    } // Cierro el programa

  • 8/14/2019 velocista

    31/87

  • 8/14/2019 velocista

    32/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    32

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

    #BIT ra3 = 0x05.3 // RA3 en 0x05 patilla 3

    #BIT ra4 = 0x05.4 // RA4 en 0x05 patilla 4

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

    #BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

    #BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

    // ****************** Funcin principal o programa principal ******************

    void main()

    {

    TRISA = 0B11111111; // Defines Puerto A como entrada de datos

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

    while(1){ // Bucle infinito

    if (ra3 == 1) // Si el sensor lee blanco ejecuta la

    // siguiente instruccin

    rb2 = 0; // Enciende el led D14

    else { // Si el sensor no lee blanco, ejecuta la

    // siguiente instruccin

    rb2 = 1; // Apaga el led D14

    } // Cierro el else

    if (ra4 == 1) // Si el sensor lee blanco ejecuta la// siguiente instruccin

    rb3 = 0; // Enciende el led D13

    else { // Si el sensor no lee blanco, ejecuta la

    // siguiente instruccin

    rb3 = 1; // Apaga el led D13

    } // Cierro el else

    } // Cierro el while

    } // Cierro el programa

  • 8/14/2019 velocista

    33/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    33

    6.1.3.4.- Programas de prueba de los sensores OP7 Y OP8

    Este programa tiene la funcin de comprobar el correcto comportamiento de los

    sensores OP7 y OP8.

    6.1.3.4.1.- Diagrama de flujo

    6.1.3.4.2.- Programa

    // Pruebas de los sensores OP7 y OP8

    // ************************ Directivas de procesado ************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F876A.h al programa tiene

    // que estar en la misma carpeta del programa

    // define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del

    // microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro// guardin Wathdog

  • 8/14/2019 velocista

    34/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    34

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

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

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

    #BIT ra5 = 0x05.5 // RA5 en 0x05 patilla 5

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

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

    #BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

    #BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

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

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

    #BIT rc5 = 0x07.5 // RC5 en 0x07 patilla 5

    // ****************** Funcin principal o programa principal ******************

    void main()

    {

    TRISA = 0B11111111; // Defines Puerto A como entrada de datos

    TRISB = 0B00000000; // Defines Puerto B como salida

    // de datos.

    TRISC = 0B10110001; // Defines rc6, rc2 y rc1 como salidas y rc7,

    // rc5 y rc0 como entradas; rc4 y rc3 no

    // tocar

    while(1){ // Bucle infinito

    if (ra5 == 1) // Si el sensor lee blanco ejecuta la

    // siguiente instruccin

    rb2 = 0; // Enciende el led D14

    else { // Si el sensor lee negro, ejecuta la siguiente

    // instruccin

    rb2 = 1; // Apaga el led D14

    } // Cierro el else

    if (rc5 == 1) // Si el sensor lee blanco ejecuta la

    // siguiente instruccin

    rb3 = 0; // Enciende el led D13

  • 8/14/2019 velocista

    35/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    35

    else { // Si el sensor lee negro, ejecuta la siguiente

    // instruccin

    rb3 = 1; // Apaga el led D13

    } // Cierro el else

    } // Cierro el while

    } // Cierro el programa

    6.1.4.- Programas de pruebas de control de giro de los motores

    Con estos programas comprobaremos que los motores estn en perfecto estado y las

    conexiones que controlan los motores tambin lo estn.

    6.1.4.1- Programa de prueba del motor derecho

    Con este programa controlaremos que el motor derecho gira en ambos sentidos,

    controlando las patillas rb6 y rb7 del PIC.

    El sentido de giro depender del estado lgico de las patillas rb6 y rb7 y de cmo

    conectemos el motor derecho a la placa de potencia.

    RB6 RB7 Sentido de giro0 0 Motor parado

    0 1 En movimiento

    1 0 En movimiento

    1 1 Motor parado

  • 8/14/2019 velocista

    36/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    36

    6.1.4.1.1.- Diagrama de flujo

    6.1.4.1.2.- Programa

    // Pruebas de control de giro del motor derecho

    // ************************ Directivas de procesado ************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F876A.h al programa tiene

    // que estar en la misma carpeta del programa

    // define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del

    // microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro

    // guardin Wathdog

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

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

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

  • 8/14/2019 velocista

    37/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    37

    #BIT rb6 = 0x06.6 // RB1 en 0x06 patilla 1.

    #BIT rb7 = 0x06.7 // RB2 en 0x06 patilla 2.

    // ****************** Funcin principal o programa principal ****************

    void main(){

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

    portB = 0B00000000; // Reseteas el puerto B

    while(1){ // Bucle infinito

    rb6 = 0; // Las patillas RB6 y RB7 desactivadas,

    rb7 = 0; // motor parado

    delay_ms(500); // Retardo de 500 ms

    rb6 = 1; // Activamos la patilla RB6, motor gira

    delay_ms(500); // Retardo de 500 ms

    rb6 = 0; // Las patillas RB6 y RB7 desactivadas,

    rb7 = 0; // motor parado

    delay_ms(500); // Retardo de 500 ms

    rb7 = 1; // Activamos la patilla RB7, el motor gira

    delay_ms(500); // Retardo de 500 ms

    } // Cierro el While

    } // Cierro el programa principal

    6.1.4.2.- Programa de prueba del motor izquierdo

    Con este programa controlaremos que el motor izquierdo gira en ambos sentidos,

    controlando las patillas rb4 y rb5 del PIC.

    El sentido de giro depender del estado lgico de las patillas rb4 y rb5 y de cmo

    conectemos el motor derecho a la placa de potencia.

    RB4 RB5 Sentido de giro0 0 Motor parado

    0 1 En movimiento

    1 0 En movimiento

    1 1 Motor parado

  • 8/14/2019 velocista

    38/87

  • 8/14/2019 velocista

    39/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    39

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

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

    #BIT rb4 = 0x06.4 // RB4 en 0x06 patilla 4.

    #BIT rb5 = 0x06.5 // RB5 en 0x06 patilla 5.

    // ****************** Funcin principal o programa principal ****************

    void main()

    {

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

    portB = 0B00000000; // Reseteas el puerto B

    while(1){ // Bucle infinito

    rb4 = 0; // Las patillas RB4 y RB5 desactivadas,rb5 = 0; // motor parado

    delay_ms(500); // Retardo de 500 ms

    rb4 = 1; // Activamos la patilla RB4, motor gira

    delay_ms(500); // Retardo de 500 ms

    rb4 = 0; // Las patillas RB4 y RB5 desactivadas,

    rb5 = 0; // motor parado

    delay_ms(500); // Retardo de 500 ms

    rb5 = 1; // Activamos la patilla RB5, el motor gira

    delay_ms(500); // Retardo de 500 ms

    } // Cierro el While

    } // Cierro el programa principal

    6.1.5.- Programas de pruebas de control de velocidad de los motoresCon estos programas probaremos que el PIC genera la PWM. Tambin que esta

    llega a nuestros motores y que estos modifican su velocidad de acuerdo con la PWM

    que llegue del PIC.

    6.1.5.1- Programa de control de velocidad del motor derecho

    Probamos la velocidad del motor derecho.

  • 8/14/2019 velocista

    40/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    40

    6.1.5.1.1.- Diagrama de flujo

    6.1.5.1.2.- Programa

    // Prueba de control de velocidad motor derecho

    // ************************ Directivas de procesado ************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F876A.h al programa tiene// que estar en la misma carpeta del programa

    // define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del

    // microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro

    // guardin Wathdog

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

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

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

  • 8/14/2019 velocista

    41/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    41

    #BIT rb6 = 0x06.6 // RB6 en 0x06 patilla 6.

    #BIT rb7 = 0x06.7 // RB7 en 0x06 patilla 7.

    int16 TH = 65535; // Variable para la PWM

    // ************* Funcin principal o programa principal *****************

    void main()

    {

    TRISB = 0B00000010; // Defines Puerto B como salidas de datos.

    portB = 0B00001100; // Reseteas el puerto B, los dos LEDS a 1

    setup_timer_2(T2_DIV_BY_16,249,1);

    // setup_timer(Prescaler,PR2,Postscaler)// Configuracion 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)

    while(1){ // Bucle infinito

    rb7 = 0; // Desactivamos la patilla RB7

    rb6 = 1; // Activamos la patilla RB6

    // El motor empezara a moverse en un// sentido

    TH = 0; // No meto PWM, motor parado

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 64; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 500; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 1000; // Cambiamos el valor de la PWM

  • 8/14/2019 velocista

    42/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    42

    delay_ms(2000); // Tiempo que el motor estar girando

    rb7 = 0; // Desactivamos la patilla RB7

    rb6 = 1; // Activamos la patilla RB6

    // El motor empezara a moverse en

    // sentido contrario

    TH = 0; // No meto PWM, motor parado

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 64; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 500; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 1000; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    } // Cierro el While

    } // Cierro el programa principal

  • 8/14/2019 velocista

    43/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    43

    6.1.5.2.- Programa de control de velocidad del motor izquierdo

    Probamos la velocidad del motor izquierdo.

    6.1.5.2.1.- Diagrama de flujo

    6.1.5.2.2.- Programa

    // Prueba de control de velocidad izquierdo

    // ************************ Directivas de procesado ************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F876A.h al programa tiene

    // que estar en la misma carpeta del programa

    // define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del

    // microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro

    // guardin Wathdog

  • 8/14/2019 velocista

    44/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    44

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

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

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

    #BIT rb4 = 0x06.4 // RB4 en 0x06 patilla 4.#BIT rb5 = 0x06.5 // RB5 en 0x06 patilla 5.

    int16 TH = 65535; // Variable para la PWM

    // ******************* Funcin principal o programa principal *****************

    void main()

    {

    TRISB = 0B00000010; // Defines Puerto B como salidas de datos.

    portB = 0B00001100; // Reseteas el puerto B, los dos LEDS a 1

    setup_timer_2(T2_DIV_BY_16,249,1);

    // setup_timer(Prescaler,PR2,Postscaler)

    // Configuracion 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_ccp1(CCP_PWM); // CCP1 en modo PWM (Salida por RC2)

    while(1){ // Bucle infinito

    rb4 = 0; // Desactivamos la patilla RB4

    rb5 = 1; // Activamos la patilla RB5// El motor empezara a moverse en un

    // sentido

    TH = 0; // No meto PWM, motor parado

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 64; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

  • 8/14/2019 velocista

    45/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    45

    TH = 500; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 1000; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    rb5 = 0; // Desactivamos la patilla RB5

    rb4 = 1; // Activamos la patilla RB4

    // El motor empezara a moverse en

    // sentido contrario

    TH = 0; // No meto PWM, motor parado

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 64; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 500; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    TH = 1000; // Cambiamos el valor de la PWM

    delay_ms(2000); // Tiempo que el motor estar girando

    } // Cierro el While

    } // Cierro el programa principal

  • 8/14/2019 velocista

    46/87

  • 8/14/2019 velocista

    47/87

  • 8/14/2019 velocista

    48/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    48

  • 8/14/2019 velocista

    49/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    49

  • 8/14/2019 velocista

    50/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    50

    6.2.1.2.- Programa

    // Velocista

    // ************************ Directivas de procesado ************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F876A.h al programa tiene

    // que estar en la misma carpeta del programa

    // define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del

    // microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro

    // guardin Wathdog

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

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

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

    #BIT ra0 = 0x05.0 // RA0 en 0x05 patilla 0.

    #BIT ra1 = 0x05.1 // RA1 en 0x06 patilla 1.

    #BIT ra2 = 0x05.2 // RA2 en 0x06 patilla 2.

    #BIT ra3 = 0x05.3 // RA3 en 0x06 patilla 3.#BIT ra4 = 0x05.4 // RA4 en 0x06 patilla 4.

  • 8/14/2019 velocista

    51/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    51

    #BIT ra5 = 0x05.5 // RA5 en 0x06 patilla 5.

    #BIT ra6 = 0x05.6 // RA6 en 0x06 patilla 6.

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

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

    #BIT rb0 = 0x06.0 // RB0 en 0x06 patilla 0.#BIT rb1 = 0x06.1 // RB1 en 0x06 patilla 1.

    #BIT rb2 = 0x06.2 // RB2 en 0x06 patilla 2.

    #BIT rb3 = 0x06.3 // RB3 en 0x06 patilla 3.

    #BIT rb4 = 0x06.4 // RB4 en 0x06 patilla 4.

    #BIT rb5 = 0x06.5 // RB5 en 0x06 patilla 5.

    #BIT rb6 = 0x06.6 // RB6 en 0x06 patilla 6.

    #BIT rb7 = 0x06.7 // RB7 en 0x06 patilla 7.

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

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

    #BIT rc0 = 0x07.0 // RC0 en 0x06 patilla 0.

    #BIT rc1 = 0x07.1 // RC1 en 0x06 patilla 1.

    #BIT rc2 = 0x07.2 // RC2 en 0x06 patilla 2.

    #BIT rc3 = 0x07.3 // RC3 en 0x06 patilla 3.

    #BIT rc4 = 0x07.4 // RC4 en 0x06 patilla 4.

    #BIT rc5 = 0x07.5 // RC5 en 0x06 patilla 5.

    #BIT rc6 = 0x07.6 // RC6 en 0x06 patilla 6.

    #BIT rc7 = 0x07.7 // RC7 en 0x06 patilla 7.

    int16 TH = 65535; // Variable para la PWM

    // ******************** Declaracin de funciones ***************************

    void velocista(); // Subprograma del velocista

    void Rec0 (); // Subprograma de rectificacin

    void Rec1 (); // Subprograma de rectificacin

    void Rec2 (); // Subprograma de rectificacinvoid Rec3 (); // Subprograma de rectificacin

    void Rec4 (); // Subprograma de rectificacin

    void Rec5 (); // Subprograma de rectificacinvoid Rec6 (); // Subprograma de rectificacin

    void Rec7 (); // Subprograma de rectificacin

    void Rec8 (); // Subprograma de rectificacin

    void Rec9 (); // Subprograma de rectificacin

    void Rec10 (); // Subprograma de rectificacin

    void Rec11 (); // Subprograma de rectificacin

    void Rec12 (); // Subprograma de rectificacin

    void Rec13 (); // Subprograma de rectificacin

    void Rec14 (); // Subprograma de rectificacin

  • 8/14/2019 velocista

    52/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    52

    // ******************* Funcin principal o programa principal *****************

    void main()

    {

    // ************ Configuracin de todas las entradas y salidas y resetearlas *********

    TRISA = 0B11111111; // Defines Puerto A como entrada de datos.

    TRISB = 0B00000011; // Defines rb0 y rb1 como entradas y el resto

    // del Puerto B como salidas

    TRISC = 0B10110001; // Defines rc6, rc2 y rc1 como salidas y rc7,

    // rc5 y rc0 como entradas; rc4 y rc3 no tocar

    rb4 = 0;

    rb5 = 0;rb6 = 0;

    rb7 = 0;

    rc3 = 0;

    rc6 = 0; // Reseteo todas estas salidas

    setup_timer_2(T2_DIV_BY_16,249,1);

    // setup_timer(Prescaler,PR2,Postscaler)

    // Configuracion 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_ccp1(CCP_PWM); // CCP1 en modo PWM (Salida por RC2)

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

    TH = 0; // Pongo la PWM a 0

    set_pwm1_duty(TH); // por la patilla RC2

    TH = 0; // Pongo la PWM a 0

    set_pwm2_duty(TH); // por la patilla RC1

    velocista(); // Ejecutamos el subprograma de velocista

  • 8/14/2019 velocista

    53/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    53

    // ******************* Subprograma del Velocista *************************

    void velocista(void)

    {

    while (rb1 == 1 ){ // Mientras el botn de inicio no se pulse// ejecuta lo siguiente

    if (rc0 == 1 && ra0 == 1 && ra1 == 1 && ra2 == 1 && ra3 == 1 &&

    ra4 == 1 && ra5 == 1 && rc5 == 1){

    // Si todos los sensores leen blanco, ejecuta lo siguiente:

    rb2 = 1; // Apago led D14

    rb3 = 0; // Enciendo led D13

    } // Cierro el if

    else { // Si el if no es cierto, ejecuta lo siguiente

    rb2 = 0; // Enciendo led D14

    rb3 = 0; // Enciendo led D13

    } // Cierro el else

    } // Cierro el While

    while (1){ // Bucle infinito del velocista

    rb2 = 1;

    rb3 = 1; // Apago leds

    if (rc0 == 1 && ra0 == 1 && ra1 == 1 && ra2 == 1 && ra3 == 1 &&

    ra4 == 1 && ra5 == 1 && rc5 == 1)

    Rec0(); // Si la condicin es verdadera ejecuta el

    // siguiente subprograma

    if (ra3 == 0) // Si la condicin es verdadera ejecuta el

    Rec1(); // siguiente subprograma

    if (ra3 && ra4 == 0) // Si la condicin es verdadera ejecuta el

    Rec2(); // siguiente subprograma

    if (ra4 == 0) // Si la condicin es verdadera ejecuta el

    Rec3(); // siguiente subprograma

    if (ra4 && ra5== 0) // Si la condicin es verdadera ejecuta el

    Rec4(); // siguiente subprograma

    if (ra5 == 0) // Si la condicin es verdadera ejecuta el

    Rec5(); // siguiente subprograma

  • 8/14/2019 velocista

    54/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    54

    if (ra5 && rc5 == 0) // Si la condicin es verdadera ejecuta el

    Rec6(); // siguiente subprograma

    if (rc5 == 0) // Si la condicin es verdadera ejecuta el

    Rec7(); // siguiente subprograma

    if (ra2 == 0) // Si la condicin es verdadera ejecuta el

    Rec8(); // siguiente subprograma

    if (ra2 && ra1 == 0) // Si la condicin es verdadera ejecuta el

    Rec9(); // siguiente subprograma

    if (ra1 == 0) // Si la condicin es verdadera ejecuta el

    Rec10(); // siguiente subprograma

    if (ra1 && ra0 == 0) // Si la condicin es verdadera ejecuta el

    Rec11(); // siguiente subprograma

    if (ra0 == 0) // Si la condicin es verdadera ejecuta el

    Rec12(); // siguiente subprograma

    if (ra0 && rc0 == 0) // Si la condicin es verdadera ejecuta el

    Rec13(); // siguiente subprograma

    if (rc0 == 0) // Si la condicin es verdadera ejecuta el

    Rec14(); // siguiente subprograma

    } // Cierro el while(1)

    } // Cierro el programa velocista

    // ********************************* Rec0 *****************************

    void Rec0(void) // Subprograma de rectificado 0{

    rb4 = 1; // Activamos la patilla RB4rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 1000;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 1000;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

  • 8/14/2019 velocista

    55/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    55

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // ********************************* Rec1 *****************************

    void Rec1(void) // Subprograma de rectificado 1

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 1000;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 500;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // *************************** Rec2 *******************************

    void Rec2(void) // Subprograma de rectificado 2

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 1000;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 400;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

  • 8/14/2019 velocista

    56/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    56

    // **************************** Rec3 ***********************************

    void Rec3(void) // Subprograma de rectificado 3

    {

    rb4 = 1; // Activamos la patilla RB4rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 1000;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 300;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // **************************** Rec4 **********************************

    void Rec4(void) // Subprograma de rectificado 4

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 1000;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 200;set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // **************************** Rec5 ********************************

    void Rec5(void) // Subprograma de rectificado 5

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

  • 8/14/2019 velocista

    57/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    57

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 1000;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 150;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // ******************************* Rec6 ********************************

    void Rec6(void) // Subprograma de rectificado 6

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 1000;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 100;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // **************************** Rec7 ***********************************

    void Rec7(void) // Subprograma de rectificado 7

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 1000;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

  • 8/14/2019 velocista

    58/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    58

    TH = 50;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // *************************** Rec8 ************************************

    void Rec8(void) // Subprograma de rectificado 8

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 500;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 1000;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // ****************************** Rec9 **********************************

    void Rec9(void) // Subprograma de rectificado 9

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 400;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 1000;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

  • 8/14/2019 velocista

    59/87

  • 8/14/2019 velocista

    60/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    60

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 150;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 1000;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // ******************************* Rec13 *******************************

    void Rec13(void) // Subprograma de rectificado 13

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 100;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

    TH = 1000;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    // ******************************** Rec14 *****************************

    void Rec14(void) // Subprograma de rectificado 14

    {

    rb4 = 1; // Activamos la patilla RB4

    rb5 = 0; // Activo el motor izquierdo

    rb6 = 1; // Activamos la patilla RB6

    rb7 = 0; // Activo motor derecho

    TH = 50;

    set_pwm1_duty(TH); // Valor de la PWM para el motor izquierdo

  • 8/14/2019 velocista

    61/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    61

    TH = 1000;

    set_pwm2_duty(TH); // Valor de la PWM para el motor derecho

    delay_ms(20); // Refresco de la PWM

    } // Cierro el subprogama

    6.2.2.- Programa del coche teledirigido

    Con este programa se lograra controlar el robot a travs de un mando. Dado que no

    ha dado tiempo, el proyecto se deja abierto para futuras modificaciones.

    6.2.2.1.- Diagrama de flujo

    6.2.2.2.- Programa

  • 8/14/2019 velocista

    62/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    62

    7.- Fabricacin de placas

    Para fabricar las placas se ha empleado el mismo sistema:

    1 Cortar la placa a medida.

    2 Hacer los agujeros de la placa.3 Positivarla.

    4 Dejarla en el horno a 70C, durante 15 minutos.

    5 Centrar los fotolitos en la placa e insolarla durante, aproximadamente, unos 230

    segundos.

    6 Revelarla en sosa.

    7 Grabado de la placa.

    Las placas que se muestran aqu no son el tamao real. Todas las placas, menos la

    placa de sensores, tienen el mismo tamao, 75x70. A continuacin se muestra el

    esquema elctrico que se ha utilizado para la fabricacin y su placa correspondiente.

    Las placas se han puesto por la cara de componentes, top coppery por la cara de

    pistas,botton copper.

    Se muestra el siguiente dibujo con las dimensiones de las placas de la fuente de

    alimentacin-adaptador de seales PC-UC, placa de control y placa de potencia, con las

    distancias de los agujeros de sujecin.

  • 8/14/2019 velocista

    63/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    63

    7. 1.- Fabricacin de la fuente de alimentacin-adaptador de seales PC-UC

    7.1.1.- Esquema elctrico

  • 8/14/2019 velocista

    64/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    64

    7.1.2.- Cara de componentes

    En esta placa no est colocada la disipacin de cobre del LM350K, para que se

    pueda distinguir bien la distribucin de los componentes. Dicha disipacin debe ocupar

    todo el ancho del LM350K.

  • 8/14/2019 velocista

    65/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    65

    7.1.3.- Cara de pistas bottom copper

  • 8/14/2019 velocista

    66/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    66

    7. 2.- Fabricacin de la placa de control

    7.2.1.- Esquema elctrico

  • 8/14/2019 velocista

    67/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    67

    7.2.2.- Componentes

  • 8/14/2019 velocista

    68/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    68

    7.2.3.- Cara de componentes y de pistas top copper

  • 8/14/2019 velocista

    69/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    69

    7.2.4.- Cara de pistas bottom copper

  • 8/14/2019 velocista

    70/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    70

    7. 3.- Fabricacin de la placa de potencia

    7.3.1.- Esquema elctrico

  • 8/14/2019 velocista

    71/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    71

    7.3.2.- Componentes

  • 8/14/2019 velocista

    72/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    72

    7.3.3.- Cara de componentes y de pistas top copper

  • 8/14/2019 velocista

    73/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    73

    7.3.4.- Cara de pistas bottom copper

  • 8/14/2019 velocista

    74/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    74

    7. 4.- Fabricacin de la placa de sensores

    Esta placa siempre est en constante cambio, hasta que se da con la placa que mejor

    nos convenga. Despus de muchos prototipos, aqu se expone la que mejor hemos visto

    que funciona. El ancho de las placas se intenta que tenga la misma medida, 48mm, para

    que nuestro robot no sobrepase de las medidas, y tambin los taladros, que es por dondesujetamos la placa a la carrocera del robot.Lo que s que vara es el largo de la placa,

    debido, en gran parte, a cmo se hayan distribuido los componentes por dicha placa.

    El esquema elctrico es para todas las placas el mismo, y como anteriormente se ha

    comentado, el valor de las resistencias puede variar, siendo, el que aparece en los

    esquemas elctricos, el valor montado o no montado.

    7.4.1.- Esquema elctrico

  • 8/14/2019 velocista

    75/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    75

    7.4.2.- Medidas

    7.4.3.- Componentes

    7.4.4.- Cara de componentes y de pistas top copper

  • 8/14/2019 velocista

    76/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    76

    7.4.5.- Cara de pistas bottom copper

  • 8/14/2019 velocista

    77/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    77

    7. 5.- Fabricacin del mando a distancia

    7.5.1.- Esquema elctrico

    7.5.2.- Medidas

  • 8/14/2019 velocista

    78/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    78

    7.5.3.- Componentes

    7.5.4.- Cara de componentes y de pistas top copper

  • 8/14/2019 velocista

    79/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    79

    7.5.5.- Cara de pistas bottom copper

  • 8/14/2019 velocista

    80/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    80

    8.- Carrocera

  • 8/14/2019 velocista

    81/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    81

    9.- Lista de componentes y coste econmico

    LISTA DE COMPONENTES DEL VELOCISTA

    Titulo: Velocista

    Autor: Daniel Garca BravoNumero de componentes: 169

    Cantidad Referencia: Valor:Precio

    Unitario

    Precio

    Total

    38 Resistencias

    18

    R1, R3, R5, R7, R9, R11,

    220 0,05 0,9R13-R15, R17, R22, R24, R26,

    R28, R30, R32, R34, R36

    16

    R2, R4, R6, R8, R10, R12,

    10k 0,05 0,8R16, R18, R23, R25, R27, R29,

    R31, R33, R35, R37

    1 R19 100 0,05 0,05

    2 R20, R21 4.7k 0,05 0,1

    1 R38 240 0,05 0,05

    15 Condensadores

    1 C1 2200uF 0,5 0,5

    6 C2, C4, C9-C11, C14 100nF 0,05 0,3

    1 C3 220uF 0,2 0,2

    4 C5-C8 1uF 0,1 0,42 C12, C13 15pF 0,05 0,1

    1 C15 10uF 0,05 0,05

    12 Circuitos integrados

    1 U1 LM350K 4 4

    1 U2 MAX232 1,5 1,5

    6 U3-U8 Optoacopladores 0,35 2,1

    1 U9 L298 3,5 3,5

    2 U11, U12 74HC14 0,5 1

    1 U13 PIC16F876 4,5 4,5

    Cantidad Referencia: Valor: PrecioUnitario

    PrecioTotal

    4 Transistores

    4 Q1-Q4 BD139 0,35 1,4

    15 Diodos

    11 D1, D2, D4-D12 1N4007 0,2 2,2

    2 D3, LED RASTREADOR Led Verde 0,15 0,3

    2 D13, D15 Led Amarillo 0,15 0,3

    Otros Componentes

    1 ANTENA Bornier1 0,01 0,01

  • 8/14/2019 velocista

    82/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    82

    1 BATERIA Bornier2 0,3 0,3

    2 INICIO, RESET Pulsador 0,4 0,8

    6 J1, J1A, J2, J2A, J3, J3A Conn-H10 0,5 3

    4 J4-J7 Conn-Sil4 0,1 0,4

    1 J11 Conn-D9m 2,5 2,5

    3 JP, JP1, JP21 Bornier de 2 0,3 0,94 JUMPER1-JUMPER4 Conn-Sil3 0,15 0,6

    4 MASA1-MASA4 Bornier de 1 0,01 0,04

    2 MDE, MIZ Bornier de 2 0,3 0,6

    1 ON-OFF Interruptor 0,4 0,4

    8 OP1-OP8 CNY70 0,35 2,8

    1 RF1 Cebek-C-0504 7 7

    1 RV1 5k 1 1

    1 X1 Cristal 3 3

    4 Br Bridas de Plstico 0,1 0,4

    10 T3 Tuercas de mtrica 3 0,02 0,21 SP Soporte de plstico 1 1

    3 Placas Placas de C.I. de 70x75 6 18

    1 Placas Placa de C.I. de 148x48 2 2

    2 Ruedas Ruedas de espuma 2,5 5

    4 Fajas Fajas 0,5 2

    18 Separadores Separadores de plstico 0,05 0,9

    2 Motores Motores de C.C. 9 18

    Total 95,1

  • 8/14/2019 velocista

    83/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    83

    LISTA DE COMPONENTES DEL MANDO

    Titulo: Velocista

    Autor: Daniel Garca Bravo

    Numero de componentes: 46

    Cantidad Referencia: Valor:Precio

    Unitario

    Precio

    Total

    7 Resistencias

    6 R1E-R6E 220 0,05 0,3

    1 R7E 2.2k 0,05 0,05

    4 Condensadores

    2 C1E, C2E 220uF 0,2 0,4

    2 C3E, C4E 15pF 0,05 0,1

    2 Circuitos integrados

    1 U1E PIC16F876 4,5 4,5

    1 U2E 7805 1 1

    1 Transistor

    1 Q1E BD136 0,35 0,35

    7 Diodos

    2 D1E, D5E Led Amarillo 0,15 0,3

    2 D2E, D3E Led Verde 0,15 0,3

    2 D4E, D7E Led Rojo 0,15 0,3

    1 D6E 1N4007 0,2 0,2

  • 8/14/2019 velocista

    84/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    84

    Cantidad Referencia: Valor:Precio

    Unitario

    Precio

    Total

    Otros Componentes

    1 ANTENA Bornier1 0,01 0,01

    1 BATERIA 9 VOLTIOS Bateria 1 1

    1 RF1 Cebek-C-0503 7 7

    5 SW1E-SW5E Pulsadores 0,2 1

    1 SW6E Interruptor 1 1

    1 X1 Cristal 3 3

    1 Placas Placa de C.I. de 110x50 2 2

    4 Separadores Separadores metalicos 0,5 2

    4 Tuercas Tuercas M3 0,1 0,4

    4 Tornillos Tornillos M3 x 10 mm 0,1 0,4

    1 Porta baterias Porta baterias 0,5 0,5

    1 SP Soporte de plstico 110x50 1 1

    Total 27,11

  • 8/14/2019 velocista

    85/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    85

    10.- Coste econmico total

    Coste del Proyecto Rastreador

    Tareas Horas Coste por hora () Total ()

    Desarrollo Hardware 30 30 900

    Desarrollo Software 25 30 750

    Bsqueda de materiales 4 30 120

    Montaje del prototipo 30 30 900

    Pruebas del prototipo. 50 30 1500

    Componentes del velocista - - 95,1

    Componentes del mando - - 27,11

    Documentacin 20 30 600

    TOTAL 159 - 4892,21

  • 8/14/2019 velocista

    86/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    Daniel Garca Bravo

    I.E.S. Joan Mir

    86

    11.- Referencias

    Ttulo: Compilador C CCS y simulador PORTEUS para Microcontroladores PIC.

    Autor: Eduardo Garca Breijo.

    Editorial: Marcombo.

    Ttulo: Tecnologa de circuitos impresos.

    Autores: Claudio Fernndez Gonzlez, Jos Luis Lzaro Galilea, Ignacio Fernndez

    Lorenzo, Jess Urea Urea, Felipe Espinosa Zapata.

    Editorial: Departamento de electrnica, Universidad de Alcal

    Ttulo: Electrnica general.

    Autores: A. Carretero, J. Ferrero, J.A. Snchez-Infantes, P. Snchez-Infantes.

    Editorial: Editex.

    Ttulo: Lgica digital y microprogramable.

    Autores: Fernando Remiro Domnguez, Antonio J.Gil Padilla, Luis M. Cuesta Garca.Editorial: Mc Graw Hill.

  • 8/14/2019 velocista

    87/87

    Ciclo Superior de Desarrollo de Productos Electrnicos

    12.- Anexos tcnicos

    Caractersticas del microcontrolador PIC16F876A.

    Caractersticas del LM350K.

    Caractersticas elctricas del inversor de giro L298.

    Caractersticas de los sensores infrarrojos CNY70.

    Caractersticas del MAX232.

    Caractersticas elctricas tarjeta emisora de datos CEBEK C-0503.

    Caractersticas elctricas tarjeta receptora de datos CEBEK C-504.

    Curso de Robtica y otras aplicaciones en el aula de tecnologa.

    http://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/PIC16F876A.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/PIC16F876A.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/L298N.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/L298N.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/MAX232.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/MAX232.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/CEBEK%20C-0504.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/Curso%20de%20Rob%C3%B3tica%20y%20otras%20aplicaciones%20en%20el%20Aula%20de%20Tecnolog%C3%ADa.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/Curso%20de%20Rob%C3%B3tica%20y%20otras%20aplicaciones%20en%20el%20Aula%20de%20Tecnolog%C3%ADa.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/CEBEK%20C-0504.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/MAX232.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/MAX232.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/L298N.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/L298N.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/PIC16F876A.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_6/Datas/PIC16F876A.pdf