Experimentos y Código Fuente para el BASIC Stamp. Versión en Castellano 1.1



Documentos relacionados
La ventana de Microsoft Excel

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

UNIDADES DE ALMACENAMIENTO DE DATOS

Operación Microsoft Access 97

Creación de Funciones de Conducción

Instrucciones de instalación de TrueCode

Charla N 6: Utilidades de Consulta de datos.

ArduLab. 1. Qué te pasa Nerea? 2.Este robot no funciona bien y no sé que le pasa

V i s i t a V i r t u a l e n e l H o s p i t a l

Formularios. Formularios Diapositiva 1

TERMOMED Cl. Uruguay, 11 7º despacho Valencia ( Valencia ) Tel. / Fax info@termomed.net

GedicoPDA: software de preventa

Matemática de redes Representación binaria de datos Bits y bytes

Introducción a la plataforma Moodle Aníbal de la Torre Plataforma Moodle. Accediendo a los contenidos

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

En el presente capítulo se describe la programación del instrumento virtual y cómo

Manual del usuario USO DEL MERCADO

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Manual de operación Tausend Monitor

Sesión 3 - Movimiento Diferencial

Microsoft Access proporciona dos métodos para crear una Base de datos.

Guía de Preparación de Muestras para PLASTICOS para el Software de Formulación de Datacolor

Notas para la instalación de un lector de tarjetas inteligentes.

Programando con Enchanting

La central reproduce un sonido largo si los datos de configuración son almacenados de forma correcta, y dos sonidos cortos si hay un error.

SMS Gestión. manual de uso

Para descargar la versión más reciente de Skype accedemos al sitio web de Skype y luego hacemos clic en Descargar Skype para escritorio de Windows.

Comisión Nacional de Bancos y Seguros

Operación de Microsoft Word

Operación de Microsoft Excel

Archivo de correo con Microsoft Outlook contra Exchange Server

MANUAL BÁSICO DE INFORMATICA

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

EB ES. Appendix 1 Circuit Diagram Hoja de datos de la placa LCD EB Contenido - 1 -

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Guía N 1: Fundamentos básicos(i)

podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que el

Creación de un Gráfico con OpenOffice.org Calc Presentación de los Datos Asistente para Gráficos

Manual de Palm BlueChat 2.0

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

DataMAX pa r a PS3. Manual del Usuario V1.0

Informes. 3. Elija la opción Nuevo (en la parte superior de la ventana) 4. Elija Autoinformes: en tablas y luego la tabla o consulta que se usará.

TELEMANDO TELEFONICO I-207.2

Manual básico de Robomid

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Preparándose para el Aprendizaje en Línea (e-learning) Guía del Participante

Guía de inicio rápido

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

MANUAL DE USUARIO. Contenido

MANUAL DE USUARIO. SISTEMA DE INVENTARIO DE OPERACIONES ESTADÍSTICAS.

Actividad 4: Comunicación entre PLC s vía Ethernet

MANUAL TERMINALES X300 Manual Soporte Técnico.

INTRODUCCION A LA PROGRAMACION DE PLC

Manual del Alumno de la plataforma de e-learning.

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

Instalación y uso de Check 2000 Client Server con ZENworks 2

Software de programación de interfaz FDT DXID. Guía del programador (DXID P01.doc)

Elaborando WebQuest usando Power Point

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas

EW1051 Lector de tarjetas inteligentes USB

LBRTU Características

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010

Manual de Instalación. Sistema FECU S.A.

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows

Ingreso al Sistema Administrador

Guía de inicio rápido a

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

NOTAS TÉCNICAS SOBRE EL SIT: Comunicados (I)

Operación Microsoft PowerPoint 97


Interoperabilidad de Fieldbus

Manual de usuario administrador. Correo Exchange Administrado

Manual de Notas de voz

Guía de Instalación Proscai

DISFRUTA AÚN MÁS. Guía de Instalación Fácil del Adaptador Digital

WINDOWS. Iniciando Windows. El mouse

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

Actividades con GeoGebra

Roberto Quejido Cañamero

Operación de Microsoft Word

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

EM1037 Conmnutador KVM de 2 puertos USB

Capítulo 9. Archivos de sintaxis

Bienvenida. Índice. Prefacio

Contador fotoeléctrico de personas. Manual de Usuario.

POWER POINT. Iniciar PowerPoint

MANUAL DE ASIGNACIÓN DE NOMBRES DE EQUIPOS E INSTALACIÓN DE AGENTE DE MONITOREO DE HARDWARE, SOFTWARE OSC INVENTORY PARA SISTEMA OPERATIVO UBUNTU

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2.

Base de datos en Excel

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Manual de uso de la Consola de Administración para usuarios Administradores.

Token ikey 2032 de Rainbow. Guía instalación y uso para Internet Explorer

Módulo I - Word. Iniciar Word Finalizar Word Definición de elementos de pantalla Escribir texto en un documento El cursor...

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Conceptos básicos de energía en el hogar Sus primeros pasos hacia el ahorro

Transcripción:

Experimentos y Código Fuente para el BASIC Stamp Versión en Castellano 1.1 Sobre la precisión de este texto: Se realizó un gran esfuerzo para asegurar la precisión de este texto y los experimentos, pero puede haber errores aún. Si usted encuentra errores o algún tema que requiera información adicional, por favor infórmelo a aalvarez@parallaxinc.com, así podemos continuar mejorando la calidad de nuestra documentación.

Garantía Parallax garantiza sus productos contra defectos en sus materiales o debidos a la fabricación por un período de 90 días. Si usted descubre un defecto, Parallax según corresponda, reparará, reemplazará o regresará el valor de la compra. Simplemente pida un número de autorización de regreso de mercadería (Return Merchandise Authorization, RMA ), escriba el número en el exterior de la caja y envíela a Parallax. Por favor incluya su nombre, número telefónico, dirección y una descripción del problema. Nosotros le regresaremos su producto o el reemplazo, usando el mismo método de correo que usted usó para enviar el producto a Parallax. Garantía de 14 días de regreso de dinero Si dentro de los 14 días en que usted recibió su producto, encuentra que no es conveniente para sus necesidades, puede regresarlo, recibiendo un reembolso. Parallax regresará el precio de compra del producto, excluyendo los costos de manipuleo y correo. Esto no se aplica si el producto a sido alterado o dañado. Derechos de Copia y Marcas Registradas Esta documentación tiene derechos de copia Copyright 1999 por Parallax, Inc. BASIC Stamp (Estampilla BASIC) es una marca registrada de Parallax, Inc. Si usted decide usar el nombre BASIC Stamp en su página web o en material impreso, debe agregar la aclaración: BASIC Stamp es una marca registrada de Parallax, Inc. Otros nombres de productos son marcas registradas de sus respectivos dueños. Desvinculación de Responsabilidad Parallax, Inc. no es responsable de daños por consecuencias, incidentes o daños especiales que resulten de cualquier violación de la garantía, bajo cualquier teoría legal, incluyendo pérdida de beneficio, tiempo, daño o reemplazo de equipo o propiedad y cualquier costo, recuperando, reprogramando o reproduciendo cualquier dato guardado o usado dentro de los productos Parallax. Parallax tampoco es responsable de cualquier daño personal, incluyendo vida o muerte, resultado del uso de cualquiera de nuestros productos. Usted tiene absoluta responsabilidad por la aplicación que desarrolle con el BASIC Stamp. Acceso en Internet Mantenemos sistemas de Internet para su uso. Estos pueden ser usados para obtener software, comunicarse con miembros de Parallax y comunicarse con otros clientes. Las rutas de acceso a la información se muestran a continuación: E-mail: Web: aalvarez@parallaxinc.com http://www.parallaxinc.com y http://www.stampsenclase.com Lista de Discusión de BASIC Stamp en Internet Mantenemos dos listas de discusión por e-mail para gente interesada en el BASIC Stamp. La lista trabaja así: mucha gente se suscribe a la lista y luego todas las preguntas y respuestas son distribuidas a todos los suscriptos. Es una forma rápida, divertida y gratis de discutir temas sobre el BASIC Stamp y obtener respuestas a preguntas técnicas. Para suscribirse a la lista de BASIC Stamp encuentre la información en www.parallaxinc.com. Esta lista genera aproximadamente 40 mensajes diarios. También mantenemos una lista exclusiva para educadores que usan el BASIC Stamp en el aula. Usted puede unirse a esta lista en el sitio web http://www.stampsinclass.com. Esta lista genera aproximadamente 5 mensajes diarios. Si busca una lista de discusión en castellano puede encontrarla en http://www.stampsenclase.com.

Contenido Contenido Prefacio... 3 Introducción... 5 Obtenga el Mayor Provecho de las Prácticas de StampWorks... 5 Tres Pasos para Tener Éxito con StampWorks... 5 Prepare su Plaqueta StampWorks... 7 Contenido de este Kit... 7 Preparación de la Protoboard... 8 Bases de la Programación... 13 Contenido de un Programa... 13 Saltos Redireccionando el Flujo de un Programa... 14 Bucles Ejecutando el código una y otra vez... 15 Subrutinas Código reutilizable que ahorra espacio de programa... 17 Estilo de Programación... 17 Plantilla... 18 Convención sobre Nombres... 19 Hora de Experimentar... 21 Aprendiendo los Conceptos de Programación... 21 Construcción de Proyectos... 21 Que hacer entre proyectos... 21 Experimento 1: Hacer Titilar un LED... 23 Experimento 2: Hacer Titilar un LED (Versión 2)... 25 Experimento 3: Contador con LEDs... 29 Experimento 4: Pantalla de LEDs de Ciencia Ficción... 33 Experimento 5: Gráficos con LEDs (Punto o Barra)... 35 Experimento 6: Un Juego Simple... 39 Experimento 7: Controlador de Luces... 43 Building Circuits On Your Own... 47 Usando Displays de 7 Segmentos... 49 Experimento 8: Contador de un Dígito... 51 Experimento 9: Dado Digital...55 Experimento 10: Reloj con Pantalla de LEDs... 59 Manual StampWorks Versión 1.1 Página 1

Contenido Usando LCDs...65 Experimento 11: Demostración Básica con LCD... 67 Experimento 12: Creando Caracteres en un LCD... 73 Experimento 13: Leyendo la RAM del LCD... 79 Experimento 14: Juego de la Bola 8 Mágica... 85 Avanzando...91 Experimento 15: Filtrando Múltiples Entradas... 93 Experimento 16: Contando Eventos... 97 Experimento 17: Medición de Frecuencia... 99 Experimento 18: Medición Avanzada de Frecuencia...101 Experimento 19: Theremin Controlado por Luz...103 Experimento 20: Efectos de Sonido...105 Experimento 21: Entrada Analógica con PULSIN...109 Experimento 22: Salida Analógica con PWM...111 Experimento 23: Expandiendo Salidas...113 Experimento 24: Expandiendo Entradas...117 Experimento 25: Control de un Servo...121 Experimento 26: Motor Paso a Paso...125 Experimento 27: Medición de Tensión...129 Experimento 28: Medición de Temperatura...133 Experimento 29: Multiplexado de 7 Segmentos...137 Experimento 30: Reloj de Tiempo Real...145 Experimento 31: Comunicaciones Seriales...153 Trabajando por su Cuenta...161 Apéndice A: Hojas de Datos...163 Apéndice B: Manual del BASIC Stamp II, Versión 2.0...177 Página 2 Manual StampWorks Versión 1.1

Prefacio Prefacio Estimados Amigos: Probablemente existen tantas formas de aprender un nuevo tema o habilidad, como estudiantes hay, pero todos coinciden en que aprender haciendo produce los resultados más duraderos. Y para ser franco, aprender haciendo es casi siempre la forma más satisfactoria de aprender; involucra más a los sentidos en el proceso de aprendizaje. De eso se trata este manual y el Kit de StampWorks: aprender a programar el BASIC Stamp escribiendo programas en él. Las secciones de teoría son cortas y concisas. Aprenderá la teoría de programación, poniéndola en práctica. No encontrará muchos rodeos; solamente encontrará trabajo, trabajo divertido que le enseñará a programar microcontroladores con el BASIC Stamp de Parallax. Por qué tomar el desafío? Por qué aprender a escribir programas para el microcontrolador BASIC Stamp? La respuesta es simple, sino obvia: los microcontroladores se encuentran por todos lados. Están en nuestros televisores, hornos microondas, teléfonos celulares e incluso en nuestros autos. El hecho es que los automóviles más nuevos tienen diez o más microcontroladores controlando todo, desde el motor, la climatización del habitáculo, la rotación de las ruedas (control de tracción), el sistema de frenos (ABS) y muchas otras funciones. En resumen, los vehículos modernos son más seguros y más confortables debido, en gran medida, al uso de microcontroladores. Con microcontroladores podemos construir circuitos y dispositivos inteligentes. En el pasado, debíamos cambiar el conexionado o algunos componentes de un circuito para modificar o crear un nuevo comportamiento. La ventaja del uso del microcontrolador sobre las otras opciones, es que podemos cambiar el comportamiento de nuestro circuito o dispositivo, simplemente modificando el programa. La ventaja de usar el BASIC Stamp es que simplifica la escritura y modificación de programas y con el Kit de StampWorks qué tan fácil puede ser. Diviértase con estos proyectos y piense cómo podría aplicar los conceptos aprendidos en cada uno. Apreciaré recibir sugerencias (en Inglés) en cualquier momento por e-mail a jonwms@aol.com. Manual StampWorks Versión 1.1 Página 3

Introducción Página 4 Manual StampWorks Versión 1.1

Introducción Introducción Obtenga el Mayor Provecho de las Prácticas de StampWorks Este libro está dividido en dos secciones principales: los experimentos de StampWorks y el manual del BASIC Stamp II. Para llevar a cabo los experimentos, deberá moverse constantemente por las dos secciones. Se puede descargar información adicional de la página de StampWorks del sitio web www.parallaxinc.com, incluyendo hojas de datos, actualizaciones y detalles técnicos generados después de emitida esta publicación. Tres Pasos para Tener Éxito con StampWorks: 1. Lea la Sección 1 del manual del BASIC Stamp II (en Inglés). Esta sección le explicará el funcionamiento del BASIC Stamp II y lo guiará en el proceso de instalación del software de programación. Otro recurso útil es el capítulo 1 de Robótica! (en Castellano) que puede descargarse por internet de www.stampsenclase.com. 2. Lea la sección siguiente de este manual, Prepare su Plaqueta de StampWorks para los Experimentos. Esta sección describe los pasos necesarios para poner en condiciones la plaqueta de experimentación. 3. Realice los experimentos por su cuenta, refiriéndose a la guía de sintaxis del manual del BASIC Stamp tanto como sea necesario. Esta es la parte divertida, trabajar con el Stamp construyendo circuitos simples y escribiendo el código. Para cuando haya podido realizar todos los experimentos, estará listo para desarrollar sus propios proyectos con el Stamp, desde algunos simples hasta los moderadamente complejos. La clave está en asegurarse haber comprendido todo sobre un experimento en particular antes de pasar al siguiente. Una última indicación: Diviértase! Manual StampWorks Versión 1.1 Página 5

Prepare su Plaqueta StampWorks Prepare su Plaqueta StampWorks Antes de realizar los experimentos, deberá controlar los componentes de su kit y preparar su plaqueta StampWorks. Una vez hecho esto, será capaz de construir con ella, una gran variedad de circuitos controlados por el Stamp. El Kit StampWorks incluye los siguientes componentes de Parallax: Código Descripción Cantidad 150-01020 resistor 1K ohm, ¼ W, 5% 4 150-01030 resistor 10K ohm, ¼ W, 5% 8 150-02210 resistor 220 ohm, ¼ W, 5% 3 150-04720 resistor 470 ohm, ¼ W, 5% 1 200-01040 capacitor 0.1 uf 4 201-01061 capacitor 10 uf 1 251-03230 cristal de 32.768 khz 1 27000 CD-ROM Parallax 1 27220 Manual StampWorks (en Inglés) 1 27964 Motor paso a paso 12 VDC/75 ohm 1 28135 Plaqueta NX-1000 y LCD 2x16 1 28162 Multímetro Digital 1 350-00009 Fotorresistor 2 451-00303 Conector de 3 pines 1 602-00009 74HC595 1 602-00010 74HC165 1 602-00015 Amp. operacional doble LM358 1 603-00001 MAX2719, driver de LEDs 7 seg. 1 604-00002 Termómetro Digital DS1620 1 604-00005 Reloj de tiempo real DS1302 1 604-00009 Temporizador 555 1 700-00050 Cable rojo 1 700-00051 Cable blanco 1 700-00052 Cable negro 1 700-00065 Juego de herramientas 1 700-00066 Corta / pela cables 1 750-00007 Fuente de alimentación 12V 1A 1 800-00003 Cable Serial 1 900-00001 Parlante 1 900-00005 Servo común Parallax 1 ADC0831 Conversor A/D de 8-bits ADC0831 1 BS2-IC Módulo BASIC Stamp II 1 Manual StampWorks Versión 1.1 Página 7

Prepare su Plaqueta StampWorks Para poder realizar los experimentos de StampWorks, necesitará estos componentes: Módulo BASIC Stamp II Plaqueta de laboratorio StampWorks (INEX-1000) Fuente de alimentación de 12 V Cable de programación Cables rojo y negro Corta / pela cables Empiece quitando la envoltura del módulo BASIC Stamp II e insértelo cuidadosamente en el zócalo de StampWorks. Observará que el módulo BASIC Stamp II y la plaqueta de laboratorio StampWorks tienen una marca semicircular. El módulo BASIC Stamp II debería insertarse en el zócalo de forma que las marcas queden alineadas. Use el cable de programación para conectar la plaqueta de laboratorio StampWorks a su PC. Es recomendable elegir un puerto serial (com) que no se encuentre en uso. Si, sin embargo, se ve forzado a desconectar otro dispositivo, por ejemplo, un PDA u organizador electrónico, de su computadora, asegúrese de deshabilitar el software de comunicación antes de intentar programar el BASIC Stamp. Si aún no ha instalado el software de programación del Stamp, vea la Sección 1 del manual de programación del Stamp II para obtener instrucciones. Asegúrese de que el interruptor de encendido de la plaqueta de laboratorio StampWorks esté en OFF. Conecte la ficha de la fuente de alimentación de 2.1 mm en la ficha DC INPUT. Conecte la fuente de alimentación a un toma (120 VCA o 220 VCA según el caso). En la parte central de la INEX-1000 hay un sector para realizar conexiones sin soldadura para que pueda montar circuitos que no se encuentren en la plaqueta del kit StampWorks (este kit incluye varios circuitos pre-armados). Es importante comprender cómo trabaja la protoboard. Con un poco de preparación, le será aún más fácil usarla en los próximos experimentos. Página 8 Manual StampWorks Versión 1.1

Prepare su Plaqueta StampWorks La parte central de la protoboard es la que usaremos para conectar nuestros componentes. Esta sección consiste en varias columnas de conectores (hay un número impreso al margen para referencia). Para cada columna hay dos juegos de filas. El primero está indicado con las letras A hasta la E y el segundo de la F hasta la J. En todas las columnas, los conectores de la A hasta la E se encuentran eléctricamente conectados. Lo mismo se repite entre la F y la J. Por encima y por debajo de la parte principal de la protoboard hay dos filas horizontales, cada una dividida al medio (aproximadamente en la columna 30). Estas líneas horizontales serán usadas para suministrar los +5 volts (Vdd) y masa (Vss). Para preparar la protoboard uniremos las filas para que la alimentación sea accesible en todos los sectores de la protoboard. Así se ve la protoboard desde el exterior: Si la viéramos con rayos-x, podríamos observar las conexiones internas y los cortes en Vdd y Vss que deberemos unir. Esta es una vista de las conexiones internas de la protoboard: Manual StampWorks Versión 1.1 Página 9

Prepare su Plaqueta StampWorks Comience pelando medio centímetro del aislante del extremo de un cable de interconexión negro. Con una pinza, doble cuidadosamente el cable 90 grados para que se vea así: Ahora introduzca este extremo en la fila del extremo superior (masa), en el conector que se encuentra justo arriba de la columna 29 (este conector es el que se encuentra exactamente en la línea central de la protoboard, hacia el extremo superior). Sostenga el cable de forma que salga hacia el costado derecho. Marque el aislante, realizando un corte superficial a la altura de la columna 32, asegurándose de no dañar el cable. Quite el cable de la protoboard y córtelo medio centímetro más allá de la marca que acaba de realizar. Con la pinza pelacables, quite el aislante a partir de la marca. Ahora doble este extremo a 90 de forma que el cable tome forma de U con el aislante en la parte central. Si midió y cortó cuidadosamente, este cable en forma de U debería poder introducirse fácilmente en la fila de masa entre los conectores 29 y 32. Esto creará una fila continua de masa. Repita este procedimiento para la fila del extremo inferior, también con cable negro. Luego conecte ambas filas usando el mismo proceso, en la columna 60 (extremo derecho de cada fila). Con el cable rojo, conecte las filas de alimentación superior e inferior. Estas filas proveerán los +5 volts, o Vdd. Una las filas de Vdd por la columna 59. Ahora corte 4 cm de cable negro y 4 cm de cable rojo y pele medio centímetro en ambos extremos. Doble cada cable con forma de U redondeada. Estos cables no quedarán planos como los anteriores, para que sean más fáciles de retirar de la plaqueta StampWorks cuando sea necesario. Página 10 Manual StampWorks Versión 1.1

Prepare su Plaqueta StampWorks Enchufe cuidadosamente un extremo del cable rojo en cualquiera de los terminales del bloque de +5V (cerca del interruptor RESET) y el otro extremo a la fila Vdd (+5) en la columna 1 de la protoboard. Luego conecte un extremo del cable negro en cualquiera de los terminales del bloque GND (masa) y el otro extremo en la fila de masa en la columna 19 de la protoboard. TENGA MUCHO CUIDADO al realizar estas últimas dos conexiones. Si las filas Vdd y Vss quedan interconectadas, se podrían producir daños al conectar la alimentación a la plaqueta StampWorks. Cuando termine el conexionado, la protoboard debería verse así: Encienda la plaqueta StampWorks moviendo el interruptor de energía a la posición ON. Debería encenderse el LED indicador de encendido (ON LED verde). Si no es así, asegúrese de que el transformador esté correctamente enchufado y busque errores en el conexionado de la protoboard. Ejecute el software editor del BASIC Stamp II e ingrese la siguiente línea de código: DEBUG La plaqueta StampWorks está lista! Ahora ejecute el programa (Run). Si todo salió bien, el programa se descarga en el Stamp y aparece una ventana DEBUG en la pantalla, mostrando el mensaje que escribimos (en la imagen del ejemplo está en Inglés). Manual StampWorks Versión 1.1 Página 11

Prepare su Plaqueta StampWorks Si ocurre un error, controle los siguientes ítems: Está el BASIC Stamp II conectado correctamente en la plaqueta NX-1000? Está el interruptor de encendido en la posición ON? Está encendido el LED verde? El cable de programación está conectado entre la PC y la plaqueta StampWorks? Ha seleccionado (manualmente) un puerto com erróneo de la PC? El puerto com de la PC está siendo usado por otro programa? Cuando la ventana DEBUG aparece y le dice que la plaqueta StampWorks está lista, es el momento de hablar sobre la programación del Stamp. Conexión de un Chip Hay dos formas de dibujar un esquema. Una considerada chipcéntrica en la cual los pines de E/S del chip aparecen de acuerdo a su ubicación física. En StampWorks los esquemas se dibujaron de forma más eficiente, poniendo los pines de E/S en los lugares que hagan el gráfico más claro. Los pines de E/S de todos los chips se cuentan a partir del indicador, comenzando por el Pin 1 y contando en sentido anti-horario. Indicador Página 12 Manual StampWorks Versión 1.1

Bases de la Programación Bases de la Programación Contenido de un Programa En la sección 1 de BASIC Stamp II manual se introduce el BASIC Stamp, su arquitectura y el concepto de variables y constantes. En esta sección, presentaremos varios elementos de un programa: código lineal, saltos, bucles y subrutinas. Los ejemplos siguientes usan pseudo-código para demostrar y describir la estructura del programa. Itálicas se usan para indicar las secciones de pseudo-código que deberían ser reemplazadas por instrucciones de programación válidas para lograr que el ejemplo pueda ser compilado y ejecutado correctamente. Usted no necesita realizar ninguno de estos ejemplos, ya que todos estos conceptos serán usados en los próximos experimentos. La gente a menudo piensa en las computadoras y los microcontroladores como dispositivos inteligentes cuando en realidad, no realizan ninguna tarea sin un juego específico de instrucciones. Este juego de instrucciones se llama programa. Escribirlo es nuestro trabajo. Los programas del Stamp se escriben en un lenguaje de programación llamado PBASIC, una versión específica del lenguaje de programación BASIC (Beginners All-purpose Symbolic Instruction Code= Código de Instrucciones Simbólicas Multi-propósito para Principiantes) desarrollada por Parallax. El BASIC es muy popular debido a su simplicidad y a su sintaxis similar al Inglés. Un programa puede ser tan simple como una lista de instrucciones. Algo así: instruccion 1 instruccion 2 instruccion 3 END Esta es una estructura de programa muy simple, pero válida. Lo que encontrará sin embargo, es que la mayoría de los programas no se ejecutan en forma lineal como en el programa anterior. El flujo del programa es a menudo redirigido con saltos, bucles y subrutinas, intercalando con pequeñas secciones lineales. Los requerimientos del flujo del programa son determinados por el objetivo del programa y las condiciones bajo las cuales se ejecutará. Manual StampWorks Versión 1.1 Página 13

Bases de la Programación Saltos Redireccionando el Flujo de un Programa Un comando de salto es el que causa que el flujo del programa se desvíe de su trayectoria lineal. En otras palabras, cuando el programa encuentra un comando de salto, no ejecutará, en la mayoría de los casos, la siguiente línea de código. El programa normalmente, se dirigirá a otro sector. Hay dos categorías de comandos de salto: incondicional y condicional. El PBASIC tiene dos comandos, GOTO y GOSUB que realizan saltos incondicionales. Este es un ejemplo de salto incondicional usando GOTO: Rotulo: instruccion 1 instruccion 2 instruccion 3 GOTO Rotulo Lo llamamos salto incondicional debido a que siempre se ejecuta. GOTO redirige el programa hacia otro lugar. La ubicación se especifica como parte del comando GOTO y se denomina dirección. Recuerde que las direcciones están al principio de una línea de código y son seguidas por dos puntos (:). Verá frecuentemente GOTO al final del cuerpo principal del código, haciendo que las instrucciones del programa se ejecuten nuevamente. El salto condicional hará que el flujo del programa se modifique bajo circunstancias específicas. El salto condicional más simple se logra con la función IF-THEN. La función de PBASIC IF-THEN es diferente de la original de BASIC. En PBASIC, THEN siempre es seguido por una dirección de programa (etiqueta), mientras que en el BASIC estándar se permite colocar instrucciones a continuación del THEN. Si la condición que se evalúa es verdadera, el programa saltará a la dirección especificada. Caso contrario, continuará en la siguiente línea de código. Observe este listado: Inicio: instruccion 1 instruccion 2 instruccion 3 IF condicion THEN Inicio Se ejecutan las instrucciones y se verifica la condición. Si se evalúa como verdadera, el programa saltará hacia atrás a la línea llamada Inicio. Si la condición se evalúa como falsa, el programa continuará por la línea que se encuentre a continuación de la instrucción IF-THEN. Página 14 Manual StampWorks Versión 1.1

Bases de la Programación A medida que sus requerimientos se vuelven más complicados, podría necesitar que su programa salte a un gran número de direcciones, dependiendo de cierta condición. La primera aproximación es usar múltiples instrucciones IF-THEN. IF condicion_0 THEN Etiqueta_0 IF condicion_1 THEN Etiqueta_1 IF condicion_2 THEN Etiqueta_2 Esta aproximación es válida y puede ser usada. Afortunadamente, el PBASIC tiene un comando especial, BRANCH, que permite que un programa salte a distintas direcciones dependiendo del valor de una variable. Esto es muy útil debido a que las condiciones que mencionábamos, a menudo proceden de una variable de control. BRANCH es un poco más sofisticado en su funcionamiento, pero muy poderoso debido a que puede reemplazar múltiples instrucciones IF-THEN. BRANCH requiere una variable de control y una lista de direcciones o etiquetas. En el caso de una única variable de control, el listado anterior puede ser reemplazado por una línea de código: BRANCH controlvar,[ Etiqueta_0, Etiqueta_1, Etiqueta_2] Cuando controlvar (variable de control) es cero, el programa saltará a Etiqueta_0, cuando controlvar es uno el programa saltará a Etiqueta_1 y así. Bucles Ejecutando el código una y otra vez Los bucles hacen que secciones del programa se repitan. Los bucles a menudo usan saltos condicionales e incondicionales para crear varias estructuras de repetición. Este es un ejemplo de bucle incondicional: Etiqueta: instruccion 1 instruccion 2 instruccion 3 GOTO Etiqueta Al usar GOTO las instrucciones se repiten incondicionalmente. Al usar IF-THEN, podemos crear bucles que se repetirán en ciertas condiciones. Los siguientes ejemplos son llamados bucles condicionales. Estos bucles se ejecutarán bajo ciertas circunstancias. La programación condicional es lo que le otorga a los microcontroladores su inteligencia. Manual StampWorks Versión 1.1 Página 15

Bases de la Programación Etiqueta: instruccion 1 instruccion 2 instruccion 3 IF condicion THEN Etiqueta Con esta estructura de repetición, las instrucciones se ejecutarán mientras la condición se evalúe como verdadera. Cuando la condición se evalúe como falsa, el programa continuará por la línea de código siguiente a la instrucción IF-THEN. Es importante observar que en el listado anterior las instrucciones siempre se ejecutarán al menos una vez, incluso cuando la condición sea falsa. Para evitar que suceda esto, es necesario probar la condición antes de ejecutar las instrucciones. El código puede escribirse como se muestra a continuación para lograr que las instrucciones (1 3) solamente se ejecuten cuando la condición sea verdadera. Cuando la condición es evaluada como falsa, el programa continúa en Etiqueta_2. Etiqueta_1: IF NOT (condicion) THEN Etiqueta_2 instruccion 1 instruccion 2 instruccion 3 GOTO Etiqueta_1 Etiqueta_2: instruccion 4 El último ejemplo de bucle condicional se trata de un bucle programado mediante la sentencia FOR- NEXT. FOR controlvar = ValInicial TO ValFinal STEP tamañopaso instruccion 1 instruccion 2 instruccion 3 NEXT La construcción FOR-NEXT es usada para lograr que una sección de código se ejecute una cantidad determinada de veces. FOR-NEXT usa una variable de control para determinar la cantidad de repeticiones. El tamaño de la variable determinará la cantidad máxima de repeticiones. Por ejemplo, la cantidad máxima de repeticiones cuando se utiliza una variable de control tipo byte será 255. Página 16 Manual StampWorks Versión 1.1

Bases de la Programación La opción STEP de FOR-NEXT es usada cuando se necesita que el incremento de la variable en cada repetición sea distinto de uno. Si, por ejemplo, el bucle debe contar en valores pares, el código podría verse así: FOR controlvar = 2 TO 20 STEP 2 instruccion 1 instruccion 2 instruccion 3 NEXT Subrutinas Código reutilizable que ahorra espacio de programa El último concepto de programación que discutiremos es la subrutina. Una subrutina es una sección de código que puede ser llamada (ejecutada) desde cualquier punto del programa. GOSUB es usado para redirigir el programa hacia el código de la subrutina. La subrutina termina con el comando RETURN. Este comando hace que el programa salte hacia la línea de código que sigue a la llamada GOSUB original. Inicio: GOSUB MySub PAUSE 1000 GOTO Inicio MySub: instruccion 1 instruccion 2 instruccion 3 RETURN En este ejemplo, el código de MySub es ejecutado y luego el programa salta hacia atrás a la línea PAUSE 1000. Estilo de Programación El PBASIC es un lenguaje muy flexible. Sus reglas son simples y fáciles de aprender. El PBASIC no es sensible al formato del programa, uso de espacios en blanco (espacios, tabulaciones, líneas en blanco, etc.) y no detecta diferencias entre mayúsculas y minúsculas; esto quiere decir que dirs, Dirs y DIRS significan lo mismo en PBASIC así que podremos elegir la opción que más nos guste para trabajar. Manual StampWorks Versión 1.1 Página 17

Bases de la Programación Los programadores experimentados tienden a adoptar o desarrollar un estilo (de formato) de programación consistente. Ya sea que elija adoptar un estilo o desarrollar uno propio, el hecho de mantener la coherencia con el mismo simplificará la solución de problemas y las revisiones futuras. Esto es especialmente cierto cuando quiere modificar un programa en el que no ha trabajado por mucho tiempo. Los programas de este libro y los que se encuentran en el CD de StampWorks usan las siguientes convenciones: Plantilla La estructura de todos los programas es similar. Ésta puede dividirse en cuatro secciones: Encabezado: Esta sección contiene el nombre del archivo y una corta descripción de su funcionamiento. También se registran en este sector las revisiones y actualizaciones que se realizan a la versión original. En la Versión 1.1 de este libro, también hemos agregado la directiva del compilador que indica el modelo de BASIC Stamp que estamos usando. Declaraciones: Ésta sección contiene la declaración de los alias para los pines de E/S, valores constantes y variables. En los ejemplos de programación de esta guía, las variables PBASIC siempre tendrán nombres significativos. Los únicos nombres internos que se usarán serán Outs y Dirs y siempre en la sección de inicialización y no en el código principal. Instrucciones DATA: Algunos programas almacenan información adicional en la EEPROM del BAISC Stamp con instrucciones DATA. Esta sección provee el espacio para dicho almacenamiento. Inicialización: Esta sección es usada para inicializar el estado de los pines de E/S, variables del programa y cuando sea necesario, el hardware externo. Código: Es donde reside la parte principal del código del programa. Subrutinas: Las subrutinas están separadas del cuerpo principal del código debido a que pueden ser llamadas desde cualquier parte del programa. La separación entre subrutinas también facilita la portabilidad del código, posibilitando usar la herramienta de edición cut and paste (cortar y pegar) para reutilizar las subrutinas en otros programas. La plantilla se llama BLANK.BS2. Puede cargarla cuando comienza un proyecto nuevo, asegurándose de cambiarle el nombre utilizando la opción Save As (Guardar como) del BASIC Stamp Editor. Página 18 Manual StampWorks Versión 1.1

Bases de la Programación ' ========================================================================= ' Archivo: BLANK.BS2 ' ' { descripción } ' ' {$STAMP BS2} ' ========================================================================= ' { pines de E/S } ' { constantes } ' { variables } ' ------------------------------------------------------------------------- ' { instrucciones DATA } ' ------------------------------------------------------------------------- ' { inicialización } ' ------------------------------------------------------------------------- ' { código } Principal: GOTO Principal END ' ------------------------------------------------------------------------- ' { subrutinas } Convención sobre Nombres Como se dijo anteriormente, los programas de los experimentos utilizarán alias (sobrenombres) para los pines de E/S y variables internas de PBASIC. Se usarán las siguientes convenciones: Constantes: (incluyendo las etiquetas de direccionamiento a subrutinas) utilizarán mezcla de mayúsculas y minúsculas, comenzando siempre en mayúscula. Ejemplos: LimitSw, LMotor, DlyTm, InitLCD Manual StampWorks Versión 1.1 Página 19