martes, 31 de mayo de 2011

Robot minisumo

Lista de materiales
Microcontrolador PIC 16F628A
LM293D
Resistencias
·         2 de 330 Ω
·         2 de 47 k Ω
·         10 de 120 Ω
PRESET  Miniatura
·         10K VERTICAL
Capacitores:
·         10 µFd a 25 V
·         2 de 100µ a 50V
·         2 de 100 MF a 16v
Diodos.
·         10 de IN4006 UB
·         10 LED´s 3 v
Regulador de voltaje 7805
2 CNY70 sensor infrarrojo
Bumper sensor de contacto
Zócalo.
·         16 pines
·         18 pines
Conectores.
·         Cable para DB9
·         Cable para puentes
Interruptor
Pila de 9v
2 Clip para pila
1 Porta pila
Circuito impreso en tabla fenólica  (5 cm x10 cm)
Cloruro férrico.
2 Motorreductor
2 Llantas.
 Rueda loca
Acrílico
Soldadura.
Cautín de punta de lápiz
Taladro
Brocas  y
Especificaciones de materiales.



Nombre del parámetro
Valor
Tipo de Programa Memoria
Flash
Memoria de programa (KB)
3.5
Velocidad de la CPU (MIPS)
5
Bytes de RAM
224
Los datos EEPROM (bytes)
128
Periféricos de comunicación digital
1-A/E/USART,
Captura / Comparación / PWM Periféricos
Un PCC
Temporizadores
2 x 8 bits, 1 x 16 bits
Comparadores
2
Rango de temperatura (C)
-40 A 125
Tensión de funcionamiento (V)
2-5.5
Pin Conde
18



Esquema del PIC16F628A
LM293D.
Es un circuito electrónico que permite a un motor eléctrico DC girar en ambos sentidos, avance y retroceso. Son ampliamente usados en robótica y como convertidores de potencia. Los puentes H están disponibles como circuitos integrados, pero también pueden construirse a partir de componentes discretos.
Como hemos dicho el puente H se usa para invertir el giro de un motor, pero también puede usarse para frenarlo (de manera brusca), al hacer un corto entre las bornas del motor, o incluso puede usarse para permitir que el motor frene bajo su propia inercia, cuando desconectamos el motor de la fuente que lo alimenta.
Diagrama del puente H LM293D.
Armado del prototipo
Creación del circuito impreso.
Comenzamos por imprimir en la tabla fenólica, la cual tiene medidas de 10 x 5 cm, el circuito del prototipo esto se realizó con pintura permanente, en seguida introducimos la tabla en un recipiente el cual contiene cloruro férrico, para que eliminara el cobre que no necesitamos de la tableta.
La tabla permaneció en el recipiente y en observación durante unos 30 minutos, en ese lapso estuvimos sometiendo el recipiente a movimientos para que se pudiera realizar más rápido el proceso.
Ya concluido este proceso limpiamos con agua la tabla y con ayuda de un taladro con brocas de  y  perforamos la tableta en los lugares en que el circuito lo marcara.
Después elaboramos otro circuito impreso pero este para elaborar un medidor de potencia, el cual será independiente del otro, marcamos la tabla fenólica con la tinta permanente, y lo introdujimos al cloruro férrico, este tuvo una duración menor que el de la otra ya que es más pequeña la tabla y el cobre a eliminar es en menor cantidad.
Ya terminado el proceso con el cloruro, limpiamos la placa y de igual manera como lo hicimos con la otra tabla, perforamos en los orificios indicados en el circuito.
Programación de Microcontrolador.
Ya teniendo terminado el proceso de creación de nuestro circuito impreso, nos dirigimos a realizar el programa con el cual funcionara nuestro mini robot, el programa es el siguiente:

; SUMO WILFRIDO SEMINARIO
; ING FROYLAN MARTIN JURADO GOMEZ
; SUMO TARJETA GENERICA

            list p=16f628A
            radix hex
;*****CONFIGURATION BITS
            include P16F628A.INC
   __CONFIG _WDT_OFF&_INTRC_OSC_NOCLKOUT&_CP_OFF&_PWRTE_OFF&_MCLRE_OFF&_LVP_OFF&_BODEN_OFF           
;
MEMORIA EQU     0X20

        CBLOCK MEMORIA
        ojos
        sentidos
        junto
        pegado
        roto
        endc

       
        org 0
        GOTO inicio



        
        org 0x10
inicio

                call PUERTOS
                clrf PORTB
espera          btfsc PORTA,3
                goto espera
                call RETARDO
                call atras 

principal
                call exploracion

                btfsc sentidos,0     ; sensor de presencia atras
                call adelante       
                btfsc sentidos,1     ; sensor de presencia adelante
                call atras
                btfsc sentidos,2     ; sensor de raya atras
                call atras
                btfsc sentidos,3     ; sensor de raya adelante
                call adelante
                btfsc sentidos,4     ; sensor de choque atras
                call adelante
                btfsc sentidos,5     ; sensor de choque adelante
                call atras
                btfsc sentidos,6     ; sensor de choque derecha
                call derecha
                btfsc sentidos,7     ; sensor de choque izquierda
                call izquierda

                goto principal


exploracion
                movf CMCON,W
                andlw b'11000000'
                movwf ojos
                swapf ojos,f
                bcf STATUS,C
                rrf ojos,f
                movf ojos,w
                andlw b'00000011'
                movwf ojos

                clrf sentidos
                movf ojos,w
                sublw .1
                btfsc STATUS,Z
                bsf sentidos,2

                movf ojos,w
                sublw .2
                btfsc STATUS,Z
                bsf sentidos,3

                movf PORTB,W
                andlw b'11000000'
                movwf ojos
                swapf ojos,f
                comf ojos,f
                bcf STATUS,C
                rrf ojos,f
                rrf ojos,f
                movf ojos,w
                andlw b'00000011'
                movwf ojos

               
                movf ojos,w
                sublw .1
                btfsc STATUS,Z
                bsf sentidos,0

                movf ojos,w
                sublw .2
                btfsc STATUS,Z
                bsf sentidos,1
   
                btfss PORTA,4
                bsf sentidos,4
                btfss PORTA,5
                bsf sentidos,5
                btfss PORTA,6
                bsf sentidos,6
                btfss PORTA,7
                bsf sentidos,7

                return

derecha
                movlw b'00111001'
                movwf PORTB
                return
               
izquierda
                movlw b'00110110'
                movwf PORTB
                return

atras
                movlw b'00110101'
                movwf PORTB
                return

adelante
                movlw b'00111010'
                movwf PORTB
                return



RETARDO
        movlw     .165
        movwf     roto
PLoop0  movlw     .41
        movwf     pegado
PLoop1  movlw     .147
        movwf     junto
PLoop2  nop
        nop
        decfsz    junto, 1
        goto      PLoop2
        decfsz    pegado,1
        goto      PLoop1
        decfsz    roto,1
        goto      PLoop0
        return


PUERTOS
                bsf STATUS,RP0
                movlw b'11111111'
                movwf PORTA
                movlw b'11000000'
                movwf PORTB
                bcf STATUS, RP0
                movlw 0x33
                movwf CMCON
                return


                end

Terminando de escribir el programa en la computadora, revisamos  mediante el programa “MPASMWIN” que dicho programa no tuviera errores.
Los errores obtenidos fueron mínimos, así que los logramos resolver de manera rápida y eficiente, después de igual manera con este  programa, ya con el programa sin errores proseguimos a grabar el programa en el microcontrolador mediante un programador.
Terminando el proceso de grabación almacenamos nuestro microcontrolador en una envoltura de papel aluminio, esto para que no se dañara el dispositivo.

Proceso de soldadura de componentes del circuito base del robot.
De este momento en adelante comenzamos el armado del mini robot, comenzamos por ver el esquema, ya que ahí observamos cómo y de qué manera iban a ir conectados todos y cada uno de los elementos del circuito.
El esquema es el siguiente:
Componentes a soldar:
R 1 y R2: resistencias de 330 Ω
R3 y R4: resistencias de 47 kΩ
R5: PRESET  miniatura
C1: 10 µFd a 25 V
C2: 0.1 µFd
U1: Base para PIC 16F628A e instalar el PIC en ella
U2: Base para puente H
S1 y S2 sensores infrarrojos CNY/=
U3: Regulador de voltaje 7805
Power PIC y power MO: broches de pila de 9v
Como primer punto soldamos las resistencias ya que son los componentes más pequeños y a su vez los más fáciles de conectar, En seguida las bases tanto del microcontrolador y la del puente H, a los extremos de la base del puente H van conectados los cables que del otro extremo van conectados a los motores.
Después colocamos el regulador de voltaje 7805, y muy cerca de él los cables de los broches de la pila de acuerdo a su polaridad que se marca en el esquema, y a estos le colocamos un interruptor, para que el robot tuviera su opción de encender y apagar cuando nosotros lo decidiéramos.
Proseguimos con la instalación del PRESET miniatura, en el caso de este último los orificios en los que lo conectamos eran más grandes, ya que los pines de este son más anchos y no embonaban bien.
Colocamos los capacitores, en el cerámico no importa la posición en la que lo coloques, pero en el caso del electrolítico verificamos  como va dicho elemento de acuerdo a su polaridad.
Realizamos con ayuda de un par de cables unos puentes como los que indicaba el circuito, del mismo tamaño y a la misma distancia que en él se señala.
Adherimos por medio de cable tipo DB9 los sensores infrarrojos, esto por que dichos sensores irán colocados uno adelante y otro en la parte trasera del robot, y por medio de este cable es más sencillo conectarlos, los pines de estos sensores tienen que  ir conectados como en el esquema viene ya que si no es de esa manera el dispositivo no  funcionara.
En el caso del sensor de contacto mejor conocido como bumper, lo colocamos poniendo un puente desde el regulador del voltaje 7805 a uno de sus pines, ya que este sensor funciona con 5 volt de energía, si le agregamos más voltaje , lo podríamos quemar, otro de sus pines de igual manera le colocamos un puente pero hacia el negativo del circuito (tierra), y el otro va directo al pin 3 del microcontrolador.
Con esto último concluimos el proceso de armado del circuito base del robot, esto quiere decir que este circuito es el más importante ya que contiene al cerebro del robot que sería en este caso el microcontrolador y además a las extremidades del mismo que en este caso son ruedas que funcionan gracias a que están conectados a los motores que se pueden manejar por medio  del puente H.
El circuito quedo conformado de la siguiente manera:
Armado del medidor de potencia.
El medido de potencia es un circuito compuesto de capacitores, resistencias y LED´s, el objetivo de este circuito, como su nombre lo dice es medir la potencia a la que trabajan  los motores del robot.
El medidor funciona de la siguiente manera, este  no va conectado a un voltaje como tal, va conectado a los motores del robot, y de ahí por medio de los LED´s verificaremos que tan rápido trabajan los motores, lo sabremos porque el circuito cuenta con 2 series de 5 LED´s cada una, los cuales van conectados una a cada uno de los motores, el número de LED´s que enciendan es la cantidad de potencia que tienen, ósea que la cantidad de potencia de los motores será representada con el número de LED´s encendidos.
Este es el circuito que se empleó para el medidor de potencia.
Componentes a soldar, representados en el circuito:
De R1 a R10: resistencias de 120 Ω
De D1-D10: diodos rectificadores de IN4006 UB
De L1-L2:  LED´s 3 v
C1 y C2: Capacitores de 100 MF a 16v
En este caso como en el anterior comenzamos a soldar las resistencias, después colocamos los diodos rectificadores, de acuerdo a la polaridad marcada en el circuito y por último los LED´s, que de igual manera tiene una polaridad los colocamos de acuerdo a la misma de forma en como lo indica el circuito.
Ya terminado el proceso de soldadura, conectamos el circuito a los motores del robot, y damos por terminado el armado del medidor de potencia.
Y así es como quedo después de soldar los componentes:
Armado de la Carcasa del Robot.
La carcasa de nuestro prototipo está realizada con acrílico, ya que es un material resistente y cubría perfectamente con los requerimientos que necesitábamos.
Primero cortamos del acrílico en diferentes medidas , las cuales son las siguientes:
·         1 de 10 x 10 cm
·         1 de 10 x 15 cm
·         2 de 12 x 3 cm
·         1 de 7 x 10 cm
·         2  en forma triangular de 7 de largo y 3 de ancho.
Los cortes de este material fueron realizados con una segueta, y todo el armado fue  adherido con silicón.
Utilizamos la de 10 x 15 cm  como base para el robot en la parte de atrás colocamos los motores, y en la parte de enfrente colocamos la rueda loca y con la tabla de 10 x 10 cm la colocamos con una inclinación de 45º, a esta le adherimos una de las dos tablitas de 3 x 12 cm formando una barrera.
A la otra tabla de 12 x 3 cm le acoplamos el medidor de potencia, que a su vez le adherimos las dos tablitas de en forma de triángulos.
Ahora colocamos la tabla de 7 x 10 cm en la parte superior de los motores, para que estos ejercieran un soporte a la tabla, ya que en esta última colocamos el medidor de potencia.
En el prototipo quedaba un espacio entre la barrera de defensa y el medidor de potencia, así que ahí colocamos el compartimiento de las pilas, aun lado de este el interruptor.
Los  sensores infrarrojos fueron adheridos, uno en la parte inferior trasera del vehículo y el otro en la parte inferior delantera del carro, el sensor de contacto fue puesto en la parte trasera del vehículo,  para que en caso de algún contacto por detrás se accionara, por último el circuito base del robot fue incluido encima de los motores, quedando alejado de cualquier contacto hacia su oponente, y además si existiera un falla con algún componente sería demasiado accesible repararlo.
Como último punto colocamos las llantas a los motores,  le colocamos al circuito el puente H y el microcontrolador en sus respectivas bases.
Ya terminado el armador del robot colocamos las fuentes de energía en su respectivo compartimiento y accionamos el interruptor, dando como resultado el funcionamiento deseado por este equipo de trabajo, probamos sensores y checamos que todo estuviera bajo control.
Dando como resultado el siguiente prototipo.
El prototipo ya concluido quedo de la siguiente manera:
Esta es la vista superior del prototipo, donde se puede observar el circuito y el compartimiento de las pilas.

En esta otra imagen podemos observar el robot de manera lateral:

9 comentarios:

  1. Podrias poner el circuito completo

    ResponderEliminar
  2. Disculpen, tendrán algún proyecto que tenga su código fuente en CCS, o algún robot de este tipo programado con 16F876A? esque me gustaria hacer uno pero he programado en C compiler, y su programación me es un poco desconocida

    ResponderEliminar
  3. ENCERIO NO HAY MANERA DE QUE PASES EL DIAGRAMA DEL CIRCUITO

    ResponderEliminar
  4. cuanto quieres por pasarme el circuito $$

    ResponderEliminar
  5. Que pasa si no le pongo el regulador de voltaje?

    ResponderEliminar