| Nota de aplicacion: Sistemas microprocesados para control distribuido en robotica.
|
Esta nota a sido confecionada y es propiedad de SCM International, Inc., por favor lea cuidadosamente las condiciones estrictas para su publicacion y/o divulgacion de este material.
En otras notas de aplicacion vimos que tan fácil era implementar sistemas basados con microcomputadoras Basic Stamps. En este articulo analizaremos los microcontroladores PICs y sus herramientas de desarrollo. Los microcontroladores PIC son microcontroladores de 8bits, con memoria de programa, y un banco de memoria RAM o de registros de uso general, periféricos de I/O, timers internos, etc... Estos microcontroladores poseen un set de instrucciones resumido (alrededor de 30 instrucciones). La mayoría de las veces, es engorroso programarlos con el assembler provisto por el fabricante. Por ello existen otras herramientas de programación como ser el Macro Assembler y el lenguaje de alto nivel PBASIC.
Como se desarrolla con microcontroladores PICS ?
Inicialmente debe tener un Macro assembler, un simulador y una tarjeta de programación. El Macro assembler permite escribir programas mas cortos que con el assembler. Generalmente una instrucción de Macro assembler equivale desde 1 a 5 instrucciones de assembler. Veamos el siguiente ejemplo: La instrucción CSBE fr1, fr2, compara el registro fr1 con fr2 si fr1 es menor o igual a fr2 entonces saltea la siguiente instrucción. En asembler había que escribir las siguientes instrucciones equivalentes:
movf fr1,w ; w = fr1 , pone el contenido del registro fr1 en el registro W svbwf fr2, w ; w = fr2 - w resta el registro fr2 con el contenido de W btfss c ; si fr1 < = fr2 , entonces incrementa el pc = pc + 2
Como vemos en vez de tener que escribir solo una línea de programa hay que escribir tres. La mayoría de los disenadores utilizan el Macro assembler. El simulador es un programa que permite cargar un programa para PIC en PC. De esta manera podrá ejecutar el programa cargado, instrucción por instrucción y visualizar en pantalla como varían los registros, banco de datos, contador de programa, entradas y salidas del PIC, a medida que se van ejecutando las instrucciones. Esta herramienta es de gran ayuda para iniciarse, ya que Ud. puede editar pequeños programas y chequear el funcionamiento lógico del mismo sin tener que armarlo. En cuanto a la implementacion física del sistema se recomienda la utilización del microcontrolador PIC 16C84, el cual posee una memoria EEPROM de programa, memoria RAM, un contador de eventos, Memoria EEPROM de Datos, 13 entradas salidas digitales, etc... La utilización de este chip EEPROM permite reprogramar el chip, sin luz ultravioleta, sin perdidas de tiempo y con solo insertarlo en el EPIC programmer. Es decir podemos usar el circuito integrado cuantas veces queramos. A diferencia de otros microcontroladores sobre este chip se encuentra bibliografía en castellano. Existe un compilador de Basic para PICs llamado PBASIC, el cual le permite desarrollar sus sistemas en BASIC. EL lenguaje PBASIC es fuente compatible con la BASIC STAMPI, es decir que un programa escrito de la estampa I puede ser compilado directamente para PIC.
Instrucciones PBASIC para PICs
Como vemos el PBASIC es un lenguaje muy potente para el desarrollo de dispositivos roboticos, para control de procesos y aplicaciones de uso general. Existen en el mercado una amplia gama de tarjetas prototipicas especificas para desarrollo con PICs. Estas tarjetas vienen preparadas y con instrucciones suficientes para soldar algunos componentes en ella y tener el sistema andando rápidamente. Además, poseen un bus normalizado para PICs.
Control proporcional con Alambres musculares por medio de un controlador PIC.
Este poyecto puede ser utilizado para controlar en forma remota la abertura de una válvula, ventilaciones, etc... Utilizara como actuador un alambre muscular. Los alambres musculares son alambres de 50, 100, 150, o 250 micrones espesor que al alimentarlas con corriente eléctrica se contraen un 5% de su longitud, realizando fuerzas hasta los 930 gramos.
Diagrama funcional del actuador:
El sistema de control, tendrá una entrada de comunicaciones que le permitirá recibir ordenes remotas desde una PC u otro tipo de control. La unidad recibirá un parámetro el cual determinara la posición a la cual debe posicionarse el actuador. Por ejemplo; 10 para 10%, o 20 para 20%, etc... El eje del actuador podrá tener adosado un preset el cual producirá una resistencia en sus bornes de salida proporcional a la posición angular del actuador. De esta manera el circuito de control recibira el parametro transmitido por la PC, lo comparara con el valor de resistencia del potenciómetro y en funcion de ello exitara el alambre muscular. Por ejemplo si el actuador esta al 0% y recibe una orden de abrir al 50%, entonces exitara el alambre muscular hasta llegar al 50%, y lo mantendra alli, hasta recibir una nueva orden.
Algoritmo:
Programa en PBASIC:
Symbol Posicion = W2
Symbol Control = W1
Symbol TxR = Pin 0 ' Definir el pin de comunicacion serie
Symbol POTE = Pin 1 ' Define el pin a conectar el potenciómetro
Symbol Musculo = Pin 2 ' Define el pin que excitara el musculo Inicio
SERIN TxR, N2400,"New",Control ' Resive la posicion deseada
POT Pote, 1, posicion ' Lee la posicion del actuador
IF posicion > Control THEN Excitar LOW Musculo ' Desexcita el alambre Muscular
GOTO Inicio Excitar
HIGH Musculo
GOTO inicio ' Excita el alambre muscular
Controlador de motores paso a paso con comunicacion RS232
En este ejemplo implementaremos un controlador capas de controlar hasta 3 motores paso a paso con sus respectivos drivers. El driver estará compuesto por un circuito integrado MPPC, circuito integrado controlador de un motor paso a paso y una etapa de transistores para la excitación de los bobinados del motor . Una PC o un sistema de control podrá enviar comandos de movimientos a cada uno de estos motores a través de una comunicacion serie RS232. La PC deberá trasmitir el número de motor que desea mover, el sentido en que este se moverá y la cantidad de pasos que el motor deberá dar. Por ejemplo para que el motor '1', gire 100 pasos a la derecha, la PC deberá trasmitir '1', 'D', 100.
El diagrama en bloques simplificado estaría dado por el siguiente diagrama en bloques simplificado:
Los pines P1 y S1 actúan como señales de control del driver del motor paso a paso número uno. Si S1 esta en cero rotara en un sentido y si esta en "1" el motor rotara en sentido contrario. cada vez que el pin de salida, P1, pasa de "0" a "1" el driver del motor hará que este avance un paso. En forma idéntica operaran las señales para el motor 2 y P3 y S3 para el motor 3.
El microcontrolador deberá tener un programa con el siguiente algoritmo:
Programa PicBASIC
Symbol P1 = Pin0
Symbol S1 = Pin 1
Symbol P2 = Pin 2
Symbol S2 = Pin 3
Symbol P3 = Pin 4
Symbol S3 = Pin 5
Symbol TXR = Pin6 'define a el Pin 6 como el pin de recepcion de datos serie. Inicio
SERIN TXR,N2400,N,S,P 'Recibe datos serie y carga los datos N=número de motor, s=sentido de giro, P=cantidad de pasos a girar.
IF N = 1 THEN ACTIVA_MOT_1 'Salta la rutina del motor 1 IF N = 2 THEN ACTIVA_MOT_2 'Salta a la rutina del motor 2
IF N=3 Then ACTIVA_MOT_3 'Salta a la rutina del motor 3
GOTO Inicio
ACTIVA_MOT_1 If S="D" THEN DER_1 LOW S1 'Setea el driver 1 para girar hacia izquierda
COMP_1 IF P=0 THEN Inicio 'Si P=0; se dieron P pasos salta a Inicio PULSOUT P1,2 'Genera un pulso de duracion 2 useg.
P = P - 1
GOTO COMP_1 DER_1
HIGH S1 'Setea el driver 1 para girar hacia derecha GOTO COMP_1
ACTIVA_MOT_2 If S="D" THEN DER_2 LOW S2 'Setea el driver 2 para girar hacia izquierda
COMP_2 IF P=0 THEN Inicio 'Si P=0; se dieron P pasos salta a Inicio
PULSOUT P2,2 'Genera un pulso de duracion 2 useg.
P = P - 2 GOTO COMP_2 DER_2 HIGH S2 'Setea el driver 2 para girar hacia derecha
GOTO COMP_2
ACTIVA_MOT_3 If S="D" THEN DER_3 LOW S3 'Setea el driver 3 para girar hacia izquierda
COMP_3 IF P=0 THEN Inicio 'Si P=0; se dieron P pasos salta a Inicio
PULSOUT P3,2 'Genera un pulso de duracion 2 useg.
P = P - 3
GOTO COMP_3 DER_3
HIGH S3 'Setea el driver 3 para girar hacia derecha
GOTO COMP_3
Realmente, es muy sencillo implementar sistemas de control en PBASIC. Y pone al alcance de cualquiera, proyectos que parecieran ser ambiciosos. La intension de esta serie de articulos ha sido hacercar al lector a estas nuevas tecnologias, que no solo tienen aplicacion en robotica, sino que tambien pueden ser utilizados en proyectos de control o de reemplazo de circuitos y microcontroladores especificos de T.V.
copyright© 1997, SCM International, Inc., All right reserved
Alambres Musculares es marca registrada de SCM International
Solo se permite la publicacion o linkeo a esta pagina bajo la autorizacion escrita. Si Ud. esta interesado en esta nota, solo contactese con nosotros que le atenderemos con mucho gusto.