Microrobot RED BULL
Construcción de la estructura
Diseño graficoRealización en GerberFresado en CNCAplicación de
separadoresMontaje de motoresMontaje de rueda
loca y ruedas motrices
Diseño y construcción de la placa base
Programador PICControl de motores con L293Circuito de alimentaciónSensores CNY-70Sensores GP2d12Circuito de resetCircuito del oscilador
Programador PIC
La programación del PIC se realiza a través de RB6 y RB7.
A través de RB7 se leen/escriben los datos.
RB6 es la entrada de sincronismo.
La patilla 1 (MCLR/VPP) predispone el PIC para ser leído o programado.
R6100
R4 1K5
R510K
JP1
JUMPER
P1DB9
5 9 4 8 3 7 2 6 1
D4
1N4148
R8 1K
R710K
Q1
BC547
U1
PIC16F873
1234567
910
11121314
2827262524232221
1817
16
15
2019
8
MCLR/VPPRA0/AN0RA1/AN1RA2/AN2RA3/AN3/VREFRA4/TOCKIRA5/SS/AN4
OSC1/CLKINOSC2/CLKOUT
RC0/T1OS0/T1CKIRC1/T1OS1/CCP2RC2/CCP1RC3/SCK/SCL
RB7RB6RB5RB4RB3RB2RB1
RB0/INT
RC7/RX/DTRC6/TX/CK
RC5/SDO
RC4/SDI/SDA
VDDVSS
VSS
SW1RESET
J2
CON25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
JP2
JUMPER1
D6
1N4148
D5
5V1
D3
1N4148
D2
8V2
+C5
100uF
+C6
22uF
Q2
BC547
C3
27pFC4
27pF
D1
1N4148
X1
4MHz
Control de motores con L293B
Funcionamiento:
Conexión al PIC
VCC
D13
1N4007
U2A
40106
1 2
D14
1N4007
U3
L293
1
2
3
4
5
6
7
8 9
10
11
12
13
14
15
16EN1
IN1
OUT1
GND
GND
OUT2
IN2
VS EN2
IN3
OUT3
GND
GND
OUT4
IN4
VSS
JP5
12
D12
1N4007
D8
1N4007
D9
1N4007
JP6
12
D11
1N4007
C5
100Kp
U2B
40106
3 4
D15
1N4007
D10
1N4007
RB6
MOTORPWM2
MOTORPWM1
RB4
5V - 8V
RC2 - CCP1
RC2 - CCP1
Circuito de alimentación
Regulación de los 12V. de la batería a 5V/8V
Condensador de desacoplo lo más cerca posible de la entrada de los integrados.
V C CV D D
V s
J P 1
B a t e rí a
12
U 17 8 0 8
1 3
2
V I V O
GN
D
U 27 8 0 5
1 3
2
V I V O
GN
D
C 1
1 0 0 K p F
S 1
C O N M U TA D O R
Sensores CNY-70
Distancias y colocación.
Esquema teórico del sensor.
Conexión al PIC.
Sensores GP2D12
Funcionamiento de los sensores.
Conexión al puerto analógico del PIC.
Circuito de reset
Funcionamiento.
Conexión al PIC.
VCC
SW1
PULSADORMIN
R5
100
D7
1N4148
R6
10K
RESET
Oscilador 4Mhz
Funcionamiento.
Conexión al PIC.
Y1
CRYSTAL
C4
27p
C3
27p
Placa Base
VCC
VCC
VCC
VCC
VCC
VCC
VCC
VCC
VCC
VCC
VDD
VCC
VCC
E6
U1
PIC16F873True
123456789
10
11121314
282726252423222120191817
16
15
MCLR/VPPRA 0/A N0RA 1/A N1RA 2/A N2RA 3/A N3/V REFRA 4/TOCKIRA 5/S S/A N4VS SOS C1/CLKINOS C2/CLKOUT
RC0/T1OS 0/T1CK IRC1/T1OS 1/CCP2RC2/CCP1RC3/S CK/SCL
RB 7RB 6RB 5RB 4RB 3RB 2RB 1
RB 0/INTVDDVS S
RC7/RX/DTRC6/TX/CK
RC5/S DO
RC4/S DI/SDA
E9E10
E8
E7
E5
D1
1N4148
D2
1N4148
U57805
1 3
2
V I VO
GN
D
Q1
BC547
+C2
100uF
J1
DB 9
5 9 4 8 3 7 2 6 1
S2
SW DIP-4
1234
8765
Q2
BC547
JP26
1234
R3
1k5
R2
10k
C5
100Kp
U6
MA X232
123
6
45
14131211
910
87 15
16
C1+V+C1-
V-
C2+C2-
T1OUTR1IN
R10UTT1IN
910
87 GND
VCC
d6
8V2 +C1
22uF
R16100k
D5
5V1
D3
1N4148
E2E1
E3
D4
1N4148
C6
100Kp
R4
1K
JP22
POWER
12
D10
1N4007
D11
1N4007
D8
1N4007
D9
1N4007
JP7
123
JP8
123
JP10 123
JP9
123
U2A
40106
1 2
U2D
40106
98
U2E
40106
1110
U2B
40106
3 4
U2F
40106
1312
U2C
40106
56
+
C8
22 uF
P1
594837261
JP23 123
+
C9
22 uF
E13E12
+C10
22 uF
+C11
22 uF
C12
100 kp
Y1
CRYS TA L
U3
L293
1
2
3
4
5
6
7
8 9
10
11
12
13
14
15
16EN1
IN1
OUT1
GND
GND
OUT2
IN2
VS EN2
IN3
OUT3
GND
GND
OUT4
IN4
VS SC4
27p
C3
27p
JP4 123
J3
1234
SW1
PULSADORMIN
R10
220
R11
47K
R5
100
D7
1N4148
R6
10K
J2
1234R9
47k
R8
220
D14
1N4007
D12
1N4007
D15
1N4007
D13
1N4007
R7
10K
J5
1234
U4
LCD
VO
RS
R/W
E
D0D1D2D3D4D5D6D7
R12
220
R14
220
R15
47K
R13
47K
J4
1234
C7
100kP
JP15
12
JP16
12
JP14
12
JP6
12
JP5
12
RA0 / AN0
RA1 / AN1
RA2 / AN2
RA3 / AN3 / VREF
RA5 / AN4 / SS
RA4 / TOCK1
RESET
RC0 / T1OSO / T1CK1
RC1 / T1OS1 / CCP2
RC2 / CCP1
RC3 / SCK / SCL
RC4 / SDI / SDA
RC5 / SD0
TransmisionRC6 / TX / CK
RC7 / RX / DT
RELOJBATERIA
5 V / 12 V
JUMPER RB7JUMPER MCLR
JUMPER ALIMENTACION
MOTORPWM2
MOTORPWM1
E / S (RB3)
E / S (RB2)
E / S (RB1)
E / S (RB0)
RB6
RB4
BUSI2C SPI
Programas y organigramas
Laberinto
Rastreador
Velocista
Laberinto
Objetivo de la prueba de laberinto
Estrategia a seguir
Explicación del organigrama
Configuración y Conversión
Configuración de registros
movlw b'00000110';Configuracion DIG/ANA
movwf ADCON1 ;Puerta A E/S digitales movlw b'00001111' movwf TRISB ;Puerta B como salida clrf TRISA ;RA4-RA0 salidas movlw b'11111001' movwf TRISC ;RC2- RC3 salida
Activación del conversor y subrutina aplicada
movlw b'10010001' ;Fijacion del canal para la conversion
movwf ADCON0 ;Fosc /32, canal AN2, ADC en On
laberfin .asm
C onfiguración de registros:-T odas E /S del PuertoA d ig ita les
-Puertos A y B com o salidas-R C 1 y R C 2 com o salidas
-Activam os C onversorA / D-Seleccionam os canal AN 2
convAD
AD R ESH x b '11111000' = longitud
Bucle
C anal AN 2 corresponde a lsensor d irig ido a la parte
fronta l de l robot
Detección de la pared delantera
Funcionamiento de la detección
Subrutina DERECHARRR
longitud - b '10000000' = w
ST AT U S,Z = 0?
longitud - b '01111000' = w
ST AT U S,Z = 0?
longitud - b '01110000' = w
ST AT U S,Z = 0?
longitud - b '01101000' = w
ST AT U S,Z = 0?
longitud - b '01100000' = w
ST AT U S,Z = 0?
longitud - b '01011000' = w
ST AT U S,Z = 0?
longitud - b '01010000' = w
ST AT U S,Z = 0?
10cm
11cm
12cm
13cm
14cm
15cm
16cm
D ER EC H AR R R
N o
N o
N o
N o
N o
N o
N o
con1Detección pared Izquierda
Detección de la pared izquierda y subrutinas de movimiento
con1
-Activamos ConversorA/ D-Seleccionamos canal AN0
convAD
ADRESH x b'11111000' = longitud
longitud - b'10000000' = w
STATUS,Z = 0?
longitud - b'01111000' = w
STATUS,Z = 0?
longitud - b'01110000' = w
STATUS,Z = 0?
10cm
11cm
12cm
No
No
El canal AN0 corresponde alsensor situado al lateral
izquierdo del robot
longitud - b'01101000' = w
STATUS,Z = 0?
longitud - b'01100000' = w
STATUS,Z = 0?
longitud - b'01011000' = w
STATUS,Z = 0?
longitud - b'01010000' = w
STATUS,Z = 0?
13cm
14cm
15cm
16cm
No
No
con2
DERECHA
Bucle
ADELANTE
Bucle
No
No
IZQUIERDA
Bucle3
3
4
4
longitud - b'01001000' = w
STATUS,Z = 0?
con2
longitud - b'01000000' = w
STATUS,Z = 0?
longitud - b'00111000' = w
STATUS,Z = 0?
longitud - b'00110000' = w
STATUS,Z = 0?
longitud - b'00101000' = w
STATUS,Z = 0?
longitud - b'00100000' = w
STATUS,Z = 0?
longitud - b'00011000' = w
STATUS,Z = 0?
longitud - b'00010000' = w
STATUS,Z = 0?
longitud - b'00001000' = w
STATUS,Z = 0?
longitud - b'00000000' = w
STATUS,Z = 0?
>=80cm
Bucle
IZQUIERDA
No
No
No
No
No
No
No
No
No
No
Continuación de las preguntas hasta el valor digital correspondiente a 80cm, después realiza un bucle hasta el inicio del programa
Rastreador
ADELANTE
Habilito los dos motores en el L293
-Motor derecho adelante-Motor izquierdo adelante
tiempos1
return
tempo
DERECHA
Habilito el motor izquierdo en el L293
-Motor izquierdo adelante
tiempos1
return
tempo
IZQUIERDA
Habilito el motor derecho en el L293
-Motor derecho adelante
tiempos1
return
tempo
Subrutinas de movimientos simples
Atrás
Subrutinas de DERECHARRR y Conversión A/D
convAD
Todo el Puerto A como entradas
Limpiar wdt
Configuración del Puerto A comoentradas analogicas
PIR1,ADIF = 0Configuración del flagde fin de conversión
ADCON,GO = 1 Inicio de la conversión
PIR1,ADIF=1?
Reconfigura el PuertoA como digital
return
No
DERECHARRR
Habilito los dos motores en el L293
-Motor derecho atras-Motor izquierdo adelante
tiempos3
return
tempo
tiempos2
tempo
Carga de tiempospara el giro exacto de90º (temporizacion de
256x256x2
Inhabilito los dos motores en el L293
RastreadorAtrás Inicio
Rastreador
Objetivo de la prueba
Estrategia a seguir
Organigrama
Organigrama principal
Configuración de registros
Realización paso por paso
Subrutinas NB, BN y movimiento
rastrfin.asm
Configuración de registros:-Todas E/S del PuertoA digitales
-Puertos A y B como salidas-RC1 y RC2 como salidas
NB
RB3=1?
No
NB
RB3=0?
No
Giro a Izquierdacon temporización
BN
RB0=1?
BN
RB0=0?
No
No
BN
RB0=1?
BN
RB0=0?
No
No
BN
RB0=1?
BN
RB0=0?
No
No
Giro a izquierdacon temporización
NB
RB3=1?
No
NB
RB3=0?
No
NB
RB3=1?
No
NB
RB3=0?
No
Primera parte
N B
R B3=1?
N o
N B
R B3=0?
N o
G iro a Izquierdacon tem porización
BN
R B0=1?
BN
R B0=0?
N o
N o
BN
R B0=1?
BN
R B0=0?
N o
N o
1
In ic io
1. Seguimiento de Negro-Blanco para detectar bifurcación en RB3
2. Cambio de programa, del negro-blanco al blanco-negro con un giro a izquierdas temporizado
3. Seguimiento de Blanco-Negro para evitar la entrada de la bifurcación contraria
4. Seguimiento de Blanco-Negro para evitar la salida de la bifurcación contraria Segunda parte
Segunda parte
1. Seguimiento de Blanco-Negro para detectar bifurcación en RB0
2. Cambio de programa, del blanco-negro al negro-blanco con un giro a derechas temporizado
3. Seguimiento de Negro-Blanco para evitar la entrada de la bifurcación contraria
4. Seguimiento de Negro-Blanco para evitar la salida de la bifurcación contraria
G iro a derchascon tem porización
N B
R B3=1?
N o
N B
R B3=0?
N o
N B
R B3=1?
N o
N B
R B3=0?
N o
BN
R B0=1?
BN
R B0=0?
N o
N o
1
In ic io
Inicio
Subrutinas NB, BN y movimientoNB
RB2=1?
RB1=0?
RB1=0?
Adelante
Derecha
Izquierda
Derecha
return
No
No
No
BN
RB2=0?
RB1=1?
RB1=1?
Adelante
Derecha
Izquierda
Izquierda
return
No
No
No
Izquierda
Habilitamos los dosmotores en el L293
-Motor derecho adelante-Motor izquierdo atras
return
Adelante
Habilitamos los dosmotores en el L293
-Motor derecho adelante-Motor izquierdo adelante
return
Derecha
Habilitamos los dosmotores en el L293
-Motor derecho atras-Motor izquierdo adelante
return Velocista
Velocista
Objetivo de la prueba
Estrategia a seguir
Organigrama
Organigrama principal
Configuración de registros
Subrutinas de movimiento
adelante
Habilito los dos motores en el L293
-Motor derecho adelante-Motor izquierdo adelante
return
derecha
Habilitoel motor izquierdo en el L293
-Motor izquierdo adelante
return
izquierda
Habilitoel motor derecho en el L293
-Motor derecho adelante
return
Velocfin .asm
C onfiguración de reg istros:-T odas E /S del PuertoA d ig ita les
-Puertos A y B com o salidas-R C 1 y R C 2 com o salidas
R B2 = 1?
S i
R B1 = 1?
S i
ade lante
N o
derecha
izquierda
N o
Preguntas y respuestas
Sección de la presentación en la que si algo no os ha gustado podeis preguntarla.
Si veis que nos hemos quedado mudos pedirnos que cambiemos de diapositiva
Preguntas sin respuesta
No quiero ver reirse a nadie
(Fernando Remiro, si ves conveniente quitar estas 2
ultimas diapositivas tienes todo el permiso)
Discurso sentimental
Por primera vez en nuestra vida, nos hemos sentido en clase como en casa. Estoy seguro de poder decir que nos hemos juntado una de las mejores clases, y no solo como estudiantes, sino como personas.
¡GRACIAS A TODOS!