Realizando sus Propios Inventos · Página 311
Capítulo 10: Realizando sus Propios Inventos Este texto le presentó las bases de integrar computadora y Tablilla en proyectos e inventos. Ahora usted tiene experiencia de los ingredientes de circuitos comunes en los productos cotidianos que incluyen: luces indicadoras, botones, servos, perillas, indicadores digitales, sensores de luz, bocinas, transistores, y otros circuitos integrados. Usted también tiene experiencia en conectar esos circuitos al controlador BASIC Stamp y escribir códigos para verificar cada uno de ellos así como integrarlos en pequeñas aplicaciones. En este punto, usted puede estar interesado en usar sus nuevas habilidades para inventar algo o para aprender más o quiza ambas actividades. Usted ha aprendido que en este libro puede obtener un buen método para hacer prototipos de una variedad amplia de inventos. En este capítulo usaremos un sistema micro alarma como ejemplo de prototipo de un dispositivo familiar. A lo largo del camino cubriremos algunas técnicas importantes de prototipos y habitos, que incluyen: • • • • • • •
Sugerencias para el desarrollo inicial de sus ideas de diseño e inventos. Un ejemplo de cómo construir y verificar cada subsistema del prototipo. Ejemplos de cómo incorporar códigos de prueba en el código del proyecto. Buenas prácticas en los comentarios de los códigos y versiones de archivos. Ejemplos de partes familiares como xxx para dispositivos con interfaces similares. Sugerencias y trucos para obtener diseños pasados xx En donde buscar más sobre proyectos Stamps en Clase y dispositivos interesantes.
APLIQUE LO QUE USTED YA CONOCE EN OTRAS PARTES Y COMPONENTES El circuito botón push del capítulo 3 es un ejemplo de un dispositivo de entrada muy simple que convierte una condición física (ya sea que haya o no haya presionado el botón) en una señal high o low que el BASIC Stamp puede detectar y procesar. Usted también ha usado botones push en aplicaciones que controlan luces parpadeantes, posiciones de servos y tonos de bocina. Hay muchos sensores que detectan condiciones físicas además de las de contacto que también mandan señales que el pin E/S del BASIC Stamp puede monitorear. Unos pocos ejemplos incluyen sensores de gas, movimiento y sonido, y hay muchos muchos más. Como ahora usted ya tiene experiencia haciendo que
Página 312 · ¿Qué es un Microcontrolador?
BASIC Stamp monitoree un circuito botón push, monitorear un sensor de sonido o movimiento es muy similar, y ciertamente el siguiente paso razonable. Otra técnica de este libro fue medir el tiempo de descarga de RC con la instrucción RCTIME para sensar la posición de una perilla de potenciometro y niveles de luz con un fototransistor y un LED. Estos ejemplo son la punta del iceberg en términos de sensores que usted puede usar con un circuito RC Otros ejemplos son sensores de humedad, temperatura y presión que son solamente el principio.El indicador de luz LED proporciona otro ejemplo de circuito que es representativo de una variedad de circuitos con funciones diferentes. El circuito LED es controlado por un pin de salida de señales high/low del BASIC Stamp. Con circuitos de soporte adicional, usted puede usar las señales para mover motores eléctricos hacia delante y hacia atrás, apagar y encender luces, apagar y encender elementos de calentamiento y mucho más. Ahora, piense en otros dispositivos con lo que usted ya ha experimentado en este libro. Cada uno de ellos es justamente un ejemplo en una lista de dispositivos con interfaces similares que usted puede usar para hacer prototipos de varios inventos.
HACIENDO EL PROTOTIPO DE UN SISTEMA DE MICRO SEGURIDAD En este capítulo usaremos partes del kit ¿Qué es un Microcontrolador? para hacer un prototipo de un muy pequeño sistema de seguridad que usted podría usar en un escritorio, caja de herramienas o closet, xx. Con este prototipo también investigaremos otras partes y componentes que usted podría sustituir en su sistema de seguridad para que funcione con los mismos principios de las partes conocidas de su kit, y podría darle a su sistema una gran funcionalidad. A partir de esto, veremos como encontrar, comprender, verificar e incorporar otros componentes con las que quizá usted nunca ha trabajado anteriormente.
ACTIVIDAD #1: DE LA IDEA A LA DEMONSTRACIÓN DEL CONCEPTO Muchos productos empiezan con una idea, y en algunos casos un invento puede ser xx en otros casos es algo que resuelve un problema. Esta idea puede desarrollarse en conceptos con dibujos y especificaciones, y a veces un trabajo anterior de diseño. El siguiente paso es tipicamente desarrollar un prototipo que funcione. Quizá no sea bonito pero debe ser fiable para demostrar que un dispositivo puede trabajar de acuerdo con el concepto y especificación. En las compañias donde se desarrollan productos, tipicamente se requiere la demostración del concepto para obtener la aprobación de la dirección y fondos para continuar desarrollando el producto.
Realizando sus Propios Inventos · Página 313
Idea, Concepto y Descripción Funcional
Digamos que usted tiene un gabinete con una puerta en una bisagra y charola, y necesita un muy pequeño sistema de alarma. O quizá usted desea diseñar un gabinete especial con seguridad interconstruida. La Figura 10-1 muestra un bosquejo de cómo un potenciometro y un contacto eléctrico similar a un botón push puede usarse para detectar cuando la puerta o la charola está abierta. Este bosquejo es similar al concepto diagrama, el cual se enfoca solamente en mostrar lo que el producto o invento puede hacer.
Figura 10-1 Bosquejo de un gabinete con Microsistema de Seguridad
Es importante la descripción funcional. Cuando usted tiene una mejor idea de lo que supone que su dispositivo tiene que hacer al principio, esto previene problemas que puedan suceder si usted tiene que rediseñar el dispositivo para adecuarle algo que usted no había pensado. Los diseñadores y las compañias que crean aparatos para clientes tienen que ser muy cuidadosos al examinar sus clientes para comprender lo que ellos esperan. En especial los dispositivos diseñados para clientes, sus rediseños pueden ser muy costosos y consumir mucho tiempo. Este es un ejemplo de una muy breve descripción funcional que podemos usar para nuestro sistema. Desarrolle un prototipo del circuito y programa de un microsistema de
Página 314 · ¿Qué es un Microcontrolador?
alarma que pueda monitorear una pequeña puerta que tenga una bisagra y una charola. Si se activa una alarma deberá sonar si la puerta o la charola se abren. Un LED de estado deberá iluminarse verde cuando la alarma no está preparada, y rojo cuando se active. El prototipo controlado por computadora debe activarse y desactivarse. Se deberá incorporar un retardo de tiempo después que el dispositivo se ha activado para permitirle al usuario que cierre el gabinete. Especificaciones
Además de la descripción funcional, las especificaciones tipicamente toman en consideración muchos aspectos que la propuesta debe incluir: costo, consumo de energía, voltaje de alimentación, dimensiones, peso, volumen de la bocina, y algunos otros detalles. Diseño Inicial
Frecuentemente, el diseño inicial incluye tormenta de ideas para que las aproximaciones puedan resolver el problema de diseño, y muchas de estas ideas tienen que verificarse para saber si son verdaderamente realizables. Otras porciones del diseño podrían involucrar partes normalizadas o comunes y practicas de diseño. Nuestra micro alamarma cae en esta categoría, al menos en el prototipo. Se deberá colocar un botón push en el gabinete para que cuando la charola se cierre presione al botón push. El LED bicolor es un indicador familiar y también la bocina piezo eléctrica es una bien conocida generadora de ruido de alarma. Entonces, ahora conocemos los circuitos que necesitamos para nuestro prototipo gabine de micro seguridad: LED bicolor, botón push, potenciometro y bocina piezo. La siguiente es una lista de los capitulos y actividades donde presentamos cada uno de estos circuitos: • • • •
LED bicolor: Capítulo 2, Actividad #5 Botón push: Capítulo 3, Actividad #2 Potenciometro: Capítulo 5, Actividad #3 Bocina piezo: Capítulo 8, Actividad #1
Lista de Partes de la Alarma
Juntando el material de cada capitulo estas forman en conjunto la lista de partes: Tres Resistores de 220 Ω (rojo-rojo-café) Una Bocina piezo Un Resistor 10 K Ω (café-negro-naranja) Un Capacitor de 0.01μF Un LED bicolor , Un potenciometro de 10 K Ω Un Botón push – normalmente abierto , Cuatro Alambres para puentes
Realizando sus Propios Inventos · Página 315
Esquemático de la Alarma del Gabinete
El esquemático de la Figura 10-2 está arreglado para darle a todos los componentes plenitud de espacio en la tablilla, de tal forma de no todos las conexiones de los pines están en la misma forma como estuvieron el los capítulos anteriores. Recuerde esto cuando descargue los ejemplos de los códigos de los capítulos anteriores para verificar cada uno de los circuitos. Figura 10-2 Esquematico del Prototipo del Sistema de Alarma.
Página 316 · ¿Qué es un Microcontrolador?
ACTIVIDAD #2: CONSTRUYA Y VERIFIQUE INDIVIDUALMENTE CADA CIRCUITO Siempre que le sea posible, verifique individualmente cada subsistema antes de tratar hacerlos trabajar en conjunto. Si usted sigue esta regla, sus proyectos funcionaran mejor y le ahorraran mucho tiempo al buscar fallas. Por ejemplo, si todos los circuitos se construyen sin verificar, las personas tienen una tendencia natural de emplear mucho tiempo examinando el código y olvidan verificar cada circuito Entonces, el ahorro más importante de tiempo con este procedimiento es asegurarse que no hay errores en el circuito que traten de hacerle pensar que son errores de código. Construyendo y Verificando Cada Circuito
Esta actividad demuestra concentrarse en subsistemas individuales construyendo y verificando cada circuito. Depues que se ha construido y verificado el circuito botón push, construimos y verificamos el circuito de la bocina. Después repetimos este proceso con el potenciometro y el LED bicolor, los circuitos estarán correctos y listos para aplicarles el programa 9 Busque el código del Capítulo 3, Actividad #2 para adaptarlo a las pruebas que muestra la Figura 10-2 del circuito botón push. 9 Cambie las referencias de los pines de E/S para que trabajen con el circuito de la Figura 10-2 9 Verifique el código y corrija cualquier error de programa o alambrado antes de continuar. 9 Repita el mismo proceso para: o El circuito de la bocina piezo del Capítulo 8, Actividad #1. o El circuito del potenciometro del Capítulo 5, Actividad # 3 o El circuito del LED bicolor del Capítulo 2, Actividad # 5 9 Asegurese de guardar cada programa modificado bajo un nuevo nombre, de preferencia en una carpeta separada , puede ser de nombre “WAM Capítulo 10” Su Turno – Prueba del Sistema
Ahora que todos los circuitos están verificados y todos los programas de prueba guardados en su PC, es hora de construir una prueba del sistema que muestre mensajes del circuito que se está verificando y ejecute su código de prueba. Este es un ejercicio útil porque los sistemas de alarma típicos tienen auto-prueba y modos de diagnóstico que utilizan todas las caracteristicas en un rutina.
Realizando sus Propios Inventos · Página 317
9 Combine elementos en sus programas de prueba en un sólo programa que: o Comience mostrando el color del LED bicolor en la Terminal Debug y actualice el color... o Luego muestre un mensaje que indique el sonido de la bocina piezo mientras emite beeps.. o Finalmente meta un bucle que reporte repetidamente el sensor botón push de la charola y el sensor de la puerta del potenciometro con bisagra que sense su status en la Terminal Debug. 9 Pruebe y corrija cualquier error que exista antes de continuar.
ACTIVIDAD #3: ORGANICE LAS TAREAS DE SUS CÓDIGOS EN PIEZAS PEQUEÑAS Así como cada circuito debe construirse y verificarse antes de hacer que trabajen en conjunto, cada carácteristica del código también debe desarrollarse y verificarse individualmente antes de incorporarlos en una aplicación grande. El programa MicroAlarmProto(Dec-009).bs2 es un ejemplo de un programa pensado en verificar un concepto. La interface del usuario de la Terminal Debug está siempre presente y el sistema de alarma se repite correctamente a través de sus varios modos o estados, incluyendo no preparada, preparando, preparada y accionada. En este punto, la subrutina Alarm-Arming al final del programa está todavía en construcción. Contiene el código que activa la alarma si se libera el botón push, y esto indica que la charola se ha abierto, pero todavía no monitorea la puerta bisagrada. Se requiere agregar el código del potenciometro a la subrutina Check-Sensors que mide su posición. Si su posición está más alla de cierto umbral, por ejemplo 15, la variable state deberá cambiar a activado. Todavía hay dos tareas adicionales para cambiar el color del LED bicolor en verde cuando la alarma no esté preparada, y en rojo cuando se active. Estas tareas faltantes están indicadas por comentarios en el código semejante a esto: ‘ Hacer: ... ‘ Hacer: ... ‘ Hacer: valor de
El LED bicolor verde El LED bicolor rojo Verificar si el potenciometro está arriba del umbral. Si está, entonces, disparar la alarma.
9 Meta a mano el programa MicroAlarmProto(Dev-009) en el Editor de BASIC Stamp (recomendado) o descarguelo de www.parallax.com/go/WAM y ábralo con el editor del BASIC Stamp..
Página 318 · ¿Qué es un Microcontrolador?
9 Examine el programa y observe que cada subrutina es modular, y hace un trabajo específico. Esto es parte de organizar las tareas de los códigos en piezas pequeñas. 9 Si no recuerda como usar las ventanas Transmitir y Recibir de la Terminal Debug, repase la Figura 9-9. 9 Cargue el programa MicroAlarmProto(Dev-009) en el BASIC Stamp y use la ventana Transmitir de la Terminal Debug para escribir el caracter A para activar la alarma, y D para desactivar la alarma. El sistema hace una pequeña cuenta descendente antes de activar la alarma. Asegurese de mantener presionado el botón push antes de activar la alarma. 9 Cuando la alarma esté preparada, libere el botón. Usted tendrá una oportunidad de desactivar la alarma despues de unos pocos segundo del tono de alarma. 9 Active nuevamente la alarma. Esta vez escriba “D” para desactivar la alarma antes de liberar el botón. ' -----[ Title ]----------------------------------------------------------'¿Qué es un Microcontrolador? - MicroAlarmProto(Dev-009).bs2 'Prueba del Sistema de Alarma. ' {$STAMP BS2} ' {$PBASIC 2.5}
' Target = BASIC Stamp 2 ' Language = PBASIC 2.5
' -----[ Constantes ]------------------------------------------------------NotArmed CON 0 ' Estados del Sistema de Alarma Arming CON 1 Armed CON 3 Triggered CON 4 ' -----[ Variables ]------------------------------------------------------seconds VAR Word ' El contador almacena segundos counter VAR Byte ' Para el conteo char VAR Byte ' Almacena Caracteres state VAR Nib ' Almacena los estados del sistema de alarma ' -----[ Initialización ]-------------------------------------------------PAUSE 1000 ' Espera 1 segundo DEBUG "Program running..." ' Muestra mensaje Ejecutandose state = NotArmed ' Inicializa los estados de alarma ' -----[ Rutine Principal ]-----------------------------------------------DO ' Bucle Principal SELECT state ' Evalua los estados caso por caso CASE NotArmed ' Si estado = no preparada ' To-do: bicolor LED green GOSUB Prompt_to_Arm ' Llama a Prompt_to_Arm CASE Arming ' Si estado = Preparando GOSUB Alarm_Arming ' Llama a Alarm_Arming CASE Armed ' Si estado = Armed
Realizando sus Propios Inventos 路 P谩gina 319
' To-do: bicolor LED red GOSUB Check_Sensors GOSUB Prompt_to_Disarm CASE Triggered GOSUB Alarm_Triggered ENDSELECT LOOP
' ' ' ' ' '
Llama Check_Sensors Llama Prompt_to_Disarm Si estado = Triggered Llama a Alarm_Triggered Hecho evaluaando caracter Repite el Bucle Principal
' =====[ Subrutinas ]===================================================== ' -----[ Subrutina - Prompt_To_Arm ]-------------------------------------Prompt_to_Arm: DEBUG CLS, "Type A to arm", CR, ">" ' Muestra Mensaje GOSUB Get_User_Input ' Llama Get_User_Input RETURN ' Regresa desde Prompt_to_Arm ' -----[ Subrutina - Prompt_to_Disarm ]----------------------------------Prompt_to_Disarm: DEBUG CLS, "Type D to disarm", CR, ">" ' Muestra Mensaje GOSUB Get_User_Input ' Llama a Get_User_Input RETURN ' Regresa desde Prompt_to_Disarm ' -----[ Subrutina - Alarm_Arming ]--------------------------------------Alarm_Arming: DEBUG CLS, "Close the cabinet.", ' Alerta usuario a asegurar gabinete CR, "You have" FOR seconds = 8 TO 0 ' Cuenta descendente segundos restantes DEBUG CRSRX, 9, DEC seconds, CLREOL, 'Muestra tiempo restante " seconds left..." PAUSE 1000 ' Espera 1 segundo NEXT ' Repite conteo descendente state = Armed ' Fija estado de variable en Preparada RETURN ' Retorna desde Alarm_Arming ' -----[ Subrutina - Alarm_Armed ]---------------------------------------Alarm_Armed: DO ' Bucle Preparada GOSUB Prompt_To_disarm ' Checa entrada de usuario GOSUB Check_Sensors ' Checa sensores LOOP UNTIL state <> Armed ' Repite hasta estado no preparada RETURN ' Regresea desde Alarm_Armed ' -----[ Subrutina - Alarm_Triggered ]-----------------------------------Alarm_Triggered: DO ' Bucle Alarma activada DEBUG CLS, "Alarm triggered!!!" ' Muestra precauciones FOR counter = 1 TO 15 ' Suenan 15 tono de alarma FREQOUT 6, 100, 4500 PAUSE 100 NEXT FOR seconds = 1 TO 6 ' 3 segundo.para que usuario desprepare IF state <> triggered THEN EXIT GOSUB Prompt_to_Disarm
Página 320 · ¿Qué es un Microcontrolador?
NEXT LOOP UNTIL state <> triggered
' Repite hasta despreparar' -
-[ Subrutina - Get_User_Input ]------------------------------------Get_User_Input: char = 0 ' Limpia variable char SERIN 16, 84, 500, Timeout_Label, [char] ' Espera 0.5 s. para GOSUB Process_Char ' Presionar Tecla, si presiona, llama: Process_Char Timeout_Label: ' Si no presiona , brinca Llama RETURN ' Regresa desde Get_User_Input ' -----[ Subrutina - Process_Char ]--------------------------------------Process_Char: SELECT char ' Evalua caracter caso por caso CASE "A", "a" ' Si "A" o "a" state = Arming ' Cambia estado var a Preparando CASE "D", "d" ' Si no "D" o "d" state = NotArmed ' Canbia estado var a No Preparada CASE ELSE ' si no, no "A", "a", "D", "d" DEBUG "Wrong character, try again" ' Muestra mensaje error PAUSE 2000 ' Da a usuario 2 sec.para leer ENDSELECT ' Hecho con evaluando caracter RETURN ' Regresa desde Process_Char ' -----[ Subrutina - Check_Sensors ]-------------------------------------Check_Sensors: ' To-do: Checa so Potenciometro esta arriba del valor de umbral. ' Si sí, entonces, alarama disparada IF IN0 = 0 THEN state = Triggered ' Boton sueñtp? Dispara alarma. RETURN ' Regresa desde Check_Sensors
Nuevas Técnicas de Codificación en el Código Ejemplo
De una mirada al bucle FOR...NEXT en la subrutina Alarm-Triggered: FOR seconds = 1 TO 6 IF state <> triggered THEN EXIT GOSUB Prompt_to_Disarm NEXT
Si una llamada a la subrutina the Prompt_to_Disarm genera un cambio en la variable state. La frase IF...THEN usa EXIT para salir del bucle FOR...NEXT antes que se hagan 6 repeticiones. Aparece una nueva instrucción llamada SERIN en la subrutina Get_User_Input. Las instrucciones DEBUG Y DEBUGIN son versiones especiales de las instrucciones más generales SEROUT y SERIN. Para ver como trabajan trate de reemplazar la instrucción DEBUG “Programa Ejecutandose...” con SEROUT 16, 84, [“Programa Ejecutandose...]. A diferencia de las instruccións DEBUG y DEBUGIN, SEROUT y SERIN pueden
Realizando sus Propios Inventos · Página 321
comunicarse con cualquier pin de E/S, o con el pin 16 para comunicarse con la Terminal Debug. Ellas también tienen códigos especiales que usted puede usar para seleccionar la velocidad de los bauds que se describen en la Tablas de Velocidad de Bauds en las instrucciones SERIN y SEROUT que están en el Manual BASIC Stamp. Get_User_Input: char = 0 SERIN 16, 84, 500, Timeout_Label, [char] GOSUB Process_Char Timeout_Label: RETURN
La subrutina Get_User_Input empieza fijando la variable char a 0 para limpiar los valores anteriores que char podría haber almacenado. Luego, ejecuta la instrucción SERIN, con el valor opcional Timeout con valor de 500 ms (medio segundo), y su etiqueta opcional timeout con su valor asociado a Timeout_Labe1, que está dos líneas abajo. Si la instrucción SERIN recibe un carácter dentro de los 500 ms, almacena el resultado en la variable char y se mueve a la siguiente línea y esta llama a la subrutina Process_Char. Si no recibe un carácter dentro de los 500 ms brinca a Timeout_Label que hace que brinque sobre la llamada a subrutina. Su Turno – Pasos Siguientes hacia la Demostración del Concepto
Es tiempo de hacer que este programa funcione como Demostración del Concepto. Guarde una copia del programa MicroAlarmProto(Dev-009).bs2 con el nonmbre MicroAlarmProto(Dev010).bs2. 9 Use segmentos de sus códigos verificados de la Actividad #2 para completar los tres “Todo” 9 Verifique su código modificado, y cuando esté trabajando correctamente, guarde una copia del programa con el nombre MicroAlarmProto(Dev-011),bs2.
ACTIVIDAD #4: ¡DOCUMENTE SU CÓDIGO! El programa MicroAlarmProto(Dev-011).bs2 no está completamente terminado porque todavía necesita alguna documentación y otros cambios que hagan que el programa sea fácil de modificar y mantener. Por ejemplo, en la subrutina Alarm_Triggered, la instrucción FREQOUT, 6, 100, 4500 tiene algunos codificadores llamados “números misteriosos” Los números misteriosos son valores que se usan en una forma que el observador casual podría no ser capáz de reconocer facilmente. Usted podría reescribir esta instrucción como FREQOUT,
Página 322 · ¿Qué es un Microcontrolador?
SpeakerPin, BeepTime, AlarmTone. Entonces usted puede agregar directivas Pin en la sección arriba de la sección Constants y declarar SpeakerPin PIN 6. También en la sección Constants, declare BeepTime CON 100, y AlarmTone CON 4500. En un programa dado cada constante no tiene que tener nombre. Recuerde que los números misteriosos son valores que se usan en una forma que el observador casual podría no ser capáz de reconocer facilmente. Otro ejemplo de la subrutina Alarm:Triggered es: FOR seconds = 1 TO 6
' 3 sec. for user to disarm.
Los números 1 y 6 no son números misteriosos porque es muy claro que hacen que el bucle FOR...NEXT se repita seis veces, y el comentario a su derecha indica que seis repeticiones duran por tres segundos. No todos los supervisores pueden estar de acuerdo con esta interpretación, y algunos podrían proclamar que el 1 y el 6 son números misteriosos. Si usted termina de codificar su trabajo y a su jefe le gusta nombrar todas las constantes, eso es probablemente una buena idea para adjuntar a su estilo de codificación requerido. 9 Vaya al programa MicroAlarmProto(Dev-011).bs2 y documente los números misteriosos declarando las directivas pin y las constantes, y sustituya sus nombres por números en el programa. 9 Una excepción en las directivan PIN es el argumento Pin de la instrucción SERIN, que debe declararse como una constante y no como un pin. Los argumentos Pin son para pines E/S y su rango esde P0 a P15. El argumento 16 en el Pin hace que la instrucción SERIN escuche al pin SIN del módulo BASIC Stamp que está conectado en el puerto de programación de su tablilla. Otra área donde la documentación de MicroAlarmProto(Dec011).bs2 que todavía está debil es en los comentarios que explican cada rutina y subrutina. Cada subrutina deberá tener comentarios que expliquen lo que hace, las variables de las que depende para hacer su trabajo, y cualquier variables que la subrutina use para almacenar resultados antes de que regrese (RETURN). Este es un ejemplo de una buena documentación agregada al principio de la subrutina Process_Char. ' -----[ Subroutine - Process_Char ]--------------------------' ' Actualiza el estado de variable basedo en el contenido de la ' variable char. Si char contiene "A" o "a", la constante Armed ' se almacena en state. Si char contine "D" or "d",
Realizando sus Propios Inventos · Página 323
' la constante NotArmed se almacena en state. ' Process_Char: '... aqui se omite el código RETURN ' Regresa de...
Actualice las descripciones entre los títulos de la subrutina y sus etiquetas, y también repítalo para la rutina principal. Cuando lo haya hecho, guarde una copia de su código con el nombre MicroAlarmProofOfConcept(v1.0).bs2 Guarde Copias e Incremente el Número de Version después de Cada Cambio Pequeño
Asegurese de continuar guardando copie de su código con cada ajuste pequeño. Esto facilita tomar tomar pequeños pasos hacia atrás para trabar su código si sus cambios le causan errores. Por ejemplo, antes de su siguiente modificación, guarde el archivo como MicroAlarmProofOfConcept(v 1.01) o quizá v1.01ª. Cuando su próxima caracteristica quede completamente implementada escoja un paso razonable de su versión. Si es una revisión pequeña , trate con v1.1; si es una revisión grande llevela a v2.0
ACTIVIDAD #5: DELE A SU APLICACIÓN MARAVILLOSA NUEVAS FUNCIONES Como mencionamos anteriormente, cada circuito con el que usted ha trabajado en este texto es realmente un ejemplo de un grupo de componentes y módulos con los que el BASIC Stamp puede interactuar en la misma forma. La Figura 10-3 muestra algunas substituciones de partes que usted podría hacer para convertir su actual minisistema de seguridad en uno que proteja un objeto localizado en la abertura. Este sistema modificado puede detectar movimientos en el cuarto, y tambien proteger si alguien levanta un objeto que usted desea proteger. • •
El botón push que genera salidas high-low: reemplacelo por un Sensor de Movimiento PIR El potenciometro: Resistor Variable reemplacelo con un Sensor FlexiForce Sensor
El sensor PIR detecta cambios de patrones de luz pasiva infrarroja en el área circundante y manda una señal high para indicar que ha detectado movimiento, o una señal low para indicar que no hay movimiento. La resistencia del sensor FlexiForce varía con la fuerza aplicada en en punto redondo que está en un extremo (por ejemplo un objeto arriba de él) y puede medirse el tiempo en un circuito RC utilizando la instrucción RCTIME.
Página 324 · ¿Qué es un Microcontrolador?
Figura 10-3 Sensores para actualizar nuestro Mini Sistema de Alarma
PIR Motion Sensor
FlexiForce Sensor
9 Vaya a www.parallax.com y escriba “motion detection” en el campo Search, y haga click en el botón Go 9 Busque Sensor PIR en resultados de búsqueda y vaya a su página de productos. 9 Descargue la documentación (en PDF) del Sensor PIR y opcionalmente vea el video de Sensor PIR. El PDF estará en la página sección de Descargas. 9 Lea las explicaciones de la documentación, el esquemático y el código ejemplo PIR_Simple.bs2. ¿Podría usted sustituir este sensor por el botón push? 9 Regrese a resultados de búsqueda (o regrese a la página principal de Parallax) y escriba pressure en el campo Search y siga la liga del sensor FlexiForce. 9 Encuentre la documentación de FlexiForce y el Código Fuente (zip). 9 En un archivo descomprimido, abra y lea la documentación, esquemático y el código fuente de FlexiForceSimple.bs2. ¿Podría usted sustituir este sensor por el potenciometro? El ejemplo paso a paso que demuestra como mejorar tanto en esta como en la siguiente actividad que puede usted incorporar en la aplicación de su Micro Alarma, está en Stamps in Class “MiniProyectos” en la liga www.parallax.com/Education
ACTIVIDAD #6: COMO RESOLVER DISEÑOS DIFICILES Ahora que sabe con certeza que hacer con ¿Qué es un Microcontrolador? uno de los pasos más importantes siguientes que puede tomar es encontrar respuestas a tareas que no sabe como resolver con su microcontrolador. Estos son los pasos generales: Paso 1: Busque componentes o circuitos que podrían resolver su problema.
Realizando sus Propios Inventos · Página 325
Paso 2:
Paso 3:
Lea sobre los componentes o circuitos, y encuentre como funcionan. Ponga atención especial en como necesitaría el BASIC Stamp interactuar con los componentes/circuitos. Verifique para saber si el código ejemplo es adecuado para el circuito o componente. Esto le permitirá con facilidad incorporarloen su aplicación.
Digamos que el siguiente paso en su proyecto es mostrar el status del sistema sin conexión a la computadora. Este es un ejemplo de cómo podría encontrar y evaluar un componente para su aplicación. 9 (Paso 1) Vaya a www.parallax.com y escriba “display” en el campo Search. Desde la página principal usted podría necesitar hacer click en el botón Go en lugar de solamente presionar Enter. Ve a las páginas de producto de los varios tipos de resultados en la búsqueda y mira si puedes encontrar uno que sea relativamente barato y capáz de mostrar un par de líneas de texto. Si te decidiste por la LCD 2x16 Serial de Parallax como muestra la Figura 10-4 es una buena elección y estás en el camino correcto.
Figura 10-4 Parallax 2x16 Serial LCD
9 (Paso 2) Ve a página de productors LCD 2x16 Serial de Parallax. Si aún no lo haces, lee la descripción del producto. Luego encuentra la liga al PDF de la documentación de la LCD 2x16 Serial de Parallax. Lo encontrarás en la página Descargas y Sección de Recursos, probablemente marcada Parallax Serial 2x16 LDC Documentation v2.0 (pdf). El número de la versión podría ser mayor por el tiempo que ha pasado. 9 (Paso 3) Verifica por ejemplo el código en la documentación en PDF de Parallax Serial 2x16 LCD así como también en las ligas del producto en Descargas y Sección de Recursos de la página web. Busca un bonito, corto y simple programa ejemplo que muestra un mensaje de texto porque esto generalmente proporciona un un punto de inicio.
Página 326 · ¿Qué es un Microcontrolador?
Después de la breve introducción a SERIN y SEROUT del programa ejemplo que siguieron en este capítulo, el código de ejemplo de la LCD Serial de Parallax, entonces la instrucción SEROUT te parecerá más familiar. Si usted sigue a los Sensores Inteligentes y la liga de Aplicaciones, usted puede bajar el libro Sensores Inteligentes y Aplicaciónes que tiene un capítulo entero relacionado con el control de la LCD con su BASIC Stamp 2.
Tres Ejemplos de Muchos Más.
Los sensores PIR y FlexiForce y el LDC en Serie Parallax, son tres ejemplos de módulos y componentes que usted puede usar para incrementar grandemente la funcionalidad de su prototipo. Estos tres son un granito en arena la playa de lo que existe disponible. La Figura 10-5 muestra más módulos y componentes y todavía representan solamente una pequeño muestra. Los ejemplos en la figura son (a) modulos de RF para comunicación por radio, (b) gyro para detectar velocidades de rotación, (c) brújulas para encontrar dirección, (d) sensor de vibración, (e) acelerometro para detectar inclinación y cambios de velocidad, (f) sensor ultrasonico para detectar distancias, (g) sensor de intensidad de luz, (h) controlador servo, (i) controladores de motores DC, (j) arreglo Darlington para excitar bobina de motores paso a paso, y (k) motores paso a paso. Usted puede encontrar cualquiera de estos dos dispositivos en www.parallax.com con la clave búsqueda. Por ejemplo, para encontrar más acerca de (f) meta “sensor ultrasonico” en la página principal de Parallax, en el campo Search y de click en el botón Go.
Realizando sus Propios Inventos · Página 327
Figura 10-5 Más ejemplos de Modulos y Accesorios Motor Control
Sensors
Communication b
e
h j
a
c
f
k i d
g
Su Turno – Investigando Más Recursos
Si usted tiene un proyecto en mente y necesita encontrar un circuito o un código para soportar una de las caracteristicas de su proyecto, el procedimiento de búsqueda antes analizado le proporciona un buen punto de inicio, Pero solamente si se encuentra en la páginas de productos de www.parallax,com y ahí hay un número de preguntas de diseño que las página del producto no resuelven necesariamente. Afortunadamente, hay muchos recursos, incluyendo: • • • • •
Libros en PDF Stamp in Class Documentación en PDF de Productos Parallax Columnas de BASIC Stam en la Revista Nuts and Volts. Respuestas en preguntas y artículos en forums.parallax.com Artículos de BASIC Stamp publicados en Internet
Cuando usted está buscando componentes e información acerca de cómo usarlos con el BASIC Stamp, esto cae en la categoria de “application information”. Cuando está buscando información de aplicación, es mejor empezar con el sitio web del fabricante, y luego expandir la búsqueda que incluyan los forums, y si usted todavía no ha encontrado
Página 328 · ¿Qué es un Microcontrolador?
una buena solución expandala más para que incluya la WWW. La Figura 10-6 muestra un ejemplo de Google las palabras claves de búsqueda son “infrarojo” y “remoto” en documentos PDF y páginas de productos en www.parallax.com. Aquí la parte importante es que Google busca documentos PDF en lugar de sólo páginas de productos. Asegurese que no hay espacios en el sitio: www.parallax.com
Figura 10-6 Buscador Google del sitio www.parallax.com
Usted puede moficicar la búsqueda para incluir preguntas y respuestas en los forum de soporte de Parallax cambiando “www” a “forums” como esto: infrared remote site: forums.parallax.com
Esto busca todas las preguntas, respuestas y artículos cortos que contengan las palabras “infrarojo” y “remoto” en los forums parallax.com. Para encontrar una aplicación específica del BASIC Stamp, cambie su búsqueda en los terminos de abajo. Asegurese que las palabras BASIC Stamp están con comillas porque esto filtrara resultados de colecciones por correo. Este es un resumen de la secuencia de busqueda en Google para “BASIC Stamp” infrared remote 9 Sitio remoto infrarojo: www.parallax.com o Busquedas para los términos “infrarojo” y “remoto” en PDF y página de productro en www.parallax.com 9 Sitio remoto infrarojo: forum parallax.com o Busquedas para los términos “infrarojo” y “remoto” en discusiones en forums parallax.com 9 Remoto Infrarojo BASIC Stamp o Busquedas en la web para las palabras “infrarojo” y “remoto” en la misma página o PDF con la frase “BASIC Stamp” Digamos que el siguiente paso para su proyecto Micro Alarma es un teclado, pero la documentación y ejemplo en una sola búsqueda en página de productos en parallax.com lo llevo a ejemplos de circuitos y códigos esparcidos. Entonces hagamos las busquedas
Realizando sus Propios Inventos · Página 329
con más orden, digamos que una busqueda en Google en el sitio de Parallax para todas las referencias a teclados. Recuerde qe Google incluye documentos PDF. 9 Vaya a www.google.com 9 Escriba “teclado site: www.parallax.com” en el campo de Busqueda y luego presione Enter. Los resultados pueden requerir algo de paciencia y persistencia para pasar, y muchas páginas de resultados. Hay generalmente suficiente de un parrafo de cada resultado de búsqueda para tener algún contexto de cada liga. Esto le dará alguna idea de cuales brincar y cuales mirar con atención. Después de unas página, usted podría encontrar y seguir una liga de Partes del Kit de IR Remoto como lo muestra la Figura 10-7. Esto podría no ser solución a lo que usted esperaba, pero después de examinar el precio, la documentación, y el código ejemplo, podría tener mucho potencial para reforzar su sistema de seguridad con teclado. Figura 10-7 Partes del Kit de IR Remoto
Si despues de todo esto, usted todavía no ha encontrado la información que necesita, es tiempo de preguntar en los forums parallax.com. Cuando usted les manda una pregunta, la verán expertos en una variedad de disciplinas, maestros, hobistas y estudiantes. La habilidad de los expertos de los Forums Parallax tendrán la capacidad de ayudarle a superar los problemas de su diseño difícil. Memoria del Procesador y Rapidez de los Diseños Difíciles
En algunos casos, los programas para proyectos grandes pueden crecer mucho y exceder la memoria de programa del BASIS Stamp. Este diseño difícil puede algunas veces resolverse reescribiendo el código que haga el mismo trabajo con menos instrucciones. Otra opción es elegir un modelo de BASIC Stamp con memoria de programa más grande. En otros casos, el proyecto podría involucrar almacenar más valores de variables que el BASIC Stamp puede guardar. También hay modelos de BASIC Stamp 2 con característica de borrado para los valores de variables RAM. Otros proyectos podrían
Página 330 · ¿Qué es un Microcontrolador?
necesitar hacer más tareas en menor tiempo para las que BASIC Stamp fue diseñado, algunos modelos de BASIC Stamp están diseñados con velocidades rápidas de procesamiento. La Figura 10-8 muestra todos los diferentes modelos del BASIC Stamp. Para detalles de cada uno vaya a “Comparación de Modulos BASIC Stamp” en la liga www.parallax.com/basicstamp. Figura 10-8 Linea completa de Modelos BASIC Stamp
From left: BS1, BS2, BS2e, BS2sx, BS2p24, BS2p40, BS2pe, BS2px
BS1: BS2: BS2e: BS2sx: BS2p24:
BS2p40: BS2pe: BS2px:
Confiable y Capáz, perfecto para proyectos pequeños o espacios limitados. Ideal para principiantes con muchos recursos de code; es el núcleo de Stamps en programas en Clase.. Perfecto usuarios BS2 que necesitan mas espacio de programa y variables. Soporta el conjunto de instrucciones the BS2 con más variable y espacio de programa y más de dos veces la velocidad de ejecución . Además de más velocidad y espacio de variables, las instrucciones especiales soportan el poleo de pines E/S, LCD de caracteres, y comunicaciones de I2C 1alambre. Todas las características de BS2p24 con un puerto adicional de16 pines de E/S. Soporta el conjunto de instrucciones del BS2p24 y además es de muy bajo consumo de potencia y más memoria para apliciones de adquisición de datos. Es el mas velox de los modelos BASIC Stamp soport todas las instrucciones del BS2p24 , más caracteristicas especiales de configuración de pines E/S.
Un concepto en recordar es que si usted sube a un modelo más rápido de BASIC Stamp es las diferencias en unidades de las instrucciones dependientes del tiempo como RCTIME y FREQOUT. Debido a que los diferentes modelos de procesadores corren a
Realizando sus Propios Inventos · Página 331
diferentes velocidades, las unidades de Duration y Frequency y otros argumentos podrían ser diferentes. Por ejemplo, cuando el BS2 ejecuta FREQOUT 6, 100, 4500 manda un tono agudo de señal de alarma a P6 durante 100 ms (1/10 de segundo) a una frecuencia de 4500 Hz. Cuando el mismo comando lo ejecuta un BS2px manda un tono que solamente dura 16.6 ms a una frecuencia de 27,135 Hz, que es un tono mucho más alto e incluso no lo escucha el oido humano! La descripción completa de cómo funciona cada una de las instrucciones de cada modelo y las sugerencias de conversión de programas BS2 de un modelo a otro las encuentra en la ayuda: BASIC Stamp Editor Help. Procesamiento en Paralelo de Alto Rendimiento
Algunas aplicaciones complicadas requiren agilidad de procesamiento y memoria que está más alla de las capacidades de la línea BASIS Stamp 2. Estas son la clase de proyectos por la que fue diseñado el Microcontrolador Propeller. Este poderoso y unico microcontrolador tiene ocho procesadores de alta velocidad en un solo chip, además 32 pines de E/S y una memoria de programa RAM muy grande. Sus 8 procesadores puede trabajar al mismo tiempo, en forma independiente o en forma compartida, comparten el acceso a la memoria global y al sistema de reloj. Cada procesador tiene su propia memoria, hardware adicional para realizar funciones complicadas como monitoreo en alta velocidad de pines E/S o generación de señales para una pantalla de TV o computadora. El Kit Propeller Education que muestra la Figura 10-9 es un buen puento de inicio con el Microcontrolador Propeller. Este Kit no es necesariamente el mejor siguiente paso despues de ¿Qué es un Microcontrolador?. Sin Embargo, cuando se da cuenta que sus proyectos son más ambiciosos y desafiantes, recuerde al Microcontrolador Propeller y al Kit Propeller Education.
Figura 10-9 Kit Propeller Education (izquierda) Plataforma PE (derecha)
Página 332 · ¿Qué es un Microcontrolador?
ACTIVIDAD #7: ¿QUÉ SIGUE? Ahora que usted está por terminar con ¿Qué es un Microcontrolador? es tiempo de pensar en lo siguiente por aprender. Antes de continuar, reflexione un momento en lo que más le interesa. Algunas categorias generales en la que usted podría investigar incluye: • • • • • •
Robotica Electrónica Sensores Automatización Proyectos Hobi Ciencias de la Tierra y Mediciones del Clima
Esta actividad genera recursos que usted puede usar para avanzar en cada una de estas categorias. Los recursos, kits y componentes que se analizaron en esta actividad eran comunen cuando este capítulo se escribio (Otoño 2009). Las versiones nuevas y mejores, kits y componentes están disponibles para reemplazar alguna de las aquí presentadas. Asegurese de verificar www.parallax.com con la información más reciente.
¿Cuál es la Secuela del Microcontrolador?
La Figura 10-10 muestra libros y kits que arman la mejor secuela de este libro. Robotics with the Boe-Bot es una agradable y gran experiencia para que usted pueda aplicar algunas de las técnicas de este libro a las aplicacione de robótica con el robot deslizante Boe Bot. El libro Sensores Inteligentes y Sus Aplicaciones fue escrito para ser la parte 2 de ¿Qué es un Microcontrolador?. Se le cambió el nombre porque todos los sensores inteligentes y la pantalla de cristal líquido mostrados en el centro de la Figura 10-10 tienen coprocesadores que se comunican con el BASIC Stamp. Los coprocesadores los hacen sensores inteligentes. El libro Comprendiendo las Señales, es grandioso porque le permite a usted, “ver” las interacciones entre el BASIC Stamp y los circuitos utilizando un Osciloscopio Parallax que usted conecta en el puerto USB de su computadora.
Realizando sus Propios Inventos · Página 333
Figura 10-10 Los Siguientes Grandes Pasos que siguen de ¿Qué es un Microcontrolador?
Boe-Bot Robot Kit
Smart Sensors and Applications Parts and Text
Understanding Signals Parts and Text
Más de Kits Stamps in Class y Libros de Texto
La Figura 10-11 muestra un diagrama de flujo que sintetiza todos los Kits Stamp in Class y Libros de Texto disponibles en el momento que éste se escribió. Son accesibles a través del Programa Stamps in Class. Un vistaso y la liga a los Diagramas de Flujo está en www.parallax.com/Education, y usted puede dar click en cada imagen para visitar la página del producto del libro y su kit acompañante. ¿Qué es un Microcontrolador? está hasta arriba a la izquierda en la Figura. Desde ahí, el diagrama de flujo indica que usted puede brincar a Robotica con el Boe-Bot (Robotics with the Boe-Bot) o cualquier texto/kit de la serie Sensores o Señales. Descargas completas de Libros de Texto en PDF Usted puede descargar el PDF a todo color de cada Libro Stamps in Class en www.parallax.com. Haga click en cualquier imagen de la carta para navegar en la página Texto + Kit y usted encontrara el PDF en la página sección de Descarga.
Página 334 · ¿Qué es un Microcontrolador?
Figura 10-11 Diagrama de Flujo de Stamps in Class. {}
Si la categoría en la que usted está interesado es: • • • •
Robótica, entonces definitivamente el siguiente paso es Robótica con el Boe-Bot. Proyectos de Sensores, Inventos o Hoby, entonces su siguiente paso podría ser Sensores Inteligentes y Aplicaciones. Electrónica (señales), entonces su siguiente paso podría ser Control de Procesos Ciencias de la Tierra y Mediciones del Clima, entoces su siguiente pasos podría ser Sensores Aplicados (Originalmente se llamaba Mediciones de la Tierra)
Realizando sus Propios Inventos · Página 335
Recursos Adicionales de Stamp In Class
Arriba y Adelante que son los libros de Texto Stamps in Class, En Stamps in Class hay “Mini Proyectos” en la liga www.parallax.com/Education. Algunos proyectos utilizan justamente el stock de partes del los kits pero demuestran nuevas formas para usarlos junto con nuevos conceptos. Muchos de estos proyectos son como los capítulos de los libros de Texto Stamp in Class, tienen Actividades, Diagramas Esquemáticos, Diagramas de Alambrado listas completas de códigos que pueden descargarse. Algunos incluso tienen videos con tutoriales por ejemplo “Construya su Propio Mini Temporizador” que puede construirse precisamente con las partes que usted ha estado usando en este libro. Cualesquiera que sea la información que busca, o inspiración creativa, usted prodrá encontrarla aquí. Figura 10-12 Ejemplo del Mini Proyecto con Stamps in Class
RESUMEN Este libro presentó una variedad de circuitos y técnicas, todas ellas son bloques de construcción en productos comunes así como en inventos. Este libro también presentó técnicas para juntar los diversos bloques de construcción con el microcontrolador de
Página 336 · ¿Qué es un Microcontrolador?
BASIC Stamp. Este capítulo demostró como incorporar las técnicas y bloques de construcción en un prototipo, y también recomendó algunos de los siguientes pasos para aprender más en su área de interes. La aproximación para hacer que el BASIC Stamp interactue con un circuito dado puede aplicarse a una variedad de circuitos y módulos que cumplan e incluso sobrepasen sus tareas. Dos ejemplos aplicados al prototipo de la micro alarma fueron: (1) un sensor de movimiento con una interface similar a el botón push y (2) un sensor de presión con una interface similara a la del potenciometro. Mientras desarrolla el código para su aplicación, asegúrese de guardar su trabajo frecuentemente bajo nombres de revisión aumentadas. También asegúrese de darle nombres significativos a los pines de E/S y números a las directivas PIN Y CON. Finalmente, agregue muchos comentarios a su código que expliquen los que hacen y como lo hacen. Las subrutinas deben incluir comentarios que expliquen que hace la subrutina junto con sus variables y los con valores que usa para hacer su trabajo, así como las variables que almacenan los resultados cuando termina la subrutina. Este capítulo también presentó una variedad de técnicas de investigación para implementar características en su prototipo. Incluso, si al principio no tenía idea de cómo hace que trabaje una carateristica particular, usted puede usar técnicas de búsquedas para encontrar el componente útil, el circuito y ejemplos de código. Los libros de texto Stamp in Class y sus kits tienen muchos circuitos y técnicas útiles de diseño, y este es un gran lugar para aprender más en los campos de robótica, sensores, electrónica, automatización, ciencias de la tierra, y más. Todos los libros de texto que acompañan a los Kits Stamps in Class se pueden descargar libremente. Ahora que usted ha llegado al final del libro, reflexione un momento en cuatro ideas: (1) las técnicas que usted ha aprendido, (2) su siguiente invento, proyecto o prototipo, (3) lo que usted ha aprendido aquí que puede aplicarlo en él y (4) que es lo siguiente que quiere aprender. 9 Ahora, es tiempo de empezar con su siguiente proyecto o prototipo. 9 Asegurese de mantenerse estudiando y aprendiendo nuevas técnicas conforme avanza. 9 ¡SEA OPTIMISTA y BUENA SUERTE!