CURSO DE PROGRAMACIÓN NDEL MÓDULO Ó SITEPLAYER SP1 I C A M 30 A R Séptimo y último G capítulo. O R P
Curso de programación y utilización del módulo SitePlayer TM SP1. El integrado que incorpora constituye un auténtico Web We b Se Serv rver er qu que e pe perm rmit ite e in inte tera ract ctua uarr con cualquier dispositivo electrónico a través de una página de Internet absolutamente absolutamen te normal. El objetivo del presente Curso es dar a conocer la técnica de programación del módulo a través de diversos ejemplos prácticos que utilizan la red para comunicar con diversos dispositivos remotos.
RESISTOR
por Roberto Nogarotto
E
sta séptima entrega da fin al curso de introducción a la programación del “web server” SitePlayer; en ella veremos cómo modificar una tensión utilizando una lista de valores disponibles en un menu desplegable o mediante un potenciómetro virtual directamente sobre la página web instalada en el módulo SitePlayer. Este valor estará disponible en las conexiones PWM y ANALOG de la demoboard FT497. Para la generación de una señal analógica se utiliza la técnica PWM (Pulse Width Modulation), que básicamente consiste en variar el ciclo de trabajo (duty cycle)
de una onda rectangular generada por una puerta del microcontrolador. Por medio de un osciloscopio puede observarse la variación tomando la tensión directamente del terminal PWM. Posteriormente, esta forma de onda se nivela con un buffer y un filtro presentes en el circuito y se lleva al terminal ANALOG. Como la tensión de alimentación del microcontrolador es de 5 voltios, la magnitud de la onda PWM por él generada podrá asumir 0 voltios como mínimo y 5 voltios como máximo. Esta será la gama de variación de la tensión disponible en los bornes de salida.
PROGRAMA DEMO8 Con esta demo puede enviarse al módulo SitePlayer un valor elegido entre los disponibles en una ventana de selección, como puede verse en el recuadro denominado Demo8. Seleccionando uno de los porcentajes disponibles en el menú desplegable y clicando clican do sobre el botón SUBMIT SUBMIT se envía al SitePlayer un dato que, al ser leído por el microcontrolador, sirve a éste de referencia para entregar una tensión analógica. El valor 100 % corresponde a la tensión máxima obtenible, en este caso 5 voltios. Anteriormente se ha visto en qué forma el PIC puede suministrar esta ten-
30-39 Curso Site Player
26/10/05
09:16
Página 31
DEMO 8 Ejemplo de gestión de una salida analógica: en un menú desplegable puede seleccionarse la tensión deseada.
En la práctica, el objeto está definido entre los tags . Los diferentes tags
de la casilla de selección tiene como objeto la variable led2. El resultado práctico de este recurso es que la primera casilla de selección informa siempre del valor actual en que se basa el PIC para generar el PWM y, lo que es lo mismo, del valor de la tensión analógica correspondien correspondiente. te.
PROGRAMA DEMO9 Con esta demo se obtiene el mismo resultado que con la anterior, es decir, se hace variar la tensión analógica entregada por la demoboard, pero utilizando una interfaz gráfica seguramente mucho más atractiva e interesante. Efectivamente: ahora la elección del valor de la tensión se efectúa por medio de un mando virtual. Actuando con el puntero del mouse sobre el mando de este potenciómetro virtual se selecciona un valor de tensión proporcional a la posición elegida. Bajo las órdenes del usuario, el mando parece girar gracias a un efecto gráfico muy efectivo, lo que permite ajustar el indicador con gran verosimilitu verosimilitud. d. La regulación tiene lugar en 8 niveles: la tensión de salida adoptará el valor 0 voltios con el “potenciómetro” totalmente girado en sentido antihorario y aumentará aument ará en pasos de 600 600 mV al
30-39 Curso Site Player
26/10/05
09:16
Página 35
DEMO 9 Ejempio de gestión de una salida analógica: se genera una tensión de salida cuyo valor se ajusta utilizando un mando rotativo.
cargarse la imagen del potenciómetro que corresponda al valor del objeto level.
rotarlo en sentido horario, hasta alcanzar los 5 voltios de la tensión máxima cuando el cursor llegue a tope. El efecto de rotación discreta se configura dividiendo el área gráfica del potenciómetro en 8 sectores; clicando sobre uno de ellos la imagen del mando rotativo se desplaza hasta el punto indicado. En la memoria del SitePlayer se han registrado 8 imágenes, cada una de ellas con el punto indicador en una posición diferente.
ARCHIVO ARCHI VO INDEX.H IN DEX.HTM TM Para el lector que haya seguido las demo precedentes no le será
difícil comprender el presente listado, en el que se utiliza nuevamente la técnica del link para comunicar al SitePlayer el valor de los objetos. En realidad, sólo se utiliza un objeto, que se ha denominado level. Este objeto se modifica cuando se clica sobre un link ya que el tag “HREF="x.spi?level=" asigna a level un valor diferente para cada posición del mando del potenciómetro virtual. Las diferentes imágenes del mando se denominan jog_button0.gif, jog_button1.gif, etc. Utilizando luego la instrucción img src jog_button^level.gif puede
En esta demo el archivo definiciones.spd contiene las configuraciones iniciales, como, por ejemplo, el título de la página (en este caso, Futura Elettronica Demo9), la di direc recció ciónn IP IP po porr defe defect ctoo (192.168.0.250) y, sobre todo, la definición del objeto level utilizado para el ajuste del mando del potenciómetro y el valor de tensión que debe informarse al microcontrolador. En esta demo también se utilizan los recursos integrados en el microcontrolador que permiten generar la onda cuadrada PWM para modificar la tensión entregada a la salida. Para conocer el valor asumido por la variable level, el microcontrolador espera una variación de nivel en su puerta RA4, a través de la cual el SitePlayer comunica al PIC que en la página web se ha producido una intervención por parte del usuario. Acto seguido, el microcontrolador lee la localización de dirección 5 (que es donde reside la variable level) utilizando una línea serie conectada a las puertas RA2 (transmisor) y RA5 (receptor). Como puede observarse, estas
puertas no dependen de la UART interna del PIC, sino que son simples puertas de uso general. Estas patillas pueden utilizarse para la transmisión serie ya que el lenguaje Basic prevé instrucciones
que permiten configurar las patillas genéricas como puertas para la transmisión y/o recepción de datos serie. Las instrucciones son SEROUT para la transmisió transmisiónn y SERIN para la recepción. Con estos
comandos el PIC envía al módulo SitePlayer la pregunta sobre el valor de la variable level y aplica la técnica PWM descrita en la demo anterior para generar la tensión analógica requerida.
30-39 Curso Site Player
26/10/05
09:16
Demo 9: Listado Basic File DEMO9.BAS TEMP TEMPLOW DATOIN DATOOUT DAT OOUT INDIRIZZO FLAGOK FLAG OK TEMP TE MPER ERAT ATUR URA A TRIMMER
var var var var var var var var
word TEMP.byte0 byte byte byte bit byte byte
Include “modedefs.bas” ‘LED SYMBOL SYMBOL SYMBOL SYMBOL SYMBOL SYMBOL SYMBOL SYMBOL
‘Comunicación con el Site Player SYMBOL TX232 = PORTA.2 SYMBOL RX232 = PORTA.5 ‘Interrupt del Site Player SYMBOL INTSP = PORTA.4 ‘Pilotaje de PWM symbol CCP1 = Portc.2 ‘Definición I/O ADCO AD CON1= N1=%0 %000 00001 00100 00 AD C O N0 = %1 0 0 00 0 01 OUTPUT LED1 OUTPUT LED2 OUTPUT LED3 OUTPUT LED4 OUTPUT LED5 OUTPUT LED6 OUTPUT LED7 OUTPUT LED8 OUTPUT TX232 INPUT RX232 ‘Dip
‘Rutina para ordenar la lectura de un byte ‘Envia: Comando de lectura (192), INDIRIZZO SENDREADREQUEST: Pause 10 Serout TX232,T9600,[192] Pause 5 Serout TX232,T9600,[INDIRIZZO] Return
RESISTOR
READDATO1: FLAGOK = 0 Return ‘Rutina de configuraciones del módulo PWM CCPCONFIG: CCP1CON = %00001100 Return TIMER2CONFIG: T2CON = %00000101 ‘Timer2 ON ‘Prescaler /4 Return PR2CONFIG:
‘Rutina de lectura de un byte ‘(tras faber enviado SENDREADREQUEST) ‘Salida: DATOIN, FLAGOK = 1 si la ‘lectura ha llegado a buen fin, ‘si no 0, si ha transcurrido el ‘timeout (300 mseg)
PR2 = 254 Return
DISPONIBILIDAD DEL MATERIAL El módulo SitePlayer está disponible montado y verificado (cód. SP1) al precio de Eur 42,00: el conjunto híbrido resultante implementa un Web Server, un controlador Ethernet 10baseT, una memoria Flash para almacenar las páginas Web y un dispositivo de interfaz serie.
Para mejorar el aprendizaje del SitePlayer se dispone del circuito demoboard/programador en kit (cód. FT497K) al precio de Eur 48,00. El kit incluye la placa de circuito imprso taladrada y serigrafiada, un PIC16F876, 8 leds, 1 dip-switch de 8 polos, 1 trimmer, 1 sensor de temperatura, salida PWM, salida analógica, conector Ethernet, conector para programación “in-circuit” del PIC. El kit comprende todos los componentes y los listados de demostración a nivel fuente (fuente Basic para PIC; páginas HTML; archivos de definición SPD), etc. El kit no comprende el módulo SitePlayer, el alimentador de red y el programador del PIC (cód. FT386K, Eur 86,00). Los precios incluyen el IVA.