Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MICROBÓTICA
Y MECATRÓNICA
Autor: Fernando Remiro Domínguez
Profesor del I.E.S. Juan de la Cierva
MICROBÓTICA
www.terra.es/personal/fremiro
S
ony Corporation ha cons-
truido un pequeño
androide que camina al
que llama SD-3X. Tiene
una aproximadamente unas
dimensiones de 500mm de alto,
220mm de ancho y 140mm de
fondo con un peso de 5Kg
(incluidas baterías). El pequeño
54
RESISTOR
robot sincroniza los movimien-
tos de 24 uniones en su cuerpo,
el robot puede realizar los movi-
mientos básicos como caminar y
la dirección cambiante, así como
levantarse equilibrando sobre
una pierna, mientras da punta- CARACTERÍSTICAS
piés a una pelota o baila. Es
capaz de recorrer aproximada-
CPU Procesador RISC de 64Bit (x2)
mente 15 metros por minuto,
dando cuatro pasos por segundo. Memoria interna 32MB DRAM (x2)
El robot utiliza la misma Sistema operativo Aperios (SO a Tiempo Real, original de Sony)
arquitectura que el robot de cua- Cartucho memoria 16MB (x2)
tro patas "AIBO". Los actuado- Entradas/Salidas
res formados por un motor, la Ranura PC Card (Tipo II) (x1)
carcasa y un circuito, hacen que Ranura Memory Stick (x2)
el cuerpo se mueva coordinada- Grados de Libertad
mente de forma dinámica en Cabeza 2 Grados de libertad
tiempo real. Cuerpo 2 Grados de libertad
Para caminar el SDR-3X Brazos 4 Grados de libertad
debe controlar continuamente su
Piernas 6 Grados de libertad
centro de gravedad y la inercia
de los movimientos. Sensores
Entrada de Visión Cámara Color 180,000 1/5 CCD
En el número anterior descri- Entrada Voz Micrófono (x2)
bíamos el funcionamiento de un Detección Distancia Sensor infrarrojos
servomotor de radiocontrol, y Detección Aceleración Acelerómetro de dos ejes
prometimos que en este número Detección Angular Sensor de dos ejes
íbamos a conectar este a un Detección Tacto Sensores contacto (x8)
microcontrolador PIC16F84 Salida Voz Altavoz
para controlarlo, así que manos a
la obra. Tabla 1.- Características técnicas del androide SDR-3X
MICROBOTICA PAGS 26/12/02 12:03 Página 55
Vcc
El circuito propuesto se muestra en el esquema de la Figura 1:
R1 R2 R3
Vcc
10K 10K 10K
18 RA1 RB0 6
1 RA2 RB1 7
MICROBÓTICA
2 RA3 RB2 8
hitec
3 RA4 RB3 9 HS-300
4 MCLR RB4 10
55
RESISTOR
Figura 1.- Conexión del PIC16F84A para control del servomotor
Bus de datos
CLKOUT (=Foosc/4)
8
0 M 1 Retardo
RA4/T0CKI U M
U de 2 Registro TMRO
pin 1 X
0 X ciclos
T0SE
T0CS PSA
0
M Preescaler de 8 bits
Perro 1 U El bit T0IF se
Guardián X 8 pone a 1 si hay
overflow
3
Multiplexor 1-8 PS2:PS0
PSA
WDT bit de habilitación
MICROBÓTICA
0 1
MUX PSA
WDT
time-out
10 ms
56
RESISTOR Extremo
hitec
HS-300
Izquierda
1 ms
10 ms
hitec
HS-300
Posición
Central
1,5 ms
10 ms
Extremo
Derecha hitec
HS-300
2 ms
Figura 3.- Señales de control del servomotor que se obtienen con el circuito de la Figura1 y el programa Servo5
rrirá cada 1ms, para conseguir bit T0IE (INTCON<5>) al los valores correspondientes al
todo esto cargamos en el registro mismo tiempo que se habilita número de veces que debe inte-
OPTION el valor b'00001000'. poniendo a "1"el bit GIE rrumpir TMR0 para obtener la
Todos estos registros se encuen- (Global Interrupt Enable). señal modulada en PWM de 1ms
tran en el Banco 1, ya en el Seguidamente se lee el valor del a nivel alto y 19 a nivel bajo o
Banco 0 se habilita la fuente de las líneas RA0 y RA1 y depen- 1,5 ms a nivel alto y 18,5 a nivel
interrupción por desbordamien- diendo de su estado se carga en bajo o 2 ms a nivel alto y 18 ms
to del TMR0 poniendo a "1" el el registro CONTA y CONTA1 a nivel bajo, para conseguir el
MICROBOTICA PAGS 26/12/02 12:03 Página 57
En el próximo número de
esta revista presentaremos la
construcción de un microrobot
MICROBOTICA PAGS 26/12/02 12:03 Página 58
swapf STATUS,w
movwf STATUS_TEMPORAL
decf CONTA,f
movlw .7
movwf TMR0
swapf STATUS_TEMPORAL,w
movwf STATUS
swapf W_TEMPORAL,f
swapf W_TEMPORAL,w
bcf INTCON,T0IF
retfie
INICIO clrf PORTB ;Borra los latch de salida del PORTB
clrf PORTA ;Borra los latch de entrada del PORTA
bsf STATUS,RP0 ;Selecciona banco 1
clrf TRISB ;PortB se configura como Salida
movlw b'00011111'
movwf TRISA ;Puerta A se configura como Entrada
58
movlw b'00001000' ;Asigna el predivisor al WDT para que no divida TMR0
movwf OPTION_REG
bcf STATUS,RP0 ;Selecciona banco 0
movlw b'10100000'
RESISTOR movwf
movlw
INTCON
.9
;Interrupción GIE-SI TMR0-SI
movwf TMR0 ;carga TMR0 con 150
LEE_PORTA movf PORTA,W ;Lee el valor de RA0:RA1
andlw b'00000011'
call TABLA1 ;Lee el valor del número de veces que está a nivel alto
movwf CONTA ;Salva el valor en CONTA
movf PORTA,w ;Lee el valor de RA0:RA1
andlw b'00000011'
call TABLA2 ;Lee el valor del número de veces que está a nivel bajo
movwf CONTA1 ;Salva el valor en CONTA1
bsf PORTB,0 ;Pone RB0 a nivel alto
ESPERA movf CONTA,f
btfss STATUS,Z ;Se ha interrumpido el número de veces?
goto ESPERA
movf CONTA1,w ;Pasa el valor de CONTA1 a CONTA
movwf CONTA
bcf PORTB,0 ;Pone RB0 a nivel bajo vb
ESPERA1 movf CONTA,f
btfss STATUS,Z ;Se ha interrumpido el número de veces?
goto ESPERA1
goto LEE_PORTA
TABLA1 addwf PCL,f ;Devuelve el numero de veces a nivel alto RB0
retlw .4 ; Retorna el valor 4 en decimal
retlw .6 ; Retorna el valor 6 en decimal
retlw .8 ; Retorna el valor 8 en decimal
retlw .16 ; Retorna el valor 16 en decimal
TABLA2 addwf PCL,f ;Devuelve el numero de veces a
nivel bajo RB0
retlw .76 ; Retorna el valor 76 en decimal
retlw .74 ; Retorna el valor 74 en decimal Foto2.- hexápodo con
retlw .72 ; Retorna el valor 72 en decimal tres servomotores.
retlw .64 ; Retorna el valor 64 en decimal