Capítulo 6. MÓDULOS DE CAPTURA, COMPARACIÓN Y MODULACIÓN DE
6.6. Chuleta-resumen de los registros asociados al módulo PWM
1.o Asignar el período cargando el oportuno valor en PR2.
2.o Asignar la anchura del pulso cargando el registro CCPR1L y los dos bits 5 y 4 del CCP1CON.
3.o Configurar la línea RC2/CCP1 como salida.
4.o Asignar el valor del predivisor y activar el TMR2 escribiendo en T2CON.
5.o Configurar el Módulo CCP1 en modo PWM.
Anchura Impulso = (CCPR1L:CCP1CON<5:4>) • TOSC• Valor Predivisor TMR2.
Figura 6.6. Esquema de la estructura interna del módulo CCP1 cuando funciona en modo PWM.
Figura 6.7. Tabla que recoge los registros que se manejan en la programación del modo PWM.
DIREC- VALOR VALOR
CIÓN NOMBRE BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 EN POR, EN EL RESTO BOR DE RESETS
0Bhh, INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
8Bh, 10B, 18Bh
0Ch PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 08h PIE1 PSPIE ADIE RCIE TXIE SSPIE CCPIIE TMR2IE TMR1IE 0000 0000 0000 0000 87Ch TRISC Registro DE CONFIGURACIÓN DE LA PUERTA C 1111 1111 1111 1111
11Eh TMR2L Registro del módulo TMR2 xxxx xxxx uuuu uuuu
12h T2CON — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPSI T2CKPS0 xxxx xxxx uuuu uuuu
92h PR2 Registro de período del TMR2 ––00 0000 ––uu uuuu
15h CCPR1L Registro del byte de menos peso del módulo de captura/comparación/modulación xxxx xxxx uuuu uuuu 16h CCPR1H Registro del byte de más peso del módulo de captura/comparación/modulación xxxx xxxx –0 0000
17h CCP1CON — — CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1MO –00 0000 –00 0000
TRABAJO CON LOS MÓDULOS CCP
En este capítulo, se ha visto la teoría concerniente a los módulos CCP. Vamos ahora a mostrar con dos ejemplos los tres modos de funcionamiento posibles: captura/comparación/modulación de an- chura de pulsos.
Enunciado primero
Se quiere hacer trabajar al módulo CCP1 en modo comparación. El TMR1 asociado a este modo tra- bajarỏ en modo contador de impulsos externos, donde la seủal que se le aplica es proporcionada por el generador de la Micro’PIC I/O. Los pulsos que deberá contar vienen determinados por una cons- tante n.
A su vez, la seủal de salida generada por el múdulo CCP1 cuando el TMR1 llegue a su valor, es aplicada a la patita RA4/T0CKI, de modo que incremente el valor del TMR0, que estará configura- do como contador de eventos externos. El tratamiento se realizará con interrupciones y un LED bas- culará cada vez que el TMR0 se desborde.
Jugando con los valores de los predivisores de frecuencia y de la constante nse pueden obtener diferentes temporizaciones.
Esquema eléctrico
Con este ejercicio se pueden obtener grandes temporizaciones, ya que se está enlazando el funcio- namiento de dos temporizadores. Para ello, la seủal de salida del múdulo CCP1 (RC2/CCP1) debe- rỏ unirse fớsicamente con la seủal de entrada de impulsos del TMR0 (RA4/T0CKI). (Figura 6.8.)
La entrada de impulsos del TMR1, por su parte, vendrá dada por la unión de la patita RC0/T1CKI con el generador del Micro’PIC I/O. El LED se corresponderá con la línea RB0, por lo que se puede utilizar uno de los diodos de la barra de LED del Micro’PIC Trainer.
Organigrama
En el cuerpo principal del programa sólo se realizará la configuración e inicialización de los regis- tros que se van a utilizar, tal y como se muestra en la Figura 6.9. Luego el programa deberá quedarse en un bucle infinito a la espera de que se produzca una interrupción. A la vuelta de la interrupción se seguirá en dicho bucle.
Programar PIC es fácil
126
Cuando se trabaja con interrupciones se necesita utilizar, al menos, dos organigramas: uno para el tratamiento de la interrupción y otro para el programa principal. Si el programa principal o la in- terrupción son complejos, sus organigramas mostrarán los llamamientos a subrrutinas y éstas debe- rán especificarse en otros organigramas.
La Figura 6.10 muestra el organigrama de tratamiento de interrupción.
El primer recuadro INTER no se traduce en ninguna instrucción; representa la entrada a la ruti- na. La salida, asimismo, también debe ser única.
Siempre que se habilite más de una interrupción, el primer paso será discriminar de entre los ti- pos posibles aquel que la ha producido. En nuestro caso, tenemos la interrupción del TMR0 al des- bordarse, lo cual hará cambiar de estado al LED conectado en RB0, y la interrupción provocada cuando el comparador del módulo CCP1 detecta la igualdad del TMR1 con el valor programado. En ambos casos se debe poner a 0 el seủalizador de interrupciún antes de volver.
Figura 6.8. Esquema eléctrico del ejercicio propuesto.
PIC16F873 1
2 3 4 5 6 7 8 9 10 11 12 13 14
RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2 RB1 RB0/INT V
V RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA
DD SS
28 27 26 25 24 23 22 21 20 19 18 17 16 15 MCLR#/V /THV
RA0/AN0 RA1/AN1 RA2/AN2/V RA3/AN3/V RA4/T0CKI RA5/AN4/SS#
V OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL
PP
REF- REF+
SS
15 pF CRISTAL 4 Mhz
GENERADOR MICRO’PIC I/O
+5 V 100
RESET In4148 10K
+5V
330
LED 15 pF
Figura 6.9. Organigrama del cuerpo principal del ejercicio propuesto.
2
Figura 6.10. Organigrama de la rutina de tratamiento de interrupción.
Programa comentado
El programa correspondiente al enunciado dado queda como sigue:
LIST P=16F873 ; Se indica el tipo de
; procesador
RADIX HEX ; Sistema de numeración
; hexadecimal
INCLUDE ôP16F873.INCằ ; Se incluye la definiciún de
; los registros internos en
; una librería
n EQU .500 ; N.ode pulsos externos a
; contar por el TMR1
ORG 0x00 ; Inicio en el Vector de
; Reset
goto INICIO ; Va a la primera instrucción
; del programa
ORG 0x04 ; Vector de interrupción
INTER btfsc INTCON,T0IF ; ¿Interrupción del TMR0?
goto INTER_TMR0 ; Sí. Ir a tratamiento btfss PIR1,CCP1IF ; No. ¿Interrupción por
; CCP1?
goto VOLVER ; No. Falsa interrupción. Ir
; a VOLVER
INTER_CCP1 movf CCP1CON,W ; Se bascula el disparo
xorlw b’00000001’ ; de RC2/CCP1
movwf CCP1CON
bcf PIR1,CCP1IF ; Reponer el flag de CCP1
goto INI_TMR1 ; Ir a parte común
INTER_TMR0 movlw b’00000001’ ; Variar el valor del LED
xorwf PORTB,F
bcf INTCON,T0IF ; Reponer el flag del TMR0
INI_TMR1 clrf TMR1L ; Inicializar el TMR1
clrf TMR1H
VOLVER retfie ; Vuelta de interrupción
; Comienzo del programa principal
INICIO clrf PORTB ; Limpia salidas
clrf PORTA
clrf PORTC
bsf STATUS,RP0 ; Cambio al banco 1
bcf STATUS,RP1
Prueba del programa
Para la prueba del programa vamos a hacer uso de los sistemas Micro’PIC TraineryMicro’PIC I/O.
La grabación del microcontrolador se realizará como en capítulos anteriores. Además, deberá te- nerse en cuenta:
1.o Deberán conectarse las patitas del PIC como se explica en el apartado de Esquema Eléctrico. Di- chas patitas están accesibles en el Micro’PIC I/O.
2.o Los LED del Micro’PIC Trainer deberán estar activados mediante el jumper J7.
3.o El interruptor RA4 del Micro’PIC Trainer debe estar a ‘1’ para no interferir con la seủal que genera RC2/CCP1.
movlw b’00000110’ ; Puerta A E/S digitales
movwf ADCON1
clrf TRISB ; Puerta B como salida
movlw b’00011111’ ; Puerta A como entrada
movwf TRISA
movlw b’11111011’ ; RC0 entrada, RC2 salida
movwf TRISC
movlw b’11101111’ ; Predivisor de 128 asociado movwf OPTION_REG ; al perro guardián
bsf PIE1,CCP1IE ; Habilitación de
; la interrupción del CCP1
bsf INTCON,T0IE ; Habilitación de
; la interrupción del TMR0
bcf STATUS,RP0 ; Cambio a banco 0
movlw b’00000010’ ; Se deshabilita el TMR1
movwf T1CON
movlw b’00001000’ ; Se configura el CCP1 en
movwf CCP1CON ; modo comparación
clrf TMR1L ; Inicializar el TMR1
clrf TMR1H
movlw HIGH n ; Mueve la parte alta del movwf CCPR1H ; valor a contar por el TMR1 movlw LOW n ; Mueve la parte baja del movwf CCPR1L ; valor a contar por el TMR1
clrf TMR0 ; Inicializar TMR0
bsf T1CON,TMR1ON ; Activación del TMR1 movlw b’11000000’ ; Habilitación de las movwf INTCON ; interrupciones en general
BUCLE clrwdt ; Refresca el perro guardián
goto BUCLE END
La Figura 6.11 muestra la conexión de las tarjetas Micro’PIC I/OyMicro’PIC Trainerpara la ejecución del programa.
De los dos LED encendidos en el Micro’PIC Trainer, uno de ellos es el de conexión de la placa y el otro el que bascula cuando el TMR0 se desborda. El poliscopio, por su parte, muestra los pul- sos aplicados por el generador del Micro’PIC I/Oal TMR1.
Enunciado segundo
Los módulos CCP1 y CCP2 pueden trabajar simultáneamente en diferente modo. En este ejercicio vamos a hacer trabajar al módulo CCP2 en modulación de anchura de pulsos para el gobierno de un motor, y al módulo CCP1 en comparación para controlar el desplazamiento de dicho motor. El TMR1 actuará en modo contador de eventos externos, donde los impulsos serán generados por el encoder asociado al motor.
La secuencia que se pretende realizar con este programa es:
1.o Arrancar el motor suavemente en el sentido horario hasta llegar a la velocidad máxima.
2.o Girar en sentido horario tantos pasos como determine la constante ôHORARIOằ.
3.o Parar un segundo.
4.o Girar en sentido antihorario tantos pasos como indique la constante ôANTIHORARIOằ, a la velo- cidad que determinen los interruptores (RA4-RA0)• 8.
5.o Decrecer la velocidad hasta llegar a detener el motor.
6.o Parar un segundo.
7.o Vuelta al paso 1.o.
Figura 6.11. Fotografía del programa en ejecución.
Esquema eléctrico
Para la realización de este ejercicio se deben hacer las conexiones mostradas en la Figura 6.12 y que se enuncian a continuación:
Organigrama
Los pasos a realizar tras configurar los registros adecuadamente se pueden ver como una secuencia de acciones. En este caso, cada recuadro se corresponderá con un bloque de instrucciones.
Se trata de comenzar con una velocidad nula en el motor e ir incrementándola en uno de los sen- tidos de giro. Esto se hará mediante PWM, aumentando la anchura del pulso en un bucle hasta lle- gar al máximo. En esa velocidad, el motor girará un número dado de pasos. Dichos pasos serán pul- sos que el encoder acoplado al motor introduce en la patita RC0/T1CKI del TMR1.
1.o La salida del encoder debe unirse con la entrada de pulsos del TMR1 (RC0/T1CKI).
2.o La salida del módulo CCP2 (RC1/CCP2) se conecta a la entrada de activación del motor.
3.oLas salidas RB1:RB0 se conectan con las líneas IN2:IN1 del motor para controlar el sentido del giro.
Figura 6.12. Esquema de conexionado del PIC con el motor y el encoder.
PIC16F873 1
2 3 4 5 6 7 8 9 10 11 12 13 14
RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2 RB1 RB0/INT V
V RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA
DD SS
28 27 26 25 24 23 22 21 20 19 18 17 16 15 MCLR#/V /THV
RA0/AN0 RA1/AN1 RA2/AN2/V RA3/AN3/V RA4/T0CKI RA5/AN4/SS#
V OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL
PP
REF- REF+
SS
15 pF CRISTAL 4 Mhz
15 pF
+5 V 100
RESET In4148 10K
+5V
ON IN1IN2 MOTOR MICRO’PIC I/O GENERADOR
MICRO’PIC I/O
Se parará el motor de golpe y permanecerá así durante un segundo. A velocidad marcada por unos interruptores el motor volverá a girar, esta vez en sentido contrario al anterior y, por ultimo, por la misma PWM se irá decrementando la velocidad del motor hasta pararlo durante otro segundo.
Durante el programa, además, se va a controlar el estado del perro guardián, introduciendo instruc- ciones de borrado para que resetee el PIC en el caso de que se produzca un fallo en el sistema.
Figura 6.13. Organigrama del segundo ejercicio propuesto.
INCREMENTAR VELOCIDAD HASTA MÁXIMA INICIALIZACIÓN PA ENTRADA
PB SALIDA R 0 ENTRADA
R 1 SALIDA PREDIVISOR TMR0 CCP2 COMPARACIÓN
VELOCIDAD = 0 C
C
AVANZAR PASOS SEGÚN HORARIO
PARAR 1 SG.
GIRO ANTIHORARIO PASOS SEGÚN ANTIHORARIO VELOCIDAD SEGÚN (RA4-RA0) 8.
DECRECER VELOCIDAD HASTA PARAR
PARAR 1 SG ACTIVAR MOTOR SENTIDO HORARIO
Programa comentado
El programa para este segundo enunciado queda:
LIST P=16F873 ; Se indica el tipo de
; procesador
RADIX HEX ; Sistema de numeración
; hexadecimal
INCLUDE ôP16F873.INCằ ; Se incluye la definiciún de
; los registros internos en
; una librería
HORARIO EQU .1500 ; N.ode pasos en sentido
; horario
ANTIHORARIO EQU .1000 ; N.ode pasos en sentido
; antihorario
PERIODO EQU .255 ; Período de 255 ∑ predivisor
; de 16 (4 mS)
TEMPORAL EQU 0x20 ; Variable temporal
DELAY_CONT EQU 0x21 ; Variable de temporización
ORG 0x00 ; Inicio en el Vector de
; Reset
goto INICIO ; Va a la primera instrucción
; del programa
ORG 0x05 ; Salta vector de interrupción
DELAY movlw ~.78 ; Inicialización del TMR0
movwf TMR0 ; para cuenta de 20 mS
DELAY_1 clrwdt ; refresco del perro guardián
btfss INTCON,T0IF ; ¿Se ha desbordado el
; TMR0?
goto DELAY_1 ; No
bcf INTCON,T0IF ; Sí. Reponer el flag decfsz DELAY_CONT,F ; ¿Se ha repetido tantas
; veces como indica
; DELAY_CONT?
goto DELAY ; No. Repetir otros 20 mS
return ; Sí. Volver de la
; temporización
; Comienzo del programa principal
INICIO clrf PORTB ; Limpia salidas
clrf PORTA
clrf PORTC
bsf STATUS,RP0 ; Cambio al banco 1
bcf STATUS,RP1
movlw b’00000110’ ; Puerta A E/S digitales,
movwf ADCON1
clrf TRISB ; Puerta B como salida
movlw b’00011111’ ; Puerta A como entrada
movwf TRISA
movlw b’11111101’ ; RC0 entrada, RC1 salida
movwf TRISC
movlw b’11000111’ ; Predivisor de 256 asociado
movwf OPTION_REG ; al TMR0
movlw PERIODO-1 ; Carga el registro de
movwf PR2 ; períodos
bcf STATUS,RP0 ; Cambio a banco 0
BUCLE clrwdt ; Refresca el perro guardián
movlw b’00001100’ ; Configuración de CCP2 movwf CCP2CON
movlw .255 ; Máxima velocidad deseada
movwf TEMPORAL
clrf CCPR2L ; Velocidad inicial nula movlw b’00000111’ ; Habilitación del TMR2 con
movwf T2CON ; predivisor de 16
; Paso 1. Partiendo de velocidad 0 irla incrementando hasta llegar a la
; máxima girando en sentido horario
movlw b’00000010’ ; Motor en marcha en
movwf PORTB ; sentido horario
PASO_1 movlw 2 ; temporización de 40 mS
movwf DELAY_CONT
call DELAY
incf CCPR2L,F ; Incremento de velocidad
; con el aumento de la
; anchura de pulso decfsz TEMPORAL,F ; ¿Ha llegado a la máxima?
goto PASO_1 ; No. Seguir incrementando
; Paso 2. Avance en sentido horario tantos pasos como indique HORARIO
PASO_2 clrf TMR1L ; Inicialización del TMR1
clrf TMR1H
movlw HIGH HORARIO ; Inicialización de los pasos movwf CCPR1H ; a contar en sentido horario
movlw LOW HORARIO
movwf CCPR1L
movlw b’00001011’ ; Configuración de CCP1 movwf CCP1CON ; con reset en el TMR1 movlw b’00000011’ ; Configuración del TMR1 movwf T1CON ; con predivisor de 1. Activ.
bcf PIR1,CCP1IF ; Reposición del flag de
; CCP1
PASO_2_1 clrwdt ; Refresca perro guardián btfss PIR1,CCP1IF ; ¿Se han dado los pasos en
; sentido horario?
goto PASO_2_1 ; No. Seguir bcf PIR1,CCP1IF ; Sí. Reponer flag
clrf PORTB ; Desconectar motor
; Paso 3. Parada de 1 sg.
PASO_3 movlw .50 ; Parada de 1 sg
movwf DELAY_CONT
call DELAY
; Paso 4. Avance en sentido antihorario
PASO_4 movlw HIGH ANTIHORARIO ; Carga el N.ode pasos
movwf CCPR1H ; antihorario
movlw LOW ANTIHORARIO
movwf CCPR1L
movf PORTA,W ; Lee estado de RA4-RA0
movwf TEMPORAL ; que es la velocidad
bcf STATUS,C
rlf TEMPORAL,F ; Multiplica por 8
rlf TEMPORAL,F
rlf TEMPORAL,W
movwf CCPR2L ; Carga la anchura de pulso movlw b’00000001’ ; Activa el motor en sentido
movwf PORTB ; antihorario
PASO_4_1 clrwdt ; Refresca perro guardián
btfss PIR1,CCP1IF ; ¿Se han dado los pasos?
goto PASO_4_1 ; No. Seguir
bcf PIR1, CCP1IF ; Sí. Reponer el flag
; Paso 5. Disminución de la velocidad
PASO_5 movlw .2 ; Temporiza 40 mS
movwf DELAY_CONT
call DELAY
decfsz CCPR2L,F ; Disminuye anchura de
; pulso ¿Es la mínima?
goto PASO_5 ; No. Sigue decreciendo
; Paso 6. Parada del motor, espera de 1 sg y vuelta a empezar
PASO_6 clrf PORTB ; Parada del motor.
movlw .50 ; Temporización de 1 sg
movwf DELAY_CONT
call DELAY
goto BUCLE ; Repetir el ciclo
END
Prueba del programa
Como en el ejercicio anterior, se usan los sistemas Micro’PIC TraineryMicro’PIC I/O, teniendo en cuenta que se deben conectar las líneas del PIC a los diferentes periféricos utilizados, tal y como se explica en el apartado del esquema eléctrico. En la Figura 6.14 se muestran dichas conexiones, don- de se puede apreciar la modulación aplicada al motor en el poliscopio.
Figura 6.14. Fotografía del montaje propuesto.
APLICACIÓN DE LOS MICROCONTROLADORES: LA MICROBÓTICA
La Microbótica es una tecnología derivada de la Robótica Industrial que se está imponiendo en mul- titud de aplicaciones y que proliferará masivamente en la primera década del siglo XXI.
El microbot es un dispositivo móvil que reacciona ante el entorno de acuerdo con un plan de ac- ciones programadas por el usuario. Para moverse utiliza motores y para reconocer el entorno emplea sensores de todo tipo. Finalmente, para controlar motores, sensores y actuadores dispone de un com- putador en miniatura programado en función de la finalidad a la que se destina.
Existen multitud de tareas sencillas y rutinarias que nos ocupan una gran parte del día como co- cinar, limpiar, controlar parámetros como la temperatura del agua y la calefacción, lavar, conducir, vigilar, transportar, y muchos más.
La gran funciún de los microbots es resolver estas pequeủas tareas con rapidez y precisiún: ex- plorar, medir y tomar el valor de magnitudes, cuidar jardines, recolectar frutos, vigilar zonas de se- guridad, acompaủar a los visitantes, transportar todo tipo de objetos, guiar a invidentes, ayudar a mi- nusválidos, trabajar en entornos peligrosos como los radioactivos o submarinos, y hasta ser excelentes compaủeros.
En la Figura 6.15 se presenta al microbot que en 1997 exploró el planeta Marte.
Figura 6.15. Fotografía del Sojourner, que la NASA utilizó para explorar Marte.
Diseủar con PIC es fỏcil
138
Un microbot consta de 4 partes principales:
El cerebro del microbot es un microcontrolador programado. Recibe información de los senso- res, la procesa y de acuerdo con su aplicación ordena las acciones precisas a los órganos motrices.
Entre los microcontroladores mỏs usados en Espaủa destacan los PIC y los Motorola.
El armazón debe soportar rígidamente a todos los componentes del microbot. La estructura pue- de ser mecánica, plástica o hecha a medida.
Los motores más usados en Microbótica son los de corriente continua y los PAP. Son muy po- pulares los servomotores de Futaba, que incluyen un grupo reductor y una gran estabilidad en la ve- locidad de giro. Además, se caracterizan por tener una baja inercia en los instantes de arranque y pa- rada. (Figura 6.16.)
En cuanto a sensores y actuadores que maneja un microbot, el abanico de modelos es muy am- plio. Los más utilizados en esta tecnología son los sensores de rayos infrarrojos, los mecánicos de posición y contacto (bumpers), los de proximidad de tipo magnético y por efecto hall, los de lumi- nosidad, distancia, luz, temperatura, etc.
EL PICBOT-3
Utilizando la potencia del PIC16F876 y gran cantidad de avanzados sensores, como los mostrados en la Figura 6.16, Ingeniería de Microsistemas Programados ha comercializado el robot inteligente PICBOT-3. (Figura 6.17.)
1.a Sistema computerizado basado en un microcontrolador.
2.a Armazón.
3.a Órganos motrices que emplea para moverse y realizar operaciones.
4.a Sensores de información.
Figura 6.16. Fotografía de los módulos de sensor ultrasónico de movimiento MSE-S120 (izquierda) y sensor IR detector de obstáculos MSE-S135 (derecha).
El PICBOT-3 es un nuevo concepto de robot móvil inteligente y modular. Está basado en los mi- crocontroladores PIC16F87x dotados del programa monitor PICMOS’7X y gestionado y progra- mado con el software de comunicaciones Real_PIC para PC bajo Windows. Admite la fácil adap- tación de todo tipo de sensores y su aplicación para cualquier tarea de complejidad mediana.
Los PICBOT ya se han usado en el desarrollo de proyectos tales como:
Sólo la imaginación de los ingenieros que proyectan y programan estas bestias inteligentes cons- tituye el límite de sus posibilidades.
Prueba de su importancia y su proyección de futuro en las facultades de Ingeniería Informática y Electrónica de todo el mundo es la organización de Certámenes anuales en los que participan los ingenios más inverosímiles. (Figura 6.18.)
1.o Inspector de tuberías y localizador de piezas.
2.o Teledirigido por R.F. para operaciones en ambientes peligrosos.
3.o Paletizador de yogures.
4.o Medidor automático de perímetros y áreas de superficies irregulares.
5.o Controlador de mensajes en el guiado de invidentes por ciudades.
6.o Vigilante de edificios.
7.o Transportador de piezas en factorías.
8.o Aspirador automático para apartamentos.
Figura 6.17. Fotografía del microbot PICBOT-3 con diferentes módulos de ampliación.