Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SmartSensors v1.0 Spanish v1.0
SmartSensors v1.0 Spanish v1.0
VERSION 1.0
GARANTA
Parallax garantiza sus productos contra defectos en sus materiales o debidos a la fabricacin por un perodo de 90 das a partir de la recepcin de los mismos. Si usted descubre un defecto, Parallax segn corresponda, reparar, reemplazar o regresar el valor de la compra. Antes de regresar el producto a Parallax, simplemente pida un nmero de autorizacin de regreso de mercanca (Return Merchandise Authorization, RMA), escriba el nmero en el exterior de la caja y envela a Parallax. Por favor incluya su nombre, nmero telefnico, direccin y una descripcin del problema. Parallax le regresar su producto o el reemplazo, usando el mismo mtodo de correo que usted us para enviar el producto a Parallax.
ISBN 1-928982-39-5
DESVINCULACIN DE RESPONSABILIDAD
Parallax, Inc. no es responsable de daos por consecuencias, incidentes o daos especiales que resulten de cualquier violacin de la garanta, bajo cualquier teora legal, incluyendo prdida de beneficios, tiempos muertos, buena fe, dao o reemplazo de equipo o propiedad y cualesquiera costos de recuperacin, reprogramacin o de reproduccin de datos guardados o usados dentro de los productos Parallax. Parallax tampoco es responsable de cualquier dao personal, incluyendo vida o muerte, resultado del uso de cualquiera de nuestros productos. Usted tiene absoluta responsabilidad por la aplicacin que desarrolle con el BASIC Stamp, sin importar la naturaleza del riesgo de la misma.
ERRATA
Si bien se realiza un gran esfuerzo para asegurar la precisin de nuestros textos, an puede haber errores. Continuamente nos esforzamos para mejorar todos nuestros materiales educativos y documentos y frecuentemente revisamos nuestros textos. Ocasionalmente se publica en nuestro sitio www.parallax.com una hoja de fe de errata con una lista de los errores y correcciones conocidos para un texto determinado. Por favor, revise las pginas individuales de los productos para obtener una descarga gratuita de este archivo de fe de errata.
Tabla de Contenido
Prefacio.......................................................................................................................iii
Introduccin y notas del autor........................................................................................ iii Idea general.................................................................................................................... v Antes de comenzar......................................................................................................... v La serie educativa Stamps en class .............................................................................. vi Traducciones ................................................................................................................ vii Colaboradores especiales ............................................................................................ vii
Actividad #3: Probando la Calibracin........................................................................ 138 Actividad #4: Mejora de las mediciones de la brjula a travs del promedio ............. 143 Actividad #5: Mediciones en movimiento ................................................................... 148 Resumen .................................................................................................................... 159
Apndice A: Tabla de caracteres ASCII............................................................... 303 Apndice B: Documentacin de la pantalla LCD Serial Parallax ...................... 305 Apndice C: Definiciones de Caracteres Hexadecimales.................................. 317 Apndice D: Listado de Partes ............................................................................. 321 ndice ....................................................................................................................... 323
Prefacio
INTRODUCCIN Y NOTAS DEL AUTOR
La primera vez que v el trmino sensor inteligente fue en el texto Sensores Aplicados de Tracy Allen (entonces conocido como Mediciones Ambientales). De manera adecuada, Tracy aplic este trmino al termmetro digital DS1620, el cual tiene elementos electrnicos interconstrudos que simplifican las mediciones de temperatura del microcontrolador. Adicionalmente, poda recordar la configuracin1 que reciba del microcontrolador y, ms an, funcionar independientemente como un controlador de termostato. En contraste con los sensores inteligentes, los sensores primitivos son dispositivos o materiales que tienen alguna propiedad elctrica que cambia con algn fenmeno fsico. Un ejemplo de un sensor primitivo en Qu es un Microcontrolador? es la fotorresistencia de sulfato de cadmio. Su resistencia cambia con la intensidad de la luz. Con el programa y el circuito adecuados, es posible realizar mediciones de luz con un microcontrolador. Otros ejemplos de sensores primitivos comunes son los sensores de temperatura con salida de corriente/tensin, transductores de micrfonos y an el potencimetro, que es un sensor de posicin rotacional. Dentro de cada sensor inteligente radica uno o ms sensores primitivos y la circuitera de soporte. Lo que hace a un sensor inteligente inteligente es la electrnica interconstruda adicional. Esta electrnica hace que estos sensores sean capaces de hacer una o ms de las siguientes funciones: Pre-procesar los valores medidos en cantidades que posean algn significado. Comunicar las medidas con seales digitales y protocolos de comunicacin. Orquestar las acciones de los sensores primitivos y sus circuitos para tomar mediciones. Tomar decisiones e iniciar alguna accin en base a las condiciones sensadas, de manera independiente al microcontrolador. Recordar la calibracin o la configuracin de sus parmetros.
Durante mi primer encuentro con un sensor inteligente pens: Vaya! Un kit completo de estos sensores con un libro podra ser REALMENTE interesante! En verdad espero
1
que alguien haga un kit y un libro as pronto No tena idea que pronto terminara siendo casi seis aos despus, y que alguien terminara siendo yo. Y si alguno de mis jefes me hubiera dicho entonces que ese kit contendra un acelermetro, un medidor de distancias ultrasnico, una brjula digital y una pantalla o visor LCD2 serial para mediciones en movimiento, quiz la impresin me hubiera deshecho por completo. Puesto que solo recientemente fue posible para nosotros conjuntar un grupo de componentes tan sorprendente en un solo kit, debera decir que la espera vali la pena. En concordancia con el resto de los tutoriales Stamps en Class, este libro es una coleccin de actividades, algunas de las cuales cubren aspectos bsicos, algunas otras cubren otros aspectos ms avanzados, y otras demuestran aplicaciones o arman bloques para varios productos e inventos. La primera mitad del libro presenta al sensor junto con algunas mediciones en movimiento desplegadas en una pantalla LCD. Luego, la segunda mitad del libro tiene una cantidad considerable de aplicaciones para que usted las intente, tales como juegos de video por inclinacin, herramientas de medicin personalizadas y dispositivos de diagnstico para entusiastas del deporte y del bricolaje. El lmite de pginas para este libro delimitado por nuestro empaque es 350 y fue difcil detenerme all. Se pueden encontrar actividades adicionales de sensores inteligentes para el robot Boe-Bot en el foro de Stamps en Class en www.parallax.com. Si bien este libro cubre los fundamentos y demuestra algunas aplicaciones como ejemplos, solamente rasga la superficie de lo que usted puede hacer con estos dispositivos. El propsito principal de este libro es proveer algunos bloques de construccin e ideas para proyectos e inventos futuros. Por ejemplo, despus de completar el captulo 3, nuestro revisor del libro Kris Magri puso su tarjeta de entrenamiento Board of Education con el acelermetro y la LCD sobre el tablero de su auto, y ahora su auto tiene un medidor de aceleracin en planos a un lado de su velocmetro. Con algunas modificaciones al cdigo, se pudo haber cambiado por un sistema de alerta de volcadura en autos de doble traccin. Despus de revisar el dispositivo mecnico de vigilancia para predecir condiciones de avalancha en reas montaosas basado en la inclinacin de la ladera, Ken Gracey desarroll en una noche la versin digital con las mismas partes que tena Kris en su auto. El acelermetro en el tablero del auto y el medidor de riesgo de avalancha son dos ejemplos nicos de las muchas aplicaciones, proyectos e inventos que pueden ser inspirados por el kit de sensores inteligentes y su texto. Nos gustara ver lo que usted
2
Visor o pantalla de cristal lquido; de sus siglas en ingls, Liquid Cristal Display (N. del T.)
Prefacio Pgina v
puede hacer con su kit en el foro de Stamps en Class. No importa si piensa que su proyecto esta en onda, es nico, poco original o lo que sea. Solo tome unos minutos para publicar las cosas que ha hecho con estos sensores inteligentes en http://forums.parallax.com/forums/ Stamps en Class. Asegrese de incluir algunas fotos, una descripcin breve y preferentemente un esquema y el programa PBASIC. Entonces, divirtase con este kit y este libro y nosotros veremos sus inventos en el foro de Stamps en Class.
IDEA GENERAL
El kit de sensores inteligentes contiene cuatro dispositivos que, cuando se usan con BASIC Stamp y la Tarjeta Board of Education o la tarjeta HomeWork Board, pueden ser bloques de construccin para una variedad de inventos y proyectos de estudiantes. He aqu una lista de los dispositivos: Pantalla LCD Serial Parallax 2x16 Buscador de rangos ultrasnico Ping))) Acelermetro de 2 ejes 2125 Mdulo de Brjula Hitachi HM55B
Adems de proveer tanto el equipo como la informacin de cmo se usa este para proyectos estudiantiles, este texto hace 2 nfasis mayores que proveen teora, ejemplos y los clculos requeridos, lo cual puede ser usado para reforzar una variedad de conceptos de medicin, de fsica/ingeniera y de trigonometra. Estos nfasis son: Tcnicas matemticas para escalar los valores de sensores primarios hasta mediciones con significado propio dado que son expresadas en sistemas de unidades comunes. Interpretacin de la proyeccin de los vectores de campos magnticos y de gravedad sobre ejes cartesianos.
ANTES DE COMENZAR
Para ejecutar los experimentos en este texto, necesitar tener su tarjeta Board of Education o bien HomeWork Board conectada a su computadora, el software Editor de BASIC Stamp instalado en su computadora y haber verificado que hay comunicacin enre su computadora y su BASIC Stamp. Para instrucciones detalladas a este respecto, consulte Qu es un Microcontrolador?, disponible como descarga gratuita en
www.parallax.com. Tambin necesitar las partes contenidas en el kit de partes de Sensores Inteligentes. Consulte el apndice D para una lista completa del sistema, software y requerimientos de hardware.
Qu es un Microcrontolador? es el nivel recomendado de entrada a la serie educativa Stamps en Class. En vez de ello, algunos estudiantes empiezan con Robtica con el BoeBot, tambin diseado para principiantes. Qu es un Microcontrolador?, Gua del Estudiante, Version 2.2, Parallax Inc., 2004 Robotica con el Boe-Bot, Gua del Estudiante, Version 2.2, Parallax Inc., 2004 Podr entonces continuar con otros tpicos de proyectos educativos, o quiz prefiera explorer nuestros kits Robticos.
Kits de Proyectos Educativos:
Los siguientes textos y kits proven una variedad de actividades que son tiles para aficionados al bricolaje, inventores y diseadores de productos interesados en intentar un amplio espectro de proyectos: Sensores inteligentes y sus aplicaciones, Gua del Estudiante, Version 1.0, Parallax Inc., 2006 Control de Procesos, Gua del Estudiante, Version 1.0, Parallax Inc., 2006 Sensores Aplicados, Gua del Estudiante, Version 1.3, Parallax Inc., 2003 Basicos Analgicos y Digitales, Gua del Estudiante, Version 1.3, Parallax Inc., 2004 Entendiendo las seales, Gua del Estudiante, Version 1.0, Parallax Inc., 2003
Kits Robticos:
Para adquirir experiencia con robtica, considere continuar con las siguientes Guas Del Estudiante Stamps en Class, cada una tiene un kit robot correspondiente: Control remoto IR para el Boe-Bot, Gua del Estudiante, Version 1.1, Parallax Inc., 2004 Robotica Aplicada con el SumoBot, Gua del Estudiante, Version 1.0, Parallax Inc., 2005 Robtica avanzada con el Toddler, Gua del Estudiante, Version 1.2, Parallax Inc., 2003
Referencias
Este libro es una referencia esencial para todas las Guas del Estudiante Stamps en Class. Se presenta con informacin de la serie de modulos microcontroladores BASIC Stamp, nuestro Editor BASIC Stamp y nuestro lenguaje de programacin PBASIC. Manual BASIC Stamp, Version 2.2, Parallax Inc., 2005
TRADUCCIONES
Los textos educativos Parallax pueden ser traducidos a otros idiomas con nuestro permiso (correo electrnico: translations@parallax.com). Si usted planea hacer alguna traduccin por favor contctenos y as podremos proveerle con los documentos MS Word en el formato adecuado, imgenes, etc. Tambin mantenemos un grupo privado de discusin para traductores al cual quiz quiera unirse. Esto asegurar que se le mantiene al corriente con nuestras frecuentes revisiones de texto.
COLABORADORES ESPECIALES
Parallax Inc. quiere dar reconocimiento a sus miembros del equipo de Educacin: al administrador del Proyecto Aristides Alvarez, el Ilustrador Tcnico Rich Allred, Diseadora Grfica Larissa Crittenden, Revisor Tcnico Kris Magri y la Editora Tecnica Stephanie Lindsay. Adicionalmente, gracias a nuestro cliente Steve Nicholson por poner a prueba de usuario la mayoria de nuestras actividades. Como siempre, un agradecimiento especial a Ken Gracey, fundador del programa educativo Stamps en Class de Parallax Inc.
Las actividades en este captulo presentan algunos fundamentos de la pantalla LCD Parallax, como conectarla al BASIC Stamp, encenderla y apagarla, colocar su cursor y desplegar texto y dgitos. Los captulos posteriores mostrarn cmo crear y animar caracteres personalizados y mostrar mensajes con movimiento.
LCDS EN PRODUCTOS
Todos los productos mostrados en la Figura 1-2 tienen pantallas de cristal lquido. Son fciles de leer y los ms pequeos consumo poca energa. Piense cuntos productos que usted posee tienen pantallas de cristal lquido. Al avanzar en las actividades de este texto, piense acerca los proyectos de BASIC Stamp, los prototipos y los inventos que tiene en progreso y cmo una pantalla LCD serial puede mejorarlos o ayudarle a completarlos.
Figura 1-2: Ejemplos de Productos con pantallas LCD De arriba a abajo y de izquierda a derecha: telfono celular, GPS porttil, calculadora, multmetro digital, reloj de oficina, computadora lap-top, osciloscopio, telfono de oficina.
que recibe del BASIC Stamp. Es especialmente til para mostrar mensajes de diagnstico y valores de variables, haciendo ms fcil aislar los problemas en un programa. Tambin es til para probar circuitos, sensores y ms. La Terminal de Depuracin tiene una desventaja y es la conexin por cable serial. Considere cuantas veces fue inconveniente tener su tarjeta conectada a la computadora para probar un sensor, o para descubrir qu estaba viendo su robot Boe-Bot con sus detectores infrarrojos en la otra habitacin. Estas son situaciones que pueden ser remediadas con la pantalla LCD Serial Parallax mostrada en la Figura 1-3. Una vez que construya un circuito sensor en su tarjeta Board of Education, puede usar una batera y su pantalla LCD Serial parallax para llevar el arreglo tan lejos de su terminal de programacin como usted quiera, mientras que despliega las mediciones de su sensor y otra informacin de diagnstico.
La pantalla LCD Serial Parallax 216 tiene dos renglones de 16 caracteres cada uno para desplegar mensajes. La pantalla es controlada por mensajes seriales desde el BASIC Stamp. El BASIC Stamp enva estos mensajes desde un solo pin de entrada/salida que est conectado a la entrada serial de la LCD. Hay dos versiones, estndar y con luz de fondo: Version Estndar Con Luz Parte Parallax # 27976 27977
Pantallas LCDs Seriales vs Paralelas La pantalla LCD paralela es probablemente el tipo ms comn de pantallas LCD. Requiere un mnimo de 6 pines de entrada/salida para ser controlada por el BASIC Stamp. Tambin, si no est usando un BASIC Stamp 2p, 2pe o 2px, el cdigo para controlar la pantalla tiende a ser ms complejo que el cdigo para una pantalla LCD serial. La pantalla LCD serial en realidad es una pantalla LCD con un microcontrolador extra. Este microcontrolador extra convierte los mensajes seriales del BASIC Stamp en mensajes paralelos que controlan la pantalla LCD paralela.
(1) Pantalla LCD Serial Parallax 216 (3) Segmentos de cable Adems de la pantalla LCD Serial Parallax y los 3 cables, es especialmente importante que tenga la documentacin de la pantalla (incluida en el Apndice B de este texto). An cuando son unas cuantas pginas, tienen una larga lista de valores que puede enviar a su LCD para hacer que ejecute funciones similares a las que ha usado en la Terminal de Depuracin. Funciones como control de cursor, retorno de carro, retorno, limpiar pantalla, etc., todas tienen sus propios cdigos especiales. Algunos de estos cdigos son idnticos a los de la Terminal de Depuracin; otros son bastante diferentes.
Armando el circuito de la pantalla LCD Serial
La conexin de la pantalla LCD Serial Parallax al BASIC Stamp es sorprendentemente simple, como se muestra en la Figura 1-4. Solo tiene que hacer tres conexiones: una para la alimentacin, otra para tierra y una mas para la seal. El pin RX de la LCD es para la seal y debe ser conectada al pin de entrada/salida del BASIC Stamp. En esta actividad, usaremos el pin P14. El pin de tierra GND de la pantalla debe ser conectado a VSS en la tarjeta Board of Education, y el pin 5 V de la pantalla debe ser conectado a Vdd.
PRECAUCIN: Una conexin errnea puede daar esta pantalla LCD. La Revisin D y los modelos anteriores de esta pantalla LCD tienen 5 pines. Si Ud. tiene un modelo de 5 pines, por favor vea la Figura B-1 en la pgina 306 para verificar cules son los pines correctos a usar en los circuitos de este libro. La versin de 5 pines no es compatible con los modelos Scott Edwards o Matrix Orbital. Si usted ha usado otras marcas de pantallas LCD seriales antes, note que este diagrama de pines es diferente. No cometa el error de usar el mismo alambrado que us para otros modelos.
Desconecte la alimentacin de energa de su tarjeta Board of Education. Conecte la terminal Vss de la tarjeta Board of Education al pin GND de la LCD. Conecte la terminal P14 de la tarjeta Board of Education al pin RX de la LCD, como se muestra en la Figura 1-4. Conecte la terminal Vdd de la tarjeta Board of Education al pin 5V de la LCD. No conecte la fuente de energa an.
La LCD Serial Parallax tiene un modo de auto-prueba que puede usar para asegurarse que esta en condiciones de operar y que el contraste est ajustado adecuadamente. La Figura 1-5 muestra la parte posterior del modulo de la LCD. Los interruptores SW1 y SW2 son para entrar en modo de auto-prueba y para ajustar la velocidad de transmisin baud, el contraste se ajusta con un potencimetro INCREASE CONTRAST.
Su tarjeta Board of Education an debe estar desenergizada. Encuentre los interruptores SW1 y SW2 en la parte baja del mdulo de la pantalla LCD como se muestran en la Figura 1-6 . Coloque SW1 en posicin off. Coloque SW2 en posicin off. Re-energice su tarjeta nuevamente ahora.
Figura 1-6 Configurando los interruptores de velocidad Baud en el modo de auto- prueba
Cuando re-energice, la LCD debe mostrar el texto "Parallax, Inc." en la lnea superior (Lnea 0) y "www.parallax.com" en la lnea inferior (Lnea 1), como se muestra en la Figura 1-3. Si deja la pantalla en este modo por un rato, un carcter personalizado bien conocido por los jugadores de video juegos de los 80s aparecer comindose el texto.
Si la pantalla parece atenuada o en blanco, puede girar el potencimetro de ajuste de contraste mostrado en la Figura 1-7con un desarmador. Si los caracteres en la pantalla se ven bien, quiz no necesite ajustarlo. Si los caracteres estn muy oscuros o como cuadros grises, el ajuste al potencimetro podra ser de ayuda. Ajuste el potencimetro de contraste si se requiere.
La comunicacin de datos en serie involucra una velocidad de transmisin baud . Esto es el nmero de bits por segundo (bps) que el emisor transmite y a los que el receptor tiene que estar listo para recibir los datos a la misma velocidad baud. En las actividades de este captulo, el BASIC Stamp ser programado para enviar mensajes a la LCD a 9600 bps. Puede ajustar los mismos interruptores que us para el modo auto-prueba ahora para fijar la velocidad baud. Desenergice la tarjeta Board of Education. Deje el interruptor SW1 en la posicin OFF. Coloque el interruptor SW2 en la posicin ON como se indica en la Figura 1-8. Energice la tarjeta nuevamente ahora.
La pantalla se mantendr en blanco hasta que programe el BASIC Stamp 2 para controlar la pantalla.
Figura 1-8 Velocidad Baud. Interruptores a 9600 bps
La Figura 1-9 muestra la tabla impresa en la parte posterior de la LCD Serial Parallax. Si quiere enviar mensajes a otras velocidad baud (2400 o 19,200 bps), use esta tabla y ajuste los interruptores SW1 y SW2 segn sea el caso.
En nuestros programas, el argumento Pin tiene que ser 14 puesto que el pin RX (de recepcin de datos) de la pantalla LCD's est conectada a pin de entrada/salida P14 del BASIC Stamp.
El argumento BaudMode es un valor que le dice al BASIC Stamp qu tan rpido deber enviar los datos en serie y tambin determina algunas de las caractersticas de la seal serial. El programa de ayuda del Editor del BASIC Stamp tiene tablas que dan los valores de BaudMode para velocidades baud y seales comunes. Al consultarlas, resulta que 84 es el valor del argumento de BaudMode para 9600 bits por segundo (bps), palabras de 8 bits, sin paridad, seal verdadera. Esto es exactamente para lo que la LCD Serial Parallax fue diseada para recibir. Los argumentos DataItem pueden ser escritos entre comillas como Hola. Tambin pueden ser caracteres de control como CR, CLS, o valores, con o sin formateadotes como DEC, BIN, y ?. Si se enva con formateadores, ellos son enviados como los caracteres que representan el valor. Si se envan sin formateadores, ellos sern enviados como valores, como 22, 12 y 13. Podemos enviar valores sin formato como estos a la LCD, los cuales sern interpretados como cdigos de control.
Ms acerca SEROUT Si usted desea intentar usar la terminal de Depuracin con SEROUT en vez de DEBUG, primero brala desde la barra de herramientas con Run Debug New. Luego, seleccione Run Identify para ver qu puerto est usando su BASIC Stamp. Entonces, en la Terminal de Depuracin, haga coincidir la designacin del puerto de comunicacin. Note que tambin puede cambiar la velocidad Baud de la Terminal de Depuracin as como otros parmetros de comunicacin. Hay mucho ms que aprender acerca de SEROUT. Tanto el Manual del BASIC Stamp como la Gua de Sintaxis del Editor PBASIC dan explicacin amplia acerca el comando SEROUT. El Manual del BASIC Stamp est disponible como descarga gratis en www.parallax.com Downloads Documentation. Si su Editor de BASIC Stamp soporta PBASIC 2.5, probablemente ya tenga la Gua de Sintaxis de PBASIC. Para accesar, simplemente seleccione el ndice desde el men de ayuda del Editor de BASIC Stamp.
A diferencia de la Terminal de Depuracin, la LCD serial necesita ser encendida con un comando desde el BASIC Stamp. La pantalla debe recibir el valor 22 desde el BASIC Stamp para activarse. Este es el comando PBASIC para enviarlo a la LCD serial:
SEROUT 14, 84, [22]
Usado as, 22 es un ejemplo de un cdigo de control de la pantalla LCD. Otros cdigos de control bsicos son:
12 limpia la pantalla. Nota: siempre debe seguir PAUSE 5 para dar tiempo a la
LCD de limpiarse.
13 es un retorno de carro; manda al cursor a la siguiente lnea. 21 apaga la pantalla LCD. 22 enciende la pantalla LCD.
Para encender y apagar la luz de fondo (solo pantallas LCD con Luz de fondo): Algunas pantallas de LCD tienen luz de fondo para poder leerlas cuando est oscuro. Si usted tiene esta versin de LCD Serial Parallax (parte # 27977), puede controlar la luz de fondo con estos valores:
En PBASIC, CR es una constante predefinida para el valor 13. Siempre que en el comando DEBUG use la constante CR, enva el valor 13 a la Terminal de Depuracin. La Terminal de Depuracin mueve el cursor al principio de la siguiente lnea siempre que recibe el valor 13. En este caso, los dos comandos a continuacin son equivalentes: SEROUT 14, 84, ["Ve esto?", CR, "La LCD funciona!"] SEROUT 14, 84, ["Ve esto?", 13, "La LCD funciona!"] Si bien funciona para CR, no funciona para otras constantes PBASIC predefinidas. Por ejemplo, CLS, que es una constante predefinida para el nmero 0, no limpia la LCD. El equivalente de CLS de la LCD Serial Parallax es 12. HOME, que es una constante predefinida para el valor 1, no manda el cursor al carcter en casa en la esquina superior izquierda de la LCD. El cdigo de control que lo hace para la LCD Serial Parallax es 128.
Introduzca, salve y corra LcdTestMessage.bs2. Verifique que muestre el mensaje "See this?" en la lnea 0 y "The LCD works!" en la lnea 1 (ver Figura 1-10).
' Sensores inteligentes y sus Aplicaciones - LcdTestMessage.bs2 ' Muestra un mensaje de prueba en la LCD Serial Parallax. ' {$STAMP BS2} ' {$PBASIC 2.5} ' Dispositivo Objeto ' Lenguaje = BASIC Stamp 2 = PBASIC 2.5
SEROUT 14, 84, [22, 12] PAUSE 5 SEROUT 14, 84, ["See this?", 13, "The LCD works!"] END
' Mensaje de texto, retorno de carro ' mas texto en la linea 1. ' Fin del Programa
Si la LCD no despliega adecuadamente: Revise su cableado, su programa y los interruptores en la parte posterior de la LCD. Desconecte y reconecte la batera de su tarjeta Board of Education. Vaya a las instrucciones que anteceden al programa y verifique que cada una haya sido completada correctamente.
Recuerda que 22 enciende la pantalla y que 21 la apaga? Puede usar estos cdigos de control para hacer que el texto parpadee. Reemplace el comando END en LcdTestMessage.bs2 con este bloque de cdigo.
DO PAUSE 600 SEROUT 14, 84, [22] PAUSE 400 SEROUT 14, 84, [21] LOOP ' ' ' ' ' ' Inicia el bloque DO...LOOP Retraso de 6/10 de segundo Enciende la pantalla Retraso de 4/10 de segundo Apaga la pantalla Repite el bloque DO...LOOP
Muchos de los formateadores usados para mostrar nmeros con la terminal de Depuracin funcionan con la LCD Serial Parallax. El formateador DEC es probablemente el ms til, pero tambin puede usar DIG, REP, ASC, BIN, HEX, SDEC, y muchos de los otros. Por ejemplo, si quiere desplegar el valor decimal de una variable llamada counter, puede usar comandos como este:
SEROUT 14, 84, [DEC counter]
Adems de demostrar que puede desplegar valores de variables en la LCD serial, este programa tambin muestra qu pasa si el programa manda ms de 16 caracteres a la lnea 0. Los ajusta hacia la lnea 1. Tambin, despus de llenar la lnea 1 con otros 16 caracteres, el texto se vuelve a ajustar hacia la lnea 0. Introduzca, salve y corra LcdTestNumbers.bs2
' Sensores inteligentes y sus Aplicaciones - LcdTestNumbers.bs2 ' Muestra valores numericos con la LCD Serial Parallax. ' {$STAMP BS2} ' {$PBASIC 2.5} counter VAR Byte ' Dispositivo Objeto ' Lenguaje = BASIC Stamp 2 = PBASIC 2.5
' Variable del ciclo FOR...NEXT ' Inicializa la LCD ' Retraso 5 ms para limpiar la pantalla ' Cuenta hasta 12; incrementa cada 1/2 s
SEROUT 14, 84, [22, 12] PAUSE 5 FOR counter = 0 TO 12 SEROUT 14, 84, [DEC counter, " "] PAUSE 500 NEXT END
Intente reemplazar DEC con DEC2 y observe qu pasa. Repita con el formateador ?. Si es necesario, busque estos comandos en el Manual BASIC Stamp o en la ayuda del Editor BASIC Stamp. Ensyelos tambin en la Terminal de Depuracin. Cules son las similitudes y diferencias entre usar estos formateadores en la Terminal de Depuracin y usarlos en la LCD Serial Parallax?
Los cdigos de control de la LCD son diferentes de los caracteres de control del comando DEBUG. Por ejemplo, HOME y CRSRXY simplemente no tienen el mismo efecto que tienen en la Terminal de Depuracin. Sin embargo, hay comandos de cursor para la LCD Serial Parallax que puede usar para controlar las coordenadas X y Y del cursor. Tambin puede enviar el cursor a la posicin superior izquierda o posicin de casa. Revise el conjunto de comandos en la seccin de la documentacin de la LCD al principio de la pgina 312. Enlista todos los comandos de control vlidos para la LCD; a continuacin se indican algunos ejemplos de la lista que controlan la posicin del cursor.
Cursor a la izquierda Cursor a la derecha Cursor abajo (la linea inferior ajustara en la linea superior) Posiciona el cursor en la linea 0, caracteres 0 al 15 Posiciona el cursor en la linea 1, caracteres 0 al 15
Los valores 128 to 143 y 148 to 163 son particularmente tiles. La Figura 1-12 muestra donde cada valor posiciona al cursor. Puede usar valores de 128 to 143 para colocar al cursor en los caracteres 0 al 15 en la lnea superior de la LCD (lnea 0). De manera semejante, puede usar valores de 148 to 163 para colocar el cursor en los caracteres 0 al 15 de la lnea inferior (lnea 1).
Luego de colocar el cursor, el siguiente caracter que enve a la LCD ser desplegado en esa posicin. Por ejemplo, he aqu un comando SEROUT con un argumento Pace opcional configurado a 200 ms. Este comando mostrar los caracteres "L", "I", "N", "E", "-", y "0", igualmente espaciados a lo ancho de la lnea superior, un caracter cada 200 ms.
SEROUT 14, 84, 200, [128, 131, 134, 137, 140, 143, "L", "I", "N", "E", "-", "0"]
Si se despliegan caracteres mltiples despus de dar una posicin inicial, la LCD an cambiar el cursor a la derecha despus de cada caracter. Por ejemplo, tambin puede colocar el cursor en el caracter 7 de la lnea superior y entonces desplegar "ALL", luego mover el cursor al carcter 6 de la lnea inferior y desplegar "DONE!", as:
SEROUT 14, 84, [135, "ALL", 154, "DONE!"]
He aqu un bloque de cdigo que har que el texto "Line 1" resbale abajo a la linea inferior, de derecha a izquierda.
FOR index = 9 TO 0 ' IMPORTANTE: Deje un espacio luego del 1 en "Line 1 " SEROUT 14, 84, [148 + index, "Line 1 "] PAUSE 100 NEXT
Borrando Caracteres Siempre puede barrar un caracter colocando el cursor donde lo desee y enviando el caracter de espacio " " para sobreescribir lo que sea que all haya. Es por esto que el texto "Line 1 " tiene un espacio despus del caracter "1", para borrar los caracteres a su derecha conforme se mueve el texto a la izquierda.
Este programa introduce unos trucos bsicos para colocar el cursor. Revise CursorPositions.bs2 y trate de predecir lo que el programa har que haga la LCD. Tambin trate de predecir la secuencia y el tiempo. Introduzca, salve y corra CursorPositions.bs2. Compare el comportamiento de la LCD con sus predicciones.
' Sensores inteligentes y sus Aplicaciones - CursorPositions.bs2 ' Muestra valores numericos con la LCD Serial Parallax. ' {$STAMP BS2} ' {$PBASIC 2.5} index character offset VAR VAR VAR Nib Byte Byte ' Dispositivo Objeto ' Lenguaje = BASIC Stamp 2 = PBASIC 2.5
' Variable del ciclo FOR...NEXT ' Guardado del caracter ' Valor de compensacion ' Inicializa la LCD ' Retraso de 1/2 segundo
' Muestra caracteres equidistantes en la linea 0 cada 200 ms. SEROUT 14, 84, 200, [128, "L", 131, "I", 134, "N", 137, "E", 140, "-", 143, "1"] PAUSE 1000
' Cambia "Line 1" sobre la linea 1 de derecha a izq, luego izq a derecha. FOR index = 9 TO 0 ' IMPORTANTE: Asegurese de que haya un espacio luego del 1 en "Line 1 ". SEROUT 14, 84, [148 + index, "Line 1 "] PAUSE 100 NEXT FOR index = 0 TO 9 ' IMPORTANTE: Asegurese de que haya un espacio entre " y la letra L. SEROUT 14, 84, [148 + index, " Line 1"] PAUSE 250 NEXT PAUSE 1000 ' 1 segundo de retraso
' Limpia LCD, luego muestra "ALL DONE" al centro y flashea 5 veces SEROUT 14, 84, [12]: PAUSE 5 ' Limpia la LCD SEROUT 14, 84, [135, "ALL", 13, 154, "DONE!"]' "ALL" y "DONE" centrados FOR index = 1 TO 4 SEROUT 14, 84, 500, [21, 22] NEXT END ' Flashea 5 veces
Desplegados ms elaborados se pueden beneficiar con ciclos y las tablas de valores. He aqu un ejemplo del mensaje "T E S T" en un ciclo y con la ayuda de un par de comandos LOOKUP. Note que usted puede controlar la posicin de cada caracter ajustando los valores de offset en la segunda lista de valores del comando LOOKUP.
PAUSE 1000 SEROUT 14, 84, [12]: PAUSE 5 SEROUT 14, 84, ["This is a", 13] ' Limpia la pantalla ' Texto y CR
FOR index = 0 TO 3 ' secuencia de Caracteres PAUSE 600 LOOKUP index, ["T", "E", "S", "T"], character LOOKUP index, [ 1, 5, 9, 13], offset SEROUT 14, 84, [(148 + offset), character] NEXT
Intntelo!
He aqu un bloque de cdigo que enciende la LCD, la limpia y coloca algunos caracteres que no cambiarn. El resto del programa puede entonces desplegar los valores numricos cambiantes de hora, minuto y segundo junto a los caracteres fijos "h", "m" y "s".
SEROUT 14, 84, [22, 12] PAUSE 5 SEROUT 14, 84, ["Time Elapsed...", 13] SEROUT 14, 84, [" h m s"] ' Enciende LCD y limpia ' Pausa 5 ms para limpiar ' Texto + retorno de carro ' Texto en la segunda linea
Para esta aplicacin, los cdigos de control para colocacin del cursor son particularmente tiles. Por ejemplo, el cursor puede ser colocado en la lnea 1, caracter 0 antes de enviar el valor decimal de 2 dgitos de las horas. El cursor puede ser movido a la lnea 1, caracter 5 para desplegar los minutos y luego movido a la lnea 1, caracter 10 para desplegar los segundos. Un comando SEROUT que mustra los valores de las 3 variables, en posiciones correctas:
SEROUT 14, 84, [ 148, DEC2 hours, 153, DEC2 minutes, 158, DEC2 seconds ]
El siguiente programa ejemplo aplica este concepto con tan solo las habilidades de tiempo del modulo BASIC Stamp. La precisin no es por mucho la de un reloj de mueca digital; sin embargo es lo suficientemente Buena para mostrar como el desplegar la hora puede trabajar con el posicionado de caracteres. Para mayor precisin, intente incorporar el circuito integrado de tiempo DS1302. Est disponible en www.parallax.com, solo teclee DS1302 en el campo de bsqueda.
Programa Ejemplo - LcdTimer.bs2
Este programa ejemplo despliega las horas, los minutos y los segundos transcurridos con la LCD Serial Parallax. Apretando el botn de RESET en la tarjeta Board of Education, usted puede reiniciar el timer. Introduza, salvey corra LcdTimer.bs2. Verifique que la pantalla trabaja adecuadamente.
' Sensores inteligentes y sus Aplicaciones - LcdTimer.bs2 ' Muestra el tiempo transcurrido con BS2 y Parallax Serial LCD. ' {$STAMP BS2} ' {$PBASIC 2.5} hours minutes seconds VAR VAR VAR Byte Byte Byte ' Directiva de Stamp ' Directiva de PBASIC ' Guarda horas ' Guarda minutos ' Guarda segundos ' Inicia LCD y limpia pantalla ' Pausa 5 ms para limpiar ' Texto + retorno de carro ' Texto en segunda linea
SEROUT 14, 84, [22, 12] PAUSE 5 SEROUT 14, 84, ["Time Elapsed...", 13] SEROUT 14, 84, [" h m s"] DO
' Rutina Principal ' Calcula horas, minutos, segundos IF seconds = 60 THEN seconds = 0: minutes = minutes + 1 IF minutes = 60 THEN minutes = 0: hours = hours + 1 IF hours = 24 THEN hours = 0 ' Muestra digitos en LCD en Linea 1. Los valores 148, 153, 158 colocan ' el cursor en los caracteres 0, 5, y 10 para los valores de tiempo. SEROUT 14, 84, [148, DEC2 hours, 153, DEC2 minutes, 158, DEC2 seconds ]
' Pausa + consumo ~ 1 segundo ' Incrementa segundo contador ' Repite Rutina Principal
Hasta este punto, los cdigos de control de la LCD han tenido valores decimales. Sin embargo, cuando est escribiendo o leyendo un programa largo, memorizar todos estos valores de cdigos de control puede ser tedioso. Es mejor declarar una constante para cada cdigo de control al principio del programa. Luego, usar nombres de constantes en vez de nmeros. Tambin puede hacer lo mismo con el valor de BaudMode y luego tambin agregar una directiva PIN para el pin P14 de entrada/salida. He aqu un ejemplo:
LcdPin T9600 LcdCls LcdCr LcdOff PIN CON CON CON CON 14 84 12 13 21 ' pin de E/S de la LCD ' True, 8-bits, no parity, 9600 ' Form feed -> clear screen ' Retorno de Carro ' Apaga la pantalla
22 128 148
Estas declaraciones harn a su cdigo ms fcil de entender, lo cual es especialmente importante si decide hacer cambios a su programa despus de no haberlo visto por varios meses. Por ejemplo, el primer comando SEROUT puede ser re-escrito as:
SEROUT LcdPin, T9600, [LcdOn, LcdCls]
El comando SEROUT en LcdTimer.bs2 que muestra los nmeros en la lnea 1 de la LCD puede ser re-escrito como sigue:
SEROUT LcdPin, T9600, [(Line1 + 0), DEC2 hours, (Line1 + 5), DEC2 minutes, (Line1 + 10), DEC2 seconds]
Salve LcdTimer.bs2 bajo un nuevo nombre. Agregue constantes descriptivas a su programa. Reemplace tantos nmeros como pueda con nombres de constantes significativos. Corra su programa y corrija segn lo requiera.
La LCD Serial Parallax tiene espacio asignado para ocho caracteres mostrados en la Figura 1-13. Para desplegar el carcter personalizado 0, solo mande a la LCD el valor 0 con el comando SEROUT. De igual manera, para mostrar el caracter Personalizado 1, solo mande un 1, para mostrar el caracter Personalizado 2, mande un 2, etc. Note que los Caracteres 0 y 1 estn pre-configurados como la contradiagonal y el tilde. He aqu un ejemplo de comando SEROUT que muestra ambos - SEROUT 14, 84, [0, 1].
Este ejemplo enva a la LCD serial los dos comandos para desplegar los caracteres personalizados 0 y 1, la contradiagonal "\"y el tilde"~". Introduzca y corra el programa y verifique que muestra la contradiagonal y el tilde.
' Sensores inteligentes y sus Aplicaciones - PredefinedCustomCharacters.bs2 ' {$STAMP BS2} ' {$PBASIC 2.5} SEROUT 14, 84, [22, 12] PAUSE 5 ' Inicializa la LCD ' 5 ms retardo para limpiar
' Muestra caracteres personalizados pre-definidos:"\" (caracter predefinido 0) ' y "~" (caracter predefinido 1). SEROUT 14, 84, [0, 1]
Los caracteres personalizados de la LCD Serial Parallax estn guardados en su RAM. Para definir uno de sus ocho caracteres personalizados, su commando SEROUT tiene que decirle a la LCD cul de los 8 caracteres personalizados est definiciendo y entonces describer los estados de encendido/apagado de cada pixel en el caracter. Cada carcter tiene 40 pixeles, 8 pixeles de alto por 5 de ancho. La Figura 6-14 muestra los comandos de Definicin que puede enviar a la LCD para decirle cul es el caracter que est a punto de definir. Tambin lo puede ver as: para decirle a la LCD cul caracter est definiendo, envele el valor del caracter personalizado, ms 248. Por ejemplo, si usted quiere definir el caracter personalizado 0, mande 248, si quiere definir el caracter personalizado 1, mande 249, y as sucesivamente hasta 255 para el caracter personalizado 7.
Luego de enviar el cdigo que le dice a la LCD cul caracter personalizado va a definir, debe enviar 8 bytes que describan al caracter. La LCD usa los 5 bits ms bajos de cada byte que recibe para describir cada una de las 8 lneas de 5 pixeles de ancho que hay en el caracter. La Figura 1-15 muestra un ejemplo de la definicin del caracter personalizado 0 para un reloj de arena que acaba de ser volteado.
SEROUT 14, 84, [248, %00000, %11111, %11111, %01110, %00100, %01010, %10001, %11111]