Home
Encoders - Departamento de Inteligencia Artificial
Contents
1. Borra el flag de interrupci n IC3 STAA TFLG1 X RTI Retorno de interrupci n Por ltimo nos queda indicar d nde se encuentra el manejador de la interrupci n El vector de direcci n es dependiente del modo en el que est operando el microcontrolador Para los modos en los que tengamos los vectores de interrupci n en la RAM interna sin ampliaciones de memoria esto puede indicarse de la siguiente forma ORG 00E2 Instala el manejador JMP h_enc_d 5 3 Ejemplo de utilizaci n Como ejemplo de utilizaci n se incluye un programa que hace que el robot avance mientras consulta la variable pasos_d dentro de un bucle Cuando dicha variable alcanza un determi nado valor 8 en este caso es decir una vuelta completa de la rueda sale del bucle y detiene al robot El programa se muestra completo con la configuraci n del capturador subrutina init y rutina de tratamiento subrutina h_enc_d como vimos anteriormente x SR _ A _ _ _ _ _ A A A A A _ _ A A A A A A A AAA A AAA A A AAA A AAA AAA ASA SS PORTA EQU 0 Puerto A TCTL2 EQU 21 Activaciones de flancos ICn TMSK1 EQU 22 Interrupciones de capturadores TFLG1 EQU 23 Flags de capturadores ORG 0000 Programa en RAM interna BRA inicio pasos_d FDB 0 Variable para contar los pasos inicio LDX 1000 Apunta a los registros de ctrl BSR init Inicializa interrupciones avanza LDAA 18 Avanza STAA PORTA X bucle LDD pa
2. Encoders Construcci n Montaje y Programaci n Javier de Lope Asia n Departamento de Sistemas Inteligentes Aplicados Universidad Polit cnica de Madrid http www sia eui upm es jdlope mailto jdlopeCeui upm es 15 de noviembre de 2000 1 Introducci n En el presente documento se describe c mo construir unos encoders para un robot m vil basado en una placa CT6811 de Microb tica http www microbotica es Adem s de los elementos hardware tambi n se introduce la programaci n del driver utilizando interrup ciones Los usos de este tipo de dispositivos son diversos hacer que el robot avance una serie de pasos y no un tiempo determinado controlar la velocidad del robot detectar posibles situaciones en las que el robot quede detenido ante un obst culo etc En cualquier caso siempre se debe tener en cuenta que en rob tica m vil se trabaja con una gran incertidumbre introducida por muchos factores rugosidad de la superficie peso del robot caracter sticas de los sensores incluso errores en las lecturas que puede hacer que se pierda la cuenta de los pasos Por tanto este mecanismo no es demasiado apropiado para definir movimientos absolutos del robot en el entorno ya que los estos errores implicar an necesariamente imprecisiones en la estimaci n de su posici n 2 Los sensores Para la construcci n de los encoders vamos a utilizar dos sensores de infrarrojos CNY70 y dos discos con franjas blancas y negras alte
3. Los discos Los discos pueden construirse imprimiendo en un papel ligeramente grueso el de 80 gramos que es el que se utiliza normalmente para fotocopiadoras e impresoras es suficiente o en una cartulina las plantillas que se muestran en la figura 1 Tambi n se recomienda utilizar una impresora l ser ya que con las de chorro de tinta o matriciales puede que no cubran bien toda la zona negra o que se tengan problemas en la detecci n del color negro con los sensores No obstante si se presentan estos inconvenientes se puede repasar las zonas negras que no sean detectadas correctamente con un rotulador negro de punta gruesa Figura 1 Discos para los encoders de 16 y 24 segmentos El disco de la izquierda tiene 8 franjas negras y 12 el de la derecha Normalmente no se habla del n mero de franjas negras sino de las totales negras y blancas Por tanto el borde o per metro del disco estar dividido en 16 y 24 segmentos respectivamente Una vez que se han imprimido los discos comprobado si se detectan bien los cambios de negro a blanco y viceversa y en su caso repasado con un rotulador negro se cortar n con cuidado seg n el di metro de las ruedas El di metro de los discos de las im genes es aproximadamente de unos 5 5 cent metros Si este di metro es demasiado peque o para las ruedas con las que se est trabajando pueden construirse otros discos mayores con cualquier utilidad o programa gr fico 4 Montaje Los discos una v
4. ador el acumulador de pulsos Este recurso es muy interesante para aplicaciones como la que estamos considerando Como un acumulador de pulsos tiene asociado un contador que se va incrementando au tom ticamente con la llegada de nuevos pulsos la cuenta de los pasos en el giro de las ruedas se har a de forma casi autom tica Desafortunadamente el MC68HC11 tiene un solo acumu lador de pulsos por lo que en cualquier caso deberemos hacer uso de al menos un capturador Nota Sin confirmar existen modelos de MC68HC11 que disponen de m s de un acumulador de pulsos En nuestro caso utilizaremos los capturadores de entrada ya que al disponer de s lo un acumulador la programaci n de los capturadores hay que hacerla en cualquier caso La programaci n del acumulador es muy sencilla basta con configurar un par de registros internos del microcontrolador y puede que se a ada en un futuro en esta p gina 5 Programaci n Como se ha mencionado anteriormente utilizaremos los capturadores de entrada para recibir los datos de los sensores Concretamente se utilizar n los capturadores de entrada 1C3 e IC1 asociados con los bits O y 2 del puerto A respectivamente Como el c digo necesario es similar para uno y otro capturador s lo comentaremos el primer caso el capturador 1C3 bit O del puerto A que se corresponder con el encoder de la rueda derecha seg n el montaje propuesto Un capturador de entrada genera una interrupci n cada vez q
5. ez cortados se deben pegar por la parte interna de las ruedas intentando que sus centros coincidan con los ejes de las ruedas Para ello se recomienda desmontar la rueda y no cortar los discos Los sensores se pegar n en la parte inferior de la estructura del robot bien con cinta aislante bien de una forma m s robusta Como este paso es dependiente de la plataforma que se est utilizando s lo se indica como recomendaci n que se aproxime lo m ximo posible al disco sin que entre en contacto con l para mejorar la detecci n durante el uso Las conexiones de los sensores se podr n hacer en cualquier entrada que quede libre en la tarjeta CT293 que est n indicadas en la placa como Sensor 1 Sensor 2 Sensor 3 y Sensor 4 La conexi n a una entrada en particular hace que se conecte a un bit del puerto A del microcontrolador MC68HC11 Normalmente verif quese este punto en cada robot las entradas de la CT293 est n asociadas con los bits del puerto A que se especifican en la tabla 1 Sensor i Bit del Puerto A 1 0 2 1 3 7 4 3 Tabla 1 Entradas sensoriales de la CT293 Para la conexi n lo nico que debemos tener en cuenta es que los bits 0 1 y 2 del puerto A del microcontrolador MC68HC11 est n asociados con tres capturadores de entrada que nos podr n ser de gran utilidad a la hora de capturar las se ales que llegan de los sensores El bit 7 del puerto A tambi n est asociado con otro recurso interno del microcontrol
6. metro de los discos no se detectaban bien los cambios El de 24 segmentos es el mayor que se puede utilizar en estas condiciones sin que se produzcan p rdidas en las detecciones La instalaci n definitiva se ha realizado con los discos de 16 segmentos Se ha preferido perder algo de resoluci n para mantener la cuenta en base 2 Con 16 segmentos podemos utilizar 3 4 bits con uno o ambos flancos respectivamente para llevar la cuenta de los pasos intermedios y utilizar el bit 4 y 5 respectivamente para llevar la cuenta de vueltas de rueda completas N tese que con 24 segmentos esto no hubiese sido posible Referencias 1 C Doblado A Prieto Moreno J J San Mart n and J Gonz lez Microcontrolador MC68HC11 Fundamentos recursos y programaci n Microb tica Madrid 1999 2 J Jones and A Flynn Mobile Robots Inspiration to implementation AK Peters We llesley Massachusetts 1993 3 Microb tica Madrid Tarjeta CT298 Manual de usuario 1999 A Microb tica Madrid Tarjeta de desarrollo CT6811 Manual de usuario 1999
7. rnas Colocaremos cada par sensor disco en cada una de las ruedas motrices del robot De esta forma dividiremos con m s o menos exactitud dependiendo del n mero de franjas una vuelta de rueda en una serie de intervalos o pasos Se han seleccionado los sensores de infrarrojos CNY70 por dos razones En primer lugar estos sensores son ideales en cuanto a relaci n calidad precio para detectar cambios de blanco a negro en una distancia de mil metros Como para el encoder utilizaremos un disco con franjas de estos colores este tipo de sensores resultan apropiados Por otro lado la tarjeta CT293 de Microb tica puede controlar directamente cuatro de estos dispositivos Como inicialmente los robots vienen equipados con dos sensores para el seguimiento de l neas quedan otras dos entradas libres para controlar otros tantos sensores que utilizaremos en cada una de las ruedas motrices Para el montaje seguiremos las recomendaciones que se incluyen en el manual de la tarjeta CT293 B sicamente basta con conectar el emisor el c todo y conjuntamente el nodo y el colector con las tres patas de uno de los conectores acodados que quede libre en la tarjeta Se remite al lector al manual de usuario de la tarjeta p gina 14 para una informaci n m s detallada de las las conexiones a realizar Una vez realizadas las conexiones se recomienda usar el programa CT294 para probar las conexiones y verificar el pin al que hemos conectado el nuevo sensor 3
8. ro programa CLI Permite interrupciones Lo que nos queda ya para el caso que estamos tratando es reservar espacio para una variable en la que llevaremos la cuenta de los pasos que ha dado el motor escribir la rutina de tratamiento de la interrupci n y asociar dicha rutina con la interrupci n Definimos la variable pasos_d de 16 bits con lo que podemos contar hasta 65535 pasos si son necesarios m s puede manejarse el desbordamiento y utilizar una segunda varible para ampliar el contador Esto lo hacemos mediante pasos_d FDB 0 Variable para contar los pasos La rutina de tratamiento de la interrupci n en este caso es bastante sencilla Cada vez que se produzca una interrupci n incrementaremos la variable pasos d borraremos el flag que indica que no se ha tratado la interrupci n del IC3 e finalizaremos con una instrucci n de retorno de interrupci n El flag de la interrupci n del 1C3 est se encuentra en el registro TFLG1 junto con los flags de los otros capturadores El del 1C3 ocupa el bit menos significativo Estos bits se activan a nivel bajo se pone a 0 cada vez que se produce una interrupci n Una vez tratada debemos borrar el flag escribir un 1 desde la rutina de tratamiento para indicar que la interrupci n ha sido tratada en caso contrario se anidar an las interrupciones h_enc_d LDD pasos_d Carga el n mero de pasos ADDD 01 Incrementa en 1 STD pasos_d Almacena el n mero de pasos LDAA 01
9. sos_d Carga los pasos de la rueda dcha CPD 8 Lo compara con 8 BNE bucle Si no se ha lledado continua CLRA Detiene el robot STAA PORTA X stop BRA stop Y se para h_enc_d LDD pasos_d Carga el n mero de pasos ADDD 01 Incrementa en 1 STD pasos_d Almacena el n mero de pasos LDAA 01 Borra el flag de interrupci n IC3 STAA TFLG1 X RTI Retorno de interrupci n init BCLR TCTL2 X 02 Flanco de subida del IC3 BSET TCTL2 X 01 Flanco de subida del IC3 BSET TMSK1 X 01 Permite interrupciones del IC3 CLI Permite interrupciones RTS ORG 00E2 Instala el manejador JMP h_enc_d END 6 Comentarios adicionales Se han utilizado los flancos de subida con lo que estamos detectando cambios de blanco a negro en el sensor Tambi n podr amos configurar el capturador con flancos de bajada con lo que las interrupciones se producir an con cambios de negro a blanco Estas dos configuraciones son equivalentes Tambi n podemos configurar el capturador tanto para flancos de subida como de bajada con lo que recibiremos se ales tanto en los cambios de blanco a negro como en los de negro a blanco De esta forma conseguimos duplicar la resoluci n del encoder dividimos cada vuelta de rueda en 16 24 pasos utilizando los discos disponibles Tambi n se pueden utilizar discos con un mayor n mero de segmentos pero eso depende del campo de visi n de los sensores utilizados En el caso de los CNY70 ste es muy amplio y dado el di
10. ue detecta un flanco en la se al que tiene asociada El flanco que es configurable como ahora veremos puede ser de subida de bajada o ambos En nuestro caso el flanco se producir siempre que el sensor detecte un cambio de blanco nivel bajo a negro nivel alto La programaci n puede dividirse conceptualmente hablando en tres partes Configura ci n del capturador de entrada manejo de la interrupci n y uso Lo iremos viendo deteni damente 5 1 Configuraci n del capturador La configuraci n del capturador se realiza modificando tres registros internos del microcon trolador El primero de ellos es el registro TMSK1 1022 El bit 0 de este registro es el que est asociado con el capturador de entrada IC3 Escribiendo un l n este bit permitimos las interrupciones asociadas con eventos en los pines de este capturador de entrada El resto de los bits corresponden con el resto de capturadores del microcontrolador Entonces quedar a seg n se muestra en la figura 2 7 6 5 4 3 2 1 o OC1I OC2I OC3I 0C4I OC5I IC1I IC2I IC3I X X X X X X X 1 Figura 2 Registro TMSK1 Esto en ensamblador del MC68HC11 se corresponde con la instrucci n LDX 1000 Apunta a los registros de ctrl BSET TMSK1 X 01 Permite interrupciones del IC3 El segundo registro a tener en cuenta es el TCTL2 1021 Con los dos bits menos significativos de este registro indicamos qu tipo de flanco queremos
11. utilizar Los otros bits est n asociados con los otros dos capturadores de entrada quedando otros dos sin uso En la figura 3 se muestra la configuraci n utilizada T 6 5 4 3 2 1 0 0 0 EDG1B EDG1A EDG2B EDG2A EDG3B EDG3A X X X X X X 0 1 Figura 3 Registro TCTL2 Nuevamente en ensamblador del MC68HC11 se corresponde con las instrucciones LDX 1000 Apunta a los registros de ctrl BCLR TCTL2 X 02 Flanco de subida del 1C3 BSET TCTL2 X 01 Flanco de subida del 1C3 Los bits tomados dos a dos de este registro pueden tener los valores recogidos en la tabla 2 Flanco EDGrB EDGrA Inhibidos 0 0 Subida 0 1 Bajada 1 0 Ambos 1 1 Tabla 2 Configuraci n del registro TCTL2 Entonces seg n estas tablas estamos configurando el capturador de entrada 1C3 en flanco de subida por lo que resumiendo cada vez que el microcontrolador detecte un flanco de subida en su pin PAO proveniente de un cambio provocado al pasar de un segmento blanco a otro negro y detectado por el sensor se generar la interrupci n asociada con el capturador de entarda 1C3 A continuaci n veremos c mo capturar esta interrupci n y qu hacer cuando se produce 5 2 Manejo de la interrupci n Una de las cosas que tenemos que hacer al estar trabajando con interrupciones es indicar la micro que stas est n permitidas Esto se hace mediante la instrucci n CLI en la parte de inicializaci n de nuest
Download Pdf Manuals
Related Search
Related Contents
- Veba 取扱説明書 A 2KB - Mersch Escáner a colores Procedimientos Iniciales Avision Inc. 15-16 SONNE WINTER PRODUCTS カタログ iSTAT M2x2 Standard Measurement Centre ref Agents commerciaux – indemnité compensatrice en réparation du Sony VGC-JS290J/Q Marketing Specifications Mira Vision Wireless Controller User Guide Operation & Installation Manual Copyright © All rights reserved.
Failed to retrieve file